diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 02ca0b6..7b2384e 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -46,6 +46,7 @@ #include #include #include +#include #ifdef WITH_KFILEMETADATA #include @@ -493,9 +494,8 @@ void DanbooruMainWindow::slotHandleDownload(const QUrl &url, const QVariant tags saveDialog->setAcceptMode(QFileDialog::AcceptSave); saveDialog->setFileMode(QFileDialog::AnyFile); saveDialog->setDirectoryUrl(KFileWidget::getStartUrl( - QUrl(QStringLiteral("kfiledialog://danbooru-client")), recentClass)); - - + QUrl(QStringLiteral("kfiledialog:///danbooru-client")).toLocalFile(), + recentClass)); saveDialog->setOption(QFileDialog::DontConfirmOverwrite, false); @@ -518,13 +518,18 @@ void DanbooruMainWindow::slotHandleDownload(const QUrl &url, const QVariant tags saveDialog->selectFile(remoteFile); saveDialog->open(); - connect(saveDialog, &QFileDialog::finished, [this, tagList, saveDialog, url](int result) { + connect(saveDialog, &QFileDialog::finished, [this, tagList, saveDialog, url, recentClass](int result) { if (result) { // TODO: KRecentDirs QUrl localFile = saveDialog->selectedUrls().at(0); + + if (!recentClass.isEmpty()) { + KRecentDirs::add(recentClass, QFileInfo(localFile.toLocalFile()).absoluteFilePath()); + } + if (!localFile.isEmpty()) { KIO::FileCopyJob *job = KIO::file_copy(url, localFile, -1, KIO::DefaultFlags);