#include "videoarea.h"
#ifdef APP_ACTIVATION
#include "activation.h"
+#include "activationview.h"
#endif
#ifdef APP_EXTRA
#include "extra.h"
#ifdef APP_ACTIVATION
demoTimer = new QTimer(this);
demoTimer->setSingleShot(true);
- connect(demoTimer, &QTimer::timeout, mainWindow, &MainWindow::showActivationView,
+ connect(
+ demoTimer, &QTimer::timeout, this,
+ [this] {
+ if (media->state() != Media::PlayingState) return;
+ media->pause();
+ connect(
+ ActivationView::instance(), &ActivationView::done, media,
+ [this] { media->play(); }, Qt::UniqueConnection);
+ MainWindow::instance()->showActivationView();
+ },
Qt::QueuedConnection);
#endif
for (auto *name : videoActionNames) {
currentVideoActions.append(mainWindow->getAction(name));
}
+
+ for (int i = 0; i < 10; ++i) {
+ QAction *action = new QAction(QString());
+ action->setShortcut(Qt::Key_0 + i);
+ action->setAutoRepeat(false);
+ connect(action, &QAction::triggered, this, [this, i] {
+ qint64 duration = media->duration();
+ // dur : pos = 100 : i*10
+ qint64 position = (duration * (i * 10)) / 100;
+ media->seek(position);
+ });
+ addAction(action);
+ playingVideoActions << action;
+ }
+
+ QAction *leftAction = new QAction(tr("Rewind %1 seconds").arg(10));
+ leftAction->setShortcut(Qt::Key_Left);
+ leftAction->setAutoRepeat(false);
+ connect(leftAction, &QAction::triggered, this, [this] {
+ qint64 position = media->position();
+ position -= 10000;
+ if (position < 0) position = 0;
+ media->seek(position);
+ });
+ addAction(leftAction);
+ playingVideoActions << leftAction;
+
+ QAction *rightAction = new QAction(tr("Fast forward %1 seconds").arg(10));
+ rightAction->setShortcut(Qt::Key_Right);
+ rightAction->setAutoRepeat(false);
+ connect(rightAction, &QAction::triggered, this, [this] {
+ qint64 position = media->position();
+ position += 10000;
+ qint64 duration = media->duration();
+ if (position > duration) position = duration;
+ media->seek(position);
+ });
+ addAction(rightAction);
+ playingVideoActions << rightAction;
}
void MediaView::setMedia(Media *media) {
handleError(media->errorString());
}
+ bool enablePlayingVideoActions = state == Media::PlayingState || state == Media::PausedState;
+ for (QAction *action : qAsConst(playingVideoActions))
+ action->setEnabled(enablePlayingVideoActions);
+
if (state == Media::PlayingState) {
bool res = Idle::preventDisplaySleep(QString("%1 is playing").arg(Constants::NAME));
if (!res) qWarning() << "Error disabling idle display sleep" << Idle::displayErrorMessage();
}
#ifdef APP_ACTIVATION
- if (!Activation::instance().isActivated() && !demoTimer->isActive()) {
- int ms = (60000 * 5) + (qrand() % (60000 * 5));
+ if (!demoTimer->isActive() && !Activation::instance().isActivated()) {
+ int ms = (60000 * 2) + (QRandomGenerator::global()->generate() % (60000 * 2));
demoTimer->start(ms);
}
#endif