diff --git a/sflphone-client-kde/data/sflphone-client-kdeui.rc b/sflphone-client-kde/data/sflphone-client-kdeui.rc index 291817af5d2f8d8e1bae50704b8de5c326653f0e..bbba5e540290ace7ada71a9813b36262abd06c19 100644 --- a/sflphone-client-kde/data/sflphone-client-kdeui.rc +++ b/sflphone-client-kde/data/sflphone-client-kdeui.rc @@ -20,6 +20,8 @@ <Separator /> <Action name="action_mailBox" /> <Separator /> + <Action name="action_close" /> + <Separator /> <Action name="action_quit" /> </Menu> <Menu name="Settings" > diff --git a/sflphone-client-kde/src/SFLPhone.cpp b/sflphone-client-kde/src/SFLPhone.cpp index 9e6955837a3abb364887b2e2ae020af96a2c20ae..7a5be519f276ed4533b3160b67b7826177218891 100644 --- a/sflphone-client-kde/src/SFLPhone.cpp +++ b/sflphone-client-kde/src/SFLPhone.cpp @@ -64,11 +64,12 @@ SFLPhone::SFLPhone(QWidget *parent) { QDir dir; dir.cdUp(); + dir.cd("data"); rcFilePath = dir.filePath("sflphone-client-kdeui.rc"); } qDebug() << "rcFilePath = " << rcFilePath ; createGUI(rcFilePath); - + QMetaObject::connectSlotsByName(this); } @@ -89,7 +90,9 @@ void SFLPhone::setupActions() actionCollection()->addAction("action_history", view->action_history); actionCollection()->addAction("action_addressBook", view->action_addressBook); actionCollection()->addAction("action_mailBox", view->action_mailBox); - KAction * action_quit = KStandardAction::quit(qApp, SLOT(closeAllWindows()), 0); + KAction * action_close = KStandardAction::close(this, SLOT(close()), 0); + actionCollection()->addAction("action_close", action_close); + KAction * action_quit = KStandardAction::quit(this, SLOT(quitButton()), 0); actionCollection()->addAction("action_quit", action_quit); @@ -131,21 +134,27 @@ void SFLPhone::setupActions() } - bool SFLPhone::queryClose() +{ + qDebug() << "queryClose"; + hide(); + return false; +} + +void SFLPhone::quitButton() { InstanceInterface & instance = InstanceInterfaceSingleton::getInstance(); - qDebug() << "queryClose : " << view->listWidget_callList->count() << " calls open."; + qDebug() << "quitButton : " << view->listWidget_callList->count() << " calls open."; if(view->listWidget_callList->count() > 0 && instance.getRegistrationCount() <= 1) { qDebug() << "Attempting to quit when still having some calls open."; view->getErrorWindow()->showMessage(tr2i18n("You still have some calls open. Please close all calls before quitting.", 0)); - return false; } instance.Unregister(getpid()); - return true; + qApp->quit(); } + void SFLPhone::putForeground() { activateWindow(); diff --git a/sflphone-client-kde/src/SFLPhone.h b/sflphone-client-kde/src/SFLPhone.h index 7b8edd3c21d0e3aa5cc9400c07e4454f4d682f24..94213bdeeabac1434b9b7b4f3a945dcda5ab9f67 100644 --- a/sflphone-client-kde/src/SFLPhone.h +++ b/sflphone-client-kde/src/SFLPhone.h @@ -56,6 +56,7 @@ private: protected: virtual bool queryClose(); virtual void changeEvent(QEvent * event); + public: SFLPhone(QWidget *parent = 0); @@ -70,6 +71,7 @@ private slots: void on_trayIcon_activated(QSystemTrayIcon::ActivationReason reason); void on_trayIcon_messageClicked(); + void quitButton(); };