Add delay to directory reload
This commit is contained in:
+12
-1
@@ -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());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user