Add slideshow

This commit is contained in:
2024-01-05 13:36:06 +01:00
parent 7818b8d3e9
commit da9b389409
5 changed files with 39 additions and 3 deletions
+22
View File
@@ -1,6 +1,8 @@
#include "imageringlist.h"
#include <QThreadPool>
#include <QDir>
#include <QSettings>
#include <QTimer>
#include "loadrunable.h"
#include "rawimage.h"
#include "database.h"
@@ -108,6 +110,9 @@ ImageRingList::ImageRingList(Database *database, const QStringList &nameFilter,
connect(&m_fileSystemWatcher, SIGNAL(directoryChanged(QString)), this, SLOT(dirChanged(QString)));
m_nameFilter.replaceInStrings(QRegularExpression("^"), "*.");
m_thumbPool = new QThreadPool(this);
m_slideShowTimer = new QTimer(this);
connect(m_slideShowTimer, &QTimer::timeout, this, static_cast<void (ImageRingList::*)()>(&ImageRingList::increment));
}
ImageRingList::~ImageRingList()
@@ -295,11 +300,13 @@ void ImageRingList::clearThumbnails()
QModelIndex ImageRingList::index(int row, int column, const QModelIndex &parent) const
{
Q_UNUSED(parent);
return createIndex(row, column, m_images.at(row).get());
}
QModelIndex ImageRingList::parent(const QModelIndex &child) const
{
Q_UNUSED(child);
return QModelIndex();
}
@@ -313,6 +320,7 @@ int ImageRingList::rowCount(const QModelIndex &parent) const
int ImageRingList::columnCount(const QModelIndex &parent) const
{
Q_UNUSED(parent);
return 1;
}
@@ -398,6 +406,20 @@ void ImageRingList::reverseSort()
}
}
void ImageRingList::toggleSlideshow(bool start)
{
if(start)
{
QSettings settings;
int time = settings.value("settings/slideshowtime", 1.0).toDouble() * 1000;
m_slideShowTimer->start(time);
}
else
{
m_slideShowTimer->stop();
}
}
void ImageRingList::setFiles(const QStringList files, const QString &currentFile)
{
QThreadPool::globalInstance()->clear();