initial commit
This commit is contained in:
@@ -148,11 +148,17 @@
|
|||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Horizontal</enum>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QTreeView" name="m_lpFolderView">
|
<widget class="QTreeView" name="m_lpFolderView">
|
||||||
|
<property name="contextMenuPolicy">
|
||||||
|
<enum>Qt::CustomContextMenu</enum>
|
||||||
|
</property>
|
||||||
<attribute name="headerVisible">
|
<attribute name="headerVisible">
|
||||||
<bool>false</bool>
|
<bool>false</bool>
|
||||||
</attribute>
|
</attribute>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QListView" name="m_lpThumbnailView">
|
<widget class="QListView" name="m_lpThumbnailView">
|
||||||
|
<property name="contextMenuPolicy">
|
||||||
|
<enum>Qt::CustomContextMenu</enum>
|
||||||
|
</property>
|
||||||
<property name="selectionMode">
|
<property name="selectionMode">
|
||||||
<enum>QAbstractItemView::ExtendedSelection</enum>
|
<enum>QAbstractItemView::ExtendedSelection</enum>
|
||||||
</property>
|
</property>
|
||||||
|
|||||||
+53
-2
@@ -3,6 +3,8 @@
|
|||||||
#include "cmainwindow.h"
|
#include "cmainwindow.h"
|
||||||
#include "cimportdialog.h"
|
#include "cimportdialog.h"
|
||||||
|
|
||||||
|
#include "cdatetimepicker.h"
|
||||||
|
|
||||||
#include "ui_cmainwindow.h"
|
#include "ui_cmainwindow.h"
|
||||||
|
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
@@ -93,9 +95,19 @@ void cMainWindow::createActions()
|
|||||||
setToolButtonStyle(Qt::ToolButtonFollowStyle);
|
setToolButtonStyle(Qt::ToolButtonFollowStyle);
|
||||||
|
|
||||||
createFileActions();
|
createFileActions();
|
||||||
|
createContextActions();
|
||||||
|
|
||||||
connect(ui->m_lpThumbnailView->selectionModel(), &QItemSelectionModel::selectionChanged, this, &cMainWindow::onThumbnailSelected);
|
connect(ui->m_lpThumbnailView->selectionModel(), &QItemSelectionModel::selectionChanged, this, &cMainWindow::onThumbnailSelected);
|
||||||
connect(ui->m_lpFolderView->selectionModel(), &QItemSelectionModel::selectionChanged, this, &cMainWindow::onFolderSelected);
|
connect(ui->m_lpFolderView->selectionModel(), &QItemSelectionModel::selectionChanged, this, &cMainWindow::onFolderSelected);
|
||||||
|
|
||||||
|
connect(ui->m_lpThumbnailView, &QListView::customContextMenuRequested, this, &cMainWindow::onThumbnailViewContextMenu);
|
||||||
|
}
|
||||||
|
|
||||||
|
void cMainWindow::createContextActions()
|
||||||
|
{
|
||||||
|
m_lpChangeDateAction = new QAction(tr("change date"), this);
|
||||||
|
m_lpChangeDateAction->setStatusTip(tr("change the date of this picture"));
|
||||||
|
connect(m_lpChangeDateAction, &QAction::triggered, this, &cMainWindow::onChangeDate);
|
||||||
}
|
}
|
||||||
|
|
||||||
void cMainWindow::loadData(bool bProgressBar)
|
void cMainWindow::loadData(bool bProgressBar)
|
||||||
@@ -401,3 +413,42 @@ void cMainWindow::onFileImport()
|
|||||||
m_lpProgressBar->setVisible(false);
|
m_lpProgressBar->setVisible(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void cMainWindow::onThumbnailViewContextMenu(const QPoint& pos)
|
||||||
|
{
|
||||||
|
QMenu menu(this);
|
||||||
|
|
||||||
|
if(ui->m_lpThumbnailView->selectionModel()->selectedIndexes().count() != 1)
|
||||||
|
return;
|
||||||
|
|
||||||
|
menu.addAction(m_lpChangeDateAction);
|
||||||
|
menu.exec(ui->m_lpThumbnailView->mapToGlobal(pos));
|
||||||
|
}
|
||||||
|
|
||||||
|
void cMainWindow::onChangeDate()
|
||||||
|
{
|
||||||
|
if(ui->m_lpThumbnailView->selectionModel()->selectedIndexes().count() != 1)
|
||||||
|
return;
|
||||||
|
|
||||||
|
QModelIndex index = ui->m_lpThumbnailView->selectionModel()->selectedIndexes()[0];
|
||||||
|
if(!index.isValid())
|
||||||
|
return;
|
||||||
|
|
||||||
|
cPicture* lpPicture = m_lpThumbnailFilterProxyModel->data(index, Qt::UserRole+1).value<cPicture*>();
|
||||||
|
|
||||||
|
if(lpPicture->dateTime().isValid())
|
||||||
|
{
|
||||||
|
cDateTimePicker dateTimePicker;
|
||||||
|
dateTimePicker.setWindowTitle("Date");
|
||||||
|
dateTimePicker.setText(QString(tr("Please set a new date for \"%1\".").arg(lpPicture->filePath() + QDir::separator() + lpPicture->fileName())));
|
||||||
|
dateTimePicker.setImage(lpPicture->thumbnail());
|
||||||
|
|
||||||
|
dateTimePicker.setDateTime(lpPicture->dateTime());
|
||||||
|
if(dateTimePicker.exec() == QDialog::Rejected)
|
||||||
|
return;
|
||||||
|
|
||||||
|
lpPicture->setDateTime(dateTimePicker.dateTime());
|
||||||
|
|
||||||
|
m_lpThumbnailFilterProxyModel->submit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -77,6 +77,8 @@ private:
|
|||||||
enum { MaxRecentFiles = 5 }; /*!< TODO: describe */
|
enum { MaxRecentFiles = 5 }; /*!< TODO: describe */
|
||||||
QAction* m_lpRecentFileAction[MaxRecentFiles]; /*!< TODO: describe */
|
QAction* m_lpRecentFileAction[MaxRecentFiles]; /*!< TODO: describe */
|
||||||
|
|
||||||
|
QAction* m_lpChangeDateAction; /*!< TODO: describe */
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief
|
\brief
|
||||||
|
|
||||||
@@ -95,6 +97,12 @@ private:
|
|||||||
\fn createFileActions
|
\fn createFileActions
|
||||||
*/
|
*/
|
||||||
void createFileActions();
|
void createFileActions();
|
||||||
|
/*!
|
||||||
|
\brief
|
||||||
|
|
||||||
|
\fn createContextActions
|
||||||
|
*/
|
||||||
|
void createContextActions();
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief
|
\brief
|
||||||
@@ -165,6 +173,21 @@ private slots:
|
|||||||
\fn onFileImport
|
\fn onFileImport
|
||||||
*/
|
*/
|
||||||
void onFileImport();
|
void onFileImport();
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\brief
|
||||||
|
|
||||||
|
\fn onThumbnailViewContextMenu
|
||||||
|
\param pos
|
||||||
|
*/
|
||||||
|
void onThumbnailViewContextMenu(const QPoint& pos);
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\brief
|
||||||
|
|
||||||
|
\fn onChangeDate
|
||||||
|
*/
|
||||||
|
void onChangeDate();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // CMAINWINDOW_H
|
#endif // CMAINWINDOW_H
|
||||||
|
|||||||
@@ -39,6 +39,9 @@
|
|||||||
<height>0</height>
|
<height>0</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="contextMenuPolicy">
|
||||||
|
<enum>Qt::CustomContextMenu</enum>
|
||||||
|
</property>
|
||||||
<property name="wordWrap">
|
<property name="wordWrap">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
@@ -53,6 +56,9 @@
|
|||||||
<verstretch>0</verstretch>
|
<verstretch>0</verstretch>
|
||||||
</sizepolicy>
|
</sizepolicy>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="contextMenuPolicy">
|
||||||
|
<enum>Qt::CustomContextMenu</enum>
|
||||||
|
</property>
|
||||||
<property name="editTriggers">
|
<property name="editTriggers">
|
||||||
<set>QAbstractItemView::NoEditTriggers</set>
|
<set>QAbstractItemView::NoEditTriggers</set>
|
||||||
</property>
|
</property>
|
||||||
|
|||||||
Reference in New Issue
Block a user