[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: KDE/kdeplasma-addons/applets/frame
From: Anne-Marie Mahfouf <annma () kde ! org>
Date: 2010-04-29 7:12:24
Message-ID: 20100429071224.93C8AAC7E4 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1120544 by annma:
Change the picture of Picture of the Day provider every day
M +24 -5 frame.cpp
M +4 -0 frame.h
--- trunk/KDE/kdeplasma-addons/applets/frame/frame.cpp #1120543:1120544
@@ -94,6 +94,8 @@
frameReceivedUrlArgs = true;
}
+ m_currentDay = QDate::currentDate();
+
m_slideNumber = 0;
// Get config values
KConfigGroup cg = config();
@@ -579,8 +581,7 @@
void Frame::stopPotd()
{
Plasma::DataEngine *engine = dataEngine("potd");
- QDate mCurrentDate = QDate::currentDate();
- const QString identifier = m_potdProvider + ':' + mCurrentDate.toString(Qt::ISODate);
+ const QString identifier = m_potdProvider + ':' + m_currentDay.toString(Qt::ISODate);
engine->disconnectSource(identifier, m_mySlideShow);
}
@@ -594,11 +595,12 @@
m_mySlideShow->setDirs(m_slideShowPaths, m_recursiveSlideShow);
m_mySlideShow->setUpdateInterval(m_slideshowTime * 1000);
} else if (m_potd) {
+ m_dateChangedTimer = new QTimer( this );//change picture at midnight
+ connect( m_dateChangedTimer, SIGNAL( timeout() ), this, SLOT( checkDayChanged() ) );
+ m_dateChangedTimer->start( 60 * 60 * 1000 ); // every hour
Plasma::DataEngine *engine = dataEngine("potd");
- QDate mCurrentDate = QDate::currentDate();
- const QString identifier = m_potdProvider + ':' + mCurrentDate.toString(Qt::ISODate);
+ const QString identifier = m_potdProvider + ':' + m_currentDay.toString(Qt::ISODate);
engine->connectSource(identifier, m_mySlideShow);
-
} else { //no slideshow so no random stuff
m_mySlideShow->setRandom(false);
m_mySlideShow->setImage(m_currentUrl.url());
@@ -727,9 +729,26 @@
}
}
+void Frame::checkDayChanged()
+{
+ if ( ( m_currentDay != QDate::currentDate() ) ) {
+ reloadImage();
+ }
+
+ m_currentDay = QDate::currentDate();
+}
+
void Frame::reloadImage()
{
+ if (m_potd) {
+ Plasma::DataEngine *engine = dataEngine("potd");
+ QString identifier = m_potdProvider + ':' + m_currentDay.toString(Qt::ISODate);
+ engine->disconnectSource(identifier, m_mySlideShow);
+ identifier = m_potdProvider + ':' + QDate::currentDate().toString(Qt::ISODate);
+ engine->connectSource(identifier, m_mySlideShow);
+ } else {
m_mySlideShow->updateImage(m_currentUrl.url());
}
+}
#include "frame.moc"
--- trunk/KDE/kdeplasma-addons/applets/frame/frame.h #1120543:1120544
@@ -75,6 +75,7 @@
void scalePictureAndUpdate();
void imageScaled(const QImage &img);
void reloadImage();
+ void checkDayChanged();
protected:
void constraintsEvent(Plasma::Constraints constraints);
@@ -121,6 +122,9 @@
int m_autoUpdateIntervall;
bool m_doAutoUpdate;
QTimer* m_autoUpdateTimer;
+ /// Day Change for PoTD
+ QTimer *m_dateChangedTimer;
+ QDate m_currentDay;
QPixmap m_pixmap;
QImage m_scaledImage;
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic