summaryrefslogtreecommitdiff
path: root/muse2/muse/cobject.cpp
diff options
context:
space:
mode:
authorFlorian Jung <flo@windfisch.org>2011-08-18 19:37:54 +0000
committerFlorian Jung <flo@windfisch.org>2011-08-18 19:37:54 +0000
commitd77502e453b6994a1035b77f1849f620d7c75027 (patch)
tree7d2ca32632c165808b2e154f9bd5a3914c563153 /muse2/muse/cobject.cpp
parent0002e57359fb002a70cc9559308619ff611718c9 (diff)
added GUI for MDI settings
fixed loading of arranger settings
Diffstat (limited to 'muse2/muse/cobject.cpp')
-rw-r--r--muse2/muse/cobject.cpp78
1 files changed, 60 insertions, 18 deletions
diff --git a/muse2/muse/cobject.cpp b/muse2/muse/cobject.cpp
index 5e007fe3..398f8be7 100644
--- a/muse2/muse/cobject.cpp
+++ b/muse2/muse/cobject.cpp
@@ -32,23 +32,7 @@ TopWin::TopWin(ToplevelType t, QWidget* parent, const char* name, Qt::WindowFlag
: QMainWindow(parent, f)
{
if (initInited==false)
- {
- for (int i=0;i<TOPLEVELTYPE_LAST_ENTRY;i++)
- {
- _widthInit[i]=800;
- _heightInit[i]=600;
- _sharesWhenFree[i]=false;
- _sharesWhenSubwin[i]=true;
- _defaultSubwin[i]=false;
- }
-
- _defaultSubwin[ARRANGER]=true;
-
- _defaultSubwin[SCORE]=true; //FINDMICH
- _sharesWhenFree[SCORE]=true;
-
- initInited=true;
- }
+ initConfiguration();
initalizing=true;
@@ -80,7 +64,6 @@ TopWin::TopWin(ToplevelType t, QWidget* parent, const char* name, Qt::WindowFlag
}
-
//---------------------------------------------------------
// readStatus
//---------------------------------------------------------
@@ -303,12 +286,37 @@ void TopWin::storeInitialState()
_toolbarNonsharedInit[_type] = saveState();
}
+
+
+//initConfiguration() restores default "traditional muse" configuration
+void TopWin::initConfiguration()
+{
+ if (initInited==false)
+ {
+ for (int i=0;i<TOPLEVELTYPE_LAST_ENTRY;i++)
+ {
+ _widthInit[i]=800;
+ _heightInit[i]=600;
+ _sharesWhenFree[i]=false;
+ _sharesWhenSubwin[i]=true;
+ _defaultSubwin[i]=false;
+ }
+
+ _defaultSubwin[ARRANGER]=true;
+
+ initInited=true;
+ }
+}
+
//---------------------------------------------------------
// readConfiguration
//---------------------------------------------------------
void TopWin::readConfiguration(ToplevelType t, Xml& xml)
{
+ if (initInited==false)
+ initConfiguration();
+
for (;;) {
Xml::Token token = xml.parse();
if (token == Xml::Error || token == Xml::End)
@@ -324,6 +332,12 @@ void TopWin::readConfiguration(ToplevelType t, Xml& xml)
_toolbarNonsharedInit[t] = QByteArray::fromHex(xml.parse1().toAscii());
else if (tag == "shared_toolbars")
_toolbarSharedInit[t] = QByteArray::fromHex(xml.parse1().toAscii());
+ else if (tag == "shares_when_free")
+ _sharesWhenFree[t] = xml.parseInt();
+ else if (tag == "shares_when_subwin")
+ _sharesWhenSubwin[t] = xml.parseInt();
+ else if (tag == "default_subwin")
+ _defaultSubwin[t] = xml.parseInt();
else
xml.unknown("TopWin");
break;
@@ -336,17 +350,27 @@ void TopWin::readConfiguration(ToplevelType t, Xml& xml)
}
}
+
//---------------------------------------------------------
// writeConfiguration
//---------------------------------------------------------
void TopWin::writeConfiguration(ToplevelType t, int level, Xml& xml)
{
+ if (!initInited)
+ {
+ printf ("WARNING: TopWin::writeConfiguration() called although the config hasn't been\n"
+ " initalized! writing default configuration\n");
+ initConfiguration();
+ }
xml.tag(level++, "topwin");
xml.intTag(level, "width", _widthInit[t]);
xml.intTag(level, "height", _heightInit[t]);
xml.strTag(level, "nonshared_toolbars", _toolbarNonsharedInit[t].toHex().data());
xml.strTag(level, "shared_toolbars", _toolbarSharedInit[t].toHex().data());
+ xml.intTag(level, "shares_when_free", _sharesWhenFree[t]);
+ xml.intTag(level, "shares_when_subwin", _sharesWhenSubwin[t]);
+ xml.intTag(level, "default_subwin", _defaultSubwin[t]);
xml.etag(level, "topwin");
}
@@ -371,3 +395,21 @@ void TopWin::restoreMainwinState()
if (sharesToolsAndMenu())
initTopwinState();
}
+
+QString TopWin::typeName(ToplevelType t)
+{
+ switch (t)
+ {
+ case PIANO_ROLL: return tr("Piano roll");
+ case LISTE: return tr("List editor");
+ case DRUM: return tr("Drum editor");
+ case MASTER: return tr("Master track editor");
+ case LMASTER: return tr("Master track list editor");
+ case WAVE: return tr("Wave editor");
+ case CLIPLIST: return tr("Clip list");
+ case MARKER: return tr("Marker view");
+ case SCORE: return tr("Score editor");
+ case ARRANGER: return tr("Arranger");
+ default: return tr("<unknown toplevel type>");
+ }
+}