mirror of https://github.com/KDE/kasts.git
109 lines
2.8 KiB
C++
109 lines
2.8 KiB
C++
/**
|
|
* SPDX-FileCopyrightText: 2021 Bart De Vries <bart@mogwai.be>
|
|
*
|
|
* SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
|
|
*/
|
|
|
|
#include <KLocalizedString>
|
|
#include <QDateTime>
|
|
#include <QObject>
|
|
#include <QString>
|
|
|
|
#include "datamanager.h"
|
|
#include "entry.h"
|
|
#include "error.h"
|
|
#include "feed.h"
|
|
|
|
Error::Error(const Type type, const QString url, const QString id, const int code, const QString message, const QDateTime date, const QString title)
|
|
: QObject(nullptr)
|
|
{
|
|
this->type = type;
|
|
this->url = url;
|
|
this->id = id;
|
|
this->code = code;
|
|
this->message = message;
|
|
this->date = date;
|
|
this->m_title = title;
|
|
}
|
|
|
|
QString Error::title() const
|
|
{
|
|
QString title = m_title;
|
|
if (title.isEmpty()) {
|
|
if (!id.isEmpty()) {
|
|
if (DataManager::instance().getEntry(id))
|
|
title = DataManager::instance().getEntry(id)->title();
|
|
} else if (!url.isEmpty()) {
|
|
if (DataManager::instance().getFeed(url))
|
|
title = DataManager::instance().getFeed(url)->name();
|
|
}
|
|
}
|
|
return title;
|
|
}
|
|
|
|
QString Error::description() const
|
|
{
|
|
switch (type) {
|
|
case Error::Type::FeedUpdate:
|
|
return i18n("Podcast Update Error");
|
|
case Error::Type::MediaDownload:
|
|
return i18n("Media Download Error");
|
|
case Error::Type::MeteredNotAllowed:
|
|
return i18n("Update Not Allowed on Metered Connection");
|
|
case Error::Type::InvalidMedia:
|
|
return i18n("Invalid Media File");
|
|
case Error::Type::DiscoverError:
|
|
return i18n("Nothing Found");
|
|
case Error::Type::StorageMoveError:
|
|
return i18n("Error moving storage path");
|
|
case Error::Type::SyncError:
|
|
return i18n("Error Syncing Feed and/or Episode Status");
|
|
default:
|
|
return QString();
|
|
}
|
|
}
|
|
|
|
int Error::typeToDb(Error::Type type)
|
|
{
|
|
switch (type) {
|
|
case Error::Type::FeedUpdate:
|
|
return 0;
|
|
case Error::Type::MediaDownload:
|
|
return 1;
|
|
case Error::Type::MeteredNotAllowed:
|
|
return 2;
|
|
case Error::Type::InvalidMedia:
|
|
return 3;
|
|
case Error::Type::DiscoverError:
|
|
return 4;
|
|
case Error::Type::StorageMoveError:
|
|
return 5;
|
|
case Error::Type::SyncError:
|
|
return 6;
|
|
default:
|
|
return -1;
|
|
}
|
|
}
|
|
|
|
Error::Type Error::dbToType(int value)
|
|
{
|
|
switch (value) {
|
|
case 0:
|
|
return Error::Type::FeedUpdate;
|
|
case 1:
|
|
return Error::Type::MediaDownload;
|
|
case 2:
|
|
return Error::Type::MeteredNotAllowed;
|
|
case 3:
|
|
return Error::Type::InvalidMedia;
|
|
case 4:
|
|
return Error::Type::DiscoverError;
|
|
case 5:
|
|
return Error::Type::StorageMoveError;
|
|
case 6:
|
|
return Error::Type::SyncError;
|
|
default:
|
|
return Error::Type::Unknown;
|
|
}
|
|
}
|