Handle tagging (optional) in the main window
The include may be off but at the moment KFileMetaData is borked..
This commit is contained in:
parent
4955cc93bd
commit
a35b9520e5
2 changed files with 20 additions and 6 deletions
|
@ -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
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue