Merge pull request #2644 from turtletooth/shortplay

Short Play Feature
This commit is contained in:
Rodney 2019-12-30 07:31:46 -06:00 committed by GitHub
commit ebfbb9c5e5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 28 additions and 0 deletions

View file

@ -396,6 +396,9 @@ public:
bool rewindAfterPlaybackEnabled() const {
return getBoolValue(rewindAfterPlayback);
}
int getShortPlayFrameCount() const {
return getIntValue(shortPlayFrameCount);
}
bool previewAlwaysOpenNewFlipEnabled() const {
return getBoolValue(previewAlwaysOpenNewFlip);
}

View file

@ -136,6 +136,7 @@ enum PreferencesItemId {
previewAlwaysOpenNewFlip,
fitToFlipbook,
generatedMovieViewEnabled,
shortPlayFrameCount,
//----------
// Onion Skin

View file

@ -1937,6 +1937,7 @@ void MainWindow::defineActions() {
MenuPlayCommandType);
createMenuPlayAction(MI_Play, tr("Play"), "P");
createMenuPlayAction(MI_ShortPlay, tr("Short Play"), "Alt+P");
createMenuPlayAction(MI_Loop, tr("Loop"), "L");
createMenuPlayAction(MI_Pause, tr("Pause"), "");
createMenuPlayAction(MI_FirstFrame, tr("First Frame"), "Alt+,");

View file

@ -202,6 +202,7 @@
#define MI_Link "MI_Link"
#define MI_Play "MI_Play"
#define MI_ShortPlay "MI_ShortPlay"
#define MI_Loop "MI_Loop"
#define MI_Pause "MI_Pause"
#define MI_FirstFrame "MI_FirstFrame"

View file

@ -1065,6 +1065,7 @@ QString PreferencesPopup::getUIString(PreferencesItemId id) {
{blanksCount, tr("Blank Frames:")},
{blankColor, tr("Blank Frames Color:")},
{rewindAfterPlayback, tr("Rewind after Playback")},
{shortPlayFrameCount, tr("Number of Frames to Play for Short Play")},
{previewAlwaysOpenNewFlip, tr("Display in a New Flipbook Window")},
{fitToFlipbook, tr("Fit to Flipbook")},
{generatedMovieViewEnabled, tr("Open Flipbook after Rendering")},
@ -1721,6 +1722,7 @@ QWidget* PreferencesPopup::createPreviewPage() {
insertUI(blanksCount, lay);
insertUI(blankColor, lay);
insertUI(rewindAfterPlayback, lay);
insertUI(shortPlayFrameCount, lay);
insertUI(previewAlwaysOpenNewFlip, lay);
insertUI(fitToFlipbook, lay);
insertUI(generatedMovieViewEnabled, lay);

View file

@ -132,6 +132,24 @@ public:
//-----------------------------------------------------------------------------
class ShortPlayCommand final : public MenuItemHandler {
public:
ShortPlayCommand() : MenuItemHandler(MI_ShortPlay) {}
void execute() override {
int row = TApp::instance()->getCurrentFrame()->getFrame();
int shortPlayFrameCount = Preferences::instance()->getShortPlayFrameCount();
int count =
TApp::instance()->getCurrentXsheet()->getXsheet()->getFrameCount();
int newFrame = std::max(
0, count - shortPlayFrameCount);
TApp::instance()->getCurrentFrame()->setFrame(newFrame);
CommandManager::instance()->execute(MI_Play);
}
};
//-----------------------------------------------------------------------------
class NextKeyframeCommand final : public MenuItemHandler {
public:
NextKeyframeCommand() : MenuItemHandler(MI_NextKeyframe) {}
@ -215,6 +233,7 @@ NextDrawingCommand nextDrawingCommand;
PrevDrawingCommand prevDrawingCommand;
NextStepCommand nextStepCommand;
PrevStepCommand prevStepCommand;
ShortPlayCommand shortPlayCommand;
NextKeyframeCommand nextKeyframeCommand;
PrevKeyframeCommand prevKeyframeCommand;

View file

@ -527,6 +527,7 @@ void Preferences::definePreferenceItems() {
define(blanksCount, "blanksCount", QMetaType::Int, 0, 0, 1000);
define(blankColor, "blankColor", QMetaType::QColor, QColor(Qt::white));
define(rewindAfterPlayback, "rewindAfterPlayback", QMetaType::Bool, true);
define(shortPlayFrameCount, "shortPlayFrameCount", QMetaType::Int, 8, 1, 100);
define(previewAlwaysOpenNewFlip, "previewAlwaysOpenNewFlip", QMetaType::Bool,
false);
define(fitToFlipbook, "fitToFlipbook", QMetaType::Bool, false);