Le systray reduit ou restaure desormais toutes les fenetres

git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@130 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
xavierqet
2007-09-21 18:07:05 +00:00
parent 438c7ae69e
commit 2ad6c27998
7 changed files with 37 additions and 114 deletions

View File

@@ -9,7 +9,7 @@
QETApp::QETApp(int &argc, char **argv) : QApplication(argc, argv) {
// QET se loge dans le systray et ne doit donc pas quitter des que toutes
// les fenetres sont cachees
setQuitOnLastWindowClosed(false);
//setQuitOnLastWindowClosed(false);
// selectionne le langage du systeme
QString system_language = QLocale::system().name().left(2);
@@ -22,9 +22,9 @@ QETApp::QETApp(int &argc, char **argv) : QApplication(argc, argv) {
quitter_qet -> setStatusTip(tr("Ferme l'application QElectroTech"));
reduce_appli -> setToolTip(tr("Reduire QElectroTech dans le systray"));
restore_appli -> setToolTip(tr("Restaurer QElectroTech"));
connect(quitter_qet, SIGNAL(triggered()), this, SLOT(quit()) );
connect(reduce_appli, SIGNAL(triggered()), this, SLOT(systrayReduce()) );
connect(restore_appli, SIGNAL(triggered()), this, SLOT(systrayRestore()) );
connect(quitter_qet, SIGNAL(triggered()), this, SLOT(closeEveryEditor()));
connect(reduce_appli, SIGNAL(triggered()), this, SLOT(systrayReduce()));
connect(restore_appli, SIGNAL(triggered()), this, SLOT(systrayRestore()));
if (QSystemTrayIcon::isSystemTrayAvailable()) {
qsti = new QSystemTrayIcon(QIcon(":/ico/qet.png"), this);
qsti -> setToolTip(tr("QElectroTech"));
@@ -35,6 +35,7 @@ QETApp::QETApp(int &argc, char **argv) : QApplication(argc, argv) {
menu_systray -> addAction(quitter_qet);
qsti -> setContextMenu(menu_systray);
qsti -> show();
every_editor_reduced = false;
}
}
@@ -78,7 +79,7 @@ void QETApp::systray(QSystemTrayIcon::ActivationReason reason) {
case QSystemTrayIcon::DoubleClick:
case QSystemTrayIcon::Trigger:
// reduction ou restauration de l'application
//if (isVisible()) systrayReduce(); else systrayRestore();
if (every_editor_reduced) systrayRestore(); else systrayReduce();
break;
case QSystemTrayIcon::Unknown:
default: // ne rien faire
@@ -95,6 +96,7 @@ void QETApp::systrayReduce() {
// on ajoute le menu "Restaurer" et on enleve le menu "Masquer"
menu_systray -> insertAction(reduce_appli, restore_appli);
menu_systray -> removeAction(reduce_appli);
every_editor_reduced = true;
}
/**
@@ -106,6 +108,7 @@ void QETApp::systrayRestore() {
// on ajoute le menu "Masquer" et on enleve le menu "Restaurer"
menu_systray -> insertAction(restore_appli, reduce_appli);
menu_systray -> removeAction(restore_appli);
every_editor_reduced = false;
}
/**
@@ -188,6 +191,16 @@ QString QETApp::languagesPath() {
return(QDir::current().path() + "/lang/");
}
/**
Ferme tous les editeurs
*/
void QETApp::closeEveryEditor() {
// s'assure que toutes les fenetres soient visibles avant de quitter
systrayRestore();
foreach(QETDiagramEditor *e, diagramEditors()) e -> close();
foreach(QETElementEditor *e, elementEditors()) e -> close();
}
/**
Nettoie certaines choses avant que l'application ne quitte
*/