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::ConfigWidgets
 | 
			
		||||
                      KF5::KIOCore
 | 
			
		||||
                      KF5::KIOFileWidgets
 | 
			
		||||
                      KF5::Wallet
 | 
			
		||||
                      KF5::Declarative
 | 
			
		||||
                      PRIVATE
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -45,6 +45,8 @@
 | 
			
		|||
#include <KDualAction>
 | 
			
		||||
#include <KIO/FileCopyJob>
 | 
			
		||||
#include <KIO/MimetypeJob>
 | 
			
		||||
#include <KIOFileWidgets/KFileWidget>
 | 
			
		||||
#include <KIOFileWidgets/KRecentDirs>
 | 
			
		||||
 | 
			
		||||
#ifdef WITH_KFILEMETADATA
 | 
			
		||||
#include <KFileMetaData/kfilemetadata/usermetadata.h>
 | 
			
		||||
| 
						 | 
				
			
			@ -93,6 +95,8 @@ DanbooruMainWindow::DanbooruMainWindow(QWidget *parent)
 | 
			
		|||
    m_service->setParent(this);
 | 
			
		||||
    setCentralWidget(m_view);
 | 
			
		||||
 | 
			
		||||
    qApp->setAttribute(Qt::AA_DontCreateNativeWidgetSiblings, true);
 | 
			
		||||
 | 
			
		||||
    qmlRegisterType<Danbooru::DanbooruPost>("DanbooruClient", 1, 0, "DanbooruPost");
 | 
			
		||||
    qmlRegisterType<Danbooru::DanbooruService>("DanbooruClient", 1, 0, "DanbooruService");
 | 
			
		||||
    qRegisterMetaType<DanbooruPost::Rating>();
 | 
			
		||||
| 
						 | 
				
			
			@ -485,10 +489,14 @@ void DanbooruMainWindow::slotHandleDownload(const QUrl &url, const QVariant tags
 | 
			
		|||
    QString remoteFile = url.fileName();
 | 
			
		||||
 | 
			
		||||
    QPointer<QFileDialog> 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")).toLocalFile(),
 | 
			
		||||
                                                         recentClass));
 | 
			
		||||
 | 
			
		||||
    saveDialog->setOption(QFileDialog::DontConfirmOverwrite, false);
 | 
			
		||||
 | 
			
		||||
    QStringList filters;
 | 
			
		||||
| 
						 | 
				
			
			@ -510,11 +518,18 @@ void DanbooruMainWindow::slotHandleDownload(const QUrl &url, const QVariant tags
 | 
			
		|||
    saveDialog->selectFile(remoteFile);
 | 
			
		||||
    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) {
 | 
			
		||||
 | 
			
		||||
        // TODO: KRecentDirs
 | 
			
		||||
 | 
			
		||||
        QUrl localFile = saveDialog->selectedUrls().at(0);
 | 
			
		||||
 | 
			
		||||
            if (!recentClass.isEmpty()) {
 | 
			
		||||
                KRecentDirs::add(recentClass, QFileInfo(localFile.toLocalFile()).absoluteFilePath());
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
        if (!localFile.isEmpty()) {
 | 
			
		||||
 | 
			
		||||
            KIO::FileCopyJob *job = KIO::file_copy(url, localFile, -1, KIO::DefaultFlags);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue