[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdeplasma-addons/applets/timer
From:       Davide Bettio <davide.bettio () kdemail ! net>
Date:       2009-04-06 16:03:26
Message-ID: 1239033806.335990.20105.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 950175 by bettio:

Continue timer on restart.


 M  +26 -0     timer.cpp  
 M  +2 -0      timer.h  


--- trunk/KDE/kdeplasma-addons/applets/timer/timer.cpp #950174:950175
@@ -53,6 +53,7 @@
 
 Timer::~Timer()
 {
+    saveTimer();
 }
 
 void Timer::init()
@@ -104,6 +105,15 @@
     m_resetAction->setEnabled(false);
     connect(m_resetAction, SIGNAL(triggered(bool)), this, SLOT(resetTimer()));
     createMenuAction();
+
+    m_running = cg.readEntry("running", false);
+    QDateTime startedAt = cg.readEntry("startedAt", QDateTime::currentDateTime());
+    int tmpSeconds = cg.readEntry("seconds", 0) - startedAt.secsTo(QDateTime::currentDateTime());
+    if (tmpSeconds > 0){
+        m_seconds = tmpSeconds;
+        m_running = true;
+        startTimer();
+    }
 }
 
 void Timer::createMenuAction()
@@ -241,10 +251,22 @@
     }
 }
 
+void Timer::saveTimer()
+{
+    KConfigGroup cg = config();
+    cg.writeEntry("running", m_running);
+    cg.writeEntry("startedAt", QDateTime::currentDateTime());
+    cg.writeEntry("seconds", m_seconds);
+
+    emit configNeedsSaving();
+}
+
 void Timer::startTimer()
 {
     m_running = true;
 
+    saveTimer();
+
     timer.start(1000);
 
     m_startAction->setEnabled(false);
@@ -256,6 +278,8 @@
 {
     m_running = false;
 
+    saveTimer();
+
     timer.stop();
 
     m_startAction->setEnabled(true);
@@ -266,6 +290,8 @@
 {
     stopTimer();
 
+    saveTimer();
+
     m_seconds = 0;
     m_resetAction->setEnabled(false);
     m_startAction->setEnabled(false);
--- trunk/KDE/kdeplasma-addons/applets/timer/timer.h #950174:950175
@@ -61,6 +61,8 @@
         void startTimerFromAction();
 
     private:
+        void saveTimer();
+
         int m_seconds;
         bool m_running;
 
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic