Pencil2D Animation
Download Community News Docs Contribute
  • Overview
  • Articles
  • Code
  •  
  • Class List
  • Class Index
  • Class Hierarchy
  • Class Members
  • File List
Loading...
Searching...
No Matches
  • core_lib
  • src
  • util
autosaverbytime.cpp
1#include "autosaverbytime.h"
2
3AutosaverByTime::AutosaverByTime(PreferenceManager* manager, QObject* parent)
4 : QObject(parent)
5 , mPref(manager)
6{
7 mAutoSaveTimer.setSingleShot(false);
8 resetTimer();
9 if(mPref->isOn(SETTING::AUTO_SAVE_BY_TIME))
10 mAutoSaveTimer.start();
11
12 connect(mPref, &PreferenceManager::optionChanged, this, &AutosaverByTime::configChanged);
13 connect(&mAutoSaveTimer, &QTimer::timeout, this, &AutosaverByTime::timerTimeout);
14}
15
16void AutosaverByTime::configChanged(SETTING setting){
17 switch(setting)
18 {
19 case SETTING::AUTO_SAVE_BY_TIME:
20 if(mPref->isOn(SETTING::AUTO_SAVE_BY_TIME)) mAutoSaveTimer.start();
21 else mAutoSaveTimer.stop();
22 break;
23
24 case SETTING::AUTO_SAVE_BY_TIME_TIMER:
25 mAutoSaveTimer.stop();
26 resetTimer();
27 if(mPref->isOn(SETTING::AUTO_SAVE_BY_TIME))
28 mAutoSaveTimer.start();
29
30 break;
31
32 default:
33 break;
34 }
35}
36
37void AutosaverByTime::timerTimeout()
38{
39 const bool userIsIdle = QGuiApplication::mouseButtons() == Qt::NoButton &&
40 QGuiApplication::keyboardModifiers() == Qt::NoModifier;
41
42 if(userIsIdle)
43 {
44 emit timeout();
45 resetTimer();
46 }
47 else
48 {
49 mAutoSaveTimer.setInterval(1000);
50 }
51}
52
53void AutosaverByTime::resetTimer()
54{
55 mAutoSaveTimer.setInterval(mPref->getInt(SETTING::AUTO_SAVE_BY_TIME_TIMER) * 1000 * 60); // Interval in minutes
56}
PreferenceManager
Definition: preferencemanager.h:28
QGuiApplication::keyboardModifiers
Qt::KeyboardModifiers keyboardModifiers()
QGuiApplication::mouseButtons
Qt::MouseButtons mouseButtons()
QObject
Qt::NoModifier
NoModifier
Qt::NoButton
NoButton
QTimer::setInterval
void setInterval(int msec)
QTimer::start
void start(int msec)
QTimer::stop
void stop()
QTimer::timeout
void timeout()
Generated on Wed Apr 22 2026 10:46:09 for Pencil2D by doxygen 1.9.6 based on revision 4ec20b203f975d0b0988323847e8bd8d8d8ff31c