summaryrefslogtreecommitdiff
path: root/muse2/muse/widgets
diff options
context:
space:
mode:
authorRobert Jonsson <spamatica@gmail.com>2011-03-01 16:11:57 +0000
committerRobert Jonsson <spamatica@gmail.com>2011-03-01 16:11:57 +0000
commite34cbdc31e42538b551025313ff97410ae24b1c7 (patch)
treef3af0df61e47798759493d1f3581eebd70f4fbbb /muse2/muse/widgets
parent1645eee5c59ea72438d730a01add17e106b8c82f (diff)
allow to show/hide track-types from arranger
Diffstat (limited to 'muse2/muse/widgets')
-rw-r--r--muse2/muse/widgets/CMakeLists.txt4
-rw-r--r--muse2/muse/widgets/visibletracks.cpp113
-rw-r--r--muse2/muse/widgets/visibletracks.h49
3 files changed, 165 insertions, 1 deletions
diff --git a/muse2/muse/widgets/CMakeLists.txt b/muse2/muse/widgets/CMakeLists.txt
index cb3125d0..e3921f70 100644
--- a/muse2/muse/widgets/CMakeLists.txt
+++ b/muse2/muse/widgets/CMakeLists.txt
@@ -76,7 +76,8 @@ QT4_WRAP_CPP (widget_mocs
ttoolbutton.h
velocity.h
view.h
- vscale.h
+ vscale.h
+ visibletracks.h
)
##
@@ -175,6 +176,7 @@ file (GLOB widgets_source_files
velocity.cpp
view.cpp
vscale.cpp
+ visibletracks.cpp
)
##
diff --git a/muse2/muse/widgets/visibletracks.cpp b/muse2/muse/widgets/visibletracks.cpp
new file mode 100644
index 00000000..b2a88d1c
--- /dev/null
+++ b/muse2/muse/widgets/visibletracks.cpp
@@ -0,0 +1,113 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: tools.cpp,v 1.2 2004/04/28 21:56:13 spamatica Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+// (C) Copyright 2011 Robert Jonsson (rj@spamatica.se)
+//=========================================================
+
+#include <QActionGroup>
+
+#include <stdio.h>
+#include "visibletracks.h"
+#include "icons.h"
+#include "action.h"
+#include "track.h"
+#include "synth.h"
+
+const char* waveTrack = QT_TRANSLATE_NOOP("@default", "Show wave tracks");
+const char* groupTrack = QT_TRANSLATE_NOOP("@default", "Show group tracks");
+const char* auxTrack = QT_TRANSLATE_NOOP("@default", "Show aux tracks");
+const char* inputTrack = QT_TRANSLATE_NOOP("@default", "Show input tracks");
+const char* outputTrack = QT_TRANSLATE_NOOP("@default", "Show output tracks");
+const char* midiTrack = QT_TRANSLATE_NOOP("@default", "Show midi tracks");
+const char* synthTrack = QT_TRANSLATE_NOOP("@default", "Show synth tracks");
+
+VisibleToolB visTrackList[] = {
+ {&addtrack_wavetrackIcon, QT_TRANSLATE_NOOP("@default", "Show wave tracks"), waveTrack },
+ {&addtrack_audiogroupIcon, QT_TRANSLATE_NOOP("@default", "Show group tracks"), groupTrack },
+ {&addtrack_auxsendIcon, QT_TRANSLATE_NOOP("@default", "Show aux tracks"), auxTrack },
+ {&addtrack_audioinputIcon, QT_TRANSLATE_NOOP("@default", "Show input tracks"), inputTrack },
+ {&addtrack_audiooutputIcon, QT_TRANSLATE_NOOP("@default", "Show output tracks"), outputTrack },
+ {&addtrack_addmiditrackIcon,QT_TRANSLATE_NOOP("@default", "Show midi tracks"), midiTrack },
+ {&synthIcon, QT_TRANSLATE_NOOP("@default", "Show synth tracks"), midiTrack },
+ };
+
+//---------------------------------------------------------
+// VisibleTracks
+//---------------------------------------------------------
+
+
+VisibleTracks::VisibleTracks(QWidget* parent, const char*)
+ : QToolBar(tr("Visible track types"), parent)
+ {
+ setObjectName("Visible track types");
+ QActionGroup* action = new QActionGroup(parent); // Parent needed.
+ action->setExclusive(false);
+
+ actions = new Action*[sizeof(visTrackList)];
+ int n = 0;
+ for (unsigned i = 0; i < sizeof(visTrackList)/sizeof(*visTrackList); ++i) {
+ VisibleToolB* t = &visTrackList[i];
+
+ Action* a = new Action(action, i, t->tip, true);
+ actions[n] = a;
+ //a->setIconSet(QIcon(**(t->icon)));
+ a->setIcon(QIcon(**(t->icon)));
+ a->setToolTip(tr(t->tip));
+ a->setWhatsThis(tr(t->ltip));
+ a->setChecked(true);
+ ++n;
+ }
+ action->setVisible(true);
+ //action->addTo(this);
+ // Note: Does not take ownership.
+ addActions(action->actions());
+
+ connect(action, SIGNAL(selected(QAction*)), SLOT(visibilityChanged(QAction*)));
+ }
+
+//---------------------------------------------------------
+// toolChanged
+//---------------------------------------------------------
+
+void VisibleTracks::visibilityChanged(QAction* action)
+{
+ printf("update visibility\n");
+ switch (((Action*)action)->id()) {
+ case 0:
+ WaveTrack::setVisible(action->isChecked());
+ break;
+ case 1:
+ AudioGroup::setVisible(action->isChecked());
+ break;
+ case 2:
+ AudioAux::setVisible(action->isChecked());
+ break;
+ case 3:
+ AudioInput::setVisible(action->isChecked());
+ break;
+ case 4:
+ AudioOutput::setVisible(action->isChecked());
+ break;
+ case 5:
+ MidiTrack::setVisible(action->isChecked());
+ break;
+ case 6:
+ SynthI::setVisible(action->isChecked());
+ break;
+ default:
+ break;
+ }
+ emit visibilityChanged();
+}
+
+//---------------------------------------------------------
+// ~VisibleTracks
+//---------------------------------------------------------
+
+VisibleTracks::~VisibleTracks()
+ {
+ delete actions;
+ }
+
diff --git a/muse2/muse/widgets/visibletracks.h b/muse2/muse/widgets/visibletracks.h
new file mode 100644
index 00000000..75ec06ae
--- /dev/null
+++ b/muse2/muse/widgets/visibletracks.h
@@ -0,0 +1,49 @@
+//=========================================================
+// MusE
+// Linux Music Editor
+// $Id: tools.h,v 1.1.1.1 2003/10/27 18:54:49 wschweer Exp $
+// (C) Copyright 1999 Werner Schweer (ws@seh.de)
+// (C) Copyright 2011 Robert Jonsson (rj@spamatica.se)
+//=========================================================
+#ifndef VISIBLETRACKS_H
+#define VISIBLETRACKS_H
+
+#include <QToolBar>
+
+class Action;
+
+class QAction;
+class QPixmap;
+class QWidget;
+
+struct VisibleToolB {
+ QPixmap** icon;
+ const char* tip;
+ const char* ltip;
+ };
+
+extern VisibleToolB visTrackList[];
+
+//---------------------------------------------------------
+// EditToolBar
+//---------------------------------------------------------
+
+class VisibleTracks : public QToolBar {
+ Q_OBJECT
+ Action** actions;
+ int nactions;
+
+ private slots:
+ void visibilityChanged(QAction* action);
+
+ signals:
+ void visibilityChanged();
+
+ public:
+ VisibleTracks(QWidget* /*parent*/, const char* name = 0); // Needs a parent !
+ ~VisibleTracks();
+ };
+
+
+
+#endif // VISIBLETRACKS_H