initial commit
This commit is contained in:
+33
-1
@@ -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,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
@@ -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>
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user