From 5136e092714192175097fcf8091bbabe6cd16d0f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Quentin?=
 <jquentin@jquentin-laptop-kub2.(none)>
Date: Fri, 29 May 2009 17:16:46 -0400
Subject: [PATCH] [#1548] add close button that hides windowand just hide on
 clicking the cross

---
 .../data/sflphone-client-kdeui.rc             |  2 ++
 sflphone-client-kde/src/SFLPhone.cpp          | 21 +++++++++++++------
 sflphone-client-kde/src/SFLPhone.h            |  2 ++
 3 files changed, 19 insertions(+), 6 deletions(-)

diff --git a/sflphone-client-kde/data/sflphone-client-kdeui.rc b/sflphone-client-kde/data/sflphone-client-kdeui.rc
index 291817af5d..bbba5e5402 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 9e6955837a..7a5be519f2 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 7b8edd3c21..94213bdeea 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();
 
 };
 
-- 
GitLab