Mercurial > hg > octave-lyh
comparison gui/src/MainWindow.cpp @ 13541:b48ac9ad8de0
Highly improved separation of model and view classes.
author | Jacob Dawid <jacob.dawid@googlemail.com> |
---|---|
date | Tue, 26 Jul 2011 23:04:52 +0200 |
parents | 0dbf8681cd08 |
children | 5b168bbd6044 |
comparison
equal
deleted
inserted
replaced
13540:0dbf8681cd08 | 13541:b48ac9ad8de0 |
---|---|
24 #include <QFileDialog> | 24 #include <QFileDialog> |
25 #include "MainWindow.h" | 25 #include "MainWindow.h" |
26 #include "FileEditorMdiSubWindow.h" | 26 #include "FileEditorMdiSubWindow.h" |
27 #include "ImageViewerMdiSubWindow.h" | 27 #include "ImageViewerMdiSubWindow.h" |
28 #include "SettingsDialog.h" | 28 #include "SettingsDialog.h" |
29 #include "OctaveCallbackThread.h" | |
30 #include "cmd-edit.h" | 29 #include "cmd-edit.h" |
31 | 30 |
32 #define VERSION_STRING "Octave GUI (0.6.0)" | 31 #define VERSION_STRING "Octave GUI (0.6.0)" |
33 | 32 |
34 MainWindow::MainWindow (QWidget * parent):QMainWindow (parent), | 33 MainWindow::MainWindow (QWidget * parent):QMainWindow (parent) |
35 m_isRunning (true) | |
36 { | 34 { |
37 construct (); | 35 construct (); |
38 establishOctaveLink (); | 36 OctaveLink::instance ()->launchOctave(); |
39 } | 37 } |
40 | 38 |
41 MainWindow::~MainWindow () | 39 MainWindow::~MainWindow () |
42 { | 40 { |
43 } | 41 } |
149 } | 147 } |
150 | 148 |
151 void | 149 void |
152 MainWindow::closeEvent (QCloseEvent * closeEvent) | 150 MainWindow::closeEvent (QCloseEvent * closeEvent) |
153 { | 151 { |
154 m_isRunning = false; | |
155 reportStatusMessage (tr ("Saving data and shutting down.")); | 152 reportStatusMessage (tr ("Saving data and shutting down.")); |
156 writeSettings (); | 153 writeSettings (); |
157 | 154 |
158 m_octaveCallbackThread->terminate (); | 155 OctaveLink::instance ()->terminateOctave(); |
159 m_octaveCallbackThread->wait (); | |
160 | |
161 m_octaveMainThread->terminate (); | |
162 QMainWindow::closeEvent (closeEvent); | 156 QMainWindow::closeEvent (closeEvent); |
163 } | 157 } |
164 | 158 |
165 void | 159 void |
166 MainWindow::readSettings () | 160 MainWindow::readSettings () |
203 | 197 |
204 // Setup essential MDI Windows. | 198 // Setup essential MDI Windows. |
205 m_octaveTerminal = new OctaveTerminal (this); | 199 m_octaveTerminal = new OctaveTerminal (this); |
206 m_documentationWidget = new BrowserWidget (this); | 200 m_documentationWidget = new BrowserWidget (this); |
207 m_ircWidget = new IRCWidget (this); | 201 m_ircWidget = new IRCWidget (this); |
202 | |
203 m_octaveTerminal->openTerminal (); | |
208 | 204 |
209 m_documentationWidgetSubWindow = | 205 m_documentationWidgetSubWindow = |
210 m_centralMdiArea->addSubWindow (m_documentationWidget, | 206 m_centralMdiArea->addSubWindow (m_documentationWidget, |
211 Qt::WindowTitleHint | Qt:: | 207 Qt::WindowTitleHint | Qt:: |
212 WindowMinMaxButtonsHint); | 208 WindowMinMaxButtonsHint); |
302 | 298 |
303 readSettings (); | 299 readSettings (); |
304 openWebPage ("http://www.gnu.org/software/octave/doc/interpreter/"); | 300 openWebPage ("http://www.gnu.org/software/octave/doc/interpreter/"); |
305 } | 301 } |
306 | 302 |
307 void | |
308 MainWindow::establishOctaveLink () | |
309 { | |
310 m_octaveTerminal->openTerminal (); | |
311 | |
312 m_octaveMainThread = new OctaveMainThread (this); | |
313 m_octaveMainThread->start (); | |
314 | |
315 m_octaveCallbackThread = new OctaveCallbackThread (this, this); | |
316 connect (m_octaveMainThread, SIGNAL(ready()), m_octaveCallbackThread, SLOT(start())); | |
317 reportStatusMessage (tr ("Established link to Octave.")); | |
318 } |