aboutsummaryrefslogtreecommitdiff
path: root/examples/GuiClient/mainDialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/GuiClient/mainDialog.cpp')
-rw-r--r--examples/GuiClient/mainDialog.cpp21
1 files changed, 20 insertions, 1 deletions
diff --git a/examples/GuiClient/mainDialog.cpp b/examples/GuiClient/mainDialog.cpp
index c4e2f920..0748422d 100644
--- a/examples/GuiClient/mainDialog.cpp
+++ b/examples/GuiClient/mainDialog.cpp
@@ -46,9 +46,12 @@
mainDialog::mainDialog(QWidget *parent): QDialog(parent, Qt::Window),
ui(new Ui::mainDialogClass), m_rosterItemModel(this),
m_rosterItemSortFilterModel(this), m_vCardManager(&m_xmppClient),
- m_capabilitiesCollection(&m_xmppClient), m_accountsCache(this)
+ m_capabilitiesCollection(&m_xmppClient), m_accountsCache(this),
+ m_trayIcon(this), m_trayIconMenu(this), m_quitAction("Quit", this)
{
ui->setupUi(this);
+ createTrayIconAndMenu();
+
ui->pushButton_cancel->setDisabled(true);
ui->label_throbber->setMovie(new QMovie(":/icons/resource/ajax-loader.gif"));
ui->label_throbber->movie()->start();
@@ -557,3 +560,19 @@ void mainDialog::addAccountToCache()
passwd = "";
m_accountsCache.addAccount(bareJid, passwd);
}
+
+void mainDialog::action_quit()
+{
+ m_xmppClient.disconnectFromServer();
+ close();
+}
+
+void mainDialog::createTrayIconAndMenu()
+{
+ bool check = connect(&m_quitAction, SIGNAL(triggered()), SLOT(action_quit()));
+ Q_ASSERT(check);
+
+ m_trayIconMenu.addAction(&m_quitAction);
+ m_trayIcon.setContextMenu(&m_trayIconMenu);
+ m_trayIcon.show();
+}