diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 7fcee46..02ca0b6 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -45,6 +45,7 @@ #include #include #include +#include #ifdef WITH_KFILEMETADATA #include @@ -93,6 +94,8 @@ DanbooruMainWindow::DanbooruMainWindow(QWidget *parent) m_service->setParent(this); setCentralWidget(m_view); + qApp->setAttribute(Qt::AA_DontCreateNativeWidgetSiblings, true); + qmlRegisterType("DanbooruClient", 1, 0, "DanbooruPost"); qmlRegisterType("DanbooruClient", 1, 0, "DanbooruService"); qRegisterMetaType(); @@ -485,10 +488,15 @@ void DanbooruMainWindow::slotHandleDownload(const QUrl &url, const QVariant tags QString remoteFile = url.fileName(); QPointer saveDialog = new QFileDialog(this, i18n("Save image")); + QString recentClass; saveDialog->setAcceptMode(QFileDialog::AcceptSave); saveDialog->setFileMode(QFileDialog::AnyFile); - saveDialog->setDirectory(QStandardPaths::writableLocation(QStandardPaths::PicturesLocation)); + saveDialog->setDirectoryUrl(KFileWidget::getStartUrl( + QUrl(QStringLiteral("kfiledialog://danbooru-client")), recentClass)); + + + saveDialog->setOption(QFileDialog::DontConfirmOverwrite, false); QStringList filters; @@ -514,6 +522,8 @@ void DanbooruMainWindow::slotHandleDownload(const QUrl &url, const QVariant tags if (result) { + // TODO: KRecentDirs + QUrl localFile = saveDialog->selectedUrls().at(0); if (!localFile.isEmpty()) {