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