summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Smith <git@kismith.co.uk>2010-05-13 19:02:05 (GMT)
committerKevin Smith <git@kismith.co.uk>2010-05-13 19:02:05 (GMT)
commit83bc9d0690697fdbbeab7c225a6cdb364ce59b46 (patch)
tree1b5a525c0719d6e1ba2e1c90eb352c2d549bca7d /Swift/QtUI
parent4a192bc9f70d20ac0a509dff1994d3aad812cb2d (diff)
downloadswift-contrib-83bc9d0690697fdbbeab7c225a6cdb364ce59b46.zip
swift-contrib-83bc9d0690697fdbbeab7c225a6cdb364ce59b46.tar.bz2
Add 'Read Notice' button to the event view.
Resolves: #332
Diffstat (limited to 'Swift/QtUI')
-rw-r--r--Swift/QtUI/EventViewer/QtEventWindow.cpp40
-rw-r--r--Swift/QtUI/EventViewer/QtEventWindow.h4
2 files changed, 34 insertions, 10 deletions
diff --git a/Swift/QtUI/EventViewer/QtEventWindow.cpp b/Swift/QtUI/EventViewer/QtEventWindow.cpp
index b32c4cf..9458f67 100644
--- a/Swift/QtUI/EventViewer/QtEventWindow.cpp
+++ b/Swift/QtUI/EventViewer/QtEventWindow.cpp
@@ -8,6 +8,8 @@
#include "Swift/QtUI/EventViewer/QtEventWindow.h"
#include <QtDebug>
+#include <QBoxLayout>
+#include <QPushButton>
#include "Swiften/Events/MessageEvent.h"
#include "Swiften/Events/ErrorEvent.h"
@@ -20,25 +22,45 @@
namespace Swift {
-QtEventWindow::QtEventWindow(UIEventStream* eventStream, QWidget* parent) : QTreeView(parent) {
+QtEventWindow::QtEventWindow(UIEventStream* eventStream, QWidget* parent) : QWidget(parent) {
+ QBoxLayout* layout = new QBoxLayout(QBoxLayout::TopToBottom, this);
+ layout->setContentsMargins(0,0,0,0);
+ layout->setSpacing(0);
+
+ view_ = new QTreeView(this);
+ layout->addWidget(view_);
eventStream_ = eventStream;
model_ = new EventModel();
- setModel(model_);
+ view_->setModel(model_);
delegate_ = new EventDelegate();
- setItemDelegate(delegate_);
- setHeaderHidden(true);
+ view_->setItemDelegate(delegate_);
+ view_->setHeaderHidden(true);
#ifdef SWIFT_PLATFORM_MACOSX
- setAlternatingRowColors(true);
+ view_->setAlternatingRowColors(true);
#endif
- setAnimated(true);
- setIndentation(0);
- setRootIsDecorated(true);
- connect(this, SIGNAL(activated(const QModelIndex&)), this, SLOT(handleItemActivated(const QModelIndex&)));
+ view_->setAnimated(true);
+ view_->setIndentation(0);
+ view_->setRootIsDecorated(true);
+
+ QPushButton* readButton = new QPushButton("Read Notice", this);
+ layout->addWidget(readButton);
+ connect(readButton, SIGNAL(clicked()), this, SLOT(handleReadClicked()));
+
+ connect(view_, SIGNAL(activated(const QModelIndex&)), this, SLOT(handleItemActivated(const QModelIndex&)));
}
QtEventWindow::~QtEventWindow() {
delete model_;
delete delegate_;
+ /* Not view_ because this is the parent */
+}
+
+void QtEventWindow::handleReadClicked() {
+ QModelIndex index = view_->currentIndex();
+ if (!index.isValid()) {
+ return;
+ }
+ handleItemActivated(index);
}
void QtEventWindow::handleItemActivated(const QModelIndex& item) {
diff --git a/Swift/QtUI/EventViewer/QtEventWindow.h b/Swift/QtUI/EventViewer/QtEventWindow.h
index 79fccab..1f7010e 100644
--- a/Swift/QtUI/EventViewer/QtEventWindow.h
+++ b/Swift/QtUI/EventViewer/QtEventWindow.h
@@ -17,7 +17,7 @@
#include "Swift/QtUI/EventViewer/EventDelegate.h"
namespace Swift {
- class QtEventWindow : public QTreeView, public EventWindow {
+ class QtEventWindow : public QWidget, public EventWindow {
Q_OBJECT
public:
QtEventWindow(UIEventStream* eventStream, QWidget* parent = 0);
@@ -28,10 +28,12 @@ namespace Swift {
void onNewEventCountUpdated(int count);
private slots:
void handleItemActivated(const QModelIndex& item);
+ void handleReadClicked();
private:
EventModel* model_;
EventDelegate* delegate_;
UIEventStream* eventStream_;
+ QTreeView* view_;
};
}