Added contect menu to Qt TAS piano roll.
This commit is contained in:
parent
d124808c1b
commit
2072269edc
|
@ -2243,21 +2243,29 @@ void TasEditorWindow::setCurrentPattern(int idx)
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
void TasEditorWindow::recordingChanged(int state)
|
void TasEditorWindow::recordingChanged(int state)
|
||||||
{
|
{
|
||||||
|
fceuCriticalSection emuLock;
|
||||||
|
|
||||||
FCEUI_MovieToggleReadOnly();
|
FCEUI_MovieToggleReadOnly();
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
void TasEditorWindow::editUndoCB(void)
|
void TasEditorWindow::editUndoCB(void)
|
||||||
{
|
{
|
||||||
|
fceuCriticalSection emuLock;
|
||||||
|
|
||||||
history.undo();
|
history.undo();
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
void TasEditorWindow::editRedoCB(void)
|
void TasEditorWindow::editRedoCB(void)
|
||||||
{
|
{
|
||||||
|
fceuCriticalSection emuLock;
|
||||||
|
|
||||||
history.redo();
|
history.redo();
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
void TasEditorWindow::editUndoSelCB(void)
|
void TasEditorWindow::editUndoSelCB(void)
|
||||||
{
|
{
|
||||||
|
fceuCriticalSection emuLock;
|
||||||
|
|
||||||
int dragMode = pianoRoll->getDragMode();
|
int dragMode = pianoRoll->getDragMode();
|
||||||
|
|
||||||
if ( (dragMode != DRAG_MODE_SELECTION) && (dragMode != DRAG_MODE_DESELECTION) )
|
if ( (dragMode != DRAG_MODE_SELECTION) && (dragMode != DRAG_MODE_DESELECTION) )
|
||||||
|
@ -2269,6 +2277,8 @@ void TasEditorWindow::editUndoSelCB(void)
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
void TasEditorWindow::editRedoSelCB(void)
|
void TasEditorWindow::editRedoSelCB(void)
|
||||||
{
|
{
|
||||||
|
fceuCriticalSection emuLock;
|
||||||
|
|
||||||
int dragMode = pianoRoll->getDragMode();
|
int dragMode = pianoRoll->getDragMode();
|
||||||
|
|
||||||
if ( (dragMode != DRAG_MODE_SELECTION) && (dragMode != DRAG_MODE_DESELECTION) )
|
if ( (dragMode != DRAG_MODE_SELECTION) && (dragMode != DRAG_MODE_DESELECTION) )
|
||||||
|
@ -2280,6 +2290,8 @@ void TasEditorWindow::editRedoSelCB(void)
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
void TasEditorWindow::editDeselectAll(void)
|
void TasEditorWindow::editDeselectAll(void)
|
||||||
{
|
{
|
||||||
|
fceuCriticalSection emuLock;
|
||||||
|
|
||||||
int dragMode = pianoRoll->getDragMode();
|
int dragMode = pianoRoll->getDragMode();
|
||||||
|
|
||||||
if ( (dragMode != DRAG_MODE_SELECTION) && (dragMode != DRAG_MODE_DESELECTION) )
|
if ( (dragMode != DRAG_MODE_SELECTION) && (dragMode != DRAG_MODE_DESELECTION) )
|
||||||
|
@ -2290,6 +2302,8 @@ void TasEditorWindow::editDeselectAll(void)
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
void TasEditorWindow::editSelectAll(void)
|
void TasEditorWindow::editSelectAll(void)
|
||||||
{
|
{
|
||||||
|
fceuCriticalSection emuLock;
|
||||||
|
|
||||||
int dragMode = pianoRoll->getDragMode();
|
int dragMode = pianoRoll->getDragMode();
|
||||||
|
|
||||||
if ( (dragMode != DRAG_MODE_SELECTION) && (dragMode != DRAG_MODE_DESELECTION) )
|
if ( (dragMode != DRAG_MODE_SELECTION) && (dragMode != DRAG_MODE_DESELECTION) )
|
||||||
|
@ -2300,6 +2314,8 @@ void TasEditorWindow::editSelectAll(void)
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
void TasEditorWindow::editSelBtwMkrs(void)
|
void TasEditorWindow::editSelBtwMkrs(void)
|
||||||
{
|
{
|
||||||
|
fceuCriticalSection emuLock;
|
||||||
|
|
||||||
int dragMode = pianoRoll->getDragMode();
|
int dragMode = pianoRoll->getDragMode();
|
||||||
|
|
||||||
if ( (dragMode != DRAG_MODE_SELECTION) && (dragMode != DRAG_MODE_DESELECTION) )
|
if ( (dragMode != DRAG_MODE_SELECTION) && (dragMode != DRAG_MODE_DESELECTION) )
|
||||||
|
@ -2310,6 +2326,8 @@ void TasEditorWindow::editSelBtwMkrs(void)
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
void TasEditorWindow::editReselectClipboard(void)
|
void TasEditorWindow::editReselectClipboard(void)
|
||||||
{
|
{
|
||||||
|
fceuCriticalSection emuLock;
|
||||||
|
|
||||||
int dragMode = pianoRoll->getDragMode();
|
int dragMode = pianoRoll->getDragMode();
|
||||||
|
|
||||||
if ( (dragMode != DRAG_MODE_SELECTION) && (dragMode != DRAG_MODE_DESELECTION) )
|
if ( (dragMode != DRAG_MODE_SELECTION) && (dragMode != DRAG_MODE_DESELECTION) )
|
||||||
|
@ -2321,51 +2339,71 @@ void TasEditorWindow::editReselectClipboard(void)
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
void TasEditorWindow::editCutCB(void)
|
void TasEditorWindow::editCutCB(void)
|
||||||
{
|
{
|
||||||
|
fceuCriticalSection emuLock;
|
||||||
|
|
||||||
splicer.cutSelectedInputToClipboard();
|
splicer.cutSelectedInputToClipboard();
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
void TasEditorWindow::editCopyCB(void)
|
void TasEditorWindow::editCopyCB(void)
|
||||||
{
|
{
|
||||||
|
fceuCriticalSection emuLock;
|
||||||
|
|
||||||
splicer.copySelectedInputToClipboard();
|
splicer.copySelectedInputToClipboard();
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
void TasEditorWindow::editPasteCB(void)
|
void TasEditorWindow::editPasteCB(void)
|
||||||
{
|
{
|
||||||
|
fceuCriticalSection emuLock;
|
||||||
|
|
||||||
splicer.pasteInputFromClipboard();
|
splicer.pasteInputFromClipboard();
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
void TasEditorWindow::editPasteInsertCB(void)
|
void TasEditorWindow::editPasteInsertCB(void)
|
||||||
{
|
{
|
||||||
|
fceuCriticalSection emuLock;
|
||||||
|
|
||||||
splicer.pasteInsertInputFromClipboard();
|
splicer.pasteInsertInputFromClipboard();
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
void TasEditorWindow::editClearCB(void)
|
void TasEditorWindow::editClearCB(void)
|
||||||
{
|
{
|
||||||
|
fceuCriticalSection emuLock;
|
||||||
|
|
||||||
splicer.clearSelectedFrames();
|
splicer.clearSelectedFrames();
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
void TasEditorWindow::editDeleteCB(void)
|
void TasEditorWindow::editDeleteCB(void)
|
||||||
{
|
{
|
||||||
|
fceuCriticalSection emuLock;
|
||||||
|
|
||||||
splicer.deleteSelectedFrames();
|
splicer.deleteSelectedFrames();
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
void TasEditorWindow::editCloneCB(void)
|
void TasEditorWindow::editCloneCB(void)
|
||||||
{
|
{
|
||||||
|
fceuCriticalSection emuLock;
|
||||||
|
|
||||||
splicer.cloneSelectedFrames();
|
splicer.cloneSelectedFrames();
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
void TasEditorWindow::editInsertCB(void)
|
void TasEditorWindow::editInsertCB(void)
|
||||||
{
|
{
|
||||||
|
fceuCriticalSection emuLock;
|
||||||
|
|
||||||
splicer.insertSelectedFrames();
|
splicer.insertSelectedFrames();
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
void TasEditorWindow::editInsertNumFramesCB(void)
|
void TasEditorWindow::editInsertNumFramesCB(void)
|
||||||
{
|
{
|
||||||
|
fceuCriticalSection emuLock;
|
||||||
|
|
||||||
splicer.insertNumberOfFrames();
|
splicer.insertNumberOfFrames();
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
void TasEditorWindow::editTruncateMovieCB(void)
|
void TasEditorWindow::editTruncateMovieCB(void)
|
||||||
{
|
{
|
||||||
|
fceuCriticalSection emuLock;
|
||||||
|
|
||||||
splicer.truncateMovie();
|
splicer.truncateMovie();
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
|
@ -3199,6 +3237,8 @@ bool TasEditorWindow::handleInputColumnSet(int joy, int button)
|
||||||
|
|
||||||
void TasEditorWindow::setMarkers(void)
|
void TasEditorWindow::setMarkers(void)
|
||||||
{
|
{
|
||||||
|
fceuCriticalSection emuLock;
|
||||||
|
|
||||||
RowsSelection* current_selection = selection.getCopyOfCurrentRowsSelection();
|
RowsSelection* current_selection = selection.getCopyOfCurrentRowsSelection();
|
||||||
if (current_selection->size())
|
if (current_selection->size())
|
||||||
{
|
{
|
||||||
|
@ -3212,7 +3252,7 @@ void TasEditorWindow::setMarkers(void)
|
||||||
if (markersManager.setMarkerAtFrame(*it))
|
if (markersManager.setMarkerAtFrame(*it))
|
||||||
{
|
{
|
||||||
changes_made = true;
|
changes_made = true;
|
||||||
pianoRoll->update();
|
//pianoRoll->update();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3225,6 +3265,8 @@ void TasEditorWindow::setMarkers(void)
|
||||||
}
|
}
|
||||||
void TasEditorWindow::removeMarkers(void)
|
void TasEditorWindow::removeMarkers(void)
|
||||||
{
|
{
|
||||||
|
fceuCriticalSection emuLock;
|
||||||
|
|
||||||
RowsSelection* current_selection = selection.getCopyOfCurrentRowsSelection();
|
RowsSelection* current_selection = selection.getCopyOfCurrentRowsSelection();
|
||||||
if (current_selection->size())
|
if (current_selection->size())
|
||||||
{
|
{
|
||||||
|
@ -3237,7 +3279,7 @@ void TasEditorWindow::removeMarkers(void)
|
||||||
{
|
{
|
||||||
markersManager.removeMarkerFromFrame(*it);
|
markersManager.removeMarkerFromFrame(*it);
|
||||||
changes_made = true;
|
changes_made = true;
|
||||||
pianoRoll->update();
|
//pianoRoll->update();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (changes_made)
|
if (changes_made)
|
||||||
|
@ -3248,6 +3290,13 @@ void TasEditorWindow::removeMarkers(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
|
void TasEditorWindow::ungreenzoneSelectedFrames(void)
|
||||||
|
{
|
||||||
|
fceuCriticalSection emuLock;
|
||||||
|
|
||||||
|
greenzone.ungreenzoneSelectedFrames();
|
||||||
|
}
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
void TasEditorWindow::upperMarkerLabelClicked(void)
|
void TasEditorWindow::upperMarkerLabelClicked(void)
|
||||||
{
|
{
|
||||||
pianoRoll->followPlaybackCursor();
|
pianoRoll->followPlaybackCursor();
|
||||||
|
@ -3858,6 +3907,96 @@ void QPianoRoll::mouseDoubleClickEvent(QMouseEvent * event)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
|
void QPianoRoll::contextMenuEvent(QContextMenuEvent *event)
|
||||||
|
{
|
||||||
|
bool drawContext, rowIsSel;
|
||||||
|
|
||||||
|
rowIsSel = selection->isRowSelected( rowUnderMouse );
|
||||||
|
|
||||||
|
drawContext = rowIsSel &&
|
||||||
|
( (columnUnderMouse == COLUMN_ICONS) || (columnUnderMouse == COLUMN_FRAMENUM) || (columnUnderMouse == COLUMN_FRAMENUM2) );
|
||||||
|
|
||||||
|
if ( !drawContext )
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
int mkr;
|
||||||
|
QAction *act;
|
||||||
|
QMenu menu(this);
|
||||||
|
fceuCriticalSection emuLock;
|
||||||
|
|
||||||
|
mkr = markersManager->getMarkerAtFrame( rowUnderMouse );
|
||||||
|
|
||||||
|
act = new QAction(tr("Set Markers"), &menu);
|
||||||
|
menu.addAction(act);
|
||||||
|
act->setEnabled( mkr == 0 );
|
||||||
|
act->setShortcut(QKeySequence(tr("Double Click")));
|
||||||
|
connect(act, SIGNAL(triggered(void)), tasWin, SLOT(setMarkers(void)));
|
||||||
|
|
||||||
|
act = new QAction(tr("Remove Markers"), &menu);
|
||||||
|
menu.addAction(act);
|
||||||
|
act->setEnabled( mkr > 0 );
|
||||||
|
//act->setShortcut(QKeySequence(tr("Dbl-clk")));
|
||||||
|
connect(act, SIGNAL(triggered(void)), tasWin, SLOT(removeMarkers(void)));
|
||||||
|
|
||||||
|
menu.addSeparator();
|
||||||
|
|
||||||
|
act = new QAction(tr("Deselect"), &menu);
|
||||||
|
menu.addAction(act);
|
||||||
|
//act->setShortcut(QKeySequence(tr("D")));
|
||||||
|
connect(act, SIGNAL(triggered(void)), tasWin, SLOT(editDeselectAll(void)));
|
||||||
|
|
||||||
|
act = new QAction(tr("Select between markers"), &menu);
|
||||||
|
menu.addAction(act);
|
||||||
|
act->setShortcut(QKeySequence(tr("Ctrl-A")));
|
||||||
|
connect(act, SIGNAL(triggered(void)), tasWin, SLOT(editSelBtwMkrs(void)));
|
||||||
|
|
||||||
|
menu.addSeparator();
|
||||||
|
|
||||||
|
act = new QAction(tr("Ungreenzone"), &menu);
|
||||||
|
menu.addAction(act);
|
||||||
|
//act->setShortcut(QKeySequence(tr("Ctrl-A")));
|
||||||
|
connect(act, SIGNAL(triggered(void)), tasWin, SLOT(ungreenzoneSelectedFrames(void)));
|
||||||
|
|
||||||
|
menu.addSeparator();
|
||||||
|
|
||||||
|
act = new QAction(tr("Clear"), &menu);
|
||||||
|
menu.addAction(act);
|
||||||
|
act->setShortcut(QKeySequence(tr("Del")));
|
||||||
|
connect(act, SIGNAL(triggered(void)), tasWin, SLOT(editClearCB(void)));
|
||||||
|
|
||||||
|
act = new QAction(tr("Delete"), &menu);
|
||||||
|
menu.addAction(act);
|
||||||
|
act->setShortcut(QKeySequence(tr("Ctrl+Del")));
|
||||||
|
connect(act, SIGNAL(triggered(void)), tasWin, SLOT(editDeleteCB(void)));
|
||||||
|
|
||||||
|
act = new QAction(tr("Clone"), &menu);
|
||||||
|
menu.addAction(act);
|
||||||
|
act->setShortcut(QKeySequence(tr("Ctrl+Ins")));
|
||||||
|
connect(act, SIGNAL(triggered(void)), tasWin, SLOT(editCloneCB(void)));
|
||||||
|
|
||||||
|
act = new QAction(tr("Insert"), &menu);
|
||||||
|
menu.addAction(act);
|
||||||
|
act->setShortcut(QKeySequence(tr("Ctrl+Shift+Ins")));
|
||||||
|
connect(act, SIGNAL(triggered(void)), tasWin, SLOT(editInsertCB(void)));
|
||||||
|
|
||||||
|
act = new QAction(tr("Insert # of Frames"), &menu);
|
||||||
|
menu.addAction(act);
|
||||||
|
act->setShortcut(QKeySequence(tr("Ins")));
|
||||||
|
connect(act, SIGNAL(triggered(void)), tasWin, SLOT(editInsertNumFramesCB(void)));
|
||||||
|
|
||||||
|
menu.addSeparator();
|
||||||
|
|
||||||
|
act = new QAction(tr("Truncate Movie"), &menu);
|
||||||
|
menu.addAction(act);
|
||||||
|
//act->setShortcut(QKeySequence(tr("Ins")));
|
||||||
|
connect(act, SIGNAL(triggered(void)), tasWin, SLOT(editTruncateMovieCB(void)));
|
||||||
|
|
||||||
|
menu.exec(event->globalPos());
|
||||||
|
|
||||||
|
event->accept();
|
||||||
|
}
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
void QPianoRoll::mousePressEvent(QMouseEvent * event)
|
void QPianoRoll::mousePressEvent(QMouseEvent * event)
|
||||||
{
|
{
|
||||||
fceuCriticalSection emuLock;
|
fceuCriticalSection emuLock;
|
||||||
|
@ -3880,7 +4019,7 @@ void QPianoRoll::mousePressEvent(QMouseEvent * event)
|
||||||
kbModifiers = QApplication::keyboardModifiers();
|
kbModifiers = QApplication::keyboardModifiers();
|
||||||
alt_pressed = (kbModifiers & Qt::AltModifier) ? 1 : 0;
|
alt_pressed = (kbModifiers & Qt::AltModifier) ? 1 : 0;
|
||||||
|
|
||||||
printf("Mouse Button Pressed: 0x%x (%i,%i)\n", event->button(), c.x(), c.y() );
|
//printf("Mouse Button Pressed: 0x%x (%i,%i)\n", event->button(), c.x(), c.y() );
|
||||||
|
|
||||||
if ( event->button() == Qt::LeftButton )
|
if ( event->button() == Qt::LeftButton )
|
||||||
{
|
{
|
||||||
|
@ -4041,7 +4180,7 @@ void QPianoRoll::mouseReleaseEvent(QMouseEvent * event)
|
||||||
rowUnderMouse = realRowUnderMouse = line;
|
rowUnderMouse = realRowUnderMouse = line;
|
||||||
columnUnderMouse = col;
|
columnUnderMouse = col;
|
||||||
|
|
||||||
printf("Mouse Button Released: 0x%x (%i,%i)\n", event->button(), c.x(), c.y() );
|
//printf("Mouse Button Released: 0x%x (%i,%i)\n", event->button(), c.x(), c.y() );
|
||||||
|
|
||||||
if ( event->button() == Qt::LeftButton )
|
if ( event->button() == Qt::LeftButton )
|
||||||
{
|
{
|
||||||
|
@ -4053,7 +4192,7 @@ void QPianoRoll::mouseReleaseEvent(QMouseEvent * event)
|
||||||
}
|
}
|
||||||
else if ( event->button() == Qt::RightButton )
|
else if ( event->button() == Qt::RightButton )
|
||||||
{
|
{
|
||||||
//rightButtonDragMode = true;
|
//rightButtonDragMode = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
|
|
|
@ -171,6 +171,7 @@ class QPianoRoll : public QWidget
|
||||||
void keyReleaseEvent(QKeyEvent *event);
|
void keyReleaseEvent(QKeyEvent *event);
|
||||||
void focusInEvent(QFocusEvent *event);
|
void focusInEvent(QFocusEvent *event);
|
||||||
void focusOutEvent(QFocusEvent *event);
|
void focusOutEvent(QFocusEvent *event);
|
||||||
|
void contextMenuEvent(QContextMenuEvent *event);
|
||||||
|
|
||||||
void crossGaps(int zDelta);
|
void crossGaps(int zDelta);
|
||||||
void startDraggingPlaybackCursor(void);
|
void startDraggingPlaybackCursor(void);
|
||||||
|
@ -319,8 +320,6 @@ class TasEditorWindow : public QDialog
|
||||||
bool handleColumnSetUsingPattern(void);
|
bool handleColumnSetUsingPattern(void);
|
||||||
bool handleInputColumnSet(int joy, int button);
|
bool handleInputColumnSet(int joy, int button);
|
||||||
bool handleInputColumnSetUsingPattern(int joy, int button);
|
bool handleInputColumnSetUsingPattern(int joy, int button);
|
||||||
void setMarkers(void);
|
|
||||||
void removeMarkers(void);
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void closeEvent(QCloseEvent *event);
|
void closeEvent(QCloseEvent *event);
|
||||||
|
@ -505,6 +504,9 @@ class TasEditorWindow : public QDialog
|
||||||
void openAboutWindow(void);
|
void openAboutWindow(void);
|
||||||
void autoLuaRunChanged(bool);
|
void autoLuaRunChanged(bool);
|
||||||
void manLuaRun(void);
|
void manLuaRun(void);
|
||||||
|
void setMarkers(void);
|
||||||
|
void removeMarkers(void);
|
||||||
|
void ungreenzoneSelectedFrames(void);
|
||||||
|
|
||||||
friend class RECORDER;
|
friend class RECORDER;
|
||||||
friend class SPLICER;
|
friend class SPLICER;
|
||||||
|
|
Loading…
Reference in New Issue