- If you fail to load content try on a different timer (every 5 seconds by default). This fixes slow image loading at startup if you have a long timeout between pictures.

This commit is contained in:
Alfred Reynolds
2021-07-30 17:57:01 +12:00
parent 5ba3fef330
commit 019b9406bc
2 changed files with 7 additions and 1 deletions

View File

@@ -14,7 +14,8 @@ ImageSwitcher::ImageSwitcher(MainWindow& w, unsigned int timeout, std::unique_pt
window(w),
timeout(timeout),
selector(selector),
timer(this)
timer(this),
timerNoContent(this)
{
}
@@ -24,10 +25,12 @@ void ImageSwitcher::updateImage()
if (filename == "")
{
window.warn("No image found.");
timerNoContent.start(timeoutNoContent);
}
else
{
window.setImage(filename);
timerNoContent.stop(); // we have loaded content so stop the fast polling
}
}
@@ -35,5 +38,6 @@ void ImageSwitcher::start()
{
updateImage();
connect(&timer, SIGNAL(timeout()), this, SLOT(updateImage()));
connect(&timerNoContent, SIGNAL(timeout()), this, SLOT(updateImage()));
timer.start(timeout);
}

View File

@@ -22,6 +22,8 @@ private:
unsigned int timeout;
std::unique_ptr<ImageSelector>& selector;
QTimer timer;
const unsigned int timeoutNoContent = 5 * 1000; // 10 sec
QTimer timerNoContent;
};
#endif // IMAGESWITCHER_H