Add delay to directory reload

This commit is contained in:
2024-08-25 22:20:41 +02:00
parent 79dd7d91eb
commit 87d7bd2d9f
2 changed files with 15 additions and 1 deletions
+12 -1
View File
@@ -114,6 +114,11 @@ ImageRingList::ImageRingList(Database *database, const QStringList &nameFilter,
m_slideShowTimer = new QTimer(this); m_slideShowTimer = new QTimer(this);
connect(m_slideShowTimer, &QTimer::timeout, this, static_cast<void (ImageRingList::*)()>(&ImageRingList::increment)); connect(m_slideShowTimer, &QTimer::timeout, this, static_cast<void (ImageRingList::*)()>(&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() ImageRingList::~ImageRingList()
@@ -496,13 +501,19 @@ void ImageRingList::imageLoaded(Image *image)
} }
void ImageRingList::dirChanged(QString dir) void ImageRingList::dirChanged(QString dir)
{
m_currentDir = dir;
m_dirChangeDelay->start();
}
void ImageRingList::reloadDir()
{ {
QString currentFile; QString currentFile;
if(m_images.size()) if(m_images.size())
currentFile = (*m_currImage)->name(); currentFile = (*m_currImage)->name();
setDir(dir, currentFile); setDir(m_currentDir, currentFile);
if(m_images.size()) if(m_images.size())
emit currentImageChanged(m_currImage-m_images.begin()); emit currentImageChanged(m_currImage-m_images.begin());
} }
+3
View File
@@ -66,6 +66,8 @@ class ImageRingList : public QAbstractItemModel
Database *m_database; Database *m_database;
QStringList m_nameFilter; QStringList m_nameFilter;
QTimer *m_slideShowTimer; QTimer *m_slideShowTimer;
QTimer *m_dirChangeDelay;
QString m_currentDir;
public: public:
explicit ImageRingList(Database *database, const QStringList &nameFilter, QObject *parent = 0); explicit ImageRingList(Database *database, const QStringList &nameFilter, QObject *parent = 0);
~ImageRingList() override; ~ImageRingList() override;
@@ -110,6 +112,7 @@ signals:
protected slots: protected slots:
void imageLoaded(Image *image); void imageLoaded(Image *image);
void dirChanged(QString dir); void dirChanged(QString dir);
void reloadDir();
}; };
#endif // IMAGERINGLIST_H #endif // IMAGERINGLIST_H