diff options
| author | 2015-01-30 17:00:24 -0500 | |
|---|---|---|
| committer | 2015-01-30 17:00:24 -0500 | |
| commit | e4767514ed04e6a0bddf3f4a47f5f0b09e65e0ee (patch) | |
| tree | 86cadc2137831d44fa29fd40a2964f7fb1326de4 /SQLiteStudio3/coreSQLiteStudio/services/extralicensemanager.cpp | |
| parent | 26ddfe11c2b7fac52e5f57dcd9f5223a50b2a9a7 (diff) | |
| parent | 016003905ca0e8e459e3dc33e786beda8ec92f45 (diff) | |
Merge tag 'upstream/3.0.2'
Upstream version 3.0.2
# gpg: Signature made Fri 30 Jan 2015 05:00:11 PM EST using RSA key ID EBE9BD91
# gpg: Good signature from "Unit 193 <unit193@gmail.com>"
# gpg: aka "Unit 193 <unit193@ninthfloor.org>"
# gpg: aka "Unit 193 <unit193@ubuntu.com>"
Diffstat (limited to 'SQLiteStudio3/coreSQLiteStudio/services/extralicensemanager.cpp')
| -rw-r--r-- | SQLiteStudio3/coreSQLiteStudio/services/extralicensemanager.cpp | 99 |
1 files changed, 94 insertions, 5 deletions
diff --git a/SQLiteStudio3/coreSQLiteStudio/services/extralicensemanager.cpp b/SQLiteStudio3/coreSQLiteStudio/services/extralicensemanager.cpp index 23fb513..2bdc712 100644 --- a/SQLiteStudio3/coreSQLiteStudio/services/extralicensemanager.cpp +++ b/SQLiteStudio3/coreSQLiteStudio/services/extralicensemanager.cpp @@ -1,16 +1,63 @@ #include "extralicensemanager.h" +#include <QDebug> +#include <QFile> ExtraLicenseManager::ExtraLicenseManager() { } +ExtraLicenseManager::~ExtraLicenseManager() +{ + for (License* lic : licenses.values()) + delete lic; + + licenses.clear(); +} + bool ExtraLicenseManager::addLicense(const QString& title, const QString& filePath) { - if (licenses.contains(title)) + return addLicense(title, filePath, Type::FILE); +} + +bool ExtraLicenseManager::addLicenseContents(const QString& title, const QString& contents) +{ + return addLicense(title, contents, Type::CONTENTS); +} + +void ExtraLicenseManager::setViolatedLicense(const QString& title, const QString& violationMessage) +{ + if (!licenses.contains(title)) + return; + + License* lic = licenses[title]; + lic->violated = true; + lic->violationMessage = violationMessage; +} + +void ExtraLicenseManager::unsetViolatedLicense(const QString& title) +{ + if (!licenses.contains(title)) + return; + + License* lic = licenses[title]; + lic->violated = false; + lic->violationMessage = QString(); +} + +bool ExtraLicenseManager::isViolatedLicense(const QString& title) +{ + if (!licenses.contains(title)) return false; - licenses[title] = filePath; - return true; + return licenses[title]->violated; +} + +QString ExtraLicenseManager::getViolationMessage(const QString& title) +{ + if (!licenses.contains(title)) + return QString::null; + + return licenses[title]->violationMessage; } bool ExtraLicenseManager::removeLicense(const QString& title) @@ -18,11 +65,53 @@ bool ExtraLicenseManager::removeLicense(const QString& title) if (!licenses.contains(title)) return false; + delete licenses[title]; licenses.remove(title); return true; } -const QHash<QString, QString>&ExtraLicenseManager::getLicenses() const +QHash<QString, QString> ExtraLicenseManager::getLicensesContents() const +{ + QHash<QString, QString> result; + License* lic = nullptr; + for (const QString& title : licenses.keys()) + { + lic = licenses[title]; + switch (lic->type) + { + case Type::CONTENTS: + result[title] = lic->data; + break; + case Type::FILE: + result[title] = readLicenseFile(lic->data); + break; + } + } + return result; +} + +bool ExtraLicenseManager::addLicense(const QString& title, const QString& data, ExtraLicenseManager::Type type) +{ + if (licenses.contains(title)) + return false; + + License* lic = new License; + lic->title = title; + lic->data = data; + lic->type = type; + licenses[title] = lic; + return true; +} + +QString ExtraLicenseManager::readLicenseFile(const QString& path) const { - return licenses; + QFile file(path); + if (!file.open(QIODevice::ReadOnly)) + { + qCritical() << "Error opening" << file.fileName(); + return QString::null; + } + QString contents = QString::fromLatin1(file.readAll()); + file.close(); + return contents; } |
