From da88f5f0bb5e73bc69bf7ed3962691622b1ae4f9 Mon Sep 17 00:00:00 2001 From: Manjeet Dahiya Date: Wed, 8 Sep 2010 09:23:18 +0000 Subject: add Gui Client example --- examples/GuiClient/customListView.cpp | 69 +++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 examples/GuiClient/customListView.cpp (limited to 'examples/GuiClient/customListView.cpp') 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 +#include +#include + +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); +} -- cgit v1.2.3