summaryrefslogtreecommitdiff
path: root/muse2/muse/cobject.cpp
diff options
context:
space:
mode:
authorFlorian Jung <flo@windfisch.org>2011-08-13 15:15:27 +0000
committerFlorian Jung <flo@windfisch.org>2011-08-13 15:15:27 +0000
commit238b1b82799a26b73384bb9d712656c39a822a99 (patch)
treeaa0e89f1de0eef045b8760171861df69576d7c81 /muse2/muse/cobject.cpp
parent55d5f2d38bfe7c9673a315bb5597c20675bfde99 (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.cpp82
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);
+}