diff options
Diffstat (limited to 'pictureviewer2.cpp')
-rw-r--r-- | pictureviewer2.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/pictureviewer2.cpp b/pictureviewer2.cpp index eee77af..bf2dbce 100644 --- a/pictureviewer2.cpp +++ b/pictureviewer2.cpp @@ -24,6 +24,9 @@ #include <QDir> #include <QFileInfo> #include <QFileInfoList> +#include <QFileDialog> +#include <QFile> +#include <QMessageBox> #include "pictureviewer2.h" #include "pictureswidget.h" @@ -197,6 +200,24 @@ void PictureViewer2::initActions(){ } } +void PictureViewer2::copyCurrent(){ + QString fullPath = mFiles.at(mCurPos).at(PicFilesModel::FullPath).toString(); + QSettings s; + QString lastDir = s.value("ui/pvlastdir", QDir::homePath()).toString(); + QString destDir = QFileDialog::getExistingDirectory(this, tr("Copy picture"), lastDir); + if(!destDir.isEmpty()){ + QFileInfo fi(fullPath); + QString copyTo = QString("%1/%2").arg(destDir).arg(fi.fileName()); + bool success = QFile::copy(fullPath, copyTo); + if(!success){ + QString msg = QString(tr("File copy %1 -> %2 failed!")).arg(fullPath).arg(copyTo); + QMessageBox::critical(this, tr("Error"), msg); + }else{ + s.setValue("ui/pvlastdir", destDir); + } + } +} + void PictureViewer2::wheelEvent(QWheelEvent *event){ int steps = event->delta() / 8 / 15; if(steps < 0){ |