Merge branch 'master' into multiple_apis
This commit is contained in:
commit
25980bf20e
2 changed files with 18 additions and 2 deletions
|
@ -48,6 +48,7 @@ target_link_libraries(danbooru_client PUBLIC
|
||||||
KF5::XmlGui
|
KF5::XmlGui
|
||||||
KF5::ConfigWidgets
|
KF5::ConfigWidgets
|
||||||
KF5::KIOCore
|
KF5::KIOCore
|
||||||
|
KF5::KIOFileWidgets
|
||||||
KF5::Wallet
|
KF5::Wallet
|
||||||
KF5::Declarative
|
KF5::Declarative
|
||||||
PRIVATE
|
PRIVATE
|
||||||
|
|
|
@ -45,6 +45,8 @@
|
||||||
#include <KDualAction>
|
#include <KDualAction>
|
||||||
#include <KIO/FileCopyJob>
|
#include <KIO/FileCopyJob>
|
||||||
#include <KIO/MimetypeJob>
|
#include <KIO/MimetypeJob>
|
||||||
|
#include <KIOFileWidgets/KFileWidget>
|
||||||
|
#include <KIOFileWidgets/KRecentDirs>
|
||||||
|
|
||||||
#ifdef WITH_KFILEMETADATA
|
#ifdef WITH_KFILEMETADATA
|
||||||
#include <KFileMetaData/kfilemetadata/usermetadata.h>
|
#include <KFileMetaData/kfilemetadata/usermetadata.h>
|
||||||
|
@ -93,6 +95,8 @@ DanbooruMainWindow::DanbooruMainWindow(QWidget *parent)
|
||||||
m_service->setParent(this);
|
m_service->setParent(this);
|
||||||
setCentralWidget(m_view);
|
setCentralWidget(m_view);
|
||||||
|
|
||||||
|
qApp->setAttribute(Qt::AA_DontCreateNativeWidgetSiblings, true);
|
||||||
|
|
||||||
qmlRegisterType<Danbooru::DanbooruPost>("DanbooruClient", 1, 0, "DanbooruPost");
|
qmlRegisterType<Danbooru::DanbooruPost>("DanbooruClient", 1, 0, "DanbooruPost");
|
||||||
qmlRegisterType<Danbooru::DanbooruService>("DanbooruClient", 1, 0, "DanbooruService");
|
qmlRegisterType<Danbooru::DanbooruService>("DanbooruClient", 1, 0, "DanbooruService");
|
||||||
qRegisterMetaType<DanbooruPost::Rating>();
|
qRegisterMetaType<DanbooruPost::Rating>();
|
||||||
|
@ -485,10 +489,14 @@ void DanbooruMainWindow::slotHandleDownload(const QUrl &url, const QVariant tags
|
||||||
QString remoteFile = url.fileName();
|
QString remoteFile = url.fileName();
|
||||||
|
|
||||||
QPointer<QFileDialog> saveDialog = new QFileDialog(this, i18n("Save image"));
|
QPointer<QFileDialog> saveDialog = new QFileDialog(this, i18n("Save image"));
|
||||||
|
QString recentClass;
|
||||||
|
|
||||||
saveDialog->setAcceptMode(QFileDialog::AcceptSave);
|
saveDialog->setAcceptMode(QFileDialog::AcceptSave);
|
||||||
saveDialog->setFileMode(QFileDialog::AnyFile);
|
saveDialog->setFileMode(QFileDialog::AnyFile);
|
||||||
saveDialog->setDirectory(QStandardPaths::writableLocation(QStandardPaths::PicturesLocation));
|
saveDialog->setDirectoryUrl(KFileWidget::getStartUrl(
|
||||||
|
QUrl(QStringLiteral("kfiledialog:///danbooru-client")).toLocalFile(),
|
||||||
|
recentClass));
|
||||||
|
|
||||||
saveDialog->setOption(QFileDialog::DontConfirmOverwrite, false);
|
saveDialog->setOption(QFileDialog::DontConfirmOverwrite, false);
|
||||||
|
|
||||||
QStringList filters;
|
QStringList filters;
|
||||||
|
@ -510,11 +518,18 @@ void DanbooruMainWindow::slotHandleDownload(const QUrl &url, const QVariant tags
|
||||||
saveDialog->selectFile(remoteFile);
|
saveDialog->selectFile(remoteFile);
|
||||||
saveDialog->open();
|
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) {
|
if (result) {
|
||||||
|
|
||||||
|
// TODO: KRecentDirs
|
||||||
|
|
||||||
QUrl localFile = saveDialog->selectedUrls().at(0);
|
QUrl localFile = saveDialog->selectedUrls().at(0);
|
||||||
|
|
||||||
|
if (!recentClass.isEmpty()) {
|
||||||
|
KRecentDirs::add(recentClass, QFileInfo(localFile.toLocalFile()).absoluteFilePath());
|
||||||
|
}
|
||||||
|
|
||||||
if (!localFile.isEmpty()) {
|
if (!localFile.isEmpty()) {
|
||||||
|
|
||||||
KIO::FileCopyJob *job = KIO::file_copy(url, localFile, -1, KIO::DefaultFlags);
|
KIO::FileCopyJob *job = KIO::file_copy(url, localFile, -1, KIO::DefaultFlags);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue