summaryrefslogtreecommitdiff
path: root/muse2/muse/master
diff options
context:
space:
mode:
Diffstat (limited to 'muse2/muse/master')
-rw-r--r--muse2/muse/master/lmaster.cpp1
-rw-r--r--muse2/muse/master/masteredit.cpp51
-rw-r--r--muse2/muse/master/masteredit.h8
3 files changed, 58 insertions, 2 deletions
diff --git a/muse2/muse/master/lmaster.cpp b/muse2/muse/master/lmaster.cpp
index 2f921cdc..9083c024 100644
--- a/muse2/muse/master/lmaster.cpp
+++ b/muse2/muse/master/lmaster.cpp
@@ -125,6 +125,7 @@ LMaster::LMaster()
setWindowTitle(tr("MusE: Mastertrack"));
setMinimumHeight(100);
setFixedWidth(400);
+ setFocusPolicy(Qt::StrongFocus);
//---------Pulldown Menu----------------------------
menuEdit = menuBar()->addMenu(tr("&Edit"));
diff --git a/muse2/muse/master/masteredit.cpp b/muse2/muse/master/masteredit.cpp
index 2b91ae90..9053f3a8 100644
--- a/muse2/muse/master/masteredit.cpp
+++ b/muse2/muse/master/masteredit.cpp
@@ -33,6 +33,9 @@
#include <QToolButton>
int MasterEdit::_rasterInit = 0;
+int MasterEdit::_widthInit = 600;
+int MasterEdit::_heightInit = 400;
+QByteArray MasterEdit::_toolbarInit;
//---------------------------------------------------------
// closeEvent
@@ -77,12 +80,12 @@ void MasterEdit::songChanged(int type)
//---------------------------------------------------------
MasterEdit::MasterEdit()
- : MidiEditor(0, _rasterInit, 0)
+ : MidiEditor(_rasterInit, 0)
{
setWindowTitle(tr("MusE: Mastertrack"));
_raster = 0; // measure
setMinimumSize(400, 300);
- resize(500, 350);
+ resize(_widthInit, _heightInit);
//---------Pulldown Menu----------------------------
// QPopupMenu* file = new QPopupMenu(this);
@@ -229,6 +232,9 @@ MasterEdit::MasterEdit()
connect(canvas, SIGNAL(followEvent(int)), hscroll, SLOT(setOffset(int)));
connect(canvas, SIGNAL(timeChanged(unsigned)), SLOT(setTime(unsigned)));
+
+ if (!_toolbarInit.isEmpty())
+ restoreState(_toolbarInit);
}
//---------------------------------------------------------
@@ -317,6 +323,12 @@ void MasterEdit::readConfiguration(Xml& xml)
case Xml::TagStart:
if (tag == "raster")
_rasterInit = xml.parseInt();
+ else if (tag == "width")
+ _widthInit = xml.parseInt();
+ else if (tag == "height")
+ _heightInit = xml.parseInt();
+ else if (tag == "toolbars")
+ _toolbarInit = QByteArray::fromHex(xml.parse1().toAscii());
else
xml.unknown("MasterEdit");
break;
@@ -337,6 +349,9 @@ void MasterEdit::writeConfiguration(int level, Xml& xml)
{
xml.tag(level++, "masteredit");
xml.intTag(level, "raster", _rasterInit);
+ xml.intTag(level, "width", _widthInit);
+ xml.intTag(level, "height", _heightInit);
+ xml.strTag(level, "toolbars", _toolbarInit.toHex().data());
xml.tag(level, "/masteredit");
}
@@ -404,3 +419,35 @@ void MasterEdit::setTempo(int val)
}
}
+
+//---------------------------------------------------------
+// resizeEvent
+//---------------------------------------------------------
+
+void MasterEdit::resizeEvent(QResizeEvent* ev)
+ {
+ QWidget::resizeEvent(ev);
+ storeInitialState();
+ }
+
+//---------------------------------------------------------
+// focusOutEvent
+//---------------------------------------------------------
+
+void MasterEdit::focusOutEvent(QFocusEvent* ev)
+ {
+ QWidget::focusOutEvent(ev);
+ storeInitialState();
+ }
+
+
+//---------------------------------------------------------
+// storeInitialState
+//---------------------------------------------------------
+
+void MasterEdit::storeInitialState()
+ {
+ _widthInit = width();
+ _heightInit = height();
+ _toolbarInit=saveState();
+ }
diff --git a/muse2/muse/master/masteredit.h b/muse2/muse/master/masteredit.h
index af43c7b0..59a5ab05 100644
--- a/muse2/muse/master/masteredit.h
+++ b/muse2/muse/master/masteredit.h
@@ -8,6 +8,9 @@
#ifndef __MASTER_EDIT_H__
#define __MASTER_EDIT_H__
+#include <QByteArray>
+#include <QResizeEvent>
+
#include "midieditor.h"
#include "noteinfo.h"
#include "cobject.h"
@@ -56,9 +59,14 @@ class MasterEdit : public MidiEditor {
QToolButton* enableButton;
static int _rasterInit;
+ static int _widthInit, _heightInit;
+ static QByteArray _toolbarInit;
Q_OBJECT
virtual void closeEvent(QCloseEvent*);
+ virtual void resizeEvent(QResizeEvent*);
+ virtual void focusOutEvent(QFocusEvent*);
+ void storeInitialState();
private slots:
void _setRaster(int);