summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--compare.pngbin0 -> 1177 bytes
-rw-r--r--fswidget.cpp30
-rw-r--r--fswidget.h1
-rw-r--r--shemov.qrc1
-rw-r--r--viewer.cpp8
-rw-r--r--viewer.h1
6 files changed, 38 insertions, 3 deletions
diff --git a/compare.png b/compare.png
new file mode 100644
index 0000000..13c325f
--- /dev/null
+++ b/compare.png
Binary files differ
diff --git a/fswidget.cpp b/fswidget.cpp
index 52dca10..05034a0 100644
--- a/fswidget.cpp
+++ b/fswidget.cpp
@@ -142,6 +142,8 @@ void FSWidget::setupWidget(){
connect(unselectAllA, &QAction::triggered, [=] { mFileView->selectionModel()->clear(); });
unselectAllA->setShortcut(tr("CTRL+k"));
unselectAllA->setData(SmView::InvisibleAction);
+ QAction *compareA = new QAction(QIcon(":/compare.png"), tr("Compare..."), this);
+ connect(compareA, &QAction::triggered, this, &FSWidget::comparePics);
QIcon plusIcon = Helper::icon(QColor(255,85,255), Qt::white, '+', true, true);
QIcon minusIcon = Helper::icon(QColor(255,85,255), Qt::white, '-', true, true);
@@ -199,7 +201,7 @@ void FSWidget::setupWidget(){
mFileView->sortByColumn(0, Qt::AscendingOrder);
connect(mFileView->selectionModel(), &QItemSelectionModel::selectionChanged, this, &FSWidget::calculateSelectionChanged);
- mFileView->addActions(QList<QAction*>() << playSelectedA << playRepeatMA << mPlayWithA << Helper::createSeparator(this) << backA << forwardA << Helper::createSeparator(this) << refreshA << deleteFilesA << Helper::createSeparator(this) << archiveMovieA << archivePicsA << Helper::createSeparator(this) << unpackA << previewA << selectFilterA << unselectAllA);
+ mFileView->addActions(QList<QAction*>() << playSelectedA << playRepeatMA << mPlayWithA << Helper::createSeparator(this) << backA << forwardA << Helper::createSeparator(this) << refreshA << deleteFilesA << Helper::createSeparator(this) << archiveMovieA << archivePicsA << Helper::createSeparator(this) << unpackA << previewA << compareA << selectFilterA << unselectAllA);
QVBoxLayout *mainLayout = new QVBoxLayout;
mainLayout->addLayout(topWL);
@@ -389,7 +391,7 @@ void FSWidget::gatherData(const QString &curDir){
}
if(!dups.isEmpty()){
currentBrush = blueBrush;
- presenceStr = QString(tr("Pics: Name")).arg(QString::number(dups.count()));
+ presenceStr = QString(tr("Pics: Name")); //.arg(QString::number(dups.count()));
}
}
@@ -570,6 +572,30 @@ void FSWidget::preview(){
}
}
+void FSWidget::comparePics(){
+ QModelIndexList selected = mFileView->selectionModel()->selectedRows();
+ if(selected.isEmpty()){
+ return;
+ }
+ QString fullPath = selected.first().data(FullPathRole).toString();
+ QFileInfo fi(fullPath);
+ QString fn = fi.fileName();
+ QStringList files = QStringList() << fullPath;
+ QSqlDatabase db = QSqlDatabase::database("treedb");
+ QSqlQuery nameQ(db);
+ nameQ.prepare("SELECT tfilename, cmd5sum FROM pics WHERE tfilename = :arg");
+ nameQ.bindValue(":arg", fn);
+ nameQ.exec();
+ while(nameQ.next()){
+ QString v1 = nameQ.value(0).toString();
+ QString v2 = nameQ.value(1).toString();
+ QString fullPath = Helper::createArchivePath(v1, v2, false);
+ files << fullPath;
+ }
+ mViewer->setFiles(files);
+ mViewer->showMaximized();
+}
+
void FSWidget::playSelected(int count, QString player){
QModelIndexList selected = mFileView->selectionModel()->selectedRows();
if(selected.isEmpty()){
diff --git a/fswidget.h b/fswidget.h
index a926fb7..85f25c5 100644
--- a/fswidget.h
+++ b/fswidget.h
@@ -45,6 +45,7 @@ class FSWidget : public QWidget {
void unpack();
void doubleClicked(const QModelIndex &idx);
void preview();
+ void comparePics();
void playSelected(int count, QString player);
void doPlay();
void selectFilter();
diff --git a/shemov.qrc b/shemov.qrc
index 18a42ff..7cd8817 100644
--- a/shemov.qrc
+++ b/shemov.qrc
@@ -49,5 +49,6 @@
<file>delete.png</file>
<file>refresh.png</file>
<file>snapshot.png</file>
+ <file>compare.png</file>
</qresource>
</RCC>
diff --git a/viewer.cpp b/viewer.cpp
index b42a725..71cef78 100644
--- a/viewer.cpp
+++ b/viewer.cpp
@@ -49,6 +49,13 @@ void Viewer::setFile(const QString &file, bool allFiles){
}
}
+void Viewer::setFiles(const QStringList &files){
+ mFiles.clear();
+ mFiles = files;
+ mCurIndex = 0;
+ displayFile(mCurIndex);
+}
+
void Viewer::preview(const QString &file){
mFiles.clear();
mCurIndex = -1;
@@ -58,7 +65,6 @@ void Viewer::preview(const QString &file){
setWindowTitle(winTitle);
}
-
void Viewer::wheelEvent(QWheelEvent *event){
if(mCurIndex == -1){
return;
diff --git a/viewer.h b/viewer.h
index a790b9a..0deb81b 100644
--- a/viewer.h
+++ b/viewer.h
@@ -9,6 +9,7 @@ class Viewer : public QWidget {
public:
Viewer(QWidget *parent = 0, Qt::WindowFlags f = 0);
void setFile(const QString &file, bool allFiles = true);
+ void setFiles(const QStringList &files);
void preview(const QString &file);
protected: