Merge branch 'master' into multiple_apis
This commit is contained in:
commit
5b25ad3e93
1 changed files with 22 additions and 29 deletions
|
@ -30,6 +30,7 @@
|
||||||
#include <QDockWidget>
|
#include <QDockWidget>
|
||||||
#include <QQuickItem>
|
#include <QQuickItem>
|
||||||
#include <QFileDialog>
|
#include <QFileDialog>
|
||||||
|
#include <QPointer>
|
||||||
#include <QSortFilterProxyModel>
|
#include <QSortFilterProxyModel>
|
||||||
#include <QStatusBar>
|
#include <QStatusBar>
|
||||||
|
|
||||||
|
@ -478,24 +479,27 @@ void DanbooruMainWindow::slotHandleDownload(const QUrl &url, const QVariant tags
|
||||||
|
|
||||||
QStringList tagList = tags.toStringList();
|
QStringList tagList = tags.toStringList();
|
||||||
|
|
||||||
|
|
||||||
KIO::MimetypeJob *mimeJob = KIO::mimetype(url, KIO::HideProgressInfo);
|
KIO::MimetypeJob *mimeJob = KIO::mimetype(url, KIO::HideProgressInfo);
|
||||||
|
|
||||||
QString remoteFile = url.fileName();
|
QString remoteFile = url.fileName();
|
||||||
|
|
||||||
QFileDialog saveDialog(this);
|
QPointer<QFileDialog> saveDialog = new QFileDialog(this, i18n("Save image"));
|
||||||
saveDialog.setAcceptMode(QFileDialog::AcceptSave);
|
|
||||||
saveDialog.setFileMode(QFileDialog::AnyFile);
|
saveDialog->setAcceptMode(QFileDialog::AcceptSave);
|
||||||
saveDialog.setDirectory(QStandardPaths::writableLocation(QStandardPaths::PicturesLocation));
|
saveDialog->setFileMode(QFileDialog::AnyFile);
|
||||||
saveDialog.setOption(QFileDialog::DontConfirmOverwrite, false);
|
saveDialog->setDirectory(QStandardPaths::writableLocation(QStandardPaths::PicturesLocation));
|
||||||
|
saveDialog->setOption(QFileDialog::DontConfirmOverwrite, false);
|
||||||
|
|
||||||
QStringList filters;
|
QStringList filters;
|
||||||
|
|
||||||
if (mimeJob->exec()) {
|
if (mimeJob->exec()) {
|
||||||
filters << mimeJob->mimetype();
|
filters << mimeJob->mimetype();
|
||||||
saveDialog.setMimeTypeFilters(filters);
|
saveDialog->setMimeTypeFilters(filters);
|
||||||
} else {
|
} else {
|
||||||
|
filters.reserve(2);
|
||||||
filters << "Images (*.png *.gif *.jpg)" << "All files (*.*)";
|
filters << "Images (*.png *.gif *.jpg)" << "All files (*.*)";
|
||||||
saveDialog.setNameFilters(filters);
|
saveDialog->setNameFilters(filters);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prevent invalid characters (":" can be a tag in Danbooru)
|
// Prevent invalid characters (":" can be a tag in Danbooru)
|
||||||
|
@ -503,10 +507,14 @@ void DanbooruMainWindow::slotHandleDownload(const QUrl &url, const QVariant tags
|
||||||
remoteFile.replace(":", "_");
|
remoteFile.replace(":", "_");
|
||||||
}
|
}
|
||||||
|
|
||||||
saveDialog.selectFile(remoteFile);
|
saveDialog->selectFile(remoteFile);
|
||||||
|
saveDialog->open();
|
||||||
|
|
||||||
if (saveDialog.exec()) {
|
connect(saveDialog, &QFileDialog::finished, [this, tagList, saveDialog, url](int result) {
|
||||||
QUrl localFile = saveDialog.selectedUrls().first();
|
|
||||||
|
if (result) {
|
||||||
|
|
||||||
|
QUrl localFile = saveDialog->selectedUrls().at(0);
|
||||||
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);
|
||||||
|
@ -519,31 +527,16 @@ void DanbooruMainWindow::slotHandleDownload(const QUrl &url, const QVariant tags
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef WITH_KFILEMETADATA
|
#ifdef WITH_KFILEMETADATA
|
||||||
qCDebug(DANBOORU_CLIENT) << "Local file" << localFile.toLocalFile();
|
// qCDebug(DANBOORU_CLIENT) << "Local file" << localFile.toLocalFile();
|
||||||
KFileMetaData::UserMetaData meta(localFile.toLocalFile());
|
KFileMetaData::UserMetaData meta(localFile.toLocalFile());
|
||||||
meta.setTags(tagList);
|
meta.setTags(tagList);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
saveDialog->deleteLater();
|
||||||
/*
|
});
|
||||||
|
|
||||||
|
|
||||||
QUrl localFile = QFileDialog::getSaveFileUrl(
|
|
||||||
this,
|
|
||||||
i18n("Save file"),
|
|
||||||
QDir::homePath() + QLatin1Char('/') + remoteFile,
|
|
||||||
filters
|
|
||||||
|
|
||||||
);*/
|
|
||||||
|
|
||||||
// TODO: Remember last user directory - settings?
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue