diff options
Diffstat (limited to 'SQLiteStudio3/guiSQLiteStudio/dialogs/aboutdialog.cpp')
| -rw-r--r-- | SQLiteStudio3/guiSQLiteStudio/dialogs/aboutdialog.cpp | 56 |
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; +} |
