diff options
| author | Kevin Smith <git@kismith.co.uk> | 2010-05-24 16:06:22 (GMT) | 
|---|---|---|
| committer | Kevin Smith <git@kismith.co.uk> | 2010-05-24 16:06:22 (GMT) | 
| commit | 933d3ab7b34500c8edb927505d831fe439ca4253 (patch) | |
| tree | 06a5d3f6bdb60b7f6835e1f73f635dc6ccb01dac | |
| parent | 10534d5b942e7ef1e2f8e6900fb5b17411111b06 (diff) | |
| download | swift-933d3ab7b34500c8edb927505d831fe439ca4253.zip swift-933d3ab7b34500c8edb927505d831fe439ca4253.tar.bz2  | |
Dismiss the status editing when the edit loses focus.
Resolves: #358
Resolves: #362
| -rw-r--r-- | Swift/QtUI/QtStatusWidget.cpp | 15 | ||||
| -rw-r--r-- | Swift/QtUI/QtStatusWidget.h | 1 | 
2 files changed, 15 insertions, 1 deletions
diff --git a/Swift/QtUI/QtStatusWidget.cpp b/Swift/QtUI/QtStatusWidget.cpp index 28df59c..6aeec4a 100644 --- a/Swift/QtUI/QtStatusWidget.cpp +++ b/Swift/QtUI/QtStatusWidget.cpp @@ -74,9 +74,13 @@ QtStatusWidget::QtStatusWidget(QWidget *parent) : QWidget(parent), editCursor_(Q  	menu_ = new QListWidget();  	menu_->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint | Qt::X11BypassWindowManagerHint ); -	menu_->setAlternatingRowColors(true);		 +	menu_->setAlternatingRowColors(true); +	menu_->setFocusProxy(statusEdit_);  	connect(menu_, SIGNAL(itemClicked(QListWidgetItem*)), this, SLOT(handleItemClicked(QListWidgetItem*))); + +	connect(qApp, SIGNAL(focusChanged(QWidget*, QWidget*)), this, SLOT(handleApplicationFocusChanged(QWidget*, QWidget*))); +  	viewMode();  } @@ -84,6 +88,15 @@ QtStatusWidget::~QtStatusWidget() {  	delete menu_;  } +void QtStatusWidget::handleApplicationFocusChanged(QWidget* /*old*/, QWidget* now) { +	if (stack_->currentIndex() == 0) { +		return; +	} +	if (now != menu_ && now != statusEdit_) { +		handleEditCancelled(); +	} +} +  void QtStatusWidget::mousePressEvent(QMouseEvent*) {  	handleClicked();  } diff --git a/Swift/QtUI/QtStatusWidget.h b/Swift/QtUI/QtStatusWidget.h index 84994d8..4e6aa20 100644 --- a/Swift/QtUI/QtStatusWidget.h +++ b/Swift/QtUI/QtStatusWidget.h @@ -37,6 +37,7 @@ namespace Swift {  			void handleClicked();  			void handleEditComplete();  			void handleEditCancelled(); +			void handleApplicationFocusChanged(QWidget* old, QWidget* now);  		protected slots:  			virtual void mousePressEvent(QMouseEvent* event);  			void handleItemClicked(QListWidgetItem* item);  | 
 Swift