From 87d7bd2d9f7730438ffe0c461bbf48ee49e0fa3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Du=C5=A1an=20Poizl?= Date: Sun, 25 Aug 2024 22:20:41 +0200 Subject: [PATCH] Add delay to directory reload --- imageringlist.cpp | 13 ++++++++++++- imageringlist.h | 3 +++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/imageringlist.cpp b/imageringlist.cpp index 6a81d24..d92ff37 100644 --- a/imageringlist.cpp +++ b/imageringlist.cpp @@ -114,6 +114,11 @@ ImageRingList::ImageRingList(Database *database, const QStringList &nameFilter, m_slideShowTimer = new QTimer(this); connect(m_slideShowTimer, &QTimer::timeout, this, static_cast(&ImageRingList::increment)); + + m_dirChangeDelay = new QTimer(this); + m_dirChangeDelay->setInterval(3000); + m_dirChangeDelay->setSingleShot(true); + connect(m_dirChangeDelay, &QTimer::timeout, this, &ImageRingList::reloadDir); } ImageRingList::~ImageRingList() @@ -496,13 +501,19 @@ void ImageRingList::imageLoaded(Image *image) } void ImageRingList::dirChanged(QString dir) +{ + m_currentDir = dir; + m_dirChangeDelay->start(); +} + +void ImageRingList::reloadDir() { QString currentFile; if(m_images.size()) currentFile = (*m_currImage)->name(); - setDir(dir, currentFile); + setDir(m_currentDir, currentFile); if(m_images.size()) emit currentImageChanged(m_currImage-m_images.begin()); } diff --git a/imageringlist.h b/imageringlist.h index 14eb886..442fb82 100644 --- a/imageringlist.h +++ b/imageringlist.h @@ -66,6 +66,8 @@ class ImageRingList : public QAbstractItemModel Database *m_database; QStringList m_nameFilter; QTimer *m_slideShowTimer; + QTimer *m_dirChangeDelay; + QString m_currentDir; public: explicit ImageRingList(Database *database, const QStringList &nameFilter, QObject *parent = 0); ~ImageRingList() override; @@ -110,6 +112,7 @@ signals: protected slots: void imageLoaded(Image *image); void dirChanged(QString dir); + void reloadDir(); }; #endif // IMAGERINGLIST_H