rework ctrl+pgup/dn to jump to next actual pattern entry

portability/boost
zetaPRIME 2019-07-15 23:51:32 -04:00
parent cc3ac5fdd5
commit 95bb879ff4
1 changed files with 15 additions and 17 deletions

View File

@ -285,24 +285,22 @@ MainWindow::MainWindow(QWidget *parent) :
{ /* Set up keyboard shortcuts for pattern view */ } {
// Ctrl+PgUp/Down - previous or next pattern in sequencer
connect(new QShortcut(QKeySequence("Ctrl+PgUp"), ui->pattern), &QShortcut::activated, this, [this] {
auto i = ui->patternSequencer->currentIndex();
if (!i.isValid()) {
ui->patternSequencer->setCurrentIndex(ui->patternSequencer->model()->index(ui->patternSequencer->horizontalHeader()->count() - 1, 0));
return;
auto nxPt = [this](int off) {
auto ix = ui->patternSequencer->currentIndex();
int i = ix.column();
int ss = static_cast<int>(project->sequence.size());
if (!ix.isValid()) i = off > 0 ? -1 : 0;
for (int c = 0; c < ss; c++) {
i = (ss+i+off) % ss;
auto& se = project->sequence[static_cast<size_t>(i)];
if (auto p = se.pattern(); p) {
ui->patternSequencer->setCurrentIndex(ui->patternSequencer->model()->index(0, i));
return;
}
}
auto count = ui->patternSequencer->horizontalHeader()->count();
ui->patternSequencer->setCurrentIndex(i.siblingAtColumn((count + i.column() - 1) % count));
});
connect(new QShortcut(QKeySequence("Ctrl+PgDown"), ui->pattern), &QShortcut::activated, this, [this] {
auto i = ui->patternSequencer->currentIndex();
if (!i.isValid()) {
ui->patternSequencer->setCurrentIndex(ui->patternSequencer->model()->index(0, 0));
return;
}
auto count = ui->patternSequencer->horizontalHeader()->count();
ui->patternSequencer->setCurrentIndex(i.siblingAtColumn((count + i.column() + 1) % count));
});
};
connect(new QShortcut(QKeySequence("Ctrl+PgUp"), ui->pattern), &QShortcut::activated, this, [nxPt] { nxPt(-1); });
connect(new QShortcut(QKeySequence("Ctrl+PgDown"), ui->pattern), &QShortcut::activated, this, [nxPt] { nxPt(1); });
/* tmp test
connect(new QShortcut(QKeySequence("Ctrl+F1"), ui->patchboard), &QShortcut::activated, this, [this] {