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