diff options
author | Kevin Smith <git@kismith.co.uk> | 2010-05-13 19:02:05 (GMT) |
---|---|---|
committer | Kevin Smith <git@kismith.co.uk> | 2010-05-13 19:02:05 (GMT) |
commit | 83bc9d0690697fdbbeab7c225a6cdb364ce59b46 (patch) | |
tree | 1b5a525c0719d6e1ba2e1c90eb352c2d549bca7d /Swift/QtUI | |
parent | 4a192bc9f70d20ac0a509dff1994d3aad812cb2d (diff) | |
download | swift-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.cpp | 40 | ||||
-rw-r--r-- | Swift/QtUI/EventViewer/QtEventWindow.h | 4 |
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_; }; } |