From 509a2ac7fb264905f8a36270fe9325d61ac58ddf Mon Sep 17 00:00:00 2001 From: birkeh Date: Mon, 4 Mar 2019 21:32:47 +0100 Subject: [PATCH] import --- cexif.cpp | 2 +- cimportdialog.cpp | 6 + cmainwindow.cpp | 4 + common.cpp | 9 + common.h | 9 + ctoolboxinfo.cpp | 88 ++++--- ctoolboxinfo.ui | 636 ++++++++++++++++++++++++++++------------------ 7 files changed, 475 insertions(+), 279 deletions(-) diff --git a/cexif.cpp b/cexif.cpp index 078f5d2..440de17 100644 --- a/cexif.cpp +++ b/cexif.cpp @@ -351,7 +351,7 @@ QDateTime cEXIF::dateTime() return(dateTime); QFileInfo info(m_szFileName); - return(info.birthTime()); + return(info.lastModified()); } QString cEXIF::fNumber() diff --git a/cimportdialog.cpp b/cimportdialog.cpp index 54f5422..895e397 100644 --- a/cimportdialog.cpp +++ b/cimportdialog.cpp @@ -242,6 +242,12 @@ void cImportDialog::onImport() if(lpPicture) { + if(m_pictureList.find(lpPicture)) + { + if(QMessageBox::question(this, tr("File Exists"), QString(tr("%1%2%3 already exists.\nDo you want to overwrite?").arg(lpPicture->filePath()).arg(QDir::separator()).arg(lpPicture->fileName()))) == QMessageBox::No) + continue; + continue; + } ui->m_lpStatusText->setText(QString("importing %1 ...").arg(lpPicture->fileName())); qApp->processEvents(); diff --git a/cmainwindow.cpp b/cmainwindow.cpp index d0686ff..46dbc98 100644 --- a/cmainwindow.cpp +++ b/cmainwindow.cpp @@ -178,6 +178,10 @@ void cMainWindow::displayData() } ui->m_lpFolderView->expandAll(); + + m_lpFolderSortFilterProxyModel->sort(0); + m_lpThumbnailSortFilterProxyModel->sort(0); + ui->m_lpStatusBar->showMessage(tr("done."), 3); } diff --git a/common.cpp b/common.cpp index 8a3065a..0e20510 100644 --- a/common.cpp +++ b/common.cpp @@ -41,6 +41,15 @@ QByteArray image2Blob(const QImage &image) return(ba); } +QString ms2String(qint64 ms) +{ + qint64 h = ms/3600000; + qint64 m = (ms-h*3600000)/60000; + qint64 s = (ms-h*3600000-m*60000)/1000; + + return(QString("%1:%2:%3").arg(static_cast(h)).arg(static_cast(h), 2, 10, QChar('0')).arg(static_cast(s), 2, 10, QChar('0'))); +} + QStandardItem* insertPath(QString szPath, QStandardItem* lpRootItem) { if(!lpRootItem) diff --git a/common.h b/common.h index cc7b565..e9c163f 100644 --- a/common.h +++ b/common.h @@ -48,6 +48,15 @@ QImage blob2Image(const QByteArray& ba); */ QByteArray image2Blob(const QImage& image); +/*! + \brief + + \fn ms2String + \param ms + \return QString +*/ +QString ms2String(qint64 ms); + /*! \brief diff --git a/ctoolboxinfo.cpp b/ctoolboxinfo.cpp index 088f0a2..eebca71 100644 --- a/ctoolboxinfo.cpp +++ b/ctoolboxinfo.cpp @@ -6,6 +6,8 @@ #include "ctoolboxinfo.h" #include "ui_ctoolboxinfo.h" +#include "common.h" + cToolBoxInfo::cToolBoxInfo(QWidget *parent) : QWidget(parent), @@ -21,35 +23,61 @@ cToolBoxInfo::~cToolBoxInfo() void cToolBoxInfo::setPicture(cPicture* lpPicture) { - if(!lpPicture) - { - ui->m_lpFileName->setText("---"); - ui->m_lpPath->setText("---"); - ui->m_lpDate->setText("---"); - ui->m_lpSize->setText("---"); - ui->m_lpCamera->setText("---"); - ui->m_lpLensModel->setText("---"); - ui->m_lpFNumber->setText("---"); - ui->m_lpExposureTime->setText("---"); - ui->m_lpExposureBias->setText("---"); - ui->m_lpISO->setText("---"); - ui->m_lpFocalLength->setText("---"); - ui->m_lpFlash->setText("---"); - ui->m_lpGPS->setText("---"); - return; - } - ui->m_lpFileName->setText(lpPicture->fileName()); - ui->m_lpPath->setText(lpPicture->filePath()); - ui->m_lpDate->setText(lpPicture->dateTime().toString()); - ui->m_lpSize->setText(QString("%1x%2").arg(lpPicture->imageWidth()).arg(lpPicture->imageHeight())); - ui->m_lpCamera->setText(QString("%1 %2").arg(lpPicture->cameraMake()).arg(lpPicture->cameraModel())); - ui->m_lpLensModel->setText(lpPicture->lensModel()); - ui->m_lpFNumber->setText("f 1:" + lpPicture->fNumber()); - ui->m_lpExposureTime->setText(lpPicture->exposureTime()); - ui->m_lpExposureBias->setText(QString::number(lpPicture->exposureBias())); - ui->m_lpISO->setText(QString::number(lpPicture->iso())); - ui->m_lpFocalLength->setText(QString("%1 mm").arg(lpPicture->focalLength())); - ui->m_lpFlash->setText(lpPicture->flash()); - ui->m_lpGPS->setText(lpPicture->gps()); + if(lpPicture->mimeType().startsWith("image")) + { + ui->m_lpCategory->setCurrentIndex(0); + if(!lpPicture) + { + ui->m_lpFileNamePicture->setText("---"); + ui->m_lpPathPicture->setText("---"); + ui->m_lpDatePicture->setText("---"); + ui->m_lpSizePicture->setText("---"); + ui->m_lpCameraPicture->setText("---"); + ui->m_lpLensModelPicture->setText("---"); + ui->m_lpFNumberPicture->setText("---"); + ui->m_lpExposureTimePicture->setText("---"); + ui->m_lpExposureBiasPicture->setText("---"); + ui->m_lpISOPicture->setText("---"); + ui->m_lpFocalLengthPicture->setText("---"); + ui->m_lpFlashPicture->setText("---"); + ui->m_lpGPSPicture->setText("---"); + return; + } + + ui->m_lpFileNamePicture->setText(lpPicture->fileName()); + ui->m_lpPathPicture->setText(lpPicture->filePath()); + ui->m_lpDatePicture->setText(lpPicture->dateTime().toString()); + ui->m_lpSizePicture->setText(QString("%1x%2").arg(lpPicture->imageWidth()).arg(lpPicture->imageHeight())); + ui->m_lpCameraPicture->setText(QString("%1 %2").arg(lpPicture->cameraMake()).arg(lpPicture->cameraModel())); + ui->m_lpLensModelPicture->setText(lpPicture->lensModel()); + ui->m_lpFNumberPicture->setText("f 1:" + lpPicture->fNumber()); + ui->m_lpExposureTimePicture->setText(lpPicture->exposureTime()); + ui->m_lpExposureBiasPicture->setText(QString::number(lpPicture->exposureBias())); + ui->m_lpISOPicture->setText(QString::number(lpPicture->iso())); + ui->m_lpFocalLengthPicture->setText(QString("%1 mm").arg(lpPicture->focalLength())); + ui->m_lpFlashPicture->setText(lpPicture->flash()); + ui->m_lpGPSPicture->setText(lpPicture->gps()); + } + else + { + ui->m_lpCategory->setCurrentIndex(1); + if(!lpPicture) + { + ui->m_lpFileNameVideo->setText("---"); + ui->m_lpPathVideo->setText("---"); + ui->m_lpDateVideo->setText("---"); + ui->m_lpSizeVideo->setText("---"); + ui->m_lpCameraVideo->setText("---"); + ui->m_lpDurationVideo->setText("---"); + return; + } + + ui->m_lpFileNameVideo->setText(lpPicture->fileName()); + ui->m_lpPathVideo->setText(lpPicture->filePath()); + ui->m_lpDateVideo->setText(lpPicture->dateTime().toString()); + ui->m_lpSizeVideo->setText(QString("%1x%2").arg(lpPicture->imageWidth()).arg(lpPicture->imageHeight())); + ui->m_lpCameraVideo->setText(QString("%1 %2").arg(lpPicture->cameraMake()).arg(lpPicture->cameraModel())); + ui->m_lpDurationVideo->setText(ms2String(lpPicture->duration())); + } } diff --git a/ctoolboxinfo.ui b/ctoolboxinfo.ui index c1e266c..9fa5af6 100644 --- a/ctoolboxinfo.ui +++ b/ctoolboxinfo.ui @@ -6,260 +6,400 @@ 0 0 - 261 - 322 + 303 + 476 Form - + - - - - - - - - - - - - - - - - - - - - - - true - - - - - - - - - - - - - - - - - - - - - focal length: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - flash: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - ISO: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - - - true - - - - - - - - - - - - - - filename: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - F-number: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - camera: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - size: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - date: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - exposure time: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - exposure bias: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - lens model: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - - - - - - - - - - true - - - - - - - - - - - - - - path: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - - - - - - - - - - - - - - GPS: - - - Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - - - - - - - - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - + + + + + + + + + + + + + + + + + + + + + + + + + + true + + + + + + + + + + + + + + + + + + + + + focal length: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + flash: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + ISO: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + true + + + + + + + + + + + + + + filename: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + F-number: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + camera: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + size: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + date: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + exposure time: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + exposure bias: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + lens model: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + + + + + + + true + + + + + + + + + + + + + + path: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + + + + + + + + + + + GPS: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + + + size: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + true + + + + + + + + + + true + + + + + + + date: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + filename: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + + + + + + + + + + + + path: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + camera: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + true + + + + + + + + + + + + + + Duration: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + Qt::Vertical + + + + 20 + 162 + + + + + + +