initial commit

master
Herwig Birke 7 years ago
parent fa05750b5f
commit a46266d32f

@ -148,11 +148,17 @@
<enum>Qt::Horizontal</enum>
</property>
<widget class="QTreeView" name="m_lpFolderView">
<property name="contextMenuPolicy">
<enum>Qt::CustomContextMenu</enum>
</property>
<attribute name="headerVisible">
<bool>false</bool>
</attribute>
</widget>
<widget class="QListView" name="m_lpThumbnailView">
<property name="contextMenuPolicy">
<enum>Qt::CustomContextMenu</enum>
</property>
<property name="selectionMode">
<enum>QAbstractItemView::ExtendedSelection</enum>
</property>

@ -3,6 +3,8 @@
#include "cmainwindow.h"
#include "cimportdialog.h"
#include "cdatetimepicker.h"
#include "ui_cmainwindow.h"
#include <QDebug>
@ -93,9 +95,19 @@ void cMainWindow::createActions()
setToolButtonStyle(Qt::ToolButtonFollowStyle);
createFileActions();
createContextActions();
connect(ui->m_lpThumbnailView->selectionModel(), &QItemSelectionModel::selectionChanged, this, &cMainWindow::onThumbnailSelected);
connect(ui->m_lpFolderView->selectionModel(), &QItemSelectionModel::selectionChanged, this, &cMainWindow::onFolderSelected);
connect(ui->m_lpThumbnailView->selectionModel(), &QItemSelectionModel::selectionChanged, this, &cMainWindow::onThumbnailSelected);
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)
@ -401,3 +413,42 @@ void cMainWindow::onFileImport()
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 */
QAction* m_lpRecentFileAction[MaxRecentFiles]; /*!< TODO: describe */
QAction* m_lpChangeDateAction; /*!< TODO: describe */
/*!
\brief
@ -95,6 +97,12 @@ private:
\fn createFileActions
*/
void createFileActions();
/*!
\brief
\fn createContextActions
*/
void createContextActions();
/*!
\brief
@ -165,6 +173,21 @@ private slots:
\fn onFileImport
*/
void onFileImport();
/*!
\brief
\fn onThumbnailViewContextMenu
\param pos
*/
void onThumbnailViewContextMenu(const QPoint& pos);
/*!
\brief
\fn onChangeDate
*/
void onChangeDate();
};
#endif // CMAINWINDOW_H

@ -39,6 +39,9 @@
<height>0</height>
</size>
</property>
<property name="contextMenuPolicy">
<enum>Qt::CustomContextMenu</enum>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
@ -53,6 +56,9 @@
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="contextMenuPolicy">
<enum>Qt::CustomContextMenu</enum>
</property>
<property name="editTriggers">
<set>QAbstractItemView::NoEditTriggers</set>
</property>

Loading…
Cancel
Save