diff options
Diffstat (limited to 'muse2/muse/midiedit/drumedit.cpp')
-rw-r--r-- | muse2/muse/midiedit/drumedit.cpp | 82 |
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) |