Added TAS editor menu items to Qt GUI.

This commit is contained in:
mjbudd77 2021-11-09 22:05:12 -05:00
parent 1251b8df93
commit a20b7c0749
4 changed files with 349 additions and 11 deletions

View File

@ -315,6 +315,8 @@ TasEditorWindow::TasEditorWindow(QWidget *parent)
initModules(); initModules();
updateCheckedItems();
// Restore Window Geometry // Restore Window Geometry
restoreGeometry(settings.value("tasEditor/geometry").toByteArray()); restoreGeometry(settings.value("tasEditor/geometry").toByteArray());
@ -399,7 +401,7 @@ void TasEditorWindow::closeWindow(void)
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
QMenuBar *TasEditorWindow::buildMenuBar(void) QMenuBar *TasEditorWindow::buildMenuBar(void)
{ {
QMenu *fileMenu, *editMenu; QMenu *fileMenu, *editMenu, *viewMenu, *confMenu, *helpMenu;
//QActionGroup *actGroup; //QActionGroup *actGroup;
QAction *act; QAction *act;
int useNativeMenuBar=0; int useNativeMenuBar=0;
@ -671,6 +673,275 @@ QMenuBar *TasEditorWindow::buildMenuBar(void)
editMenu->addAction(act); editMenu->addAction(act);
// View
viewMenu = menuBar->addMenu(tr("&View"));
// View -> Find Note Window
act = new QAction(tr("Find Note Window"), this);
act->setShortcut(QKeySequence(tr("Ctrl+F")));
act->setStatusTip(tr("Find Note Window"));
//act->setIcon( style()->standardIcon( QStyle::SP_FileDialogStart ) );
//connect(act, SIGNAL(triggered()), this, SLOT(createNewProject(void)) );
viewMenu->addAction(act);
viewMenu->addSeparator();
// View -> Display Branch Screenshots
dpyBrnchScrnAct = act = new QAction(tr("Display Branch Screenshots"), this);
act->setCheckable(true);
//act->setShortcut(QKeySequence(tr("Ctrl+F")));
act->setStatusTip(tr("Display Branch Screenshots"));
//act->setIcon( style()->standardIcon( QStyle::SP_FileDialogStart ) );
//connect(act, SIGNAL(triggered()), this, SLOT(createNewProject(void)) );
viewMenu->addAction(act);
// View -> Display Branch Screenshots
dpyBrnchDescAct = act = new QAction(tr("Display Branch Descriptions"), this);
act->setCheckable(true);
//act->setShortcut(QKeySequence(tr("Ctrl+F")));
act->setStatusTip(tr("Display Branch Descriptions"));
//act->setIcon( style()->standardIcon( QStyle::SP_FileDialogStart ) );
//connect(act, SIGNAL(triggered()), this, SLOT(createNewProject(void)) );
viewMenu->addAction(act);
// View -> Enable Hot Changes
enaHotChgAct = act = new QAction(tr("Enable Hot Changes"), this);
act->setCheckable(true);
//act->setShortcut(QKeySequence(tr("Ctrl+F")));
act->setStatusTip(tr("Enable Hot Changes"));
//act->setIcon( style()->standardIcon( QStyle::SP_FileDialogStart ) );
//connect(act, SIGNAL(triggered()), this, SLOT(createNewProject(void)) );
viewMenu->addAction(act);
viewMenu->addSeparator();
// View -> Follow Undo Content
followUndoAct = act = new QAction(tr("Follow Undo Content"), this);
act->setCheckable(true);
//act->setShortcut(QKeySequence(tr("Ctrl+F")));
act->setStatusTip(tr("Follow Undo Content"));
//act->setIcon( style()->standardIcon( QStyle::SP_FileDialogStart ) );
//connect(act, SIGNAL(triggered()), this, SLOT(createNewProject(void)) );
viewMenu->addAction(act);
// View -> Follow Marker Note Content
followMkrAct = act = new QAction(tr("Follow Marker Note Content"), this);
act->setCheckable(true);
//act->setShortcut(QKeySequence(tr("Ctrl+F")));
act->setStatusTip(tr("Follow Marker Note Content"));
//act->setIcon( style()->standardIcon( QStyle::SP_FileDialogStart ) );
//connect(act, SIGNAL(triggered()), this, SLOT(createNewProject(void)) );
viewMenu->addAction(act);
// Config
confMenu = menuBar->addMenu(tr("&Config"));
// Config -> Project File Saving Options
act = new QAction(tr("Project File Saving Options"), this);
//act->setShortcut(QKeySequence(tr("Ctrl+N")));
act->setStatusTip(tr("Project File Saving Options"));
//act->setIcon( style()->standardIcon( QStyle::SP_FileDialogStart ) );
//connect(act, SIGNAL(triggered()), this, SLOT(createNewProject(void)) );
confMenu->addAction(act);
// Config -> Set Max Undo Levels
act = new QAction(tr("Set Max Undo Levels"), this);
//act->setShortcut(QKeySequence(tr("Ctrl+N")));
act->setStatusTip(tr("Set Max Undo History"));
//act->setIcon( style()->standardIcon( QStyle::SP_FileDialogStart ) );
//connect(act, SIGNAL(triggered()), this, SLOT(createNewProject(void)) );
confMenu->addAction(act);
// Config -> Set Greenzone Capacity
act = new QAction(tr("Set Greenzone Capacity"), this);
//act->setShortcut(QKeySequence(tr("Ctrl+N")));
act->setStatusTip(tr("Set Greenzone Capacity"));
//act->setIcon( style()->standardIcon( QStyle::SP_FileDialogStart ) );
//connect(act, SIGNAL(triggered()), this, SLOT(createNewProject(void)) );
confMenu->addAction(act);
confMenu->addSeparator();
// Config -> Enable Greenzoneing
enaGrnznAct = act = new QAction(tr("Enable Greenzoning"), this);
act->setCheckable(true);
//act->setShortcut(QKeySequence(tr("Ctrl+N")));
act->setStatusTip(tr("Enable Greenzoning"));
//act->setIcon( style()->standardIcon( QStyle::SP_FileDialogStart ) );
//connect(act, SIGNAL(triggered()), this, SLOT(createNewProject(void)) );
confMenu->addAction(act);
// Config -> Autofire Pattern skips Lag
afPtrnSkipLagAct = act = new QAction(tr("Autofire Pattern skips Lag"), this);
act->setCheckable(true);
//act->setShortcut(QKeySequence(tr("Ctrl+N")));
act->setStatusTip(tr("Autofire Pattern skips Lag"));
//act->setIcon( style()->standardIcon( QStyle::SP_FileDialogStart ) );
//connect(act, SIGNAL(triggered()), this, SLOT(createNewProject(void)) );
confMenu->addAction(act);
// Config -> Auto Adjust Input According to Lag
adjInputLagAct = act = new QAction(tr("Auto Adjust Input According to Lag"), this);
act->setCheckable(true);
//act->setShortcut(QKeySequence(tr("Ctrl+N")));
act->setStatusTip(tr("Auto Adjust Input According to Lag"));
//act->setIcon( style()->standardIcon( QStyle::SP_FileDialogStart ) );
//connect(act, SIGNAL(triggered()), this, SLOT(createNewProject(void)) );
confMenu->addAction(act);
confMenu->addSeparator();
// Config -> Draw Input by Dragging
drawInputDragAct = act = new QAction(tr("Draw Input by Dragging"), this);
act->setCheckable(true);
//act->setShortcut(QKeySequence(tr("Ctrl+N")));
act->setStatusTip(tr("Draw Input by Dragging"));
//act->setIcon( style()->standardIcon( QStyle::SP_FileDialogStart ) );
//connect(act, SIGNAL(triggered()), this, SLOT(createNewProject(void)) );
confMenu->addAction(act);
// Config -> Combine Consecutive Recordings/Draws
cmbRecDrawAct = act = new QAction(tr("Combine Consecutive Recordings/Draws"), this);
act->setCheckable(true);
//act->setShortcut(QKeySequence(tr("Ctrl+N")));
act->setStatusTip(tr("Combine Consecutive Recordings/Draws"));
//act->setIcon( style()->standardIcon( QStyle::SP_FileDialogStart ) );
//connect(act, SIGNAL(triggered()), this, SLOT(createNewProject(void)) );
confMenu->addAction(act);
// Config -> Use 1P Keys for all Single Recordings
use1PforRecAct = act = new QAction(tr("Use 1P Keys for all Single Recordings"), this);
act->setCheckable(true);
//act->setShortcut(QKeySequence(tr("Ctrl+N")));
act->setStatusTip(tr("Use 1P Keys for all Single Recordings"));
//act->setIcon( style()->standardIcon( QStyle::SP_FileDialogStart ) );
//connect(act, SIGNAL(triggered()), this, SLOT(createNewProject(void)) );
confMenu->addAction(act);
// Config -> Use Input Keys for Column Set
useInputColSetAct = act = new QAction(tr("Use Input Keys for Column Set"), this);
act->setCheckable(true);
//act->setShortcut(QKeySequence(tr("Ctrl+N")));
act->setStatusTip(tr("Use Input Keys for Column Set"));
//act->setIcon( style()->standardIcon( QStyle::SP_FileDialogStart ) );
//connect(act, SIGNAL(triggered()), this, SLOT(createNewProject(void)) );
confMenu->addAction(act);
confMenu->addSeparator();
// Config -> Bind Markers to Input
bindMkrInputAct = act = new QAction(tr("Bind Markers to Input"), this);
act->setCheckable(true);
//act->setShortcut(QKeySequence(tr("Ctrl+N")));
act->setStatusTip(tr("Bind Markers to Input"));
//act->setIcon( style()->standardIcon( QStyle::SP_FileDialogStart ) );
//connect(act, SIGNAL(triggered()), this, SLOT(createNewProject(void)) );
confMenu->addAction(act);
// Config -> Empty New Marker Notes
emptyNewMkrNotesAct = act = new QAction(tr("Empty New Marker Notes"), this);
act->setCheckable(true);
//act->setShortcut(QKeySequence(tr("Ctrl+N")));
act->setStatusTip(tr("Empty New Marker Notes"));
//act->setIcon( style()->standardIcon( QStyle::SP_FileDialogStart ) );
//connect(act, SIGNAL(triggered()), this, SLOT(createNewProject(void)) );
confMenu->addAction(act);
confMenu->addSeparator();
// Config -> Old Control Scheme for Branching
oldCtlBrnhSchemeAct = act = new QAction(tr("Old Control Scheme for Branching"), this);
act->setCheckable(true);
//act->setShortcut(QKeySequence(tr("Ctrl+N")));
act->setStatusTip(tr("Old Control Scheme for Branching"));
//act->setIcon( style()->standardIcon( QStyle::SP_FileDialogStart ) );
//connect(act, SIGNAL(triggered()), this, SLOT(createNewProject(void)) );
confMenu->addAction(act);
// Config -> Branches Restore Entire Movie
brnchRestoreMovieAct = act = new QAction(tr("Branches Restore Entire Movie"), this);
act->setCheckable(true);
//act->setShortcut(QKeySequence(tr("Ctrl+N")));
act->setStatusTip(tr("Branches Restore Entire Movie"));
//act->setIcon( style()->standardIcon( QStyle::SP_FileDialogStart ) );
//connect(act, SIGNAL(triggered()), this, SLOT(createNewProject(void)) );
confMenu->addAction(act);
// Config -> HUD in Branch Screenshots
hudInScrnBranchAct = act = new QAction(tr("HUD in Branch Screenshots"), this);
act->setCheckable(true);
//act->setShortcut(QKeySequence(tr("Ctrl+N")));
act->setStatusTip(tr("HUD in Branch Screenshots"));
//act->setIcon( style()->standardIcon( QStyle::SP_FileDialogStart ) );
//connect(act, SIGNAL(triggered()), this, SLOT(createNewProject(void)) );
confMenu->addAction(act);
confMenu->addSeparator();
// Config -> Autopause at End of Movie
pauseAtEndAct = act = new QAction(tr("Autopause at End of Movie"), this);
act->setCheckable(true);
//act->setShortcut(QKeySequence(tr("Ctrl+N")));
act->setStatusTip(tr("Autopause at End of Movie"));
//act->setIcon( style()->standardIcon( QStyle::SP_FileDialogStart ) );
//connect(act, SIGNAL(triggered()), this, SLOT(createNewProject(void)) );
confMenu->addAction(act);
// Help
helpMenu = menuBar->addMenu(tr("&Help"));
// Help -> Open TAS Editor Manual
act = new QAction(tr("Open TAS Editor Manual"), this);
//act->setShortcut(QKeySequence(tr("Ctrl+N")));
act->setStatusTip(tr("Open TAS Editor Manual"));
//act->setIcon( style()->standardIcon( QStyle::SP_FileDialogStart ) );
//connect(act, SIGNAL(triggered()), this, SLOT(createNewProject(void)) );
helpMenu->addAction(act);
// Help -> Enable Tool Tips
showToolTipsAct = act = new QAction(tr("Enable Tool Tips"), this);
act->setCheckable(true);
//act->setShortcut(QKeySequence(tr("Ctrl+N")));
act->setStatusTip(tr("Enable Tool Tips"));
//act->setIcon( style()->standardIcon( QStyle::SP_FileDialogStart ) );
//connect(act, SIGNAL(triggered()), this, SLOT(createNewProject(void)) );
helpMenu->addAction(act);
helpMenu->addSeparator();
// Help -> About
act = new QAction(tr("About"), this);
//act->setShortcut(QKeySequence(tr("Ctrl+N")));
act->setStatusTip(tr("About"));
//act->setIcon( style()->standardIcon( QStyle::SP_FileDialogStart ) );
//connect(act, SIGNAL(triggered()), this, SLOT(createNewProject(void)) );
helpMenu->addAction(act);
return menuBar; return menuBar;
} }
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
@ -686,8 +957,8 @@ void TasEditorWindow::buildPianoRollDisplay(void)
pianoRollHBar = new QScrollBar( Qt::Horizontal, this ); pianoRollHBar = new QScrollBar( Qt::Horizontal, this );
upperMarkerLabel = new QLabel( tr("Marker 0") ); upperMarkerLabel = new QLabel( tr("Marker 0") );
lowerMarkerLabel = new QLabel( tr("Marker 1") ); lowerMarkerLabel = new QLabel( tr("Marker 1") );
upperMarkerName = new QLineEdit(); upperMarkerNote = new QLineEdit();
lowerMarkerName = new QLineEdit(); lowerMarkerNote = new QLineEdit();
pianoRoll->setScrollBars( pianoRollHBar, pianoRollVBar ); pianoRoll->setScrollBars( pianoRollHBar, pianoRollVBar );
connect( pianoRollHBar, SIGNAL(valueChanged(int)), pianoRoll, SLOT(hbarChanged(int)) ); connect( pianoRollHBar, SIGNAL(valueChanged(int)), pianoRoll, SLOT(hbarChanged(int)) );
@ -706,14 +977,14 @@ void TasEditorWindow::buildPianoRollDisplay(void)
hbox = new QHBoxLayout(); hbox = new QHBoxLayout();
hbox->addWidget( upperMarkerLabel, 1 ); hbox->addWidget( upperMarkerLabel, 1 );
hbox->addWidget( upperMarkerName, 10 ); hbox->addWidget( upperMarkerNote, 10 );
vbox->addLayout( hbox, 1 ); vbox->addLayout( hbox, 1 );
vbox->addLayout( grid, 100 ); vbox->addLayout( grid, 100 );
hbox = new QHBoxLayout(); hbox = new QHBoxLayout();
hbox->addWidget( lowerMarkerLabel, 1 ); hbox->addWidget( lowerMarkerLabel, 1 );
hbox->addWidget( lowerMarkerName, 10 ); hbox->addWidget( lowerMarkerNote, 10 );
vbox->addLayout( hbox, 1 ); vbox->addLayout( hbox, 1 );
@ -928,6 +1199,51 @@ void TasEditorWindow::buildSideControlPanel(void)
connect( shortcut, SIGNAL(activated(void)), this, SLOT(scrollSelectionDnOne(void)) ); connect( shortcut, SIGNAL(activated(void)), this, SLOT(scrollSelectionDnOne(void)) );
} }
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
void TasEditorWindow::updateCheckedItems(void)
{
followCursorCbox->setChecked( taseditorConfig.followPlaybackCursor );
autoRestoreCbox->setChecked( taseditorConfig.autoRestoreLastPlaybackPosition );
turboSeekCbox->setChecked( taseditorConfig.turboSeek );
if ( taseditorConfig.superimpose == SUPERIMPOSE_CHECKED )
{
recSuperImposeCbox->setCheckState( Qt::Checked );
}
else if ( taseditorConfig.superimpose == SUPERIMPOSE_INDETERMINATE )
{
recSuperImposeCbox->setCheckState( Qt::PartiallyChecked );
}
else
{ //taseditorConfig.superimpose == SUPERIMPOSE_UNCHECKED;
recSuperImposeCbox->setCheckState( Qt::Unchecked );
}
recRecordingCbox->setChecked( !movie_readonly );
recUsePatternCbox->setChecked( taseditorConfig.recordingUsePattern );
dpyBrnchScrnAct->setChecked( taseditorConfig.displayBranchScreenshots );
dpyBrnchDescAct->setChecked( taseditorConfig.displayBranchDescriptions );
enaHotChgAct->setChecked( taseditorConfig.enableHotChanges );
followMkrAct->setChecked( taseditorConfig.followMarkerNoteContext );
followUndoAct->setChecked( taseditorConfig.followUndoContext );
autoLuaCBox->setChecked( taseditorConfig.enableLuaAutoFunction );
dpyBrnchScrnAct->setChecked( taseditorConfig.displayBranchScreenshots );
dpyBrnchDescAct->setChecked( taseditorConfig.displayBranchDescriptions );
enaGrnznAct->setChecked( taseditorConfig.enableGreenzoning );
afPtrnSkipLagAct->setChecked( taseditorConfig.autofirePatternSkipsLag );
adjInputLagAct->setChecked( taseditorConfig.autoAdjustInputAccordingToLag );
drawInputDragAct->setChecked( taseditorConfig.drawInputByDragging );
cmbRecDrawAct->setChecked( taseditorConfig.combineConsecutiveRecordingsAndDraws );
use1PforRecAct->setChecked( taseditorConfig.use1PKeysForAllSingleRecordings );
useInputColSetAct->setChecked( taseditorConfig.useInputKeysForColumnSet );
bindMkrInputAct->setChecked( taseditorConfig.bindMarkersToInput );
emptyNewMkrNotesAct->setChecked( taseditorConfig.emptyNewMarkerNotes );
oldCtlBrnhSchemeAct->setChecked( taseditorConfig.oldControlSchemeForBranching );
brnchRestoreMovieAct->setChecked( taseditorConfig.branchesRestoreEntireMovie );
hudInScrnBranchAct->setChecked( taseditorConfig.HUDInBranchScreenshots );
pauseAtEndAct->setChecked( taseditorConfig.autopauseAtTheEndOfMovie );
showToolTipsAct->setChecked( taseditorConfig.tooltipsEnabled );
}
//----------------------------------------------------------------------------
int TasEditorWindow::initModules(void) int TasEditorWindow::initModules(void)
{ {
// init modules // init modules

View File

@ -187,6 +187,25 @@ class TasEditorWindow : public QDialog
void initPatterns(void); void initPatterns(void);
QMenu *recentMenu; QMenu *recentMenu;
QAction *followUndoAct;
QAction *followMkrAct;
QAction *enaHotChgAct;
QAction *dpyBrnchDescAct;
QAction *dpyBrnchScrnAct;
QAction *enaGrnznAct;
QAction *afPtrnSkipLagAct;
QAction *adjInputLagAct;
QAction *drawInputDragAct;
QAction *cmbRecDrawAct;
QAction *use1PforRecAct;
QAction *useInputColSetAct;
QAction *bindMkrInputAct;
QAction *emptyNewMkrNotesAct;
QAction *oldCtlBrnhSchemeAct;
QAction *brnchRestoreMovieAct;
QAction *hudInScrnBranchAct;
QAction *pauseAtEndAct;
QAction *showToolTipsAct;
QSplitter *mainHBox; QSplitter *mainHBox;
QWidget *pianoRollContainerWidget; QWidget *pianoRollContainerWidget;
@ -195,8 +214,8 @@ class TasEditorWindow : public QDialog
QScrollBar *pianoRollVBar; QScrollBar *pianoRollVBar;
QLabel *upperMarkerLabel; QLabel *upperMarkerLabel;
QLabel *lowerMarkerLabel; QLabel *lowerMarkerLabel;
QLineEdit *upperMarkerName; QLineEdit *upperMarkerNote;
QLineEdit *lowerMarkerName; QLineEdit *lowerMarkerNote;
QVBoxLayout *ctlPanelMainVbox; QVBoxLayout *ctlPanelMainVbox;
QGroupBox *playbackGBox; QGroupBox *playbackGBox;
@ -253,6 +272,7 @@ class TasEditorWindow : public QDialog
public slots: public slots:
void closeWindow(void); void closeWindow(void);
void frameUpdate(void); void frameUpdate(void);
void updateCheckedItems(void);
private slots: private slots:
void openProject(void); void openProject(void);
void saveProjectCb(void); void saveProjectCb(void);
@ -292,6 +312,7 @@ class TasEditorWindow : public QDialog
friend class RECORDER; friend class RECORDER;
friend class SPLICER; friend class SPLICER;
friend class SELECTION; friend class SELECTION;
friend class PLAYBACK;
}; };
extern TASEDITOR_PROJECT *project; extern TASEDITOR_PROJECT *project;

