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.cpp82
1 files changed, 37 insertions, 45 deletions
diff --git a/muse2/muse/midiedit/drumedit.cpp b/muse2/muse/midiedit/drumedit.cpp
index b4518fa9..e5b965f1 100644
--- a/muse2/muse/midiedit/drumedit.cpp
+++ b/muse2/muse/midiedit/drumedit.cpp
@@ -65,21 +65,6 @@
namespace MusEGui {
-/*
-static const char* map_file_pattern[] = {
- "Presets (*.map *.map.gz *.map.bz2)",
- "All Files (*)",
- 0
- };
-static const char* map_file_save_pattern[] = {
- "Presets (*.map)",
- "gzip compressed presets (*.map.gz)",
- "bzip2 compressed presets (*.map.bz2)",
- "All Files (*)",
- 0
- };
-*/
-
int DrumEdit::_rasterInit = 96;
int DrumEdit::_dlistWidthInit = 50;
int DrumEdit::_dcanvasWidthInit = 300;
@@ -143,7 +128,6 @@ void DrumEdit::closeEvent(QCloseEvent* e)
_isDeleting = true; // Set flag so certain signals like songChanged, which may cause crash during delete, can be ignored.
QSettings settings("MusE", "MusE-qt");
- //settings.setValue("Drumedit/geometry", saveGeometry());
settings.setValue("Drumedit/windowState", saveState());
//Store values of the horizontal splitter
@@ -163,7 +147,7 @@ void DrumEdit::closeEvent(QCloseEvent* e)
DrumEdit::DrumEdit(MusECore::PartList* pl, QWidget* parent, const char* name, unsigned initPos)
: MidiEditor(TopWin::DRUM, _rasterInit, pl, parent, name)
{
- setFocusPolicy(Qt::StrongFocus);
+ setFocusPolicy(Qt::NoFocus);
split1w1 = 0;
selPart = 0;
@@ -388,12 +372,14 @@ DrumEdit::DrumEdit(MusECore::PartList* pl, QWidget* parent, const char* name, un
QToolButton *ldm = new QToolButton();
ldm->setToolTip(tr("Load Drummap"));
ldm->setIcon(*openIcon);
+ ldm->setFocusPolicy(Qt::NoFocus);
connect(ldm, SIGNAL(clicked()), SLOT(load()));
maptools->addWidget(ldm);
QToolButton *sdm = new QToolButton();
sdm->setToolTip(tr("Store Drummap"));
sdm->setIcon(*saveIcon);
+ sdm->setFocusPolicy(Qt::NoFocus);
connect(sdm, SIGNAL(clicked()), SLOT(save()));
maptools->addWidget(sdm);
@@ -408,12 +394,14 @@ DrumEdit::DrumEdit(MusECore::PartList* pl, QWidget* parent, const char* name, un
srec->setToolTip(tr("Step Record"));
srec->setIcon(*steprecIcon);
srec->setCheckable(true);
+ srec->setFocusPolicy(Qt::NoFocus);
tools->addWidget(srec);
midiin = new QToolButton();
midiin->setToolTip(tr("Midi Input"));
midiin->setIcon(*midiinIcon);
midiin->setCheckable(true);
+ midiin->setFocusPolicy(Qt::NoFocus);
tools->addWidget(midiin);
@@ -436,7 +424,8 @@ DrumEdit::DrumEdit(MusECore::PartList* pl, QWidget* parent, const char* name, un
stepLenWidget->addItem("8");
stepLenWidget->addItem("16");
stepLenWidget->setCurrentIndex(0);
- connect(stepLenWidget, SIGNAL(currentIndexChanged(QString)), SLOT(setStep(QString)));
+ stepLenWidget->setFocusPolicy(Qt::TabFocus);
+ connect(stepLenWidget, SIGNAL(activated(QString)), SLOT(setStep(QString)));
cursorToolbar->addWidget(stepLenWidget);
addToolBarBreak();
@@ -456,9 +445,9 @@ DrumEdit::DrumEdit(MusECore::PartList* pl, QWidget* parent, const char* name, un
QPushButton* ctrl = new QPushButton(tr("ctrl"), mainw);
ctrl->setObjectName("Ctrl");
ctrl->setFont(MusEGlobal::config.fonts[3]);
- //hscroll = new MusEGui::ScrollScale(-25, -2, xscale, 20000, Qt::Horizontal, mainw);
- // Increased scale to -1. To resolve/select/edit 1-tick-wide (controller graph) events. p4.0.18 Tim.
- hscroll = new MusEGui::ScrollScale(-25, -1, xscale, 20000, Qt::Horizontal, mainw);
+ ctrl->setFocusPolicy(Qt::NoFocus);
+ // Increased scale to -1. To resolve/select/edit 1-tick-wide (controller graph) events.
+ hscroll = new MusEGui::ScrollScale(-25, -1 /* formerly -2 */, xscale, 20000, Qt::Horizontal, mainw);
ctrl->setFixedSize(40, hscroll->sizeHint().height());
ctrl->setToolTip(tr("Add Controller View"));
@@ -472,8 +461,6 @@ DrumEdit::DrumEdit(MusECore::PartList* pl, QWidget* parent, const char* name, un
mainGrid->addWidget(ctrl, 1, 0);
mainGrid->addWidget(hscroll, 1, 1);
mainGrid->addWidget(corner, 1, 2, Qt::AlignBottom|Qt::AlignRight);
-// mainGrid->addRowSpacing(1, hscroll->sizeHint().height());
-// mainGrid->addItem(new QSpacerItem(0, hscroll->sizeHint().height()), 1, 0);
split2 = new MusEGui::Splitter(Qt::Horizontal, split1, "split2");
split1w1 = new QWidget(split2);
@@ -503,7 +490,7 @@ DrumEdit::DrumEdit(MusECore::PartList* pl, QWidget* parent, const char* name, un
split2->setSizes(mops);
// By T356. Not much choice but to disable this for now, to stop runaway resize bug.
// Can't seem to get the splitter to readjust when manually setting sizes.
- //split2->setResizeMode(split1w1, QSplitter::KeepSize);
+ //split2->setResizeMode(split1w1, QSplitter::KeepSize); DELETETHIS or FIXME?
gridS2->setRowStretch(1, 100);
gridS2->setColumnStretch(0, 100);
@@ -513,9 +500,8 @@ DrumEdit::DrumEdit(MusECore::PartList* pl, QWidget* parent, const char* name, un
gridS2->addWidget(canvas, 2, 0);
gridS2->addWidget(vscroll, 2, 1);
- //
- // Reihenfolge in dlist.c festgeschrieben ("Dcols")
- //
+
+ // Ordering is hardcoded in dlist.c ("Dcols")
header = new MusEGui::Header(split1w1, "header");
header->setFixedHeight(31);
header->setColumnLabel(tr("H"), COL_HIDE, 20);
@@ -596,7 +582,12 @@ DrumEdit::DrumEdit(MusECore::PartList* pl, QWidget* parent, const char* name, un
connect(toolbar, SIGNAL(rasterChanged(int)), SLOT(setRaster(int)));
connect(toolbar, SIGNAL(soloChanged(bool)), SLOT(soloChanged(bool)));
connect(info, SIGNAL(valueChanged(MusEGui::NoteInfo::ValType, int)), SLOT(noteinfoChanged(MusEGui::NoteInfo::ValType, int)));
-
+ if(MusEGlobal::config.smartFocus)
+ {
+ connect(info, SIGNAL(returnPressed()), SLOT(focusCanvas()));
+ connect(info, SIGNAL(escapePressed()), SLOT(focusCanvas()));
+ }
+
connect(ctrl, SIGNAL(clicked()), SLOT(addCtrl()));
QClipboard* cb = QApplication::clipboard();
@@ -700,7 +691,6 @@ void DrumEdit::setTime(unsigned tick)
DrumEdit::~DrumEdit()
{
- //MusEGlobal::undoRedo->removeFrom(tools); // p4.0.6 Removed
}
//---------------------------------------------------------
@@ -725,6 +715,16 @@ void DrumEdit::setSelection(int tick, MusECore::Event& e, MusECore::Part* p)
}
//---------------------------------------------------------
+// focusCanvas
+//---------------------------------------------------------
+
+void DrumEdit::focusCanvas()
+{
+ canvas->setFocus();
+ canvas->activateWindow();
+}
+
+//---------------------------------------------------------
// soloChanged
//---------------------------------------------------------
@@ -743,6 +743,8 @@ void DrumEdit::setRaster(int val)
_rasterInit = val;
MidiEditor::setRaster(val);
canvas->redrawGrid();
+ if(MusEGlobal::config.smartFocus)
+ focusCanvas(); // give back focus after kb input
}
//---------------------------------------------------------
@@ -774,7 +776,6 @@ void DrumEdit::noteinfoChanged(MusEGui::NoteInfo::ValType type, int val)
break;
}
// Indicate do undo, and do not do port controller values and clone parts.
- //MusEGlobal::audio->msgChangeEvent(selEvent, event, selPart);
MusEGlobal::audio->msgChangeEvent(selEvent, event, selPart, true, false, false);
}
@@ -980,7 +981,6 @@ ende:
void DrumEdit::save()
{
- //QString fn = MusEGui::getSaveFileName(QString("drummaps"), map_file_pattern,
QString fn = MusEGui::getSaveFileName(QString("drummaps"), MusEGlobal::drum_map_file_save_pattern,
this, tr("MusE: Store Drum Map"));
if (fn.isEmpty())
@@ -1050,7 +1050,7 @@ void DrumEdit::cmd(int cmd)
if (quantize_dialog->exec())
quantize_notes(partlist_to_set(parts()), quantize_dialog->range,
(MusEGlobal::config.division*4)/raster,
- /* quant_len= */false, quantize_dialog->strength,
+ /* quant_len= */false, quantize_dialog->strength, // DELETETHIS
quantize_dialog->swing, quantize_dialog->threshold);
break;
}
@@ -1109,8 +1109,6 @@ CtrlEdit* DrumEdit::addCtrl()
connect(dlist, SIGNAL(curDrumInstrumentChanged(int)), canvas, SLOT(setCurDrumInstrument(int)));
connect(canvas, SIGNAL(curPartHasChanged(MusECore::Part*)), ctrlEdit, SLOT(curPartHasChanged(MusECore::Part*)));
- //printf("DrumEdit::addCtrl curDrumInstrument:%d\n", dlist->getSelectedInstrument());
-
setCurDrumInstrument(dlist->getSelectedInstrument());
// p3.3.44
@@ -1121,7 +1119,6 @@ CtrlEdit* DrumEdit::addCtrl()
if(split1w1)
{
- ///split2->setCollapsible(split1w1, false);
split2->setCollapsible(split2->indexOf(split1w1), false);
split1w1->setMinimumWidth(CTRL_PANEL_FIXED_WIDTH);
}
@@ -1155,7 +1152,6 @@ void DrumEdit::removeCtrl(CtrlEdit* ctrl)
if(ctrlEditList.empty())
{
split1w1->setMinimumWidth(0);
- ///split2->setCollapsible(split1w1, true);
split2->setCollapsible(split2->indexOf(split1w1), true);
}
}
@@ -1171,11 +1167,8 @@ void DrumEdit::newCanvasWidth(int w)
nw = 1;
for (std::list<CtrlEdit*>::iterator i = ctrlEditList.begin();
- i != ctrlEditList.end(); ++i) {
- // Changed by Tim. p3.3.7
- //(*i)->setCanvasWidth(w);
+ i != ctrlEditList.end(); ++i)
(*i)->setCanvasWidth(nw);
- }
updateHScrollRange();
}
@@ -1328,7 +1321,7 @@ void DrumEdit::keyPressEvent(QKeyEvent* event)
}
/*
- else if (key == shortcuts[SHRT_INSERT_AT_LOCATION].key) {
+ else if (key == shortcuts[SHRT_INSERT_AT_LOCATION].key) { DELETETHIS
pc->pianoCmd(CMD_INSERT);
return;
}
@@ -1350,7 +1343,7 @@ void DrumEdit::keyPressEvent(QKeyEvent* event)
else if (key == shortcuts[SHRT_TOGGLE_TRIOL].key)
val = rasterTable[index + ((off == 0) ? 9 : 0)];
/*
- else if (key == shortcuts[SHRT_EVENT_COLOR].key) {
+ else if (key == shortcuts[SHRT_EVENT_COLOR].key) { DELETETHIS
if (colorMode == 0)
colorMode = 1;
else if (colorMode == 1)
@@ -1417,7 +1410,6 @@ void DrumEdit::initShortcuts()
//---------------------------------------------------------
void DrumEdit::execDeliveredScript(int id)
{
- //QString scriptfile = QString(INSTPREFIX) + SCRIPTSSUFFIX + deliveredScriptNames[id];
QString scriptfile = MusEGlobal::song->getScriptPath(id, true);
MusEGlobal::song->executeScript(scriptfile.toLatin1().constData(), parts(), raster(), true);
}
@@ -1434,8 +1426,8 @@ void DrumEdit::execUserScript(int id)
void DrumEdit::setStep(QString v)
{
((DrumCanvas*)canvas)->setStep(v.toInt());
- stepLenWidget->setFocusPolicy(Qt::NoFocus);
- canvas->setFocus();
+ if(MusEGlobal::config.smartFocus)
+ focusCanvas();
}
void DrumEdit::ourDrumMapChanged(bool instrMapChanged)