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

View File

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