View File

@ -417,10 +417,10 @@ void PLAYBACK::redrawMarkerData()
sprintf( num, "%i", displayedMarkerNumber); sprintf( num, "%i", displayedMarkerNumber);
strcat(new_text, num); strcat(new_text, num);
strcat(new_text, " "); strcat(new_text, " ");
//SetWindowText(hwndPlaybackMarkerNumber, new_text); tasWin->upperMarkerLabel->setText( QObject::tr(new_text) );
// change Marker Note // change Marker Note
strcpy(new_text, markersManager->getNoteCopy(displayedMarkerNumber).c_str()); strcpy(new_text, markersManager->getNoteCopy(displayedMarkerNumber).c_str());
//SetWindowText(hwndPlaybackMarkerEditField, new_text); tasWin->upperMarkerNote->setText( QObject::tr(new_text) );
// reset search_similar_marker, because source Marker changed // reset search_similar_marker, because source Marker changed
markersManager->currentIterationOfFindSimilar = 0; markersManager->currentIterationOfFindSimilar = 0;
} }

View File

@ -205,10 +205,11 @@ void SELECTION::redrawMarkerData()
sprintf( num, "%i", displayedMarkerNumber); sprintf( num, "%i", displayedMarkerNumber);
strcat(new_text, num); strcat(new_text, num);
strcat(new_text, " "); strcat(new_text, " ");
//SetWindowText(hwndSelectionMarkerNumber, new_text); tasWin->lowerMarkerLabel->setText( QObject::tr(new_text) );
// change Marker Note // change Marker Note
strcpy(new_text, markersManager->getNoteCopy(displayedMarkerNumber).c_str()); strcpy(new_text, markersManager->getNoteCopy(displayedMarkerNumber).c_str());
//SetWindowText(hwndSelectionMarkerEditField, new_text); tasWin->lowerMarkerNote->setText( QObject::tr(new_text) );
} }
void SELECTION::jumpToPreviousMarker(int speed) void SELECTION::jumpToPreviousMarker(int speed)