Handle tagging (optional) in the main window

The include may be off but at the moment KFileMetaData is borked..
This commit is contained in:
Luca Beltrame 2015-02-24 00:17:08 +01:00
parent 4955cc93bd
commit a35b9520e5
2 changed files with 20 additions and 6 deletions

View file

@ -45,6 +45,10 @@
#include <KIO/FileCopyJob> #include <KIO/FileCopyJob>
#include <KIO/MimetypeJob> #include <KIO/MimetypeJob>
#ifdef WITH_KFILEMETADATA
#include <KFileMetaData/kfilemetadata/usermetadata.h>
#endif
// Own // Own
#include "libdanbooru/danbooruservice.h" #include "libdanbooru/danbooruservice.h"
@ -212,8 +216,8 @@ DanbooruMainWindow::DanbooruMainWindow(QWidget *parent)
}); });
connect(m_view->rootObject(), SIGNAL(downloadRequested(const QUrl&)), this, connect(m_view->rootObject(), SIGNAL(downloadRequested(const QUrl&, QVariant)), this,
SLOT(slotHandleDownload(const QUrl&))); SLOT(slotHandleDownload(const QUrl&, QVariant)));
connect(m_tagWidget, &QListView::doubleClicked, this, &DanbooruMainWindow::searchTag); connect(m_tagWidget, &QListView::doubleClicked, this, &DanbooruMainWindow::searchTag);
@ -457,7 +461,10 @@ void DanbooruMainWindow::optionsPreferences()
dialog->show(); dialog->show();
} }
void DanbooruMainWindow::slotHandleDownload(const QUrl &url) { void DanbooruMainWindow::slotHandleDownload(const QUrl &url, const QVariant tags) {
QStringList tagList = tags.toStringList();
QFileDialog saveDialog(this); QFileDialog saveDialog(this);
saveDialog.setFileMode(QFileDialog::AnyFile); saveDialog.setFileMode(QFileDialog::AnyFile);
@ -487,11 +494,18 @@ void DanbooruMainWindow::slotHandleDownload(const QUrl &url) {
KIO::FileCopyJob *job = KIO::file_copy(url, localFile, -1, KIO::DefaultFlags); KIO::FileCopyJob *job = KIO::file_copy(url, localFile, -1, KIO::DefaultFlags);
connect(job, &KIO::Job::result, [this](KJob *job) { connect(job, &KIO::Job::result, [this, localFile, tagList](KJob *job) {
if (job->error()) { if (job->error()) {
return; return;
} }
// TODO: Tagging
#ifdef WITH_KFILEMETADATA
qDebug() << "Local file" << localFile.toLocalFile();
KFileMetaData::UserMetaData meta(localFile.toLocalFile());
meta.setTags(tagList);
#endif
}); });
} }

View file

@ -100,7 +100,7 @@ private Q_SLOTS:
void downloadPosts(); void downloadPosts();
void optionsPreferences(); void optionsPreferences();
void loadSettings(); void loadSettings();
void slotHandleDownload(const QUrl &url); void slotHandleDownload(const QUrl &url, QVariant tags);
void searchTag(const QModelIndex &index); void searchTag(const QModelIndex &index);
}; };