diff options
| author | Robert Jonsson <spamatica@gmail.com> | 2011-03-01 16:11:57 +0000 |
|---|---|---|
| committer | Robert Jonsson <spamatica@gmail.com> | 2011-03-01 16:11:57 +0000 |
| commit | e34cbdc31e42538b551025313ff97410ae24b1c7 (patch) | |
| tree | f3af0df61e47798759493d1f3581eebd70f4fbbb /muse2/muse/widgets | |
| parent | 1645eee5c59ea72438d730a01add17e106b8c82f (diff) | |
allow to show/hide track-types from arranger
Diffstat (limited to 'muse2/muse/widgets')
| -rw-r--r-- | muse2/muse/widgets/CMakeLists.txt | 4 | ||||
| -rw-r--r-- | muse2/muse/widgets/visibletracks.cpp | 113 | ||||
| -rw-r--r-- | muse2/muse/widgets/visibletracks.h | 49 |
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 |
