diff options
-rw-r--r-- | Swift/Controllers/UIInterfaces/XMLConsoleWidget.h | 3 | ||||
-rw-r--r-- | Swift/Controllers/XMLConsoleController.cpp | 6 | ||||
-rw-r--r-- | Swift/QtUI/QtXMLConsoleWidget.cpp | 22 | ||||
-rw-r--r-- | Swift/QtUI/QtXMLConsoleWidget.h | 6 |
4 files changed, 35 insertions, 2 deletions
diff --git a/Swift/Controllers/UIInterfaces/XMLConsoleWidget.h b/Swift/Controllers/UIInterfaces/XMLConsoleWidget.h index 69628df..efde1a2 100644 --- a/Swift/Controllers/UIInterfaces/XMLConsoleWidget.h +++ b/Swift/Controllers/UIInterfaces/XMLConsoleWidget.h @@ -2,6 +2,7 @@ namespace Swift { class XMLConsoleWidget { - + public: + virtual void show() = 0; }; } diff --git a/Swift/Controllers/XMLConsoleController.cpp b/Swift/Controllers/XMLConsoleController.cpp index 8bd79ed..810e8a6 100644 --- a/Swift/Controllers/XMLConsoleController.cpp +++ b/Swift/Controllers/XMLConsoleController.cpp @@ -9,12 +9,16 @@ XMLConsoleController::XMLConsoleController(UIEventStream* uiEventStream, XMLCons uiEventStream_ = uiEventStream; xmlConsoleWidgetFactory_ = xmlConsoleWidgetFactory; uiEventStream_->onUIEvent.connect(boost::bind(&XMLConsoleController::handleUIEvent, this, _1)); + xmlConsoleWidget_ = NULL; } void XMLConsoleController::handleUIEvent(boost::shared_ptr<UIEvent> rawEvent) { boost::shared_ptr<RequestXMLConsoleUIEvent> event = boost::dynamic_pointer_cast<RequestXMLConsoleUIEvent>(rawEvent); if (event != NULL) { - xmlConsoleWidget_ = xmlConsoleWidgetFactory_->createXMLConsoleWidget(); + if (xmlConsoleWidget_ == NULL) { + xmlConsoleWidget_ = xmlConsoleWidgetFactory_->createXMLConsoleWidget(); + } + xmlConsoleWidget_->show(); } } diff --git a/Swift/QtUI/QtXMLConsoleWidget.cpp b/Swift/QtUI/QtXMLConsoleWidget.cpp index d2ebb06..7553d06 100644 --- a/Swift/QtUI/QtXMLConsoleWidget.cpp +++ b/Swift/QtUI/QtXMLConsoleWidget.cpp @@ -1,7 +1,29 @@ #include "QtXMLConsoleWidget.h" +#include <QCloseEvent> + namespace Swift { QtXMLConsoleWidget::QtXMLConsoleWidget() { } + +void QtXMLConsoleWidget::showEvent(QShowEvent* event) { + emit windowOpening(); + QWidget::showEvent(event); +} + +void QtXMLConsoleWidget::show() { + QWidget::show(); + emit windowOpening(); +} + +void QtXMLConsoleWidget::activate() { + emit wantsToActivate(); +} + +void QtXMLConsoleWidget::closeEvent(QCloseEvent* event) { + emit windowClosing(); + event->accept(); +} + } diff --git a/Swift/QtUI/QtXMLConsoleWidget.h b/Swift/QtUI/QtXMLConsoleWidget.h index f545e18..50b53f2 100644 --- a/Swift/QtUI/QtXMLConsoleWidget.h +++ b/Swift/QtUI/QtXMLConsoleWidget.h @@ -8,5 +8,11 @@ namespace Swift { Q_OBJECT public: QtXMLConsoleWidget(); + void show(); + void activate(); + protected slots: + void closeEvent(QCloseEvent* event); + protected: + void showEvent(QShowEvent* event); }; } |