diff --git a/applets/comic/comic.cpp b/applets/comic/comic.cpp --- a/applets/comic/comic.cpp +++ b/applets/comic/comic.cpp @@ -90,13 +90,6 @@ mProxy->setSortCaseSensitivity( Qt::CaseInsensitive ); mProxy->sort( 1, Qt::AscendingOrder ); - //set maximum number of cached strips per comic, -1 means that there is no limit - KConfigGroup global = globalConfig(); - const int maxComicLimit = global.readEntry( "maxComicLimit", CACHE_LIMIT ); - if (mEngine) { - mEngine->connectSource( QLatin1String( "setting_maxComicLimit:" ) + QString::number( maxComicLimit ), this ); - } - mCurrentDay = QDate::currentDate(); mDateChangedTimer = new QTimer( this ); connect( mDateChangedTimer, &QTimer::timeout, this, &ComicApplet::checkDayChanged ); @@ -333,10 +326,12 @@ void ComicApplet::checkDayChanged() { - if ( ( mCurrentDay != QDate::currentDate() ) || !mCurrent.hasImage() ) + if ( mCurrentDay != QDate::currentDate() ) { + updateComic( mCurrent.current() ); + mCurrentDay = QDate::currentDate(); + } else if ( !mCurrent.hasImage() ) { updateComic( mCurrent.stored() ); - - mCurrentDay = QDate::currentDate(); + } } void ComicApplet::configChanged() @@ -360,8 +355,13 @@ mArrowsOnHover = cg.readEntry( "arrowsOnHover", true ); mMiddleClick = cg.readEntry( "middleClick", true ); mCheckNewComicStripsInterval = cg.readEntry( "checkNewComicStripsIntervall", 30 ); - KConfigGroup global = globalConfig(); - mMaxComicLimit = global.readEntry( "maxComicLimit", CACHE_LIMIT ); + oldMaxComicLimit = mMaxComicLimit; + mMaxComicLimit = cg.readEntry( "maxComicLimit", CACHE_LIMIT ); + + if (oldMaxComicLimit != mMaxComicLimit && mEngine) { + mEngine->disconnectSource( QLatin1String( "setting_maxComicLimit:" ) + QString::number( oldMaxComicLimit ), this ); + mEngine->connectSource( QLatin1String( "setting_maxComicLimit:" ) + QString::number( maxComicLimit ), this ); + } globalComicUpdater->load(); } @@ -408,6 +408,10 @@ { Q_UNUSED(index) + if (mCurrent.id() != identifier) { + return; + } + KConfigGroup cg = config(); if (suffix != cg.readEntry(QLatin1String("lastStrip_") + identifier, QString())) { qDebug() << identifier << "has a newer strip.";