diff options
author | Florian Jung <flo@windfisch.org> | 2011-08-13 15:15:27 +0000 |
---|---|---|
committer | Florian Jung <flo@windfisch.org> | 2011-08-13 15:15:27 +0000 |
commit | 238b1b82799a26b73384bb9d712656c39a822a99 (patch) | |
tree | aa0e89f1de0eef045b8760171861df69576d7c81 /muse2/muse/cobject.cpp | |
parent | 55d5f2d38bfe7c9673a315bb5597c20675bfde99 (diff) |
main work for sharing menus and toolbars done
this is only a "safety commit", it doesn't really work yet.
but it also doesn't segfault :)
Diffstat (limited to 'muse2/muse/cobject.cpp')
-rw-r--r-- | muse2/muse/cobject.cpp | 82 |
1 files changed, 67 insertions, 15 deletions
diff --git a/muse2/muse/cobject.cpp b/muse2/muse/cobject.cpp index d486abf0..c8ab1b08 100644 --- a/muse2/muse/cobject.cpp +++ b/muse2/muse/cobject.cpp @@ -11,6 +11,25 @@ #include "gui.h" #include <QMdiSubWindow> +#include <QToolBar> +#include <QMenuBar> + +using std::list; + +TopWin::TopWin(QWidget* parent, const char* name, Qt::WindowFlags f) + : QMainWindow(parent, f) + { + setObjectName(QString(name)); + //setAttribute(Qt::WA_DeleteOnClose); + // Allow multiple rows. Tim. + //setDockNestingEnabled(true); + setIconSize(ICON_SIZE); + + mdisubwin=NULL; + _sharesToolsAndMenu=false; + } + + //--------------------------------------------------------- // readStatus @@ -65,21 +84,8 @@ void TopWin::writeStatus(int level, Xml& xml) const xml.tag(level, "/topwin"); } -TopWin::TopWin(QWidget* parent, const char* name, - Qt::WindowFlags f) : QMainWindow(parent, f) - { - setObjectName(QString(name)); - //setAttribute(Qt::WA_DeleteOnClose); - // Allow multiple rows. Tim. - //setDockNestingEnabled(true); - setIconSize(ICON_SIZE); - - mdisubwin=NULL; - } - void TopWin::hide() { - printf("HIDE SLOT: mdisubwin is %p\n",mdisubwin); //FINDMICH if (mdisubwin) mdisubwin->close(); @@ -88,7 +94,6 @@ void TopWin::hide() void TopWin::show() { - printf("SHOW SLOT: mdisubwin is %p\n",mdisubwin); //FINDMICH if (mdisubwin) mdisubwin->show(); @@ -97,7 +102,6 @@ void TopWin::show() void TopWin::setVisible(bool param) { - printf("SETVISIBLE SLOT (%i): mdisubwin is %p\n",(int)param, mdisubwin); //FINDMICH if (mdisubwin) { if (param) @@ -133,3 +137,51 @@ bool TopWin::isMdiWin() { return (mdisubwin!=NULL); } + +void TopWin::insertToolBar(QToolBar*, QToolBar*) { printf("ERROR: THIS SHOULD NEVER HAPPEN: TopWin::insertToolBar called, but it's not implemented! ignoring it\n"); } +void TopWin::insertToolBarBreak(QToolBar*) { printf("ERROR: THIS SHOULD NEVER HAPPEN: TopWin::insertToolBarBreak called, but it's not implemented! ignoring it\n"); } +void TopWin::removeToolBar(QToolBar*) { printf("ERROR: THIS SHOULD NEVER HAPPEN: TopWin::removeToolBar called, but it's not implemented! ignoring it\n"); } +void TopWin::removeToolBarBreak(QToolBar*) { printf("ERROR: THIS SHOULD NEVER HAPPEN: TopWin::removeToolBarBreak called, but it's not implemented! ignoring it\n"); } +void TopWin::addToolBar(Qt::ToolBarArea, QToolBar* tb) { printf("ERROR: THIS SHOULD NEVER HAPPEN: TopWin::addToolBar(Qt::ToolBarArea, QToolBar*) called, but it's not implemented!\nusing addToolBar(QToolBar*) instead\n"); addToolBar(tb);} + +void TopWin::addToolBar(QToolBar* toolbar) +{ + _toolbars.push_back(toolbar); + + if (!_sharesToolsAndMenu) + QMainWindow::addToolBar(toolbar); +} + +QToolBar* TopWin::addToolBar(const QString& title) +{ + QToolBar* toolbar = new QToolBar(title, this); + addToolBar(toolbar); + return toolbar; +} + + +void TopWin::shareToolsAndMenu(bool val) +{ + _sharesToolsAndMenu = val; + + if (!val) + { + for (list<QToolBar*>::iterator it=_toolbars.begin(); it!=_toolbars.end(); it++) + if (*it != NULL) + QMainWindow::addToolBar(*it); + else + QMainWindow::addToolBarBreak(); + + menuBar()->show(); + } + else + { + for (list<QToolBar*>::iterator it=_toolbars.begin(); it!=_toolbars.end(); it++) + if (*it != NULL) + QMainWindow::removeToolBar(*it); // this does NOT delete the toolbar, which is good + + menuBar()->hide(); + } + + emit toolsAndMenuSharingChanged(val); +} |