diff options
| author | Manjeet Dahiya <manjeetdahiya@gmail.com> | 2010-09-08 09:23:18 +0000 |
|---|---|---|
| committer | Manjeet Dahiya <manjeetdahiya@gmail.com> | 2010-09-08 09:23:18 +0000 |
| commit | da88f5f0bb5e73bc69bf7ed3962691622b1ae4f9 (patch) | |
| tree | c3686f7649785a2bfcc2c637a1588acdb8a721e8 /examples/GuiClient/customListView.cpp | |
| parent | 3431f5a37174b7eb8490672686db68df2b48e35f (diff) | |
| download | qxmpp-da88f5f0bb5e73bc69bf7ed3962691622b1ae4f9.tar.gz | |
add Gui Client example
Diffstat (limited to 'examples/GuiClient/customListView.cpp')
| -rw-r--r-- | examples/GuiClient/customListView.cpp | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/examples/GuiClient/customListView.cpp b/examples/GuiClient/customListView.cpp new file mode 100644 index 00000000..9a2bab98 --- /dev/null +++ b/examples/GuiClient/customListView.cpp @@ -0,0 +1,69 @@ +#include "customListView.h"
+#include "rosterItem.h"
+#include <QApplication>
+#include <QMenu>
+#include <QKeyEvent>
+
+customListView::customListView(QWidget* parent):QListView(parent), m_chat("Chat", this), m_profile("View Profile", this)
+{
+ bool check = connect(this, SIGNAL(pressed(const QModelIndex&)), this,
+ SLOT(mousePressed(const QModelIndex&)));
+ Q_ASSERT(check);
+ check = connect(this, SIGNAL(doubleClicked(const QModelIndex&)), this,
+ SLOT(doubleClicked(const QModelIndex&)));
+ Q_ASSERT(check);
+ check = connect(this, SIGNAL(clicked(const QModelIndex&)), this,
+ SLOT(clicked(const QModelIndex&)));
+ Q_ASSERT(check);
+ check = connect(&m_chat, SIGNAL(triggered()), this,
+ SLOT(showChatDialog_helper()));
+ Q_ASSERT(check);
+}
+
+bool customListView::event(QEvent* e)
+{
+ return QListView::event(e);
+}
+
+void customListView::mousePressed(const QModelIndex& index)
+{
+ if(QApplication::mouseButtons() == Qt::RightButton)
+ {
+ QString bareJid = index.data().toString();
+ QMenu menu(this);
+ menu.addAction(&m_chat);
+ menu.setDefaultAction(&m_chat);
+ menu.addAction(&m_profile);
+ menu.exec(QCursor::pos());
+ }
+}
+
+void customListView::doubleClicked(const QModelIndex& index)
+{
+ m_chat.trigger();
+}
+
+void customListView::clicked(const QModelIndex& index)
+{
+}
+
+void customListView::showChatDialog_helper()
+{
+ QString bareJid;
+ if(selectedIndexes().size() > 0)
+ {
+ bareJid = selectedIndexes().at(0).data(rosterItem::BareJid).toString();
+
+ if(!bareJid.isEmpty())
+ emit showChatDialog(bareJid);
+ }
+}
+
+void customListView::keyPressEvent(QKeyEvent* event1)
+{
+ if(event1->key() == Qt::Key_Return)
+ {
+ showChatDialog_helper();
+ }
+ QListView::keyPressEvent(event1);
+}
|
