initial commit

This commit is contained in:
2020-02-05 16:04:00 +01:00
parent 7ffe4e36af
commit 92d2cb9a7b
6 changed files with 172 additions and 28 deletions
+33 -1
View File
@@ -1,5 +1,4 @@
#include "cfilebrowser.h"
#include "cfileviewer.h"
#include "ui_cfilebrowser.h"
@@ -42,6 +41,9 @@ cFileBrowser::cFileBrowser(QProgressBar* lpProgressBar, QList<IMAGEFORMAT>* lpIm
m_lpFileListModel = new QStandardItemModel(0, 0);
ui->m_lpFileList->setModel(m_lpFileListModel);
m_lpSelectedListModel = new QStandardItemModel(0, 0);
ui->m_lpSelectedList->setModel(m_lpSelectedListModel);
m_cacheDB = QSqlDatabase::addDatabase("QSQLITE", "cacheDB");
m_cacheDB.setHostName("localhost");
m_cacheDB.setDatabaseName(userDir() + "cache.db");
@@ -116,6 +118,35 @@ void cFileBrowser::onDirectoryChanged(const QItemSelection& selected, const QIte
m_working = false;
}
void cFileBrowser::onCountChanged(const QString& fileName, QPixmap pixmap, int count)
{
cFileViewer* lpFileViewer;
for(int x = 0;x < m_lpSelectedListModel->rowCount();x++)
{
lpFileViewer = static_cast<cFileViewer*>(ui->m_lpSelectedList->indexWidget(m_lpSelectedListModel->index(x, 0)));
if(lpFileViewer)
{
if(lpFileViewer->fileName() == fileName)
{
if(count)
lpFileViewer->setCount(count);
else
m_lpSelectedListModel->removeRow(x);
return;
}
}
}
QStandardItem* lpItem = new QStandardItem("");
cFileViewer* lpFileViewer1 = new cFileViewer;
lpFileViewer1->setImage(fileName, pixmap);
lpFileViewer1->setCount(count);
m_lpSelectedListModel->appendRow(lpItem);
ui->m_lpSelectedList->setIndexWidget(m_lpSelectedListModel->index(m_lpSelectedListModel->rowCount()-1, 0), lpFileViewer1);
}
void cFileBrowser::addFile(const QFileInfo& fileInfo)
{
cEXIF* lpExif = new cEXIF(&m_exifTAGList, &m_exifCompressionList, &m_exifLightSourceList, &m_exifFlashList, &m_iptcTagList, &m_xmpTagList);
@@ -141,5 +172,6 @@ void cFileBrowser::addFile(const QFileInfo& fileInfo)
m_lpFileListModel->appendRow(lpItem);
ui->m_lpFileList->setIndexWidget(m_lpFileListModel->index(m_lpFileListModel->rowCount()-1, 0), lpFileViewer);
connect(lpFileViewer, &cFileViewer::countChanged, this, &cFileBrowser::onCountChanged);
delete lpExif;
}
+4
View File
@@ -4,6 +4,8 @@
#include "common.h"
#include "cexif.h"
#include "cfileviewer.h"
#include <QWidget>
#include <QFileSystemModel>
@@ -32,6 +34,7 @@ private:
Ui::cFileBrowser* ui;
QFileSystemModel m_directoryListModel;
QStandardItemModel* m_lpFileListModel;
QStandardItemModel* m_lpSelectedListModel;
QProgressBar* m_lpProgressBar;
QList<IMAGEFORMAT>* m_lpImageFormats;
@@ -52,6 +55,7 @@ private:
private slots:
void onDirectoryChanged(const QItemSelection& selected, const QItemSelection& deselected);
void onCountChanged(const QString& fileName, QPixmap pixmap, int count);
};
#endif // CFILEBROWSER_H
+61 -26
View File
@@ -15,32 +15,67 @@
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QSplitter" name="splitter">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<widget class="QTreeView" name="m_lpDirectoryList"/>
<widget class="QListView" name="m_lpFileList">
<property name="editTriggers">
<set>QAbstractItemView::NoEditTriggers</set>
</property>
<property name="flow">
<enum>QListView::LeftToRight</enum>
</property>
<property name="resizeMode">
<enum>QListView::Adjust</enum>
</property>
<property name="gridSize">
<size>
<width>202</width>
<height>236</height>
</size>
</property>
<property name="viewMode">
<enum>QListView::IconMode</enum>
</property>
</widget>
</widget>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QSplitter" name="splitter">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<widget class="QTreeView" name="m_lpDirectoryList"/>
<widget class="QListView" name="m_lpFileList">
<property name="editTriggers">
<set>QAbstractItemView::NoEditTriggers</set>
</property>
<property name="flow">
<enum>QListView::LeftToRight</enum>
</property>
<property name="resizeMode">
<enum>QListView::Adjust</enum>
</property>
<property name="gridSize">
<size>
<width>202</width>
<height>236</height>
</size>
</property>
<property name="viewMode">
<enum>QListView::IconMode</enum>
</property>
</widget>
</widget>
</item>
<item>
<widget class="QListView" name="m_lpSelectedList">
<property name="minimumSize">
<size>
<width>0</width>
<height>244</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>244</height>
</size>
</property>
<property name="movement">
<enum>QListView::Free</enum>
</property>
<property name="flow">
<enum>QListView::LeftToRight</enum>
</property>
<property name="resizeMode">
<enum>QListView::Adjust</enum>
</property>
<property name="gridSize">
<size>
<width>202</width>
<height>236</height>
</size>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
+50
View File
@@ -19,6 +19,8 @@ cFileViewer::cFileViewer(QWidget *parent) :
setMinimumSize(THUMBNAIL_WIDTH+2, THUMBNAIL_WIDTH+34);
setMaximumSize(THUMBNAIL_WIDTH+2, THUMBNAIL_WIDTH+34);
resize(THUMBNAIL_WIDTH+2, THUMBNAIL_WIDTH+34);
connect(ui->m_lpCount, QOverload<int>::of(&QSpinBox::valueChanged), this, &cFileViewer::onCountChanged);
}
cFileViewer::~cFileViewer()
@@ -34,3 +36,51 @@ void cFileViewer::setImage(const QString& fileName, const QPixmap& image)
ui->m_lpImage->setPixmap(image);
ui->m_lpFileName->setText(fileInfo.fileName());
}
QPixmap cFileViewer::image()
{
return(QPixmap(*ui->m_lpImage->pixmap()));
}
QString cFileViewer::fileName()
{
return(m_fileName);
}
void cFileViewer::setCount(qint32 count)
{
ui->m_lpCount->setValue(count);
}
qint32 cFileViewer::count()
{
return(ui->m_lpCount->value());
}
void cFileViewer::onCountChanged(int i)
{
emit countChanged(m_fileName, image(), i);
}
cFileViewer* cFileViewerList::add(const QString& fileName, const QPixmap& image)
{
cFileViewer* lpNew = find(fileName);
if(lpNew)
return(nullptr);
lpNew = new cFileViewer;
lpNew->setImage(fileName, image);
append(lpNew);
return(lpNew);
}
cFileViewer* cFileViewerList::find(const QString& fileName)
{
for(cFileViewerList::iterator i = begin();i != end();i++)
{
if((*i)->fileName() == fileName)
return(*i);
}
return(nullptr);
}
+23
View File
@@ -3,6 +3,8 @@
#include <QWidget>
#include <QList>
#include <QMetaType>
namespace Ui {
@@ -18,10 +20,31 @@ public:
~cFileViewer();
void setImage(const QString& fileName, const QPixmap& image);
QPixmap image();
QString fileName();
void setCount(qint32 count);
qint32 count();
private:
Ui::cFileViewer* ui;
QString m_fileName;
public slots:
void onCountChanged(int i);
signals:
void countChanged(const QString& fileName, QPixmap pixmap, int i);
};
Q_DECLARE_METATYPE(cFileViewer*)
class cFileViewerList : public QList<cFileViewer*>
{
public:
cFileViewer* add(const QString& fileName, const QPixmap& image);
cFileViewer* find(const QString& fileName);
};
#endif // CFILEVIEWER_H
+1 -1
View File
@@ -85,7 +85,7 @@
</widget>
</item>
<item row="2" column="0">
<widget class="QSpinBox" name="spinBox"/>
<widget class="QSpinBox" name="m_lpCount"/>
</item>
</layout>
</item>