aboutsummaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/coreSQLiteStudio/services/extralicensemanager.cpp
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@ubuntu.com>2015-01-30 17:00:24 -0500
committerLibravatarUnit 193 <unit193@ubuntu.com>2015-01-30 17:00:24 -0500
commite4767514ed04e6a0bddf3f4a47f5f0b09e65e0ee (patch)
tree86cadc2137831d44fa29fd40a2964f7fb1326de4 /SQLiteStudio3/coreSQLiteStudio/services/extralicensemanager.cpp
parent26ddfe11c2b7fac52e5f57dcd9f5223a50b2a9a7 (diff)
parent016003905ca0e8e459e3dc33e786beda8ec92f45 (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.cpp99
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;
}