#include #include #include #include #include #include #include #include "copydialog.h" CopyDialog::CopyDialog(QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f) { setAttribute(Qt::WA_DeleteOnClose); setWindowTitle(tr("Copy files")); QGridLayout *dirGrid = new QGridLayout; QLabel *srcL = new QLabel(tr("Source")); dirGrid->addWidget(srcL, 0, 0); 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("...")); dirGrid->addWidget(dstB, 1, 2); QLabel *folderL = new QLabel(tr("Folder Name")); dirGrid->addWidget(folderL, 2, 0); mFolderE = new QLineEdit; dirGrid->addWidget(mFolderE, 2, 1); QPushButton *refreshB = new QPushButton(QIcon::fromTheme("view-refresh"), QString()); dirGrid->addWidget(refreshB, 2, 2); QGroupBox *dirGB = new QGroupBox("Directories"); dirGB->setLayout(dirGrid); QHBoxLayout *resultL = new QHBoxLayout; mResultL = new QLabel; resultL->addWidget(mResultL); QGroupBox *resultGB = new QGroupBox(tr("Result")); resultGB->setLayout(resultL); QHBoxLayout *buttonL = new QHBoxLayout; QPushButton *copyB = new QPushButton(tr("Copy!")); buttonL->addStretch(); buttonL->addWidget(copyB); QPushButton *closeB = new QPushButton(tr("Close")); connect(closeB, &QPushButton::clicked, this, &CopyDialog::close); buttonL->addWidget(closeB); buttonL->addStretch(); QVBoxLayout *mainLayout = new QVBoxLayout; mainLayout->addWidget(dirGB, Qt::AlignTop); mainLayout->addWidget(resultGB, Qt::AlignVCenter); mainLayout->addLayout(buttonL, Qt::AlignBottom); setLayout(mainLayout); readSettings(); } void CopyDialog::readSettings(){ QSettings s; resize(s.value("copydlgsize").toSize()); } void CopyDialog::closeEvent(QCloseEvent *e){ QSettings s; s.setValue("copydlgsize", size()); e->accept(); }