Class Webgen::GUI::MainWindow
In: lib/webgen/gui/main.rb
Parent: Qt::MainWindow
RuntimeError PluginParamNotFound PluginNotFound ConfigurationFileInvalid CmdParse::CommandParser CommandParser DirectoryInfo GalleryStyle WebSiteStyle WebSiteTemplate SipttraStyle Test::Unit::TestCase TestCase PluginTestCase TagTestCase CmdParse::Command ShowCommand CheckCommand UseCommand CreateCommand TSort DependencyHash Hash Comparable Language ::Logger Logger Logger DEFAULT_WRAPPER_MODULE WebSite Qt::MainWindow MainWindow Qt::Dialog NewWebsiteDialog Qt::TextEdit LogWidget ::Rake::TaskLib WebgenTask ConfigurationFile Website PluginManager PluginLoader PluginParamValueNotFound Dummy Color CliUtils PluginDefs lib/webgen/languages.rb lib/webgen/website.rb lib/webgen/gui/common.rb lib/webgen/plugin.rb lib/webgen/test.rb lib/webgen/cli.rb ClassMethods PluginDefs LanguageManager lib/webgen/gui/new_website_dlg.rb lib/webgen/gui/main.rb GUI lib/webgen/rake/webgentask.rb Rake Webgen dot/m_60_1.png

Methods

Public Class methods

[Source]

    # 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

Public Instance methods

[Source]

     # File lib/webgen/gui/main.rb, line 118
118:     def filter_files
119:       # set_file_list
120:       # set status text
121:     end

[Source]

    # 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

[Source]

     # 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

[Source]

     # 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

[Source]

     # File lib/webgen/gui/main.rb, line 113
113:     def preview_text
114:       @pageEditor.setTextFormat( Qt::PlainText )
115:       @pageEditor.setText( @old )
116:     end

[Source]

     # 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

[Source]

     # File lib/webgen/gui/main.rb, line 103
103:     def save
104:       #TODO What to save???
105:     end

Private Instance methods

[Source]

     # 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

[Source]

     # 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

[Source]

     # 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

[Source]

     # 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

[Validate]