diff options
author | Kevin Smith <git@kismith.co.uk> | 2009-11-26 22:44:00 (GMT) |
---|---|---|
committer | Kevin Smith <git@kismith.co.uk> | 2009-11-26 22:44:00 (GMT) |
commit | c89ef0ffae597ac8c1063732e1d9a2d84703a80c (patch) | |
tree | fdacc93afd7e950b92dda6ad12fbc5e0d1dcb245 | |
parent | 3ab65e86b1a8b81c6f38dbbed56749c6a77f9142 (diff) | |
download | swift-c89ef0ffae597ac8c1063732e1d9a2d84703a80c.zip swift-c89ef0ffae597ac8c1063732e1d9a2d84703a80c.tar.bz2 |
Allow the XmlConsole to be closed, and there to be only one.
Resolves: #261
Resolve: #262
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: Swift/Controllers/UIInterfaces/XMLConsoleWidget.h
# modified: Swift/Controllers/XMLConsoleController.cpp
# modified: Swift/QtUI/QtXMLConsoleWidget.cpp
# modified: Swift/QtUI/QtXMLConsoleWidget.h
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# src/
-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); }; } |