summaryrefslogtreecommitdiff
path: root/muse2/muse/midiedit/drumedit.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'muse2/muse/midiedit/drumedit.cpp')
-rw-r--r--muse2/muse/midiedit/drumedit.cpp281
1 files changed, 143 insertions, 138 deletions
diff --git a/muse2/muse/midiedit/drumedit.cpp b/muse2/muse/midiedit/drumedit.cpp
index 06205e14..511bbd0e 100644
--- a/muse2/muse/midiedit/drumedit.cpp
+++ b/muse2/muse/midiedit/drumedit.cpp
@@ -5,34 +5,18 @@
// (C) Copyright 1999 Werner Schweer (ws@seh.de)
//=========================================================
-#include <QToolButton>
-//#include <q3accel.h>
-#include <QLayout>
-#include <q3hbox.h>
-#include <QSizeGrip>
-#include <QScrollBar>
-#include <QLabel>
-#include <QPushButton>
-#include <QRadioButton>
-#include <q3buttongroup.h>
-#include <q3listbox.h>
-#include <q3popupmenu.h>
-#include <QMenuBar>
-#include <QToolTip>
-#include <QApplication>
-#include <QClipboard>
-#include <QMessageBox>
#include <QAction>
-#include <QWhatsThis>
-#include <QList>
+#include <QClipboard>
+#include <QCloseEvent>
#include <QGridLayout>
-
-//Added by qt3to4:
#include <QKeyEvent>
-//#include <Q3ValueList>
-//#include <Q3GridLayout>
+#include <QList>
+#include <QMessageBox>
+#include <QPushButton>
#include <QResizeEvent>
-#include <QCloseEvent>
+#include <QSizeGrip>
+#include <QToolButton>
+#include <QWhatsThis>
#include "drumedit.h"
#include "mtscale.h"
@@ -82,65 +66,45 @@ static const int yscale = 1;
static const int drumeditTools = PointerTool | PencilTool | RubberTool;
//---------------------------------------------------------
-// DWhatsThis::text
+// setHeaderWhatsThis
//---------------------------------------------------------
-QString DWhatsThis::text(const QPoint& pos)
+void DrumEdit::setHeaderWhatsThis()
{
- int section = header->sectionAt(pos.x());
- if (section == -1)
- return QString::null;
- switch(section) {
- case 0: return Q3Header::tr("mute instrument"); break;
- case 1: return Q3Header::tr("sound name"); break;
- case 2: return Q3Header::tr("volume percent"); break;
- case 3: return Q3Header::tr("quantisation"); break;
- case 4: return Q3Header::tr("this input note triggers the sound"); break;
- case 5: return Q3Header::tr("note length"); break;
- case 6: return Q3Header::tr("this is the note which is played"); break;
- case 7: return Q3Header::tr("output channel (hold ctl to affect all rows)"); break;
- case 8: return Q3Header::tr("output port"); break;
- case 9: return Q3Header::tr("shift + control key: draw velocity level 1"); break;
- case 10: return Q3Header::tr("control key: draw velocity level 2"); break;
- case 11: return Q3Header::tr("shift key: draw velocity level 3"); break;
- case 12: return Q3Header::tr("draw velocity level 4"); break;
- default: break;
- }
- return QString::null;
+ header->setWhatsThis(0, tr("mute instrument"));
+ header->setWhatsThis(1, tr("sound name"));
+ header->setWhatsThis(2, tr("volume percent"));
+ header->setWhatsThis(3, tr("quantisation"));
+ header->setWhatsThis(4, tr("this input note triggers the sound"));
+ header->setWhatsThis(5, tr("note length"));
+ header->setWhatsThis(6, tr("this is the note which is played"));
+ header->setWhatsThis(7, tr("output channel (hold ctl to affect all rows)"));
+ header->setWhatsThis(8, tr("output port"));
+ header->setWhatsThis(9, tr("shift + control key: draw velocity level 1"));
+ header->setWhatsThis(10, tr("control key: draw velocity level 2"));
+ header->setWhatsThis(11, tr("shift key: draw velocity level 3"));
+ header->setWhatsThis(12, tr("draw velocity level 4"));
}
//---------------------------------------------------------
-// DHeaderTip::maybeTip
+// setHeaderToolTips
//---------------------------------------------------------
-void DHeaderTip::maybeTip(const QPoint &pos)
+void DrumEdit::setHeaderToolTips()
{
-#if 0 // ddskrjo
- Header* w = (Header*)parentWidget();
- int section = w->sectionAt(pos.x());
- if (section == -1)
- return;
- QRect r(w->sectionPos(section), 0, w->sectionSize(section),
- w->height());
- QString p;
- switch(section) {
- case 0: p = Q3Header::tr("mute instrument"); break;
- case 1: p = Q3Header::tr("sound name"); break;
- case 2: p = Q3Header::tr("volume percent"); break;
- case 3: p = Q3Header::tr("quantisation"); break;
- case 4: p = Q3Header::tr("this input note triggers the sound"); break;
- case 5: p = Q3Header::tr("note length"); break;
- case 6: p = Q3Header::tr("this is the note which is played"); break;
- case 7: p = Q3Header::tr("output channel (ctl: affect all rows)"); break;
- case 8: p = Q3Header::tr("output port"); break;
- case 9: p = Q3Header::tr("shift + control key: draw velocity level 1"); break;
- case 10: p = Q3Header::tr("control key: draw velocity level 2"); break;
- case 11: p = Q3Header::tr("shift key: draw velocity level 3"); break;
- case 12: p = Q3Header::tr("draw velocity level 4"); break;
- default: return;
- }
- tip(r, p);
-#endif
+ header->setToolTip(0, tr("mute instrument"));
+ header->setToolTip(1, tr("sound name"));
+ header->setToolTip(2, tr("volume percent"));
+ header->setToolTip(3, tr("quantisation"));
+ header->setToolTip(4, tr("this input note triggers the sound"));
+ header->setToolTip(5, tr("note length"));
+ header->setToolTip(6, tr("this is the note which is played"));
+ header->setToolTip(7, tr("output channel (ctl: affect all rows)"));
+ header->setToolTip(8, tr("output port"));
+ header->setToolTip(9, tr("shift + control key: draw velocity level 1"));
+ header->setToolTip(10, tr("control key: draw velocity level 2"));
+ header->setToolTip(11, tr("shift key: draw velocity level 3"));
+ header->setToolTip(12, tr("draw velocity level 4"));
}
//---------------------------------------------------------
@@ -150,8 +114,8 @@ void DHeaderTip::maybeTip(const QPoint &pos)
void DrumEdit::closeEvent(QCloseEvent* e)
{
//Store values of the horizontal splitter
- Q3ValueList<int> sizes = split2->sizes();
- Q3ValueList<int>::Iterator it = sizes.begin();
+ QList<int> sizes = split2->sizes();
+ QList<int>::iterator it = sizes.begin();
_dlistWidthInit = *it; //There are only 2 values stored in the sizelist, size of dlist widget and dcanvas widget
it++;
_dcanvasWidthInit = *it;
@@ -170,58 +134,95 @@ DrumEdit::DrumEdit(PartList* pl, QWidget* parent, const char* name, unsigned ini
resize(_widthInit, _heightInit);
selPart = 0;
_to = _toInit;
+ QSignalMapper *signalMapper = new QSignalMapper(this);
//---------Pulldown Menu----------------------------
- menuFile = new Q3PopupMenu(this);
- menuBar()->insertItem(tr("&File"), menuFile);
+ menuFile = new QMenu(tr("&File"));
+ menuBar()->addMenu(menuFile);
+
+ loadAction = menuFile->addAction(QIcon(*openIcon), tr("Load Map"));
+ saveAction = menuFile->addAction(QIcon(*saveIcon), tr("Save Map"));
+ resetAction = menuFile->addAction(tr("Reset GM Map"));
- menuFile->insertItem(QIcon(*openIcon), tr("Load Map"), DrumCanvas::CMD_LOAD);
- menuFile->insertItem(QIcon(*saveIcon), tr("Save Map"), DrumCanvas::CMD_SAVE);
- menuFile->insertItem(tr("Reset GM Map"), DrumCanvas::CMD_RESET);
+ connect(loadAction, SIGNAL(triggered()), signalMapper, SLOT(map()));
+ connect(saveAction, SIGNAL(triggered()), signalMapper, SLOT(map()));
+ connect(resetAction, SIGNAL(triggered()), signalMapper, SLOT(map()));
- menuEdit = new Q3PopupMenu(this);
- menuBar()->insertItem(tr("&Edit"), menuEdit);
+ signalMapper->setMapping(loadAction, DrumCanvas::CMD_LOAD);
+ signalMapper->setMapping(saveAction, DrumCanvas::CMD_SAVE);
+ signalMapper->setMapping(resetAction, DrumCanvas::CMD_RESET);
+
+ menuEdit = new QMenu(tr("&Edit"));
+ menuBar()->addMenu(menuEdit);
undoRedo->addTo(menuEdit);
///Q3Accel* qa = new Q3Accel(this);
- ///qa->connectItem(qa->insertItem(Qt::CTRL+Qt::Key_Z), song, SLOT(undo()));
+ ///qa->connectItem(qa->addAction(Qt::CTRL+Qt::Key_Z), song, SLOT(undo()));
menuEdit->insertSeparator();
- menuEdit->insertItem(tr("Cut"), DrumCanvas::CMD_CUT);
- menuEdit->insertItem(tr("Copy"), DrumCanvas::CMD_COPY);
- menuEdit->insertItem(tr("Paste"), DrumCanvas::CMD_PASTE);
+ cutAction = menuEdit->addAction(QIcon(*editcutIconSet), tr("Cut"));
+ copyAction = menuEdit->addAction(QIcon(*editcopyIconSet), tr("Copy"));
+ pasteAction = menuEdit->addAction(QIcon(*editpasteIconSet), tr("Paste"));
menuEdit->insertSeparator();
- menuEdit->insertItem(tr("Delete Events"), DrumCanvas::CMD_DEL);
+ deleteAction = menuEdit->addAction(tr("Delete Events"));
- // Functions
- menuFunctions = new Q3PopupMenu(this);
- menuBar()->insertItem(tr("&Functions"), menuFunctions);
- menuFunctions->insertTearOffHandle();
- menuFunctions->insertItem(tr("Set fixed length"), DrumCanvas::CMD_FIXED_LEN);
- menuFunctions->insertItem(tr("Modify Velocity"), DrumCanvas::CMD_MODIFY_VELOCITY);
+ connect(cutAction, SIGNAL(triggered()), signalMapper, SLOT(map()));
+ connect(copyAction, SIGNAL(triggered()), signalMapper, SLOT(map()));
+ connect(pasteAction, SIGNAL(triggered()), signalMapper, SLOT(map()));
+ connect(deleteAction, SIGNAL(triggered()), signalMapper, SLOT(map()));
+
+ signalMapper->setMapping(cutAction, DrumCanvas::CMD_CUT);
+ signalMapper->setMapping(copyAction, DrumCanvas::CMD_COPY);
+ signalMapper->setMapping(pasteAction, DrumCanvas::CMD_PASTE);
+ signalMapper->setMapping(deleteAction, DrumCanvas::CMD_DEL);
- menuSelect = new Q3PopupMenu(this);
- menuSelect->insertItem(tr("Select All"), DrumCanvas::CMD_SELECT_ALL);
- menuSelect->insertItem(tr("Select None"), DrumCanvas::CMD_SELECT_NONE);
- menuSelect->insertItem(tr("Invert"), DrumCanvas::CMD_SELECT_INVERT);
+ menuSelect = menuEdit->addMenu(QIcon(*selectIcon), tr("&Select"));
+
+ sallAction = menuSelect->addAction(QIcon(*select_allIcon), tr("Select All"));
+ snoneAction = menuSelect->addAction(QIcon(*select_deselect_allIcon), tr("Select None"));
+ invAction = menuSelect->addAction(QIcon(*select_invert_selectionIcon), tr("Invert"));
menuSelect->insertSeparator();
- menuSelect->insertItem(tr("Inside Loop"), DrumCanvas::CMD_SELECT_ILOOP);
- menuSelect->insertItem(tr("Outside Loop"), DrumCanvas::CMD_SELECT_OLOOP);
+ inAction = menuSelect->addAction(QIcon(*select_inside_loopIcon), tr("Inside Loop"));
+ outAction = menuSelect->addAction(QIcon(*select_outside_loopIcon), tr("Outside Loop"));
menuSelect->insertSeparator();
- menuSelect->insertItem(tr("Previous Part"), DrumCanvas::CMD_SELECT_PREV_PART);
- menuSelect->insertItem(tr("Next Part"), DrumCanvas::CMD_SELECT_NEXT_PART);
-
- menuEdit->insertItem(tr("&Select"), menuSelect);
+ prevAction = menuSelect->addAction(QIcon(*select_all_parts_on_trackIcon), tr("Previous Part"));
+ nextAction = menuSelect->addAction(QIcon(*select_all_parts_on_trackIcon), tr("Next Part"));
+
+ connect(sallAction, SIGNAL(triggered()), signalMapper, SLOT(map()));
+ connect(snoneAction, SIGNAL(triggered()), signalMapper, SLOT(map()));
+ connect(invAction, SIGNAL(triggered()), signalMapper, SLOT(map()));
+ connect(inAction, SIGNAL(triggered()), signalMapper, SLOT(map()));
+ connect(outAction, SIGNAL(triggered()), signalMapper, SLOT(map()));
+ connect(prevAction, SIGNAL(triggered()), signalMapper, SLOT(map()));
+ connect(nextAction, SIGNAL(triggered()), signalMapper, SLOT(map()));
+
+ signalMapper->setMapping(sallAction, DrumCanvas::CMD_SELECT_ALL);
+ signalMapper->setMapping(snoneAction, DrumCanvas::CMD_SELECT_NONE);
+ signalMapper->setMapping(invAction, DrumCanvas::CMD_SELECT_INVERT);
+ signalMapper->setMapping(inAction, DrumCanvas::CMD_SELECT_ILOOP);
+ signalMapper->setMapping(outAction, DrumCanvas::CMD_SELECT_OLOOP);
+ signalMapper->setMapping(prevAction, DrumCanvas::CMD_SELECT_PREV_PART);
+ signalMapper->setMapping(nextAction, DrumCanvas::CMD_SELECT_NEXT_PART);
+
+ // Functions
+ menuFunctions = new QMenu(tr("&Functions"));
+ menuBar()->addMenu(menuFunctions);
+ menuFunctions->insertTearOffHandle();
+ fixedAction = menuFunctions->addAction(tr("Set fixed length"));
+ veloAction = menuFunctions->addAction(tr("Modify Velocity"));
+
+ connect(fixedAction, SIGNAL(triggered()), signalMapper, SLOT(map()));
+ connect(veloAction, SIGNAL(triggered()), signalMapper, SLOT(map()));
- Q3PopupMenu* menuScriptPlugins = new Q3PopupMenu(this);
+ signalMapper->setMapping(fixedAction, DrumCanvas::CMD_FIXED_LEN);
+ signalMapper->setMapping(veloAction, DrumCanvas::CMD_MODIFY_VELOCITY);
+
+ QMenu* menuScriptPlugins = new QMenu(tr("&Plugins"));
song->populateScriptMenu(menuScriptPlugins, this);
- menuBar()->insertItem(tr("&Plugins"), menuScriptPlugins);
+ menuBar()->addMenu(menuScriptPlugins);
- connect(menuFile, SIGNAL(activated(int)), SLOT(cmd(int)));
- connect(menuEdit, SIGNAL(activated(int)), SLOT(cmd(int)));
- connect(menuSelect, SIGNAL(activated(int)), SLOT(cmd(int)));
- connect(menuFunctions, SIGNAL(activated(int)), SLOT(cmd(int)));
+ connect(signalMapper, SIGNAL(mapped(int)), SLOT(cmd(int)));
//---------------------------------------------------
// Toolbars
@@ -241,7 +242,7 @@ DrumEdit::DrumEdit(PartList* pl, QWidget* parent, const char* name, unsigned ini
connect(sdm, SIGNAL(clicked()), SLOT(save()));
tools->addWidget(sdm);
- tools->addAction(QWhatsThis::createAction(this));
+ tools->addAction(QWhatsThis::createAction());
tools->addSeparator();
tools->addActions(undoRedo->actions());
@@ -282,7 +283,7 @@ DrumEdit::DrumEdit(PartList* pl, QWidget* parent, const char* name, unsigned ini
//---------------------------------------------------
split1 = new Splitter(Qt::Vertical, mainw, "split1");
- QPushButton* ctrl = new QPushButton(tr("ctrl"), mainw, "Ctrl");
+ QPushButton* ctrl = new QPushButton(tr("ctrl"), mainw);
ctrl->setFont(config.fonts[3]);
hscroll = new ScrollScale(-25, -2, xscale, 20000, Qt::Horizontal, mainw);
ctrl->setFixedSize(40, hscroll->sizeHint().height());
@@ -302,8 +303,8 @@ DrumEdit::DrumEdit(PartList* pl, QWidget* parent, const char* name, unsigned ini
// mainGrid->addItem(new QSpacerItem(0, hscroll->sizeHint().height()), 1, 0);
split2 = new Splitter(Qt::Horizontal, split1, "split2");
- split1w1 = new QWidget(split2, "split1w1");
- QWidget* split1w2 = new QWidget(split2, "split1w2");
+ split1w1 = new QWidget(split2);
+ QWidget* split1w2 = new QWidget(split2);
QGridLayout* gridS1 = new QGridLayout(split1w1);
QGridLayout* gridS2 = new QGridLayout(split1w2);
gridS1->setContentsMargins(0, 0, 0, 0);
@@ -339,23 +340,24 @@ DrumEdit::DrumEdit(PartList* pl, QWidget* parent, const char* name, unsigned ini
//
// Reihenfolge in dlist.c festgeschrieben ("Dcols")
//
- header = new Header(split1w1, "header");
- header->setFixedHeight(30);
+ header = new HeaderNew(split1w1, "header");
+ header->setFixedHeight(31);
header->addLabel(tr("M"), 20);
- header->addLabel(tr("Sound"), 100);
+ header->addLabel(tr("Sound"), 120);
header->addLabel(tr("Vol"));
- header->addLabel(tr("QNT"));
- header->addLabel(tr("E-Note"));
+ header->addLabel(tr("QNT"), 30);
+ header->addLabel(tr("E-Note"), 50);
header->addLabel(tr("Len"));
- header->addLabel(tr("A-Note"));
+ header->addLabel(tr("A-Note"), 50);
header->addLabel(tr("Ch"));
- header->addLabel(tr("Port"), 60);
+ header->addLabel(tr("Port"), 70);
header->addLabel(tr("LV1"));
header->addLabel(tr("LV2"));
header->addLabel(tr("LV3"));
header->addLabel(tr("LV4"));
- new DHeaderTip(header);
- new DWhatsThis(header, header);
+
+ setHeaderToolTips();
+ setHeaderWhatsThis();
dlist = new DList(header, split1w1, yscale);
// p3.3.44
@@ -1153,22 +1155,25 @@ void DrumEdit::keyPressEvent(QKeyEvent* event)
void DrumEdit::initShortcuts()
{
- menuEdit->setAccel(shortcuts[SHRT_CUT].key, DrumCanvas::CMD_CUT);
- menuEdit->setAccel(shortcuts[SHRT_COPY].key, DrumCanvas::CMD_COPY);;
- menuEdit->setAccel(shortcuts[SHRT_PASTE].key, DrumCanvas::CMD_PASTE);
- menuEdit->setAccel(shortcuts[SHRT_DELETE].key, DrumCanvas::CMD_DEL);
- menuFile->setAccel(shortcuts[SHRT_OPEN].key, DrumCanvas::CMD_LOAD);
- menuFile->setAccel(shortcuts[SHRT_SAVE].key, DrumCanvas::CMD_SAVE);
- menuFunctions->setAccel(shortcuts[SHRT_FIXED_LEN].key, DrumCanvas::CMD_FIXED_LEN);
- menuFunctions->setAccel(shortcuts[SHRT_MODIFY_VELOCITY].key, DrumCanvas::CMD_MODIFY_VELOCITY);
- menuSelect->setAccel(shortcuts[SHRT_SELECT_ALL].key, DrumCanvas::CMD_SELECT_ALL);
- menuSelect->setAccel(shortcuts[SHRT_SELECT_NONE].key, DrumCanvas::CMD_SELECT_NONE);
- menuSelect->setAccel(shortcuts[SHRT_SELECT_INVERT].key, DrumCanvas::CMD_SELECT_INVERT);
- menuSelect->setAccel(shortcuts[SHRT_SELECT_ILOOP].key, DrumCanvas::CMD_SELECT_ILOOP);
- menuSelect->setAccel(shortcuts[SHRT_SELECT_OLOOP].key, DrumCanvas::CMD_SELECT_OLOOP);
+ loadAction->setAccel(shortcuts[SHRT_OPEN].key);
+ saveAction->setAccel(shortcuts[SHRT_SAVE].key);
+
+ cutAction->setAccel(shortcuts[SHRT_CUT].key);
+ copyAction->setAccel(shortcuts[SHRT_COPY].key);
+ pasteAction->setAccel(shortcuts[SHRT_PASTE].key);
+ deleteAction->setAccel(shortcuts[SHRT_DELETE].key);
+
+ fixedAction->setAccel(shortcuts[SHRT_FIXED_LEN].key);
+ veloAction->setAccel(shortcuts[SHRT_MODIFY_VELOCITY].key);
+
+ sallAction->setAccel(shortcuts[SHRT_SELECT_ALL].key);
+ snoneAction->setAccel(shortcuts[SHRT_SELECT_NONE].key);
+ invAction->setAccel(shortcuts[SHRT_SELECT_INVERT].key);
+ inAction->setAccel(shortcuts[SHRT_SELECT_ILOOP].key);
+ outAction->setAccel(shortcuts[SHRT_SELECT_OLOOP].key);
- menuSelect->setAccel(shortcuts[SHRT_SELECT_PREV_PART].key, DrumCanvas::CMD_SELECT_PREV_PART);
- menuSelect->setAccel(shortcuts[SHRT_SELECT_NEXT_PART].key, DrumCanvas::CMD_SELECT_NEXT_PART);
+ prevAction->setAccel(shortcuts[SHRT_SELECT_PREV_PART].key);
+ nextAction->setAccel(shortcuts[SHRT_SELECT_NEXT_PART].key);
}
//---------------------------------------------------------