summaryrefslogtreecommitdiffstats
path: root/SQLiteStudio3/guiSQLiteStudio/dialogs/aboutdialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/dialogs/aboutdialog.cpp')
-rw-r--r--SQLiteStudio3/guiSQLiteStudio/dialogs/aboutdialog.cpp56
1 files changed, 48 insertions, 8 deletions
diff --git a/SQLiteStudio3/guiSQLiteStudio/dialogs/aboutdialog.cpp b/SQLiteStudio3/guiSQLiteStudio/dialogs/aboutdialog.cpp
index df790de..0d291e5 100644
--- a/SQLiteStudio3/guiSQLiteStudio/dialogs/aboutdialog.cpp
+++ b/SQLiteStudio3/guiSQLiteStudio/dialogs/aboutdialog.cpp
@@ -4,6 +4,9 @@
#include "sqlitestudio.h"
#include "iconmanager.h"
#include "services/extralicensemanager.h"
+#include "services/pluginmanager.h"
+#include "formmanager.h"
+#include "iconmanager.h"
#include <QDebug>
#include <QFile>
@@ -26,6 +29,7 @@ void AboutDialog::init(InitialMode initialMode)
ui->tabWidget->setCurrentWidget(initialMode == ABOUT ? ui->about : ui->license);
+ // About
QString distName;
switch (getDistributionType())
{
@@ -43,15 +47,23 @@ void AboutDialog::init(InitialMode initialMode)
QString newLabelValue = ui->aboutLabel->text().arg(SQLITESTUDIO->getVersionString(), distName);
ui->aboutLabel->setText(newLabelValue);
+ // Licenses
licenseContents = "";
int row = 1;
- QHash<QString,QString> licenses = SQLITESTUDIO->getExtraLicenseManager()->getLicenses();
+ QHash<QString,QString> licenses = SQLITESTUDIO->getExtraLicenseManager()->getLicensesContents();
+ QString violation;
+ QString title;
QHashIterator<QString,QString> it(licenses);
while (it.hasNext())
{
it.next();
- readLicense(row++, it.key(), it.value());
+ violation = QString();
+ title = it.key();
+ if (SQLITESTUDIO->getExtraLicenseManager()->isViolatedLicense(title))
+ violation = SQLITESTUDIO->getExtraLicenseManager()->getViolationMessage(title);
+
+ addLicense(row++, title, it.value(), violation);
}
buildIndex();
@@ -59,6 +71,18 @@ void AboutDialog::init(InitialMode initialMode)
ui->licenseEdit->setHtml(licenseContents);
indexContents.clear();
licenseContents.clear();
+
+ // Environment
+ copyAct = new QAction(tr("Copy"), this);
+ ui->appDirEdit->setText(qApp->applicationDirPath());
+ ui->cfgDirEdit->setText(CFG->getConfigDir());
+ ui->pluginDirList->addItems(filterResourcePaths(PLUGINS->getPluginDirs()));
+ ui->iconDirList->addItems(filterResourcePaths(ICONMANAGER->getIconDirs()));
+ ui->formDirList->addItems(filterResourcePaths(FORMS->getFormDirs()));
+ ui->qtVerEdit->setText(QT_VERSION_STR);
+ ui->pluginDirList->addAction(copyAct);
+ ui->iconDirList->addAction(copyAct);
+ ui->formDirList->addAction(copyAct);
}
void AboutDialog::buildIndex()
@@ -68,16 +92,19 @@ void AboutDialog::buildIndex()
for (const QString& idx : indexContents)
entries += entryTpl.arg(idx);
- licenseContents.prepend("<h3>Table of contents:</h3><ol>" + entries.join("") + "</ol>");
+ licenseContents.prepend(tr("<h3>Table of contents:</h3><ol>%2</ol>").arg(entries.join("")));
}
-void AboutDialog::readLicense(int row, const QString& title, const QString& path)
+void AboutDialog::addLicense(int row, const QString& title, const QString& contents, const QString& violation)
{
+ static_qstring(violatedTpl, "<span style=\"color: #FF0000;\">%1 (%2)</span>");
+
+ QString escapedTitle = title.toHtmlEscaped();
+ QString finalTitle = violation.isNull() ? escapedTitle : violatedTpl.arg(escapedTitle, violation);
QString rowNum = QString::number(row);
- QString contents = readFile(path);
- licenseContents += "<h3>" + rowNum + ". " + title + "</h3>";
- licenseContents += "<pre>" + contents + "</pre>";
- indexContents += title;
+ licenseContents += "<h3>" + rowNum + ". " + finalTitle + "</h3>";
+ licenseContents += "<pre>" + contents.toHtmlEscaped() + "</pre>";
+ indexContents += finalTitle;
}
QString AboutDialog::readFile(const QString& path)
@@ -92,3 +119,16 @@ QString AboutDialog::readFile(const QString& path)
file.close();
return contents;
}
+
+QStringList AboutDialog::filterResourcePaths(const QStringList& paths)
+{
+ QStringList output;
+ for (const QString& path : paths)
+ {
+ if (path.startsWith(":"))
+ continue;
+
+ output << path;
+ }
+ return output;
+}