summaryrefslogtreecommitdiff
path: root/muse2/muse/widgets
diff options
context:
space:
mode:
Diffstat (limited to 'muse2/muse/widgets')
-rw-r--r--muse2/muse/widgets/CMakeLists.txt3
-rw-r--r--muse2/muse/widgets/genset.cpp79
-rw-r--r--muse2/muse/widgets/genset.h10
-rw-r--r--muse2/muse/widgets/gensetbase.ui83
-rw-r--r--muse2/muse/widgets/mdisettings.cpp44
-rw-r--r--muse2/muse/widgets/mdisettings.h34
-rw-r--r--muse2/muse/widgets/mdisettings_base.ui60
-rw-r--r--muse2/muse/widgets/midisyncimpl.cpp2
-rw-r--r--muse2/muse/widgets/midisyncimpl.h3
9 files changed, 298 insertions, 20 deletions
diff --git a/muse2/muse/widgets/CMakeLists.txt b/muse2/muse/widgets/CMakeLists.txt
index a4da398f..b1eb888a 100644
--- a/muse2/muse/widgets/CMakeLists.txt
+++ b/muse2/muse/widgets/CMakeLists.txt
@@ -42,6 +42,7 @@ QT4_WRAP_CPP (widget_mocs
doublelabel.h
filedialog.h
genset.h
+ mdisettings.h
header.h
hitscale.h
intlabel.h
@@ -104,6 +105,7 @@ file (GLOB widgets_ui_files
editsysexdialogbase.ui
fdialogbuttons.ui
gensetbase.ui
+ mdisettings_base.ui
itransformbase.ui
metronomebase.ui
midisync.ui
@@ -139,6 +141,7 @@ file (GLOB widgets_source_files
drange.cpp
filedialog.cpp
genset.cpp
+ mdisettings.cpp
header.cpp
hitscale.cpp
intlabel.cpp
diff --git a/muse2/muse/widgets/genset.cpp b/muse2/muse/widgets/genset.cpp
index d8c76874..3aff8247 100644
--- a/muse2/muse/widgets/genset.cpp
+++ b/muse2/muse/widgets/genset.cpp
@@ -163,8 +163,31 @@ Shorter periods are desirable.</string>
connect(setBigtimeCurrent, SIGNAL(clicked()), SLOT(bigtimeCurrent()));
connect(setArrangerCurrent, SIGNAL(clicked()), SLOT(arrangerCurrent()));
connect(setTransportCurrent, SIGNAL(clicked()), SLOT(transportCurrent()));
+
+ connect(buttonTraditionalPreset, SIGNAL(clicked()), SLOT(traditionalPreset()));
+ connect(buttonMDIPreset, SIGNAL(clicked()), SLOT(mdiPreset()));
+ connect(buttonBorlandPreset, SIGNAL(clicked()), SLOT(borlandPreset()));
+
+ addMdiSettings(TopWin::ARRANGER);
+ addMdiSettings(TopWin::SCORE);
+ addMdiSettings(TopWin::PIANO_ROLL);
+ addMdiSettings(TopWin::DRUM);
+ addMdiSettings(TopWin::LISTE);
+ addMdiSettings(TopWin::WAVE);
+ addMdiSettings(TopWin::MASTER);
+ addMdiSettings(TopWin::LMASTER);
+ addMdiSettings(TopWin::CLIPLIST);
+ addMdiSettings(TopWin::MARKER);
+
}
+void GlobalSettingsConfig::addMdiSettings(TopWin::ToplevelType t)
+{
+ MdiSettings* temp = new MdiSettings(t, this);
+ layoutMdiSettings->addWidget(temp);
+ mdisettings.push_back(temp);
+}
+
//---------------------------------------------------------
// updateSettings
//---------------------------------------------------------
@@ -265,6 +288,20 @@ void GlobalSettingsConfig::updateSettings()
moveArmedCheckBox->setChecked(config.moveArmedCheckBox);
projectSaveCheckBox->setChecked(config.useProjectSaveDialog);
popsDefStayOpenCheckBox->setChecked(config.popupsDefaultStayOpen);
+
+ updateMdiSettings();
+}
+
+void GlobalSettingsConfig::updateMdiSettings()
+{
+ for (std::list<MdiSettings*>::iterator it = mdisettings.begin(); it!=mdisettings.end(); it++)
+ (*it)->update_settings();
+}
+
+void GlobalSettingsConfig::applyMdiSettings()
+{
+ for (std::list<MdiSettings*>::iterator it = mdisettings.begin(); it!=mdisettings.end(); it++)
+ (*it)->apply_settings();
}
//---------------------------------------------------------
@@ -386,6 +423,9 @@ void GlobalSettingsConfig::apply()
muse->setHeartBeat(); // set guiRefresh
midiSeq->msgSetRtc(); // set midi tick rate
+
+ applyMdiSettings();
+
muse->changeConfig(true); // save settings
}
@@ -496,3 +536,42 @@ void GlobalSettingsConfig::defaultInstrumentsPath()
QString dir = configPath + "/instruments";
userInstrumentsPath->setText(dir);
}
+
+
+void GlobalSettingsConfig::traditionalPreset()
+{
+ for (std::list<MdiSettings*>::iterator it = mdisettings.begin(); it!=mdisettings.end(); it++)
+ {
+ TopWin::ToplevelType type = (*it)->type();
+ TopWin::_sharesWhenFree[type]=false;
+ TopWin::_defaultSubwin[type]=false;
+ }
+ TopWin::_defaultSubwin[TopWin::ARRANGER]=true;
+
+ updateMdiSettings();
+}
+
+void GlobalSettingsConfig::mdiPreset()
+{
+ for (std::list<MdiSettings*>::iterator it = mdisettings.begin(); it!=mdisettings.end(); it++)
+ {
+ TopWin::ToplevelType type = (*it)->type();
+ TopWin::_sharesWhenSubwin[type]=true;
+ TopWin::_defaultSubwin[type]=true;
+ }
+
+ updateMdiSettings();
+}
+
+void GlobalSettingsConfig::borlandPreset()
+{
+ for (std::list<MdiSettings*>::iterator it = mdisettings.begin(); it!=mdisettings.end(); it++)
+ {
+ TopWin::ToplevelType type = (*it)->type();
+ TopWin::_sharesWhenFree[type]=true;
+ TopWin::_defaultSubwin[type]=false;
+ }
+
+ updateMdiSettings();
+}
+
diff --git a/muse2/muse/widgets/genset.h b/muse2/muse/widgets/genset.h
index ea094296..bc9ed1dd 100644
--- a/muse2/muse/widgets/genset.h
+++ b/muse2/muse/widgets/genset.h
@@ -10,8 +10,11 @@
#define __GENSET_H__
#include "ui_gensetbase.h"
+#include "cobject.h"
+#include "mdisettings.h"
#include <QShowEvent>
+#include <list>
//---------------------------------------------------------
// GlobalSettingsConfig
@@ -22,6 +25,9 @@ class GlobalSettingsConfig : public QDialog, public Ui::GlobalSettingsDialogBase
private slots:
void updateSettings();
+ void updateMdiSettings();
+ void addMdiSettings(TopWin::ToplevelType t);
+ void applyMdiSettings();
void apply();
void ok();
void cancel();
@@ -32,10 +38,14 @@ class GlobalSettingsConfig : public QDialog, public Ui::GlobalSettingsDialogBase
void transportCurrent();
void selectInstrumentsPath();
void defaultInstrumentsPath();
+ void traditionalPreset();
+ void mdiPreset();
+ void borlandPreset();
protected:
void showEvent(QShowEvent*);
QButtonGroup *startSongGroup;
+ std::list<MdiSettings*> mdisettings;
public:
GlobalSettingsConfig(QWidget* parent=0);
diff --git a/muse2/muse/widgets/gensetbase.ui b/muse2/muse/widgets/gensetbase.ui
index 68f3ebb5..3d15aaa5 100644
--- a/muse2/muse/widgets/gensetbase.ui
+++ b/muse2/muse/widgets/gensetbase.ui
@@ -6,7 +6,7 @@
<rect>
<x>0</x>
<y>0</y>
- <width>526</width>
+ <width>556</width>
<height>506</height>
</rect>
</property>
@@ -23,7 +23,7 @@
</sizepolicy>
</property>
<property name="currentIndex">
- <number>0</number>
+ <number>3</number>
</property>
<widget class="QWidget" name="TabPage">
<attribute name="title">
@@ -1333,19 +1333,6 @@ Adjusts responsiveness of audio controls and
</property>
</widget>
</item>
- <item row="5" column="0">
- <spacer name="verticalSpacer_2">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>40</height>
- </size>
- </property>
- </spacer>
- </item>
<item row="4" column="0">
<widget class="QLabel" name="TextLabel1_3">
<property name="toolTip">
@@ -1370,6 +1357,72 @@ Otherwise, hold Ctrl to keep them open.</string>
</layout>
</widget>
</item>
+ <item>
+ <widget class="QGroupBox" name="groupBox_2">
+ <property name="title">
+ <string>MDI-subwindowness and sharing menus</string>
+ </property>
+ <property name="checkable">
+ <bool>false</bool>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_9">
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_2">
+ <item>
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>Presets:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="buttonTraditionalPreset">
+ <property name="text">
+ <string>traditional MusE SDI</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="buttonMDIPreset">
+ <property name="text">
+ <string>Cakewalk-like MDI</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="buttonBorlandPreset">
+ <property name="text">
+ <string>Borland-/Mac-like MDI</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QScrollArea" name="scrollArea">
+ <property name="widgetResizable">
+ <bool>true</bool>
+ </property>
+ <widget class="QWidget" name="scrollAreaWidgetContents_2">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>482</width>
+ <height>168</height>
+ </rect>
+ </property>
+ <layout class="QHBoxLayout" name="horizontalLayout_3">
+ <item>
+ <layout class="QVBoxLayout" name="layoutMdiSettings"/>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
</layout>
</widget>
</widget>
diff --git a/muse2/muse/widgets/mdisettings.cpp b/muse2/muse/widgets/mdisettings.cpp
new file mode 100644
index 00000000..127aa5c1
--- /dev/null
+++ b/muse2/muse/widgets/mdisettings.cpp
@@ -0,0 +1,44 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: genset.cpp,v 1.7.2.8 2009/12/01 03:52:40 terminator356 Exp $
+//
+// (C) Copyright 2001-2004 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#include <stdio.h>
+
+#include <QFileDialog>
+#include <QRect>
+#include <QShowEvent>
+
+#include "mdisettings.h"
+#include "app.h"
+#include "gconfig.h"
+#include "midiseq.h"
+#include "globals.h"
+#include "icons.h"
+
+MdiSettings::MdiSettings(TopWin::ToplevelType t, QWidget* parent) : QWidget(parent)
+{
+ _type=t;
+ setupUi(this);
+
+ groupBox->setTitle(TopWin::typeName(t));
+ update_settings();
+}
+
+
+void MdiSettings::update_settings()
+{
+ isSubwinCheckbox->setChecked(TopWin::_defaultSubwin[_type]);
+ shareSubwinCheckbox->setChecked(TopWin::_sharesWhenSubwin[_type]);
+ shareFreeCheckbox->setChecked(TopWin::_sharesWhenFree[_type]);
+}
+
+void MdiSettings::apply_settings()
+{
+ TopWin::_defaultSubwin[_type] = isSubwinCheckbox->isChecked();
+ TopWin::_sharesWhenSubwin[_type] = shareSubwinCheckbox->isChecked();
+ TopWin::_sharesWhenFree[_type] = shareFreeCheckbox->isChecked();
+}
diff --git a/muse2/muse/widgets/mdisettings.h b/muse2/muse/widgets/mdisettings.h
new file mode 100644
index 00000000..2f1bdf55
--- /dev/null
+++ b/muse2/muse/widgets/mdisettings.h
@@ -0,0 +1,34 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: genset.h,v 1.3 2004/01/25 09:55:17 wschweer Exp $
+//
+// (C) Copyright 2001 Werner Schweer (ws@seh.de)
+//=========================================================
+
+#ifndef __MDISETTINGS_H__
+#define __MDISETTINGS_H__
+
+#include <QWidget>
+#include "ui_mdisettings_base.h"
+#include "cobject.h"
+
+//---------------------------------------------------------
+// GlobalSettingsConfig
+//---------------------------------------------------------
+
+class MdiSettings : public QWidget, private Ui::MdiSettingsBase
+{
+ Q_OBJECT
+
+ private:
+ TopWin::ToplevelType _type;
+
+ public:
+ MdiSettings(TopWin::ToplevelType t, QWidget* parent=0);
+ void update_settings();
+ void apply_settings();
+ TopWin::ToplevelType type() { return _type; }
+};
+
+#endif
diff --git a/muse2/muse/widgets/mdisettings_base.ui b/muse2/muse/widgets/mdisettings_base.ui
new file mode 100644
index 00000000..af32f174
--- /dev/null
+++ b/muse2/muse/widgets/mdisettings_base.ui
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>MdiSettingsBase</class>
+ <widget class="QWidget" name="MdiSettingsBase">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>338</width>
+ <height>100</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Form</string>
+ </property>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QGroupBox" name="groupBox">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="title">
+ <string>GroupBox</string>
+ </property>
+ <property name="flat">
+ <bool>true</bool>
+ </property>
+ <layout class="QGridLayout" name="gridLayout">
+ <item row="2" column="0">
+ <widget class="QCheckBox" name="isSubwinCheckbox">
+ <property name="text">
+ <string>MDI subwin</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1">
+ <widget class="QCheckBox" name="shareSubwinCheckbox">
+ <property name="text">
+ <string>Shares menu when subwin</string>
+ </property>
+ </widget>
+ </item>
+ <item row="4" column="1">
+ <widget class="QCheckBox" name="shareFreeCheckbox">
+ <property name="text">
+ <string>Shares menu when free</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/muse2/muse/widgets/midisyncimpl.cpp b/muse2/muse/widgets/midisyncimpl.cpp
index c70cb79f..07527973 100644
--- a/muse2/muse/widgets/midisyncimpl.cpp
+++ b/muse2/muse/widgets/midisyncimpl.cpp
@@ -673,8 +673,6 @@ void MidiSyncConfig::closeEvent(QCloseEvent* e)
apply();
}
- //emit deleted((unsigned long)this);
-
disconnect(heartBeatTimer, SIGNAL(timeout()), this, SLOT(heartBeat()));
disconnect(song, SIGNAL(songChanged(int)), this, SLOT(songChanged(int)));
diff --git a/muse2/muse/widgets/midisyncimpl.h b/muse2/muse/widgets/midisyncimpl.h
index 3eb33451..9b133af2 100644
--- a/muse2/muse/widgets/midisyncimpl.h
+++ b/muse2/muse/widgets/midisyncimpl.h
@@ -104,9 +104,6 @@ class MidiSyncConfig : public QDialog, public Ui::MidiSyncConfigBase {
//void renameOk(QListViewItem*, int, const QString&);
void songChanged(int);
- //signals:
- // void deleted(unsigned long);
-
public:
MidiSyncConfig(QWidget* parent=0);
//MidiSyncConfig();