Use AA_DontCreateNativeWidgetSiblings to prevent rendering issues

Start supporting kfiledialog:// URLs
This commit is contained in:
Luca Beltrame 2015-12-02 00:44:18 +01:00
parent 2abc76e311
commit ea20a7c157

View file

@ -45,6 +45,7 @@
#include <KDualAction> #include <KDualAction>
#include <KIO/FileCopyJob> #include <KIO/FileCopyJob>
#include <KIO/MimetypeJob> #include <KIO/MimetypeJob>
#include <KIOFileWidgets/KFileWidget>
#ifdef WITH_KFILEMETADATA #ifdef WITH_KFILEMETADATA
#include <KFileMetaData/kfilemetadata/usermetadata.h> #include <KFileMetaData/kfilemetadata/usermetadata.h>
@ -93,6 +94,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 +488,15 @@ 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")), recentClass));
saveDialog->setOption(QFileDialog::DontConfirmOverwrite, false); saveDialog->setOption(QFileDialog::DontConfirmOverwrite, false);
QStringList filters; QStringList filters;
@ -514,6 +522,8 @@ void DanbooruMainWindow::slotHandleDownload(const QUrl &url, const QVariant tags
if (result) { if (result) {
// TODO: KRecentDirs
QUrl localFile = saveDialog->selectedUrls().at(0); QUrl localFile = saveDialog->selectedUrls().at(0);
if (!localFile.isEmpty()) { if (!localFile.isEmpty()) {