#include "settings.h" #include #include Settings::Settings(QObject *parent) : QObject(parent) , m_settings(QStringLiteral("harbour"), QStringLiteral("calibreweb")) { } QString Settings::serverUrl() const { return m_settings.value(QStringLiteral("serverUrl")).toString(); } void Settings::setServerUrl(const QString &value) { if (value == serverUrl()) return; m_settings.setValue(QStringLiteral("serverUrl"), value); emit serverUrlChanged(); emit baseUrlChanged(); } QString Settings::username() const { return m_settings.value(QStringLiteral("username")).toString(); } void Settings::setUsername(const QString &value) { if (value == username()) return; m_settings.setValue(QStringLiteral("username"), value); emit usernameChanged(); } QString Settings::password() const { return m_settings.value(QStringLiteral("password")).toString(); } void Settings::setPassword(const QString &value) { if (value == password()) return; m_settings.setValue(QStringLiteral("password"), value); emit passwordChanged(); } bool Settings::ignoreSslErrors() const { return m_settings.value(QStringLiteral("ignoreSslErrors"), false).toBool(); } void Settings::setIgnoreSslErrors(bool value) { if (value == ignoreSslErrors()) return; m_settings.setValue(QStringLiteral("ignoreSslErrors"), value); emit ignoreSslErrorsChanged(); } QString Settings::downloadDir() const { QString dir = QStandardPaths::writableLocation(QStandardPaths::DownloadLocation); if (dir.isEmpty()) dir = QStringLiteral("/home/nemo/Downloads"); QDir().mkpath(dir); return dir; } QString Settings::authHeader() const { const QString user = username(); if (user.isEmpty()) return QString(); const QString credentials = user + QLatin1Char(':') + password(); return QStringLiteral("Basic ") + QString::fromLatin1(credentials.toUtf8().toBase64()); } QString Settings::baseUrl() const { QString url = serverUrl().trimmed(); while (url.endsWith(QLatin1Char('/'))) url.chop(1); return url; } QString Settings::bookmarkKey(int bookId, const QString &format) const { return m_settings.value(QStringLiteral("bookmarks/%1/%2").arg(bookId).arg(format)) .toString(); } void Settings::setBookmarkKey(int bookId, const QString &format, const QString &key) { m_settings.setValue(QStringLiteral("bookmarks/%1/%2").arg(bookId).arg(format), key); } QString Settings::bookFilePath(int bookId, const QString &format) const { const QString dir = QStandardPaths::writableLocation(QStandardPaths::CacheLocation) + QStringLiteral("/books"); QDir().mkpath(dir); return dir + QStringLiteral("/%1.%2").arg(bookId).arg(format); }