Added playback progress bar to Qt TAS editor.

This commit is contained in:
mjbudd77 2022-01-08 15:05:52 -05:00
parent 72af0270a3
commit 2b88e96814
7 changed files with 33 additions and 16 deletions

View File

@ -1104,6 +1104,9 @@ void TasEditorWindow::buildSideControlPanel(void)
advFrmBtn->setIcon( style()->standardIcon( QStyle::SP_MediaSeekForward ) );
advMkrBtn->setIcon( style()->standardIcon( QStyle::SP_MediaSkipForward ) );
progBar = new QProgressBar();
progBar->setRange( 0, 1 );
followCursorCbox = new QCheckBox( tr("Follow Cursor") );
turboSeekCbox = new QCheckBox( tr("Turbo Seek") );
autoRestoreCbox = new QCheckBox( tr("Auto-Restore Last Position") );
@ -1152,6 +1155,7 @@ void TasEditorWindow::buildSideControlPanel(void)
hbox->addWidget( playPauseBtn );
hbox->addWidget( advFrmBtn );
hbox->addWidget( advMkrBtn );
vbox->addWidget( progBar );
hbox = new QHBoxLayout();
vbox->addLayout( hbox );

View File

@ -35,6 +35,7 @@
#include <QPainter>
#include <QShortcut>
#include <QTabWidget>
#include <QProgressBar>
#include <QStackedWidget>
#include <QClipboard>
@ -480,14 +481,15 @@ class TasEditorWindow : public QDialog
//QGroupBox *historyGBox;
QFrame *bbFrame;
QPushButton *rewindMkrBtn;
QPushButton *rewindFrmBtn;
QPushButton *playPauseBtn;
QPushButton *advFrmBtn;
QPushButton *advMkrBtn;
QCheckBox *followCursorCbox;
QCheckBox *turboSeekCbox;
QCheckBox *autoRestoreCbox;
QPushButton *rewindMkrBtn;
QPushButton *rewindFrmBtn;
QPushButton *playPauseBtn;
QPushButton *advFrmBtn;
QPushButton *advMkrBtn;
QProgressBar *progBar;
QCheckBox *followCursorCbox;
QCheckBox *turboSeekCbox;
QCheckBox *autoRestoreCbox;
QCheckBox *recRecordingCbox;
QCheckBox *recSuperImposeCbox;

View File

@ -266,7 +266,7 @@ void GREENZONE::save(EMUFILE *os, int save_type)
if (frame / PROGRESSBAR_UPDATE_RATE > last_tick)
{
setTasProjectProgressBar( frame, greenzoneSize );
//playback->setProgressbar(frame, greenzoneSize);
playback->setProgressbar(frame, greenzoneSize);
last_tick = frame / PROGRESSBAR_UPDATE_RATE;
}
if (!savestates[frame].size()) continue;
@ -291,7 +291,7 @@ void GREENZONE::save(EMUFILE *os, int save_type)
if (frame / PROGRESSBAR_UPDATE_RATE > last_tick)
{
setTasProjectProgressBar( frame, greenzoneSize );
//playback->setProgressbar(frame, greenzoneSize);
playback->setProgressbar(frame, greenzoneSize);
last_tick = frame / PROGRESSBAR_UPDATE_RATE;
}
if (!savestates[frame].size()) continue;
@ -317,7 +317,7 @@ void GREENZONE::save(EMUFILE *os, int save_type)
if (frame / PROGRESSBAR_UPDATE_RATE > last_tick)
{
setTasProjectProgressBar( frame, greenzoneSize );
//playback->setProgressbar(frame, greenzoneSize);
playback->setProgressbar(frame, greenzoneSize);
last_tick = frame / PROGRESSBAR_UPDATE_RATE;
}
if (!savestates[frame].size()) continue;

View File

@ -1009,7 +1009,7 @@ void HISTORY::save(EMUFILE *os, bool really_save)
if (i / SAVING_HISTORY_PROGRESSBAR_UPDATE_RATE > last_tick)
{
setTasProjectProgressBar( i, historyTotalItems );
//playback->setProgressbar(i, historyTotalItems);
playback->setProgressbar(i, historyTotalItems);
last_tick = i / PROGRESSBAR_UPDATE_RATE;
}
}

View File

@ -246,14 +246,19 @@ void PLAYBACK::updateProgressbar()
if (pauseFrame)
{
setProgressbar(currFrameCounter - seekingBeginningFrame, pauseFrame - seekingBeginningFrame);
} else
}
else
{
if (emuPausedState)
{
// full progressbar
setProgressbar(1, 1);
}
else
{
// cleared progressbar
setProgressbar(0, 1);
}
}
//RedrawWindow(hwndProgressbar, NULL, NULL, RDW_INVALIDATE);
}
@ -576,7 +581,11 @@ int PLAYBACK::getFlashingPauseFrame()
void PLAYBACK::setProgressbar(int a, int b)
{
// TODO
if ( tasWin )
{
tasWin->progBar->setRange(0,b);
tasWin->progBar->setValue(a);
}
//SendMessage(hwndProgressbar, PBM_SETPOS, PROGRESSBAR_WIDTH * a / b, 0);
}
void PLAYBACK::cancelSeeking()

View File

@ -281,7 +281,7 @@ void SELECTION::save(EMUFILE *os, bool really_save)
if (i / SAVING_HISTORY_PROGRESSBAR_UPDATE_RATE > last_tick)
{
setTasProjectProgressBar( i, historyTotalItems );
//playback->setProgressbar(i, historyTotalItems);
playback->setProgressbar(i, historyTotalItems);
last_tick = i / PROGRESSBAR_UPDATE_RATE;
}
}

View File

@ -188,10 +188,12 @@ bool TASEDITOR_PROJECT::save(const char* differentName, bool inputInBinary, bool
write32le(selectionOffset, ofs);
// finish
delete ofs;
//playback->updateProgressbar();
playback->updateProgressbar();
// also set project.changed to false, unless it was SaveCompact
if (!differentName)
{
reset();
}
// restore cursor
if ( progressDialog )