summaryrefslogtreecommitdiff
path: root/muse2/muse/arranger
diff options
context:
space:
mode:
authorFlorian Jung <flo@windfisch.org>2012-02-24 19:32:40 +0000
committerFlorian Jung <flo@windfisch.org>2012-02-24 19:32:40 +0000
commitf97dd6a44d1050aa2f4c300c9ad32e2c5453ed98 (patch)
tree097c0e032d1fa5e5c5104759353974398debf381 /muse2/muse/arranger
parent3ffd0dacdd7447c6c377f95c1fa7fc45a2612d98 (diff)
made custom columns editable.
TODO FIXME: you need to restart MusE to apply them
Diffstat (limited to 'muse2/muse/arranger')
-rw-r--r--muse2/muse/arranger/arranger.cpp13
-rw-r--r--muse2/muse/arranger/arranger.h3
-rw-r--r--muse2/muse/arranger/arrangerview.cpp12
-rw-r--r--muse2/muse/arranger/arrangerview.h3
4 files changed, 25 insertions, 6 deletions
diff --git a/muse2/muse/arranger/arranger.cpp b/muse2/muse/arranger/arranger.cpp
index d572aadd..ccb3353f 100644
--- a/muse2/muse/arranger/arranger.cpp
+++ b/muse2/muse/arranger/arranger.cpp
@@ -72,18 +72,19 @@
namespace MusEGui {
-std::vector<Arranger::custom_col_t> Arranger::custom_columns;
+std::vector<Arranger::custom_col_t> Arranger::custom_columns; //FINDMICH TODO: eliminate all usage of new_custom_columns
+std::vector<Arranger::custom_col_t> Arranger::new_custom_columns; //and instead let the arranger update without restarting muse!
QString Arranger::header_state;
void Arranger::writeCustomColumns(int level, MusECore::Xml& xml)
{
xml.tag(level++, "custom_columns");
- for (unsigned i=0;i<custom_columns.size();i++)
+ for (unsigned i=0;i<new_custom_columns.size();i++)
{
xml.tag(level++, "column");
- xml.strTag(level, "name", custom_columns[i].name);
- xml.intTag(level, "ctrl", custom_columns[i].ctrl);
+ xml.strTag(level, "name", new_custom_columns[i].name);
+ xml.intTag(level, "ctrl", new_custom_columns[i].ctrl);
xml.etag(--level, "column");
}
@@ -100,6 +101,7 @@ void Arranger::readCustomColumns(MusECore::Xml& xml)
switch (token) {
case MusECore::Xml::Error:
case MusECore::Xml::End:
+ new_custom_columns=custom_columns;
return;
case MusECore::Xml::TagStart:
if (tag == "column")
@@ -109,7 +111,10 @@ void Arranger::readCustomColumns(MusECore::Xml& xml)
break;
case MusECore::Xml::TagEnd:
if (tag == "custom_columns")
+ {
+ new_custom_columns=custom_columns;
return;
+ }
default:
break;
}
diff --git a/muse2/muse/arranger/arranger.h b/muse2/muse/arranger/arranger.h
index a49829c8..c2746ba7 100644
--- a/muse2/muse/arranger/arranger.h
+++ b/muse2/muse/arranger/arranger.h
@@ -188,7 +188,8 @@ class Arranger : public QWidget {
name=n;
}
};
- static std::vector<custom_col_t> custom_columns;
+ static std::vector<custom_col_t> custom_columns; //FINDMICH TODO: eliminate all usage of new_custom_columns
+ static std::vector<custom_col_t> new_custom_columns; //and instead let the arranger update without restarting muse!
Arranger(ArrangerView* parent, const char* name = 0);
diff --git a/muse2/muse/arranger/arrangerview.cpp b/muse2/muse/arranger/arrangerview.cpp
index afc0da8c..d38b5284 100644
--- a/muse2/muse/arranger/arrangerview.cpp
+++ b/muse2/muse/arranger/arrangerview.cpp
@@ -67,6 +67,7 @@
#include "ttoolbar.h"
#include "visibletracks.h"
#include "xml.h"
+#include "arrangercolumns.h"
namespace MusEGui {
@@ -272,6 +273,8 @@ ArrangerView::ArrangerView(QWidget* parent)
QMenu* menuSettings = menuBar()->addMenu(tr("Window &Config"));
+ menuSettings->addAction(tr("Configure &custom columns"), this, SLOT(configCustomColumns()));
+ menuSettings->addSeparator();
menuSettings->addAction(subwinAction);
menuSettings->addAction(shareAction);
menuSettings->addAction(fullscreenAction);
@@ -746,4 +749,13 @@ void ArrangerView::globalCutSel() { MusECore::globalCut(true); }
void ArrangerView::globalInsertSel() { MusECore::globalInsert(true); }
void ArrangerView::globalSplitSel() { MusECore::globalSplit(true); }
+void ArrangerView::configCustomColumns()
+{
+ ArrangerColumns* dialog = new ArrangerColumns(this);
+ dialog->exec();
+ delete dialog;
+
+ QMessageBox::information(this, tr("Changed Settings"), tr("Unfortunately, the changed arranger column settings\ncannot be applied while MusE is running.\nTo apply the changes, please restart MusE. Sorry.\n(we'll try to fix that)"));
+}
+
} // namespace MusEGui
diff --git a/muse2/muse/arranger/arrangerview.h b/muse2/muse/arranger/arrangerview.h
index 2e128c1d..98e7f01c 100644
--- a/muse2/muse/arranger/arrangerview.h
+++ b/muse2/muse/arranger/arrangerview.h
@@ -125,7 +125,8 @@ class ArrangerView : public TopWin
void globalInsertSel();
void globalSplitSel();
void cmd(int);
- void addNewTrack(QAction* action);
+ void addNewTrack(QAction* action);
+ void configCustomColumns();
signals:
void isDeleting(MusEGui::TopWin*);