initial commit

This commit is contained in:
2020-01-21 23:36:30 +01:00
parent 7983d3a8b3
commit 15f55e317d
15 changed files with 355 additions and 37 deletions
+5 -5
View File
@@ -539,7 +539,7 @@ cEXIFCompressionList::cEXIFCompressionList()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setHostName("localhost");
db.setDatabaseName("pictureConvert.db");
db.setDatabaseName("picturePrint.db");
if(!db.open())
return;
@@ -601,7 +601,7 @@ cEXIFLightSourceList::cEXIFLightSourceList()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setHostName("localhost");
db.setDatabaseName("pictureConvert.db");
db.setDatabaseName("picturePrint.db");
if(!db.open())
return;
@@ -663,7 +663,7 @@ cEXIFFlashList::cEXIFFlashList()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setHostName("localhost");
db.setDatabaseName("pictureConvert.db");
db.setDatabaseName("picturePrint.db");
if(!db.open())
return;
@@ -729,7 +729,7 @@ cEXIFTagList::cEXIFTagList()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setHostName("localhost");
db.setDatabaseName("pictureConvert.db");
db.setDatabaseName("picturePrint.db");
if(!db.open())
return;
@@ -1039,7 +1039,7 @@ cXMPTagList::cXMPTagList()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setHostName("localhost");
db.setDatabaseName("pictureConvert.db");
db.setDatabaseName("picturePrint.db");
if(!db.open())
return;
+82 -2
View File
@@ -1,14 +1,94 @@
#include "cfilebrowser.h"
#include "cfileviewer.h"
#include "ui_cfilebrowser.h"
cFileBrowser::cFileBrowser(QWidget *parent) :
#include <QMessageBox>
#include <QPushButton>
#include <QLabel>
#include <QVBoxLayout>
#include <QMimeType>
#include <QPainter>
cFileBrowser::cFileBrowser(QProgressBar* lpProgressBar, QList<IMAGEFORMAT>* lpImageFormats, QWidget *parent) :
QWidget(parent),
ui(new Ui::cFileBrowser)
ui(new Ui::cFileBrowser),
m_lpFileListModel(nullptr),
m_lpProgressBar(lpProgressBar),
m_lpImageFormats(lpImageFormats)
{
ui->setupUi(this);
ui->m_lpFileList->setGridSize(QSize(THUMBNAIL_WIDTH+2+4, THUMBNAIL_WIDTH+34+4));
// m_directoryListModel.setRootPath("");
m_directoryListModel.setRootPath("C:/Users/birkeh/Pictures");
m_directoryListModel.setFilter(QDir::AllDirs | QDir::NoDotAndDotDot);
ui->m_lpDirectoryList->setModel(&m_directoryListModel);
ui->m_lpDirectoryList->setAnimated(false);
ui->m_lpDirectoryList->setIndentation(20);
ui->m_lpDirectoryList->setColumnWidth(0, 250);
m_lpFileListModel = new QStandardItemModel(0, 0);
ui->m_lpFileList->setModel(m_lpFileListModel);
connect(ui->m_lpDirectoryList->selectionModel(), &QItemSelectionModel::selectionChanged, this, &cFileBrowser::onDirectoryChanged);
}
cFileBrowser::~cFileBrowser()
{
delete ui;
}
void cFileBrowser::onDirectoryChanged(const QItemSelection& selected, const QItemSelection& /*deselected*/)
{
m_lpProgressBar->setVisible(true);
m_lpFileListModel->clear();
QFileInfo info = m_directoryListModel.fileInfo(selected.indexes()[0]);
QDir dir(info.filePath());
QFileInfoList list = dir.entryInfoList(generateReadList(*m_lpImageFormats), QDir::Files, QDir::Name);
m_lpProgressBar->setRange(0, list.count());
for(int x = 0;x < list.count();x++)
{
addFile(list[x]);
m_lpProgressBar->setValue(x);
// qApp->sendPostedEvents();
qApp->processEvents();
}
m_lpProgressBar->setVisible(false);
}
void cFileBrowser::addFile(const QFileInfo& fileInfo)
{
cEXIF* lpExif = new cEXIF(&m_exifTAGList, &m_exifCompressionList, &m_exifLightSourceList, &m_exifFlashList, &m_iptcTagList, &m_xmpTagList);
if(!lpExif->fromFile(fileInfo.filePath()))
{
delete lpExif;
return;
}
QImage thumbnail = lpExif->thumbnail();
QImage thumb(THUMBNAIL_WIDTH, thumbnail.height(), QImage::Format_ARGB32);
thumb.fill(qRgba(0, 0, 0, 0));
QPainter painter(&thumb);
painter.drawImage((THUMBNAIL_WIDTH-thumbnail.width())/2, 0, thumbnail);
QStandardItem* lpItem = new QStandardItem("");
cFileViewer* lpFileViewer = new cFileViewer;
lpFileViewer->setImage(fileInfo.filePath(), QPixmap::fromImage(thumb));
m_lpFileListModel->appendRow(lpItem);
ui->m_lpFileList->setIndexWidget(m_lpFileListModel->index(m_lpFileListModel->rowCount()-1, 0), lpFileViewer);
}
+31 -2
View File
@@ -1,8 +1,19 @@
#ifndef CFILEBROWSER_H
#define CFILEBROWSER_H
#include "common.h"
#include "cexif.h"
#include <QWidget>
#include <QFileSystemModel>
#include <QItemSelection>
#include <QStandardItemModel>
#include <QProgressBar>
#include <QFileInfo>
namespace Ui {
class cFileBrowser;
}
@@ -12,11 +23,29 @@ class cFileBrowser : public QWidget
Q_OBJECT
public:
explicit cFileBrowser(QWidget *parent = nullptr);
explicit cFileBrowser(QProgressBar* lpProgressBar, QList<IMAGEFORMAT>* lpImageFormats, QWidget *parent = nullptr);
~cFileBrowser();
private:
Ui::cFileBrowser *ui;
Ui::cFileBrowser* ui;
QFileSystemModel m_directoryListModel;
QStandardItemModel* m_lpFileListModel;
QProgressBar* m_lpProgressBar;
QList<IMAGEFORMAT>* m_lpImageFormats;
cEXIFTagList m_exifTAGList;
cEXIFCompressionList m_exifCompressionList;
cEXIFLightSourceList m_exifLightSourceList;
cEXIFFlashList m_exifFlashList;
cIPTCTagList m_iptcTagList;
cXMPTagList m_xmpTagList;
void addFile(const QFileInfo& fileInfo);
private slots:
void onDirectoryChanged(const QItemSelection& selected, const QItemSelection& deselected);
};
#endif // CFILEBROWSER_H
+35 -7
View File
@@ -1,21 +1,49 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<author/>
<comment/>
<exportmacro/>
<class>cFileBrowser</class>
<widget name="cFileBrowser" class="QWidget">
<widget class="QWidget" name="cFileBrowser">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
<width>779</width>
<height>602</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</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>
</item>
</layout>
</widget>
<pixmapfunction/>
<resources/>
<connections/>
</ui>
+22
View File
@@ -1,14 +1,36 @@
#include "common.h"
#include "cfileviewer.h"
#include "ui_cfileviewer.h"
#include <QFileInfo>
cFileViewer::cFileViewer(QWidget *parent) :
QWidget(parent),
ui(new Ui::cFileViewer)
{
ui->setupUi(this);
ui->m_lpImage->setMinimumSize(THUMBNAIL_WIDTH, THUMBNAIL_WIDTH);
ui->m_lpImage->setMaximumSize(THUMBNAIL_WIDTH, THUMBNAIL_WIDTH);
ui->m_lpImage->resize(THUMBNAIL_WIDTH, THUMBNAIL_WIDTH);
setMinimumSize(THUMBNAIL_WIDTH+2, THUMBNAIL_WIDTH+34);
setMaximumSize(THUMBNAIL_WIDTH+2, THUMBNAIL_WIDTH+34);
resize(THUMBNAIL_WIDTH+2, THUMBNAIL_WIDTH+34);
}
cFileViewer::~cFileViewer()
{
delete ui;
}
void cFileViewer::setImage(const QString& fileName, const QPixmap& image)
{
QFileInfo fileInfo(fileName);
m_fileName = fileName;
ui->m_lpImage->setPixmap(image);
ui->m_lpFileName->setText(fileInfo.fileName());
}
+6 -1
View File
@@ -1,8 +1,10 @@
#ifndef CFILEVIEWER_H
#define CFILEVIEWER_H
#include <QWidget>
namespace Ui {
class cFileViewer;
}
@@ -15,8 +17,11 @@ public:
explicit cFileViewer(QWidget *parent = nullptr);
~cFileViewer();
void setImage(const QString& fileName, const QPixmap& image);
private:
Ui::cFileViewer *ui;
Ui::cFileViewer* ui;
QString m_fileName;
};
#endif // CFILEVIEWER_H
+82 -7
View File
@@ -1,21 +1,96 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<author/>
<comment/>
<exportmacro/>
<class>cFileViewer</class>
<widget name="cFileViewer" class="QWidget">
<widget class="QWidget" name="cFileViewer">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
<width>100</width>
<height>100</height>
</rect>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<property name="autoFillBackground">
<bool>true</bool>
</property>
<layout class="QGridLayout" name="gridLayout">
<property name="leftMargin">
<number>0</number>
</property>
<property name="topMargin">
<number>0</number>
</property>
<property name="rightMargin">
<number>0</number>
</property>
<property name="bottomMargin">
<number>0</number>
</property>
<property name="spacing">
<number>0</number>
</property>
<item row="0" column="0">
<layout class="QGridLayout" name="gridLayout_2">
<property name="spacing">
<number>0</number>
</property>
<item row="0" column="0">
<widget class="QLabel" name="m_lpImage">
<property name="minimumSize">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string>IMAGE</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="m_lpFileName">
<property name="text">
<string>TextLabel</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QSpinBox" name="spinBox"/>
</item>
</layout>
</item>
</layout>
</widget>
<pixmapfunction/>
<resources/>
<connections/>
</ui>
+12 -8
View File
@@ -15,12 +15,13 @@
cMainWindow::cMainWindow(cSplashScreen* lpSplashScreen, QWidget *parent)
: QMainWindow(parent),
ui(new Ui::cMainWindow),
m_lpSplashScreen(lpSplashScreen)
m_lpSplashScreen(lpSplashScreen),
m_lpFileBrowser(0)
{
setImageFormats();
initUI();
createActions();
setImageFormats();
}
cMainWindow::~cMainWindow()
@@ -58,7 +59,14 @@ void cMainWindow::initUI()
ui->setupUi(this);
// QIcon::setThemeName("TangoMFK");
QIcon::setThemeName("TangoMFK");
m_lpProgressBar = new QProgressBar(this);
m_lpProgressBar->setVisible(false);
ui->m_lpStatusBar->addPermanentWidget(m_lpProgressBar);
m_lpFileBrowser = new cFileBrowser(m_lpProgressBar, &m_imageFormats, this);
ui->m_lpMainTab->addTab(m_lpFileBrowser, "Files");
// m_lpFileListModel = new QStandardItemModel;
// ui->m_lpFileList->setModel(m_lpFileListModel);
@@ -76,10 +84,6 @@ void cMainWindow::initUI()
move(iX, iY);
}
// m_lpProgressBar = new QProgressBar(this);
// m_lpProgressBar->setVisible(false);
// ui->m_lpStatusBar->addPermanentWidget(m_lpProgressBar);
// QStringList headerLabels = QStringList() << tr("icon") << tr("path") << tr("file") << tr("size") << tr("date") << tr("width") << tr("height") << ("");
// m_lpFileListModel->setHorizontalHeaderLabels(headerLabels);
}
+6
View File
@@ -5,8 +5,11 @@
#include "csplashscreen.h"
#include "common.h"
#include "cfilebrowser.h"
#include <QMainWindow>
#include <QCloseEvent>
#include <QProgressBar>
QT_BEGIN_NAMESPACE
@@ -25,6 +28,9 @@ public:
private:
Ui::cMainWindow* ui;
cSplashScreen* m_lpSplashScreen;
QProgressBar* m_lpProgressBar;
cFileBrowser* m_lpFileBrowser;
QList<IMAGEFORMAT> m_imageFormats;
+9 -3
View File
@@ -13,8 +13,14 @@
<property name="windowTitle">
<string/>
</property>
<widget class="QWidget" name="centralwidget"/>
<widget class="QMenuBar" name="menubar">
<widget class="QWidget" name="centralwidget">
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QTabWidget" name="m_lpMainTab"/>
</item>
</layout>
</widget>
<widget class="QMenuBar" name="m_lpMenuBar">
<property name="geometry">
<rect>
<x>0</x>
@@ -24,7 +30,7 @@
</rect>
</property>
</widget>
<widget class="QStatusBar" name="statusbar"/>
<widget class="QStatusBar" name="m_lpStatusBar"/>
</widget>
<resources/>
<connections/>
+31
View File
@@ -1 +1,32 @@
#include "common.h"
QStringList generateReadList(const QList<IMAGEFORMAT>& imageFormats)
{
QStringList readList;
for(int z = 0;z < imageFormats.count();z++)
{
IMAGEFORMAT i = imageFormats[z];
if(i.read)
readList.append(i.extension.split(" "));
}
return(readList);
}
QStringList generateWriteList(const QList<IMAGEFORMAT>& imageFormats)
{
QStringList writeList;
for(int z = 0;z < imageFormats.count();z++)
{
IMAGEFORMAT i = imageFormats[z];
if(i.write)
writeList.append(i.extension.split(""));
}
return(writeList);
}
+8
View File
@@ -5,6 +5,10 @@
#include <QDebug>
#define THUMBNAIL_WIDTH 160
#define THUMBNAIL_HEIGHT 120
#ifdef __GNUC__
#define myDebug qDebug() << __FILE__ << "(" << __LINE__ << ") - " << __PRETTY_FUNCTION__ << ":"
#elif __MINGW32__
@@ -28,4 +32,8 @@ typedef struct tagIMAGEFORMAT
} IMAGEFORMAT;
QStringList generateReadList(const QList<IMAGEFORMAT>& imageFormats);
QStringList generateWriteList(const QList<IMAGEFORMAT>& imageFormats);
#endif // COMMON_H
+14
View File
@@ -0,0 +1,14 @@
[Icon Theme]
Name=tango
Comment=Original tango icons
Inherits=default
Directories=16x16,22x22,32x32
[16x16]
Size=16
[22x22]
Size=22
[32x32]
Size=32
+2 -2
View File
@@ -14,10 +14,10 @@ int main(int argc, char *argv[])
QApplication a(argc, argv);
a.setApplicationVersion(APP_VERSION);
a.setApplicationDisplayName("pictureConvert");
a.setApplicationDisplayName("picturePrint");
a.setOrganizationName("WIN-DESIGN");
a.setOrganizationDomain("windesign.at");
a.setApplicationName("pictureConvert");
a.setApplicationName("picturePrint");
QSettings settings;
+10
View File
@@ -44,17 +44,27 @@ DEFINES += APP_VERSION=\\\"$$VERSION\\\"
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
SOURCES += \
cexif.cpp \
cfilebrowser.cpp \
cfileviewer.cpp \
cimage.cpp \
common.cpp \
csplashscreen.cpp \
main.cpp \
cmainwindow.cpp
HEADERS += \
cexif.h \
cfilebrowser.h \
cfileviewer.h \
cimage.h \
cmainwindow.h \
common.h \
csplashscreen.h
FORMS += \
cfilebrowser.ui \
cfileviewer.ui \
cmainwindow.ui
TRANSLATIONS += \