mirror of
https://github.com/qelectrotech/qelectrotech-source-mirror.git
synced 2025-09-13 20:23:04 +02:00
Amelioration du menu contextuel de l'icone dans le systray
git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@132 bfdf4180-ca20-0410-9c96-a3a8aa849046
This commit is contained in:
parent
4ee7fbdb47
commit
c3d16fe173
BIN
ico/window_new.png
Executable file
BIN
ico/window_new.png
Executable file
Binary file not shown.
After Width: | Height: | Size: 799 B |
11
main.cpp
11
main.cpp
@ -1,17 +1,10 @@
|
|||||||
#include "qetapp.h"
|
#include "qetapp.h"
|
||||||
#include "qetdiagrameditor.h"
|
|
||||||
/**
|
/**
|
||||||
Fonction principale du programme QElectroTech
|
Fonction principale du programme QElectroTech
|
||||||
@param argc nombre de parametres
|
@param argc nombre de parametres
|
||||||
@param argv parametres
|
@param argv parametres
|
||||||
*/
|
*/
|
||||||
int main(int argc, char **argv) {
|
int main(int argc, char **argv) {
|
||||||
// Creation de l'application
|
// Creation et execution de l'application
|
||||||
QETApp app(argc, argv);
|
return(QETApp(argc, argv).exec());
|
||||||
|
|
||||||
// Creation et affichage d'un editeur de schema
|
|
||||||
(new QETDiagramEditor()) -> show();
|
|
||||||
|
|
||||||
// Execution de l'application
|
|
||||||
return(app.exec());
|
|
||||||
}
|
}
|
||||||
|
@ -58,5 +58,6 @@
|
|||||||
<file>ico/viewmag.png</file>
|
<file>ico/viewmag.png</file>
|
||||||
<file>ico/viewmag+.png</file>
|
<file>ico/viewmag+.png</file>
|
||||||
<file>ico/west.png</file>
|
<file>ico/west.png</file>
|
||||||
|
<file>ico/window_new.png</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
</RCC>
|
</RCC>
|
||||||
|
201
qetapp.cpp
201
qetapp.cpp
@ -1,43 +1,66 @@
|
|||||||
#include "qetapp.h"
|
#include "qetapp.h"
|
||||||
#include "qetdiagrameditor.h"
|
#include "qetdiagrameditor.h"
|
||||||
#include "qetelementeditor.h"
|
#include "qetelementeditor.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Constructeur
|
Constructeur
|
||||||
@param argc Nombre d'arguments passes a l'application
|
@param argc Nombre d'arguments passes a l'application
|
||||||
@param argv Arguments passes a l'application
|
@param argv Arguments passes a l'application
|
||||||
*/
|
*/
|
||||||
QETApp::QETApp(int &argc, char **argv) : QApplication(argc, argv) {
|
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);
|
|
||||||
|
|
||||||
// selectionne le langage du systeme
|
// selectionne le langage du systeme
|
||||||
QString system_language = QLocale::system().name().left(2);
|
QString system_language = QLocale::system().name().left(2);
|
||||||
setLanguage(system_language);
|
setLanguage(system_language);
|
||||||
|
|
||||||
|
// nettoyage avant de quitter l'application
|
||||||
|
connect(this, SIGNAL(aboutToQuit()), this, SLOT(cleanup()));
|
||||||
|
|
||||||
// systray de l'application
|
// systray de l'application
|
||||||
quitter_qet = new QAction(QIcon(":/ico/exit.png"), tr("&Quitter"), this);
|
|
||||||
reduce_appli = new QAction(QIcon(":/ico/masquer.png"), tr("&Masquer"), this);
|
|
||||||
restore_appli = new QAction(QIcon(":/ico/restaurer.png"), tr("&Restaurer"), this);
|
|
||||||
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(closeEveryEditor()));
|
|
||||||
connect(reduce_appli, SIGNAL(triggered()), this, SLOT(systrayReduce()));
|
|
||||||
connect(restore_appli, SIGNAL(triggered()), this, SLOT(systrayRestore()));
|
|
||||||
if (QSystemTrayIcon::isSystemTrayAvailable()) {
|
if (QSystemTrayIcon::isSystemTrayAvailable()) {
|
||||||
|
// initialisation des menus de l'icone dans le systray
|
||||||
|
menu_systray = new QMenu(tr("QElectroTech"));
|
||||||
|
|
||||||
|
quitter_qet = new QAction(QIcon(":/ico/exit.png"), tr("&Quitter"), this);
|
||||||
|
reduce_appli = new QAction(QIcon(":/ico/masquer.png"), tr("&Masquer"), this);
|
||||||
|
restore_appli = new QAction(QIcon(":/ico/restaurer.png"), tr("&Restaurer"), this);
|
||||||
|
reduce_diagrams = new QAction(QIcon(":/ico/masquer.png"), tr("&Masquer tous les \351diteurs de sch\351ma"), this);
|
||||||
|
restore_diagrams = new QAction(QIcon(":/ico/restaurer.png"), tr("&Restaurer tous les \351diteurs de sch\351ma"), this);
|
||||||
|
reduce_elements = new QAction(QIcon(":/ico/masquer.png"), tr("&Masquer tous les \351diteurs d'\351l\351ment"), this);
|
||||||
|
restore_elements = new QAction(QIcon(":/ico/restaurer.png"), tr("&Restaurer tous les \351diteurs d'\351l\351ment"), this);
|
||||||
|
new_diagram = new QAction(QIcon(":/ico/window_new.png"), tr("&Nouvel \351diteur de sch\351ma"), this);
|
||||||
|
new_element = new QAction(QIcon(":/ico/window_new.png"), tr("&Nouvel \351diteur d'\351l\351ment"), this);
|
||||||
|
|
||||||
|
quitter_qet -> setStatusTip(tr("Ferme l'application QElectroTech"));
|
||||||
|
reduce_appli -> setToolTip(tr("R\351duire QElectroTech dans le systray"));
|
||||||
|
restore_appli -> setToolTip(tr("Restaurer QElectroTech"));
|
||||||
|
|
||||||
|
connect(quitter_qet, SIGNAL(triggered()), this, SLOT(closeEveryEditor()));
|
||||||
|
connect(reduce_appli, SIGNAL(triggered()), this, SLOT(reduceEveryEditor()));
|
||||||
|
connect(restore_appli, SIGNAL(triggered()), this, SLOT(restoreEveryEditor()));
|
||||||
|
connect(reduce_diagrams, SIGNAL(triggered()), this, SLOT(reduceDiagramEditors()));
|
||||||
|
connect(restore_diagrams, SIGNAL(triggered()), this, SLOT(restoreDiagramEditors()));
|
||||||
|
connect(reduce_elements, SIGNAL(triggered()), this, SLOT(reduceElementEditors()));
|
||||||
|
connect(restore_elements, SIGNAL(triggered()), this, SLOT(restoreElementEditors()));
|
||||||
|
connect(new_diagram, SIGNAL(triggered()), this, SLOT(newDiagramEditor()));
|
||||||
|
connect(new_element, SIGNAL(triggered()), this, SLOT(newElementEditor()));
|
||||||
|
|
||||||
|
// connexion pour le signalmapper
|
||||||
|
connect(&signal_map, SIGNAL(mapped(QWidget *)), this, SLOT(invertMainWindowVisibility(QWidget *)));
|
||||||
|
|
||||||
|
// initialisation de l'icone du systray
|
||||||
qsti = new QSystemTrayIcon(QIcon(":/ico/qet.png"), this);
|
qsti = new QSystemTrayIcon(QIcon(":/ico/qet.png"), this);
|
||||||
qsti -> setToolTip(tr("QElectroTech"));
|
qsti -> setToolTip(tr("QElectroTech"));
|
||||||
connect(qsti, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(systray(QSystemTrayIcon::ActivationReason)));
|
connect(qsti, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(systray(QSystemTrayIcon::ActivationReason)));
|
||||||
connect(this, SIGNAL(aboutToQuit()), this, SLOT(cleanup()));
|
|
||||||
menu_systray = new QMenu(tr("QElectroTech"));
|
|
||||||
menu_systray -> addAction(reduce_appli);
|
|
||||||
menu_systray -> addAction(quitter_qet);
|
|
||||||
qsti -> setContextMenu(menu_systray);
|
qsti -> setContextMenu(menu_systray);
|
||||||
qsti -> show();
|
qsti -> show();
|
||||||
every_editor_reduced = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Creation et affichage d'un editeur de schema
|
||||||
|
QStringList files;
|
||||||
|
foreach(QString argument, arguments()) {
|
||||||
|
if (QFileInfo(argument).exists()) files << argument;
|
||||||
|
}
|
||||||
|
new QETDiagramEditor(files);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Destructeur
|
/// Destructeur
|
||||||
@ -74,12 +97,14 @@ void QETApp::systray(QSystemTrayIcon::ActivationReason reason) {
|
|||||||
switch(reason) {
|
switch(reason) {
|
||||||
case QSystemTrayIcon::Context:
|
case QSystemTrayIcon::Context:
|
||||||
// affichage du menu
|
// affichage du menu
|
||||||
(qsti -> contextMenu()) -> show();
|
buildSystemTrayMenu();
|
||||||
|
qsti -> contextMenu() -> show();
|
||||||
break;
|
break;
|
||||||
case QSystemTrayIcon::DoubleClick:
|
case QSystemTrayIcon::DoubleClick:
|
||||||
case QSystemTrayIcon::Trigger:
|
case QSystemTrayIcon::Trigger:
|
||||||
// reduction ou restauration de l'application
|
// reduction ou restauration de l'application
|
||||||
if (every_editor_reduced) systrayRestore(); else systrayReduce();
|
fetchWindowStats(diagramEditors(), elementEditors());
|
||||||
|
if (every_editor_reduced) restoreEveryEditor(); else reduceEveryEditor();
|
||||||
break;
|
break;
|
||||||
case QSystemTrayIcon::Unknown:
|
case QSystemTrayIcon::Unknown:
|
||||||
default: // ne rien faire
|
default: // ne rien faire
|
||||||
@ -87,30 +112,50 @@ void QETApp::systray(QSystemTrayIcon::ActivationReason reason) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/// Reduit toutes les fenetres de l'application dans le systray
|
||||||
Reduit toutes les fenetres de l'application dans le systray
|
void QETApp::reduceEveryEditor() {
|
||||||
*/
|
reduceDiagramEditors();
|
||||||
void QETApp::systrayReduce() {
|
reduceElementEditors();
|
||||||
foreach(QETDiagramEditor *e, diagramEditors()) setMainWindowVisible(e, false);
|
|
||||||
foreach(QETElementEditor *e, elementEditors()) setMainWindowVisible(e, false);
|
|
||||||
// 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;
|
every_editor_reduced = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/// Restaure toutes les fenetres de l'application dans le systray
|
||||||
Restaure toutes les fenetres de l'application dans le systray
|
void QETApp::restoreEveryEditor() {
|
||||||
*/
|
restoreDiagramEditors();
|
||||||
void QETApp::systrayRestore() {
|
restoreElementEditors();
|
||||||
foreach(QETDiagramEditor *e, diagramEditors()) setMainWindowVisible(e, true);
|
|
||||||
foreach(QETElementEditor *e, elementEditors()) setMainWindowVisible(e, true);
|
|
||||||
// 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;
|
every_editor_reduced = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Reduit tous les editeurs de schemas dans le systray
|
||||||
|
void QETApp::reduceDiagramEditors() {
|
||||||
|
foreach(QETDiagramEditor *e, diagramEditors()) setMainWindowVisible(e, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Restaure tous les editeurs de schemas dans le systray
|
||||||
|
void QETApp::restoreDiagramEditors() {
|
||||||
|
foreach(QETDiagramEditor *e, diagramEditors()) setMainWindowVisible(e, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Reduit tous les editeurs d'element dans le systray
|
||||||
|
void QETApp::reduceElementEditors() {
|
||||||
|
foreach(QETElementEditor *e, elementEditors()) setMainWindowVisible(e, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Restaure tous les editeurs d'element dans le systray
|
||||||
|
void QETApp::restoreElementEditors() {
|
||||||
|
foreach(QETElementEditor *e, elementEditors()) setMainWindowVisible(e, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// lance un nouvel editeur de schemas
|
||||||
|
void QETApp::newDiagramEditor() {
|
||||||
|
new QETDiagramEditor();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// lance un nouvel editeur d'element
|
||||||
|
void QETApp::newElementEditor() {
|
||||||
|
new QETElementEditor();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Renvoie le dossier des elements communs, c-a-d le chemin du dossier dans
|
Renvoie le dossier des elements communs, c-a-d le chemin du dossier dans
|
||||||
lequel QET doit chercher les definitions XML des elements de la collection QET.
|
lequel QET doit chercher les definitions XML des elements de la collection QET.
|
||||||
@ -196,7 +241,7 @@ QString QETApp::languagesPath() {
|
|||||||
*/
|
*/
|
||||||
void QETApp::closeEveryEditor() {
|
void QETApp::closeEveryEditor() {
|
||||||
// s'assure que toutes les fenetres soient visibles avant de quitter
|
// s'assure que toutes les fenetres soient visibles avant de quitter
|
||||||
systrayRestore();
|
restoreEveryEditor();
|
||||||
foreach(QETDiagramEditor *e, diagramEditors()) e -> close();
|
foreach(QETDiagramEditor *e, diagramEditors()) e -> close();
|
||||||
foreach(QETElementEditor *e, elementEditors()) e -> close();
|
foreach(QETElementEditor *e, elementEditors()) e -> close();
|
||||||
}
|
}
|
||||||
@ -249,11 +294,22 @@ void QETApp::setMainWindowVisible(QMainWindow *window, bool visible) {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
window -> show();
|
window -> show();
|
||||||
|
#ifndef Q_OS_WIN32
|
||||||
window -> restoreGeometry(window_geometries[window]);
|
window -> restoreGeometry(window_geometries[window]);
|
||||||
|
#endif
|
||||||
window -> restoreState(window_states[window]);
|
window -> restoreState(window_states[window]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
Affiche une fenetre (editeurs de schemas / editeurs d élements) si
|
||||||
|
celle-ci est cachee ou la cache si elle est affichee.
|
||||||
|
@param window fenetre a afficher / cacher
|
||||||
|
*/
|
||||||
|
void QETApp::invertMainWindowVisibility(QWidget *window) {
|
||||||
|
if (QMainWindow *w = qobject_cast<QMainWindow *>(window)) setMainWindowVisible(w, !w -> isVisible());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@param window fenetre dont il faut trouver les barres d'outils et dock flottants
|
@param window fenetre dont il faut trouver les barres d'outils et dock flottants
|
||||||
@return les barres d'outils et dock flottants de la fenetre
|
@return les barres d'outils et dock flottants de la fenetre
|
||||||
@ -268,3 +324,70 @@ QList<QWidget *> QETApp::floatingToolbarsAndDocksForMainWindow(QMainWindow *wind
|
|||||||
}
|
}
|
||||||
return(widgets);
|
return(widgets);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// construit le menu de l'icone dans le systray
|
||||||
|
void QETApp::buildSystemTrayMenu() {
|
||||||
|
menu_systray -> clear();
|
||||||
|
|
||||||
|
// recupere les editeurs
|
||||||
|
QList<QETDiagramEditor *> diagrams = diagramEditors();
|
||||||
|
QList<QETElementEditor *> elements = elementEditors();
|
||||||
|
fetchWindowStats(diagrams, elements);
|
||||||
|
|
||||||
|
// ajoute le bouton reduire / restaurer au menu
|
||||||
|
menu_systray -> addAction(every_editor_reduced ? restore_appli : reduce_appli);
|
||||||
|
|
||||||
|
// ajoute les editeurs de schemas dans un sous-menu
|
||||||
|
QMenu *diagrams_submenu = menu_systray -> addMenu(tr("\311diteurs de sch\351mas"));
|
||||||
|
diagrams_submenu -> addAction(reduce_diagrams);
|
||||||
|
diagrams_submenu -> addAction(restore_diagrams);
|
||||||
|
diagrams_submenu -> addAction(new_diagram);
|
||||||
|
reduce_diagrams -> setEnabled(!diagrams.isEmpty() && !every_diagram_reduced);
|
||||||
|
restore_diagrams -> setEnabled(!diagrams.isEmpty() && !every_diagram_visible);
|
||||||
|
diagrams_submenu -> addSeparator();
|
||||||
|
foreach(QETDiagramEditor *diagram, diagrams) {
|
||||||
|
QAction *current_diagram_menu = diagrams_submenu -> addAction(diagram -> windowTitle());
|
||||||
|
current_diagram_menu -> setCheckable(true);
|
||||||
|
current_diagram_menu -> setChecked(diagram -> isVisible());
|
||||||
|
connect(current_diagram_menu, SIGNAL(triggered()), &signal_map, SLOT(map()));
|
||||||
|
signal_map.setMapping(current_diagram_menu, diagram);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ajoute les editeurs d'elements au menu
|
||||||
|
QMenu *elements_submenu = menu_systray -> addMenu(tr("\311diteurs d'\351l\351ment"));
|
||||||
|
elements_submenu -> addAction(reduce_elements);
|
||||||
|
elements_submenu -> addAction(restore_elements);
|
||||||
|
elements_submenu -> addAction(new_element);
|
||||||
|
reduce_elements -> setEnabled(!elements.isEmpty() && !every_element_reduced);
|
||||||
|
restore_elements -> setEnabled(!elements.isEmpty() && !every_element_visible);
|
||||||
|
elements_submenu -> addSeparator();
|
||||||
|
foreach(QETElementEditor *element, elements) {
|
||||||
|
QAction *current_element_menu = elements_submenu -> addAction(element -> windowTitle());
|
||||||
|
current_element_menu -> setCheckable(true);
|
||||||
|
current_element_menu -> setChecked(element -> isVisible());
|
||||||
|
connect(current_element_menu, SIGNAL(triggered()), &signal_map, SLOT(map()));
|
||||||
|
signal_map.setMapping(current_element_menu, element);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ajoute le bouton quitter au menu
|
||||||
|
menu_systray -> addSeparator();
|
||||||
|
menu_systray -> addAction(quitter_qet);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Met a jour les booleens concernant l'etat des fenetres
|
||||||
|
void QETApp::fetchWindowStats(const QList<QETDiagramEditor *> &diagrams, const QList<QETElementEditor *> &elements) {
|
||||||
|
// compte le nombre de schemas visibles
|
||||||
|
int visible_diagrams = 0;
|
||||||
|
foreach(QMainWindow *w, diagrams) if (w -> isVisible()) ++ visible_diagrams;
|
||||||
|
every_diagram_reduced = !visible_diagrams;
|
||||||
|
every_diagram_visible = visible_diagrams == diagrams.count();
|
||||||
|
|
||||||
|
// compte le nombre de schemas visibles
|
||||||
|
int visible_elements = 0;
|
||||||
|
foreach(QMainWindow *w, elements) if (w -> isVisible()) ++ visible_elements;
|
||||||
|
every_element_reduced = !visible_elements;
|
||||||
|
every_element_visible = visible_elements == elements.count();
|
||||||
|
|
||||||
|
// determine si tous les elements sont reduits
|
||||||
|
every_editor_reduced = every_element_reduced && every_diagram_reduced;
|
||||||
|
}
|
||||||
|
34
qetapp.h
34
qetapp.h
@ -35,25 +35,38 @@ class QETApp : public QApplication {
|
|||||||
QTranslator qtTranslator;
|
QTranslator qtTranslator;
|
||||||
QTranslator qetTranslator;
|
QTranslator qetTranslator;
|
||||||
QSystemTrayIcon *qsti;
|
QSystemTrayIcon *qsti;
|
||||||
/// Elements de menus pour l'icone du systray
|
|
||||||
QMenu *menu_systray;
|
QMenu *menu_systray;
|
||||||
QAction *systray_masquer;
|
QAction *quitter_qet;
|
||||||
QAction *config_fullscreen;
|
|
||||||
/// Geometrie de la fenetre principale
|
|
||||||
QByteArray wg;
|
|
||||||
QAction *reduce_appli;
|
QAction *reduce_appli;
|
||||||
QAction *restore_appli;
|
QAction *restore_appli;
|
||||||
QAction *menu_systray_masquer_restaurer;
|
QAction *reduce_diagrams;
|
||||||
QAction *quitter_qet;
|
QAction *restore_diagrams;
|
||||||
|
QAction *reduce_elements;
|
||||||
|
QAction *restore_elements;
|
||||||
|
QAction *new_diagram;
|
||||||
|
QAction *new_element;
|
||||||
QHash<QMainWindow *, QByteArray> window_geometries;
|
QHash<QMainWindow *, QByteArray> window_geometries;
|
||||||
QHash<QMainWindow *, QByteArray> window_states;
|
QHash<QMainWindow *, QByteArray> window_states;
|
||||||
bool every_editor_reduced;
|
bool every_editor_reduced;
|
||||||
|
bool every_diagram_reduced;
|
||||||
|
bool every_diagram_visible;
|
||||||
|
bool every_element_reduced;
|
||||||
|
bool every_element_visible;
|
||||||
|
QSignalMapper signal_map;
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void systray(QSystemTrayIcon::ActivationReason);
|
void systray(QSystemTrayIcon::ActivationReason);
|
||||||
void systrayReduce();
|
void reduceEveryEditor();
|
||||||
void systrayRestore();
|
void restoreEveryEditor();
|
||||||
|
void reduceDiagramEditors();
|
||||||
|
void restoreDiagramEditors();
|
||||||
|
void reduceElementEditors();
|
||||||
|
void restoreElementEditors();
|
||||||
|
void newDiagramEditor();
|
||||||
|
void newElementEditor();
|
||||||
void closeEveryEditor();
|
void closeEveryEditor();
|
||||||
|
void setMainWindowVisible(QMainWindow *, bool);
|
||||||
|
void invertMainWindowVisibility(QWidget *);
|
||||||
|
|
||||||
// methodes privees
|
// methodes privees
|
||||||
private slots:
|
private slots:
|
||||||
@ -63,6 +76,7 @@ class QETApp : public QApplication {
|
|||||||
QList<QETDiagramEditor *> diagramEditors() const;
|
QList<QETDiagramEditor *> diagramEditors() const;
|
||||||
QList<QETElementEditor *> elementEditors() const;
|
QList<QETElementEditor *> elementEditors() const;
|
||||||
QList<QWidget *> floatingToolbarsAndDocksForMainWindow(QMainWindow *) const;
|
QList<QWidget *> floatingToolbarsAndDocksForMainWindow(QMainWindow *) const;
|
||||||
void setMainWindowVisible(QMainWindow *, bool);
|
void buildSystemTrayMenu();
|
||||||
|
void fetchWindowStats(const QList<QETDiagramEditor *> &diagrams, const QList<QETElementEditor *> &elements);
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
@ -6,9 +6,10 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
constructeur
|
constructeur
|
||||||
|
@param files Liste de fichiers a ouvrir
|
||||||
@param parent le widget parent de la fenetre principale
|
@param parent le widget parent de la fenetre principale
|
||||||
*/
|
*/
|
||||||
QETDiagramEditor::QETDiagramEditor(QWidget *parent) : QMainWindow(parent) {
|
QETDiagramEditor::QETDiagramEditor(const QStringList &files, QWidget *parent) : QMainWindow(parent) {
|
||||||
|
|
||||||
// cree les dossiers de configuration si necessaire
|
// cree les dossiers de configuration si necessaire
|
||||||
QDir config_dir(QETApp::configDir());
|
QDir config_dir(QETApp::configDir());
|
||||||
@ -23,15 +24,6 @@ QETDiagramEditor::QETDiagramEditor(QWidget *parent) : QMainWindow(parent) {
|
|||||||
// mise en place du signalmapper
|
// mise en place du signalmapper
|
||||||
connect(&windowMapper, SIGNAL(mapped(QWidget *)), &workspace, SLOT(setActiveWindow(QWidget *)));
|
connect(&windowMapper, SIGNAL(mapped(QWidget *)), &workspace, SLOT(setActiveWindow(QWidget *)));
|
||||||
|
|
||||||
// recupere les arguments passes au programme
|
|
||||||
QStringList args = QCoreApplication::arguments();
|
|
||||||
|
|
||||||
// recupere les chemins de fichiers parmi les arguments
|
|
||||||
QStringList files;
|
|
||||||
for (int i = 1 ; i < args.size() ; ++ i) {
|
|
||||||
if (QFileInfo(args.at(i)).exists()) files << args.at(i);
|
|
||||||
}
|
|
||||||
|
|
||||||
// si des chemins de fichiers valides sont passes en arguments
|
// si des chemins de fichiers valides sont passes en arguments
|
||||||
QList<DiagramView *> diagram_views;
|
QList<DiagramView *> diagram_views;
|
||||||
if (files.size()) {
|
if (files.size()) {
|
||||||
@ -84,6 +76,9 @@ QETDiagramEditor::QETDiagramEditor(QWidget *parent) : QMainWindow(parent) {
|
|||||||
// connexions signaux / slots pour une interface sensee
|
// connexions signaux / slots pour une interface sensee
|
||||||
connect(&workspace, SIGNAL(windowActivated(QWidget *)), this, SLOT(slot_updateActions()));
|
connect(&workspace, SIGNAL(windowActivated(QWidget *)), this, SLOT(slot_updateActions()));
|
||||||
connect(QApplication::clipboard(), SIGNAL(dataChanged()), this, SLOT(slot_updateActions()));
|
connect(QApplication::clipboard(), SIGNAL(dataChanged()), this, SLOT(slot_updateActions()));
|
||||||
|
|
||||||
|
// affichage
|
||||||
|
show();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -346,9 +341,9 @@ void QETDiagramEditor::menus() {
|
|||||||
menu_fichier -> addAction(enr_fichier_sous);
|
menu_fichier -> addAction(enr_fichier_sous);
|
||||||
menu_fichier -> addAction(fermer_fichier);
|
menu_fichier -> addAction(fermer_fichier);
|
||||||
menu_fichier -> addSeparator();
|
menu_fichier -> addSeparator();
|
||||||
menu_fichier -> addAction(importer);
|
//menu_fichier -> addAction(importer);
|
||||||
menu_fichier -> addAction(exporter);
|
menu_fichier -> addAction(exporter);
|
||||||
menu_fichier -> addSeparator();
|
//menu_fichier -> addSeparator();
|
||||||
menu_fichier -> addAction(imprimer);
|
menu_fichier -> addAction(imprimer);
|
||||||
menu_fichier -> addSeparator();
|
menu_fichier -> addSeparator();
|
||||||
menu_fichier -> addAction(quitter_qet);
|
menu_fichier -> addAction(quitter_qet);
|
||||||
|
@ -15,7 +15,7 @@ class QETDiagramEditor : public QMainWindow {
|
|||||||
|
|
||||||
// constructeurs, destructeur
|
// constructeurs, destructeur
|
||||||
public:
|
public:
|
||||||
QETDiagramEditor(QWidget * = 0);
|
QETDiagramEditor(const QStringList & = QStringList(), QWidget * = 0);
|
||||||
virtual ~QETDiagramEditor();
|
virtual ~QETDiagramEditor();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user