Display new metadata in the info views

This commit is contained in:
Luis Ángel San Martín
2023-05-16 21:47:59 +02:00
parent 2cb201098d
commit 880e17acff
5 changed files with 377 additions and 36 deletions

View File

@ -1,5 +1,7 @@
#include "comic_db.h"
#include "yacreader_global.h"
#include <QVariant>
#include <QFileInfo>
@ -214,6 +216,35 @@ QString ComicDB::getTitleIncludingNumber() const
return getTitleOrFileName();
}
QString ComicDB::getInfoTitle() const
{
if (!info.number.isNull() && !info.title.isNull() && !info.series.isNull())
return "#" + info.number.toString() + " - " + info.title.toString() + " (" + info.series.toString() + ")";
if (!info.title.isNull() && !info.series.isNull())
return info.title.toString() + " (" + info.series.toString() + ")";
if (!info.number.isNull() && !info.title.isNull())
return "#" + info.number.toString() + " - " + info.title.toString();
if (!info.number.isNull() && !info.series.isNull())
return "#" + info.number.toString() + " - " + info.series.toString();
if (!info.number.isNull())
return "#" + info.number.toString() + " - " + getTitleOrFileName();
if (!info.title.isNull() && !info.series.isNull())
return info.title.toString() + " (" + info.series.toString() + ")";
if (!info.title.isNull())
return info.title.toString();
if (!info.series.isNull())
return info.series.toString();
return QFileInfo(path).fileName();
}
//-----------------------------------------------------------------------------
// COMIC_INFO-------------------------------------------------------------------
//-----------------------------------------------------------------------------
@ -436,6 +467,24 @@ QStringList ComicInfo::getCoverArtists()
return QStringList();
}
QStringList ComicInfo::getEditors()
{
if (editor.toString().length() > 0) {
return editor.toString().split("\n");
}
return QStringList();
}
QStringList ComicInfo::getImprint()
{
if (imprint.toString().length() > 0) {
return imprint.toString().split("\n");
}
return QStringList();
}
QStringList ComicInfo::getCharacters()
{
if (characters.toString().length() > 0) {
@ -472,6 +521,48 @@ QStringList ComicInfo::getTags()
return QStringList();
}
QString ComicInfo::getTypeString()
{
switch (type.value<YACReader::FileType>()) {
case YACReader::FileType::Comic:
return "Comic";
case YACReader::FileType::Manga:
return "Manga";
case YACReader::FileType::WesternManga:
return "Western Manga";
case YACReader::FileType::WebComic:
return "Web Comic";
case YACReader::FileType::Yonkoma:
return "4-Koma";
}
}
QString ComicInfo::getStoryArcInfoString()
{
if (arcNumber.toString().length() > 0 && arcCount.toString().length() > 0 && storyArc.toString().length() > 0) {
return "(" + arcNumber.toString() + "/" + arcCount.toString() + ") " + storyArc.toString();
}
if (arcNumber.toString().length() > 0 && storyArc.toString().length() > 0) {
return "(" + arcNumber.toString() + ") " + storyArc.toString();
}
return storyArc.toString().length() > 0 ? storyArc.toString() : "";
}
QString ComicInfo::getAlternateSeriesString()
{
if (alternateNumber.toString().length() > 0 && alternateCount.toString().length() > 0 && alternateSeries.toString().length() > 0) {
return "(" + alternateNumber.toString() + "/" + alternateCount.toString() + ") " + alternateSeries.toString();
}
if (alternateNumber.toString().length() > 0 && alternateSeries.toString().length() > 0) {
return "(" + alternateNumber.toString() + ") " + alternateSeries.toString();
}
return alternateSeries.toString().length() > 0 ? alternateSeries.toString() : "";
}
void ComicInfo::setRead(bool r)
{
if (r != read) {

View File

@ -118,6 +118,8 @@ public:
Q_INVOKABLE QStringList getColorists();
Q_INVOKABLE QStringList getLetterers();
Q_INVOKABLE QStringList getCoverArtists();
Q_INVOKABLE QStringList getEditors();
Q_INVOKABLE QStringList getImprint();
Q_INVOKABLE QStringList getCharacters();
@ -126,6 +128,11 @@ public:
Q_INVOKABLE QStringList getTags();
Q_INVOKABLE QString getTypeString();
Q_INVOKABLE QString getStoryArcInfoString();
Q_INVOKABLE QString getAlternateSeriesString();
friend QDataStream &operator<<(QDataStream &stream, const ComicInfo &comicInfo);
friend QDataStream &operator>>(QDataStream &stream, ComicInfo &comicInfo);
@ -252,6 +259,7 @@ public:
Q_INVOKABLE qulonglong getFileSize() const;
Q_INVOKABLE QString getTitleIncludingNumber() const;
Q_INVOKABLE QString getInfoTitle() const;
QString toTXT();