diff options
-rw-r--r-- | copydialog.cpp | 15 | ||||
-rw-r--r-- | copydialog.h | 3 |
2 files changed, 16 insertions, 2 deletions
diff --git a/copydialog.cpp b/copydialog.cpp index 7c7c757..da71494 100644 --- a/copydialog.cpp +++ b/copydialog.cpp @@ -5,6 +5,7 @@ #include <QLabel> #include <QSettings> #include <QCloseEvent> +#include <QFileDialog> #include "copydialog.h" @@ -17,14 +18,13 @@ CopyDialog::CopyDialog(QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f) mSrcE = new QLineEdit; mSrcE->setReadOnly(true); dirGrid->addWidget(mSrcE, 0, 1); - QPushButton *srcB = new QPushButton(QIcon::fromTheme("folder"), tr("...")); - dirGrid->addWidget(srcB, 0, 2); QLabel *dstL = new QLabel(tr("Destination")); dirGrid->addWidget(dstL, 1, 0); mDstE = new QLineEdit; mDstE->setReadOnly(true); dirGrid->addWidget(mDstE, 1, 1); QPushButton *dstB = new QPushButton(QIcon::fromTheme("folder"), tr("...")); + connect(dstB, &QPushButton::clicked, this, &CopyDialog::getDestination); dirGrid->addWidget(dstB, 1, 2); QLabel *folderL = new QLabel(tr("Folder Name")); dirGrid->addWidget(folderL, 2, 0); @@ -58,10 +58,21 @@ CopyDialog::CopyDialog(QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f) void CopyDialog::readSettings(){ QSettings s; resize(s.value("copydlgsize").toSize()); + QString dst = s.value("copydlgdst").toString(); + QFileInfo fi(dst); + if(fi.exists()){ + mDstE->setText(dst); + } +} + +void CopyDialog::getDestination(){ + QString dir = QFileDialog::getExistingDirectory(this, tr("Select destination Folder")); + mDstE->setText(dir); } void CopyDialog::closeEvent(QCloseEvent *e){ QSettings s; s.setValue("copydlgsize", size()); + s.setValue("copydlgdst", mDstE->text()); e->accept(); } diff --git a/copydialog.h b/copydialog.h index cf022b3..fd101ce 100644 --- a/copydialog.h +++ b/copydialog.h @@ -9,7 +9,10 @@ class QLabel; class CopyDialog : public QDialog { public: explicit CopyDialog(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags()); + + public slots: void readSettings(); + void getDestination(); protected: virtual void closeEvent(QCloseEvent *e); |