Class | Webgen::GUI::MainWindow |
In: |
lib/webgen/gui/main.rb
|
Parent: | Qt::MainWindow |
# File lib/webgen/gui/main.rb, line 78 78: def initialize 79: super 80: setCaption( 'webgen GUI' ) 81: setup_window 82: setup_menus 83: @website = Webgen::Website.new( '/home/thomas/work/projects/trunk/webgen/DIR' ) 84: end
# File lib/webgen/gui/main.rb, line 118 118: def filter_files 119: # set_file_list 120: # set status text 121: end
# File lib/webgen/gui/main.rb, line 86 86: def new 87: dlg = NewWebsiteDialog.new( self ) 88: if dlg.exec == Qt::Dialog::Accepted 89: @website = Webgen::Website.new( dlg.website_directory ) 90: #TODO init website 91: end 92: end
# File lib/webgen/gui/main.rb, line 94 94: def open 95: #TODO save files in existing dir if necessary 96: dir = Qt::FileDialog.getExistingDirectory( @website.directory, self, nil, "Select website directory" ) 97: unless dir.nil? 98: @website = Webgen::Website.new( dir ) 99: #TODO init website 100: end 101: end
# File lib/webgen/gui/main.rb, line 107 107: def preview_page 108: @old = @pageEditor.text 109: @pageEditor.setTextFormat( Qt::RichText ) 110: @pageEditor.setText( RedCloth.new( @old ).to_html ) 111: end
# File lib/webgen/gui/main.rb, line 113 113: def preview_text 114: @pageEditor.setTextFormat( Qt::PlainText ) 115: @pageEditor.setText( @old ) 116: end
# File lib/webgen/gui/main.rb, line 123 123: def run_webgen 124: @log.clear 125: before = Time.now 126: Webgen.run_webgen( @website.directory ) 127: # call external command 128: diff = Time.now - before 129: puts diff 130: end
# File lib/webgen/gui/main.rb, line 174 174: def setup_file_list( mainWidget ) 175: button = Qt::PushButton.new( 'Clear', mainWidget ) 176: @filter = Qt::LineEdit.new( mainWidget ) 177: @filter.setMinimumWidth( 200 ) 178: 179: connect( button, SIGNAL('clicked()'), @filter, SLOT('clear()') ) 180: connect( @filter, SIGNAL('textChanged(const QString&)'), self, SLOT('filter_files()') ) 181: 182: @fileList = Qt::ListBox.new( mainWidget ) 183: 184: @fileStatusText = Qt::Label.new( mainWidget ) 185: @fileStatusText.setText( 'something' ) 186: 187: filterLayout = Qt::HBoxLayout.new 188: filterLayout.addWidget( @filter ) 189: filterLayout.addWidget( button ) 190: 191: layout = Qt::VBoxLayout.new( mainWidget ) 192: layout.setSpacing( 3 ) 193: layout.addLayout( filterLayout ) 194: layout.addWidget( @fileList ) 195: layout.addWidget( @fileStatusText ) 196: end
# File lib/webgen/gui/main.rb, line 198 198: def setup_file_view( mainWidget ) 199: @fileView = Qt::WidgetStack.new( mainWidget ) 200: @fileView.setMinimumSize( 300, 300 ) 201: 202: main = Qt::Widget.new( @fileView ) 203: @pageEditor = Qt::TextEdit.new( main ) 204: @pageEditor.setTextFormat( Qt::PlainText ) 205: button = Qt::PushButton.new( "Preview", main ) 206: connect( button, SIGNAL('pressed()'), self, SLOT('preview_page()') ) 207: connect( button, SIGNAL('released()'), self, SLOT('preview_text()') ) 208: layout = Qt::VBoxLayout.new( main ) 209: layout.setSpacing( 3 ) 210: layout.addWidget( @pageEditor ) 211: layout.addWidget( button ) 212: 213: 214: @imageViewer = Qt::Label.new( @fileView ) 215: end
# File lib/webgen/gui/main.rb, line 136 136: def setup_menus 137: filemenu = Qt::PopupMenu.new( self ) 138: filemenu.insertItem( "&Create website dir...", self, SLOT("new()"), Qt::KeySequence.new( CTRL+Key_N ) ) 139: filemenu.insertItem( "&Open website dir...", self, SLOT("open()"), Qt::KeySequence.new( CTRL+Key_O ) ) 140: filemenu.insertItem( "&Save website", self, SLOT("save()"), Qt::KeySequence.new( CTRL+Key_S ) ) 141: filemenu.insertSeparator 142: filemenu.insertItem( "&Quit", $app, SLOT("quit()"), Qt::KeySequence.new( CTRL+Key_Q ) ) 143: 144: toolsmenu = Qt::PopupMenu.new( self ) 145: toolsmenu.insertItem( "&Run webgen...", self, SLOT("run_webgen()"), Qt::KeySequence.new( CTRL+Key_R ) ) 146: toolsmenu.insertItem( "Toogle &log window", @log, SLOT('toggleShown()'), Qt::KeySequence.new( CTRL+Key_L) ) 147: 148: self.menuBar.insertItem( "&File", filemenu ) 149: self.menuBar.insertItem( "&Tools", toolsmenu ) 150: end
# File lib/webgen/gui/main.rb, line 152 152: def setup_window 153: mainWidget = Qt::Splitter.new( Qt::Vertical, self ) 154: mainWidget.setOpaqueResize( true ) 155: 156: upperWidget = Qt::Widget.new( mainWidget ) 157: 158: left = Qt::Widget.new( upperWidget ) 159: setup_file_list( left ) 160: setup_file_view( upperWidget ) 161: 162: mainLayout = Qt::HBoxLayout.new( upperWidget ) 163: mainLayout.setSpacing( 3 ) 164: mainLayout.setMargin( 3 ) 165: mainLayout.addWidget( left ) 166: mainLayout.addWidget( @fileView, 1 ) 167: 168: @log = LogWidget.new( mainWidget ) 169: @log.hide 170: 171: setCentralWidget( mainWidget ) 172: end