aboutsummaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/coreSQLiteStudio/services
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
parent724c012ada23ef480c61fe99e3c9784b91aeb1ca (diff)
Imported Upstream version 3.0.2upstream/3.0.2
Diffstat (limited to 'SQLiteStudio3/coreSQLiteStudio/services')
-rw-r--r--SQLiteStudio3/coreSQLiteStudio/services/config.h1
-rw-r--r--SQLiteStudio3/coreSQLiteStudio/services/exportmanager.cpp2
-rw-r--r--SQLiteStudio3/coreSQLiteStudio/services/extralicensemanager.cpp99
-rw-r--r--SQLiteStudio3/coreSQLiteStudio/services/extralicensemanager.h28
-rw-r--r--SQLiteStudio3/coreSQLiteStudio/services/impl/configimpl.cpp8
-rw-r--r--SQLiteStudio3/coreSQLiteStudio/services/impl/configimpl.h2
-rw-r--r--SQLiteStudio3/coreSQLiteStudio/services/impl/pluginmanagerimpl.cpp3
7 files changed, 133 insertions, 10 deletions
diff --git a/SQLiteStudio3/coreSQLiteStudio/services/config.h b/SQLiteStudio3/coreSQLiteStudio/services/config.h
index 5a3f594..6e1fd95 100644
--- a/SQLiteStudio3/coreSQLiteStudio/services/config.h
+++ b/SQLiteStudio3/coreSQLiteStudio/services/config.h
@@ -23,6 +23,7 @@ CFG_CATEGORIES(Core,
CFG_ENTRY(QString, LoadedPlugins, "")
CFG_ENTRY(QVariantHash, ActiveCodeFormatter, QVariantHash())
CFG_ENTRY(bool, CheckUpdatesOnStartup, true)
+ CFG_ENTRY(QString, Language, "en")
)
CFG_CATEGORY(Console,
CFG_ENTRY(int, HistorySize, 100)
diff --git a/SQLiteStudio3/coreSQLiteStudio/services/exportmanager.cpp b/SQLiteStudio3/coreSQLiteStudio/services/exportmanager.cpp
index 6f916bc..c9b272d 100644
--- a/SQLiteStudio3/coreSQLiteStudio/services/exportmanager.cpp
+++ b/SQLiteStudio3/coreSQLiteStudio/services/exportmanager.cpp
@@ -221,7 +221,7 @@ void ExportManager::finalizeExport(bool result, QIODevice* output)
else if (!config->outputFileName.isEmpty())
notifyInfo(tr("Export to the file '%1' was successful.").arg(config->outputFileName));
else
- notifyInfo(tr("Export to was successful.").arg(config->outputFileName));
+ notifyInfo(tr("Export was successful."));
emit exportSuccessful();
}
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;
}
diff --git a/SQLiteStudio3/coreSQLiteStudio/services/extralicensemanager.h b/SQLiteStudio3/coreSQLiteStudio/services/extralicensemanager.h
index fcf1203..c8da6f9 100644
--- a/SQLiteStudio3/coreSQLiteStudio/services/extralicensemanager.h
+++ b/SQLiteStudio3/coreSQLiteStudio/services/extralicensemanager.h
@@ -8,14 +8,38 @@
class API_EXPORT ExtraLicenseManager
{
public:
+ enum class Type
+ {
+ FILE,
+ CONTENTS
+ };
+
+ struct License
+ {
+ QString title;
+ QString data;
+ Type type;
+ QString violationMessage;
+ bool violated = false;
+ };
+
ExtraLicenseManager();
+ virtual ~ExtraLicenseManager();
bool addLicense(const QString& title, const QString& filePath);
+ bool addLicenseContents(const QString& title, const QString& contents);
+ void setViolatedLicense(const QString& title, const QString& violationMessage);
+ void unsetViolatedLicense(const QString& title);
+ bool isViolatedLicense(const QString& title);
+ QString getViolationMessage(const QString& title);
bool removeLicense(const QString& title);
- const QHash<QString,QString>& getLicenses() const;
+ QHash<QString,QString> getLicensesContents() const;
private:
- QHash<QString,QString> licenses;
+ bool addLicense(const QString& title, const QString& data, Type type);
+ QString readLicenseFile(const QString& path) const;
+
+ QHash<QString,License*> licenses;
};
#endif // EXTRALISENCEMANAGER_H
diff --git a/SQLiteStudio3/coreSQLiteStudio/services/impl/configimpl.cpp b/SQLiteStudio3/coreSQLiteStudio/services/impl/configimpl.cpp
index e210f01..bbfec32 100644
--- a/SQLiteStudio3/coreSQLiteStudio/services/impl/configimpl.cpp
+++ b/SQLiteStudio3/coreSQLiteStudio/services/impl/configimpl.cpp
@@ -278,13 +278,14 @@ qint64 ConfigImpl::addSqlHistory(const QString& sql, const QString& dbName, int
sqlHistoryId = 0;
}
+ sqlHistoryMutex.lock();
QtConcurrent::run(this, &ConfigImpl::asyncAddSqlHistory, sqlHistoryId, sql, dbName, timeSpentMillis, rowsAffected);
- sqlHistoryId++;
- return sqlHistoryId;
+ return sqlHistoryId++;
}
void ConfigImpl::updateSqlHistory(qint64 id, const QString& sql, const QString& dbName, int timeSpentMillis, int rowsAffected)
{
+ sqlHistoryMutex.lock();
QtConcurrent::run(this, &ConfigImpl::asyncUpdateSqlHistory, id, sql, dbName, timeSpentMillis, rowsAffected);
}
@@ -638,6 +639,7 @@ void ConfigImpl::asyncAddSqlHistory(qint64 id, const QString& sql, const QString
{
qDebug() << "Error adding SQL history:" << results->getErrorText();
db->rollback();
+ sqlHistoryMutex.unlock();
return;
}
@@ -657,6 +659,7 @@ void ConfigImpl::asyncAddSqlHistory(qint64 id, const QString& sql, const QString
db->commit();
emit sqlHistoryRefreshNeeded();
+ sqlHistoryMutex.unlock();
}
void ConfigImpl::asyncUpdateSqlHistory(qint64 id, const QString& sql, const QString& dbName, int timeSpentMillis, int rowsAffected)
@@ -665,6 +668,7 @@ void ConfigImpl::asyncUpdateSqlHistory(qint64 id, const QString& sql, const QStr
{dbName, timeSpentMillis, rowsAffected, sql, id});
emit sqlHistoryRefreshNeeded();
+ sqlHistoryMutex.unlock();
}
void ConfigImpl::asyncClearSqlHistory()
diff --git a/SQLiteStudio3/coreSQLiteStudio/services/impl/configimpl.h b/SQLiteStudio3/coreSQLiteStudio/services/impl/configimpl.h
index ec32e8d..63d1e1f 100644
--- a/SQLiteStudio3/coreSQLiteStudio/services/impl/configimpl.h
+++ b/SQLiteStudio3/coreSQLiteStudio/services/impl/configimpl.h
@@ -4,6 +4,7 @@
#include "coreSQLiteStudio_global.h"
#include "services/config.h"
#include "db/sqlquery.h"
+#include <QMutex>
class AsyncConfigHandler;
class SqlHistoryModel;
@@ -118,6 +119,7 @@ class API_EXPORT ConfigImpl : public Config
bool massSaving = false;
SqlHistoryModel* sqlHistoryModel = nullptr;
DdlHistoryModel* ddlHistoryModel = nullptr;
+ QMutex sqlHistoryMutex;
public slots:
void refreshDdlHistory();
diff --git a/SQLiteStudio3/coreSQLiteStudio/services/impl/pluginmanagerimpl.cpp b/SQLiteStudio3/coreSQLiteStudio/services/impl/pluginmanagerimpl.cpp
index 5d7a517..c3bc581 100644
--- a/SQLiteStudio3/coreSQLiteStudio/services/impl/pluginmanagerimpl.cpp
+++ b/SQLiteStudio3/coreSQLiteStudio/services/impl/pluginmanagerimpl.cpp
@@ -3,6 +3,7 @@
#include "plugins/genericplugin.h"
#include "services/notifymanager.h"
#include "common/unused.h"
+#include "translations.h"
#include <QCoreApplication>
#include <QDir>
#include <QDebug>
@@ -465,6 +466,7 @@ void PluginManagerImpl::unload(const QString& pluginName)
// Deinitializing and unloading plugin
emit aboutToUnload(container->plugin, container->type);
container->plugin->deinit();
+ unloadTranslation(container->name);
QPluginLoader* loader = container->loader;
if (!loader->isLoaded())
@@ -586,6 +588,7 @@ void PluginManagerImpl::pluginLoaded(PluginManagerImpl::PluginContainer* contain
{
if (!container->builtIn)
{
+ loadTranslation(container->name);
container->plugin = dynamic_cast<Plugin*>(container->loader->instance());
container->loaded = true;
}