summaryrefslogtreecommitdiff
path: root/muse2/muse/arranger
diff options
context:
space:
mode:
authorTim E. Real <termtech@rogers.com>2013-01-16 04:23:15 +0000
committerTim E. Real <termtech@rogers.com>2013-01-16 04:23:15 +0000
commit78d5201caed32cb1e55de85287bd3b9fab325bd4 (patch)
tree36cf004042091701361f05c6732f609a99366f48 /muse2/muse/arranger
parentd3a41b3460275ce44c744aa88227a31be44a49c7 (diff)
Various usability fixes. Please see ChangeLog.
Diffstat (limited to 'muse2/muse/arranger')
-rw-r--r--muse2/muse/arranger/arranger.cpp9
-rw-r--r--muse2/muse/arranger/arranger.h2
-rw-r--r--muse2/muse/arranger/arrangerview.cpp31
-rw-r--r--muse2/muse/arranger/arrangerview.h4
-rw-r--r--muse2/muse/arranger/pcanvas.cpp8
-rw-r--r--muse2/muse/arranger/pcanvas.h2
6 files changed, 36 insertions, 20 deletions
diff --git a/muse2/muse/arranger/arranger.cpp b/muse2/muse/arranger/arranger.cpp
index 942a5013..18886bd1 100644
--- a/muse2/muse/arranger/arranger.cpp
+++ b/muse2/muse/arranger/arranger.cpp
@@ -870,12 +870,15 @@ void Arranger::cmd(int cmd)
case CMD_PASTE_CLONE_PART:
ncmd = PartCanvas::CMD_PASTE_CLONE_PART;
break;
+ case CMD_PASTE_PART_TO_TRACK:
+ ncmd = PartCanvas::CMD_PASTE_PART_TO_TRACK;
+ break;
+ case CMD_PASTE_CLONE_PART_TO_TRACK:
+ ncmd = PartCanvas::CMD_PASTE_CLONE_PART_TO_TRACK;
+ break;
case CMD_PASTE_DIALOG:
ncmd = PartCanvas::CMD_PASTE_DIALOG;
break;
- case CMD_PASTE_CLONE_DIALOG:
- ncmd = PartCanvas::CMD_PASTE_CLONE_DIALOG;
- break;
case CMD_INSERT_EMPTYMEAS:
ncmd = PartCanvas::CMD_INSERT_EMPTYMEAS;
break;
diff --git a/muse2/muse/arranger/arranger.h b/muse2/muse/arranger/arranger.h
index e7d48d70..80f1b24c 100644
--- a/muse2/muse/arranger/arranger.h
+++ b/muse2/muse/arranger/arranger.h
@@ -191,7 +191,7 @@ class Arranger : public QWidget {
public:
enum { CMD_CUT_PART, CMD_COPY_PART, CMD_COPY_PART_IN_RANGE, CMD_PASTE_PART, CMD_PASTE_CLONE_PART,
- CMD_PASTE_DIALOG, CMD_PASTE_CLONE_DIALOG, CMD_INSERT_EMPTYMEAS };
+ CMD_PASTE_PART_TO_TRACK, CMD_PASTE_CLONE_PART_TO_TRACK, CMD_PASTE_DIALOG, CMD_INSERT_EMPTYMEAS };
struct custom_col_t
{
diff --git a/muse2/muse/arranger/arrangerview.cpp b/muse2/muse/arranger/arrangerview.cpp
index e91d05f6..7974369a 100644
--- a/muse2/muse/arranger/arrangerview.cpp
+++ b/muse2/muse/arranger/arrangerview.cpp
@@ -125,9 +125,10 @@ ArrangerView::ArrangerView(QWidget* parent)
editCopyAction = new QAction(QIcon(*editcopyIconSet), tr("&Copy"), this);
editCopyRangeAction = new QAction(QIcon(*editcopyIconSet), tr("Copy in range"), this);
editPasteAction = new QAction(QIcon(*editpasteIconSet), tr("&Paste"), this);
- editPasteDialogAction = new QAction(QIcon(*editpasteIconSet), tr("Paste (show dialog)"), this);
editPasteCloneAction = new QAction(QIcon(*editpasteCloneIconSet), tr("Paste c&lone"), this);
- editPasteCloneDialogAction = new QAction(QIcon(*editpasteCloneIconSet), tr("Paste clone (show dialog)"), this);
+ editPasteToTrackAction = new QAction(QIcon(*editpaste2TrackIconSet), tr("Paste to selected &track"), this);
+ editPasteCloneToTrackAction = new QAction(QIcon(*editpasteClone2TrackIconSet), tr("Paste clone to selected trac&k"), this);
+ editPasteDialogAction = new QAction(QIcon(*editpasteIconSet), tr("Paste (show dialo&g)"), this);
editInsertEMAction = new QAction(QIcon(*editpasteIconSet), tr("&Insert Empty Measure"), this);
editDeleteSelectedAction = new QAction(QIcon(*edit_track_delIcon), tr("Delete Selected Tracks"), this);
editDuplicateSelTrackAction = new QAction(QIcon(*edit_track_addIcon), tr("Duplicate Selected Tracks"), this);
@@ -197,9 +198,10 @@ ArrangerView::ArrangerView(QWidget* parent)
menuEdit->addAction(editCopyAction);
menuEdit->addAction(editCopyRangeAction);
menuEdit->addAction(editPasteAction);
- menuEdit->addAction(editPasteDialogAction);
+ menuEdit->addAction(editPasteToTrackAction);
menuEdit->addAction(editPasteCloneAction);
- menuEdit->addAction(editPasteCloneDialogAction);
+ menuEdit->addAction(editPasteCloneToTrackAction);
+ menuEdit->addAction(editPasteDialogAction);
menuEdit->addAction(editInsertEMAction);
menuEdit->addSeparator();
menuEdit->addAction(editShrinkPartsAction);
@@ -282,8 +284,9 @@ ArrangerView::ArrangerView(QWidget* parent)
connect(editCopyRangeAction, SIGNAL(triggered()), editSignalMapper, SLOT(map()));
connect(editPasteAction, SIGNAL(triggered()), editSignalMapper, SLOT(map()));
connect(editPasteCloneAction, SIGNAL(triggered()), editSignalMapper, SLOT(map()));
+ connect(editPasteToTrackAction, SIGNAL(triggered()), editSignalMapper, SLOT(map()));
+ connect(editPasteCloneToTrackAction, SIGNAL(triggered()), editSignalMapper, SLOT(map()));
connect(editPasteDialogAction, SIGNAL(triggered()), editSignalMapper, SLOT(map()));
- connect(editPasteCloneDialogAction, SIGNAL(triggered()), editSignalMapper, SLOT(map()));
connect(editInsertEMAction, SIGNAL(triggered()), editSignalMapper, SLOT(map()));
connect(editDeleteSelectedAction, SIGNAL(triggered()), editSignalMapper, SLOT(map()));
connect(editDuplicateSelTrackAction, SIGNAL(triggered()), editSignalMapper, SLOT(map()));
@@ -304,8 +307,9 @@ ArrangerView::ArrangerView(QWidget* parent)
editSignalMapper->setMapping(editCopyRangeAction, CMD_COPY_RANGE);
editSignalMapper->setMapping(editPasteAction, CMD_PASTE);
editSignalMapper->setMapping(editPasteCloneAction, CMD_PASTE_CLONE);
+ editSignalMapper->setMapping(editPasteToTrackAction, CMD_PASTE_TO_TRACK);
+ editSignalMapper->setMapping(editPasteCloneToTrackAction, CMD_PASTE_CLONE_TO_TRACK);
editSignalMapper->setMapping(editPasteDialogAction, CMD_PASTE_DIALOG);
- editSignalMapper->setMapping(editPasteCloneDialogAction, CMD_PASTE_CLONE_DIALOG);
editSignalMapper->setMapping(editInsertEMAction, CMD_INSERTMEAS);
editSignalMapper->setMapping(editDeleteSelectedAction, CMD_DELETE_TRACK);
editSignalMapper->setMapping(editDuplicateSelTrackAction, CMD_DUPLICATE_TRACK);
@@ -502,12 +506,15 @@ void ArrangerView::cmd(int cmd)
case CMD_PASTE_CLONE:
arranger->cmd(Arranger::CMD_PASTE_CLONE_PART);
break;
+ case CMD_PASTE_TO_TRACK:
+ arranger->cmd(Arranger::CMD_PASTE_PART_TO_TRACK);
+ break;
+ case CMD_PASTE_CLONE_TO_TRACK:
+ arranger->cmd(Arranger::CMD_PASTE_CLONE_PART_TO_TRACK);
+ break;
case CMD_PASTE_DIALOG:
arranger->cmd(Arranger::CMD_PASTE_DIALOG);
break;
- case CMD_PASTE_CLONE_DIALOG:
- arranger->cmd(Arranger::CMD_PASTE_CLONE_DIALOG);
- break;
case CMD_INSERTMEAS:
arranger->cmd(Arranger::CMD_INSERT_EMPTYMEAS);
break;
@@ -690,8 +697,9 @@ void ArrangerView::updateShortcuts()
editCopyRangeAction->setShortcut(shortcuts[SHRT_COPY_RANGE].key);
editPasteAction->setShortcut(shortcuts[SHRT_PASTE].key);
editPasteCloneAction->setShortcut(shortcuts[SHRT_PASTE_CLONE].key);
+ editPasteToTrackAction->setShortcut(shortcuts[SHRT_PASTE_TO_TRACK].key);
+ editPasteCloneToTrackAction->setShortcut(shortcuts[SHRT_PASTE_CLONE_TO_TRACK].key);
editPasteDialogAction->setShortcut(shortcuts[SHRT_PASTE_DIALOG].key);
- editPasteCloneDialogAction->setShortcut(shortcuts[SHRT_PASTE_CLONE_DIALOG].key);
editInsertEMAction->setShortcut(shortcuts[SHRT_INSERTMEAS].key);
//editDeleteSelectedAction has no acceleration
@@ -740,8 +748,9 @@ void ArrangerView::clipboardChanged()
editPasteAction->setEnabled(flag);
editPasteCloneAction->setEnabled(flag);
+ editPasteToTrackAction->setEnabled(flag);
+ editPasteCloneToTrackAction->setEnabled(flag);
editPasteDialogAction->setEnabled(flag);
- editPasteCloneDialogAction->setEnabled(flag);
}
//---------------------------------------------------------
diff --git a/muse2/muse/arranger/arrangerview.h b/muse2/muse/arranger/arrangerview.h
index 6a8f47c9..34695ace 100644
--- a/muse2/muse/arranger/arrangerview.h
+++ b/muse2/muse/arranger/arrangerview.h
@@ -68,7 +68,7 @@ class ArrangerView : public TopWin
enum cmd_enum
{CMD_CUT, CMD_COPY, CMD_COPY_RANGE, CMD_PASTE, CMD_INSERTMEAS, CMD_PASTE_CLONE,
- CMD_PASTE_DIALOG, CMD_PASTE_CLONE_DIALOG, CMD_DELETE,
+ CMD_PASTE_TO_TRACK, CMD_PASTE_CLONE_TO_TRACK, CMD_PASTE_DIALOG, CMD_DELETE,
CMD_SELECT_ALL, CMD_SELECT_NONE, CMD_SELECT_INVERT,
CMD_SELECT_ILOOP, CMD_SELECT_OLOOP, CMD_SELECT_PARTS,
CMD_DELETE_TRACK, CMD_DUPLICATE_TRACK, CMD_EXPAND_PART, CMD_SHRINK_PART, CMD_CLEAN_PART,
@@ -95,7 +95,7 @@ class ArrangerView : public TopWin
QAction *trackMidiAction, *trackDrumAction, *trackNewStyleDrumAction, *trackWaveAction, *trackAOutputAction, *trackAGroupAction;
QAction *trackAInputAction, *trackAAuxAction;
QAction *editCutAction, *editCopyAction, *editCopyRangeAction;
- QAction *editPasteAction, *editPasteCloneAction, *editPasteDialogAction, *editPasteCloneDialogAction;
+ QAction *editPasteAction, *editPasteCloneAction, *editPasteToTrackAction, *editPasteCloneToTrackAction, *editPasteDialogAction;
QAction *editInsertEMAction, *editPasteC2TAction, *editDeleteSelectedAction, *editSelectAllAction, *editDeselectAllAction;
QAction *editDuplicateSelTrackAction;
QAction *editInvertSelectionAction, *editInsideLoopAction, *editOutsideLoopAction, *editAllPartsAction;
diff --git a/muse2/muse/arranger/pcanvas.cpp b/muse2/muse/arranger/pcanvas.cpp
index b842a532..6a97bc99 100644
--- a/muse2/muse/arranger/pcanvas.cpp
+++ b/muse2/muse/arranger/pcanvas.cpp
@@ -2685,13 +2685,17 @@ void PartCanvas::cmd(int cmd)
case CMD_PASTE_CLONE_PART:
paste(true);
break;
+ case CMD_PASTE_PART_TO_TRACK:
+ paste(false, PASTEMODE_MIX, true);
+ break;
+ case CMD_PASTE_CLONE_PART_TO_TRACK:
+ paste(true, PASTEMODE_MIX, true);
+ break;
case CMD_PASTE_DIALOG:
- case CMD_PASTE_CLONE_DIALOG:
{
unsigned temp_begin = AL::sigmap.raster1(MusEGlobal::song->vcpos(),0);
unsigned temp_end = AL::sigmap.raster2(temp_begin + MusECore::get_paste_len(), 0);
paste_dialog->raster = temp_end - temp_begin;
- paste_dialog->clone = (cmd == CMD_PASTE_CLONE_DIALOG);
if (paste_dialog->exec())
{
diff --git a/muse2/muse/arranger/pcanvas.h b/muse2/muse/arranger/pcanvas.h
index c9e4c946..00ae2373 100644
--- a/muse2/muse/arranger/pcanvas.h
+++ b/muse2/muse/arranger/pcanvas.h
@@ -175,7 +175,7 @@ class PartCanvas : public Canvas {
public:
enum { CMD_CUT_PART, CMD_COPY_PART, CMD_COPY_PART_IN_RANGE, CMD_PASTE_PART, CMD_PASTE_CLONE_PART,
- CMD_PASTE_DIALOG, CMD_PASTE_CLONE_DIALOG, CMD_INSERT_EMPTYMEAS };
+ CMD_PASTE_PART_TO_TRACK, CMD_PASTE_CLONE_PART_TO_TRACK, CMD_PASTE_DIALOG, CMD_INSERT_EMPTYMEAS };
PartCanvas(int* raster, QWidget* parent, int, int);
virtual ~PartCanvas();