From 4ee7fbdb4792ee9afe013d5b1a81eb7fcb8c1a00 Mon Sep 17 00:00:00 2001 From: xavierqet Date: Fri, 21 Sep 2007 18:59:43 +0000 Subject: [PATCH] La reduction dans le systray tient desormais compte des barres d'outils et docks flottants. Ajout d'un menu permettant de choisir les barres d'outils et docks affiches dans l'editeur d'element. git-svn-id: svn+ssh://svn.tuxfamily.org/svnroot/qet/qet/trunk@131 bfdf4180-ca20-0410-9c96-a3a8aa849046 --- editor/qetelementeditor.cpp | 9 ++++++++- elementspanel.cpp | 1 - qetapp.cpp | 20 +++++++++++++++++++- qetapp.h | 1 + 4 files changed, 28 insertions(+), 3 deletions(-) diff --git a/editor/qetelementeditor.cpp b/editor/qetelementeditor.cpp index 40a96bae5..5429ed5f2 100644 --- a/editor/qetelementeditor.cpp +++ b/editor/qetelementeditor.cpp @@ -169,10 +169,17 @@ void QETElementEditor::setupMenus() { edit_menu -> addAction(edit_size_hs); edit_menu -> addAction(edit_ori); + // menu Affichage > Afficher + QMenu *display_toolbars = createPopupMenu(); + display_toolbars -> setTearOffEnabled(true); + display_toolbars -> setTitle(tr("Afficher")); + display_menu -> addMenu(display_toolbars); + menuBar() -> addMenu(file_menu); menuBar() -> addMenu(edit_menu); - /* menuBar() -> addMenu(display_menu); + + /* menuBar() -> addMenu(tools_menu); menuBar() -> addMenu(help_menu); */ diff --git a/elementspanel.cpp b/elementspanel.cpp index 5706a11b8..dd614dfa5 100644 --- a/elementspanel.cpp +++ b/elementspanel.cpp @@ -78,7 +78,6 @@ void ElementsPanel::dropEvent(QDropEvent */*e*/) { /** Gere le debut des drag'n drop @param supportedActions Les actions supportees - @todo virer les lignes type «if ("tel appareil") construire TelAppareil» => trouver un moyen d'automatiser ca */ void ElementsPanel::startDrag(Qt::DropActions /*supportedActions*/) { // recupere le nom du fichier decrivant l'element diff --git a/qetapp.cpp b/qetapp.cpp index 8937a629f..3142a1b68 100644 --- a/qetapp.cpp +++ b/qetapp.cpp @@ -243,10 +243,28 @@ void QETApp::setMainWindowVisible(QMainWindow *window, bool visible) { window_geometries.insert(window, window -> saveGeometry()); window_states.insert(window, window -> saveState()); window -> hide(); - /// @todo cacher aussi les toolbars et les docks ? + // cache aussi les toolbars et les docks + foreach (QWidget *qw, floatingToolbarsAndDocksForMainWindow(window)) { + qw -> hide(); + } } else { window -> show(); window -> restoreGeometry(window_geometries[window]); window -> restoreState(window_states[window]); } } + +/** + @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 +*/ +QList QETApp::floatingToolbarsAndDocksForMainWindow(QMainWindow *window) const { + QList widgets; + foreach(QWidget *qw, topLevelWidgets()) { + if (!qw -> isWindow()) continue; + if (qobject_cast(qw) || qobject_cast(qw)) { + if (qw -> parent() == window) widgets << qw; + } + } + return(widgets); +} diff --git a/qetapp.h b/qetapp.h index 9f8c5d6cb..559d73692 100644 --- a/qetapp.h +++ b/qetapp.h @@ -62,6 +62,7 @@ class QETApp : public QApplication { private: QList diagramEditors() const; QList elementEditors() const; + QList floatingToolbarsAndDocksForMainWindow(QMainWindow *) const; void setMainWindowVisible(QMainWindow *, bool); }; #endif