From dc80d6baf01d1a4c69e5204887d430ad5f6daaec Mon Sep 17 00:00:00 2001
From: Kevin Smith <git@kismith.co.uk>
Date: Fri, 21 May 2010 15:59:57 +0000
Subject: Disable the notice button until a notice is selected.

Resolves: #350

diff --git a/Swift/QtUI/EventViewer/QtEventWindow.cpp b/Swift/QtUI/EventViewer/QtEventWindow.cpp
index 9458f67..567ac94 100644
--- a/Swift/QtUI/EventViewer/QtEventWindow.cpp
+++ b/Swift/QtUI/EventViewer/QtEventWindow.cpp
@@ -42,11 +42,13 @@ QtEventWindow::QtEventWindow(UIEventStream* eventStream, QWidget* parent) : QWid
 	view_->setIndentation(0);
 	view_->setRootIsDecorated(true);
 	
-	QPushButton* readButton = new QPushButton("Read Notice", this);
-	layout->addWidget(readButton);
-	connect(readButton, SIGNAL(clicked()), this, SLOT(handleReadClicked()));
-
+	readButton_ = new QPushButton("Read Notice", this);
+	layout->addWidget(readButton_);
+	readButton_->setEnabled(false);
+	connect(readButton_, SIGNAL(clicked()), this, SLOT(handleReadClicked()));
+	connect(view_, SIGNAL(clicked(const QModelIndex&)), this, SLOT(handleItemClicked(const QModelIndex&)));
 	connect(view_, SIGNAL(activated(const QModelIndex&)), this, SLOT(handleItemActivated(const QModelIndex&)));
+	
 }
 
 QtEventWindow::~QtEventWindow() {
@@ -55,6 +57,10 @@ QtEventWindow::~QtEventWindow() {
 	/* Not view_ because this is the parent */
 }
 
+void QtEventWindow::handleItemClicked(const QModelIndex&) {
+	readButton_->setEnabled(true);
+}
+
 void QtEventWindow::handleReadClicked() {
 	QModelIndex index = view_->currentIndex();
 	if (!index.isValid()) {
diff --git a/Swift/QtUI/EventViewer/QtEventWindow.h b/Swift/QtUI/EventViewer/QtEventWindow.h
index 1f7010e..b49660a 100644
--- a/Swift/QtUI/EventViewer/QtEventWindow.h
+++ b/Swift/QtUI/EventViewer/QtEventWindow.h
@@ -16,6 +16,8 @@
 #include "Swift/QtUI/EventViewer/EventModel.h"
 #include "Swift/QtUI/EventViewer/EventDelegate.h"
 
+class QPushButton;
+
 namespace Swift {
 	class QtEventWindow : public QWidget, public EventWindow {
 		Q_OBJECT
@@ -28,12 +30,14 @@ namespace Swift {
 			void onNewEventCountUpdated(int count);
 		private slots:
 			void handleItemActivated(const QModelIndex& item);
+			void handleItemClicked(const QModelIndex& item);
 			void handleReadClicked();
 		private:
 			EventModel* model_;
 			EventDelegate* delegate_;
 			UIEventStream* eventStream_;
 			QTreeView* view_;
+			QPushButton* readButton_;
 	};
 		
 }
-- 
cgit v0.10.2-6-g49f6