summaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/coreSQLiteStudio/services/extralicensemanager.cpp
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@ubuntu.com>2015-01-30 17:00:07 -0500
committerLibravatarUnit 193 <unit193@ubuntu.com>2015-01-30 17:00:07 -0500
commit016003905ca0e8e459e3dc33e786beda8ec92f45 (patch)
tree34aba2d2e0d66fbf2c3821ee8358f56e40c4c95e /SQLiteStudio3/coreSQLiteStudio/services/extralicensemanager.cpp
parent724c012ada23ef480c61fe99e3c9784b91aeb1ca (diff)
Imported Upstream version 3.0.2upstream/3.0.2
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;
}