diff --git a/applets/comic/comic.h b/applets/comic/comic.h --- a/applets/comic/comic.h +++ b/applets/comic/comic.h @@ -219,6 +219,7 @@ ComicData mCurrent; SavingDir *mSavingDir; + QTimer *dropEngine; }; #endif diff --git a/applets/comic/comic.cpp b/applets/comic/comic.cpp --- a/applets/comic/comic.cpp +++ b/applets/comic/comic.cpp @@ -71,7 +71,8 @@ mCheckNewStrips(nullptr), mActionShop(nullptr), mEngine(nullptr), - mSavingDir(nullptr) + mSavingDir(nullptr), + dropEngine(nullptr) { setHasConfigurationInterface( true ); } @@ -159,6 +160,13 @@ updateUsedComics(); changeComic( true ); + + dropEngine = new QTimer( this ); + dropEngine->setSingleShot( true ); + dropEngine->setInterval( 2 * 60 * 1000 ); + connect( dropEngine, &QTimer::timeout, this, [this]() { + dataUpdated( QString{}, Plasma::DataEngine::Data{} ); + }); } ComicApplet::~ComicApplet() @@ -176,6 +184,7 @@ void ComicApplet::dataUpdated( const QString &source, const Plasma::DataEngine::Data &data ) { setBusy(false); + dropEngine->stop(); //disconnect prefetched comic strips if (mEngine && source != mOldSource ) { @@ -492,6 +501,7 @@ if ( !id.isEmpty() && mEngine && mEngine->isValid() ) { setBusy(true); + dropEngine->start(); const QString identifier = id + QLatin1Char(':') + identifierSuffix; diff --git a/dataengines/comic/comicprovider.cpp b/dataengines/comic/comicprovider.cpp --- a/dataengines/comic/comicprovider.cpp +++ b/dataengines/comic/comicprovider.cpp @@ -264,6 +264,9 @@ void ComicProvider::requestRedirectedUrl(const QUrl &url, int id, const MetaInfos &infos) { + //each request restarts the timer + d->mTimer->start(); + KIO::MimetypeJob *job = KIO::mimetype(url, KIO::HideProgressInfo); job->setProperty("uid", id); d->mRedirections[job] = url;