23 #include "aboutdialog.h"
25 #include "gui/commongui.h"
26 #include "gui/copytextdlg.h"
27 #include "plugins/engineplugin.h"
28 #include "plugins/pluginloader.h"
29 #include "ui_aboutdialog.h"
31 #include "wadseeker/wadseekerversioninfo.h"
36 DClass<AboutDialog> :
public Ui::AboutDialog
47 connect(d->buttonBox, SIGNAL(clicked(QAbstractButton*)), SLOT(close()));
52 d->versionAbi->setText(QString(
"(ABI: %1)").arg(DOOMSEEKER_ABI_VERSION));
53 d->lblRevision->setText(QString::number(Version::revisionNumber()));
54 d->logo->setPixmap(QPixmap(
":/logo.png"));
55 d->pteCopyrightNotice->setPlainText(copyrightVerboseNotice());
58 d->wadseekerAuthor->setText(WadseekerVersionInfo::author());
59 d->wadseekerDescription->setText(WadseekerVersionInfo::description());
60 d->wadseekerVersion->setText(WadseekerVersionInfo::version());
61 d->wadseekerYearSpan->setText(WadseekerVersionInfo::yearSpan());
64 for (
unsigned i = 0; i < gPlugins->numPlugins(); ++i)
65 d->pluginBox->addItem( gPlugins->plugin(i)->info()->data()->name);
66 connect(d->pluginBox, SIGNAL(currentIndexChanged(
int)), SLOT(changePlugin(
int)));
72 AboutDialog::~AboutDialog()
76 void AboutDialog::changePlugin(
int pluginIndex)
78 if (static_cast<unsigned>(pluginIndex) >= gPlugins->numPlugins())
81 const EnginePlugin *plug = gPlugins->plugin(pluginIndex)->info();
84 d->pluginDescription->setPlainText(
"");
86 d->pluginDescription->setPlainText(plug->data()->
aboutProvider->provide());
87 d->pluginAuthor->setText(plug->data()->author);
88 d->pluginVersion->setText(QString(
"Version: %1").arg(plug->data()->version));
89 d->pluginAbiVersion->setText(QString(
"(ABI: %1)").arg(plug->data()->abiVersion));
92 QString AboutDialog::copyrightVerboseNotice()
const
97 QStringList paragraphs;
100 QChar copyrightChar(0x00a9);
101 QChar smallAGraveChar(0x00e0);
104 paragraphs << tr(
"Copyright %1 %2 The Doomseeker Team")
105 .arg(copyrightChar).arg(Version::yearSpan());
106 paragraphs << tr(
"This program is distributed under the terms of the LGPL v2.1 or later.");
109 paragraphs << tr(
"Doomseeker translations contributed by:\n")
110 + tr(
"- Polish: Zalewa") +
"\n"
111 + tr(
"- Spanish: Pol Marcet Sard%1").arg(smallAGraveChar) +
"\n"
112 + tr(
"- Catalan: Pol Marcet Sard%1").arg(smallAGraveChar);
115 paragraphs << tr(
"This program uses GeoLite2 data for IP-to-Country (IP2C) purposes, "
116 "available from https://www.maxmind.com") +
"\n" +
117 tr(
"Database and Contents Copyright (c) 2018 MaxMind, Inc.");
118 paragraphs << tr(
"GeoLite2 License:\n"
119 "This work is licensed under the Creative Commons Attribution - ShareAlike 4.0 Unported License. "
120 "To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/.");
121 paragraphs << tr(
"GeoLite2 available at:\n"
122 "https://dev.maxmind.com/geoip/geoip2/geolite2/");
126 icons << tr(
"- Aha-Soft");
127 icons << tr(
"- Crystal Clear by Everaldo Coelho");
128 icons << tr(
"- Fugue Icons (C) 2013 Yusuke Kamiyamane. All rights reserved.");
129 icons << tr(
"- Nuvola 1.0 (KDE 3.x icon set)");
130 icons << tr(
"- Oxygen Icons 4.3.1 (KDE)");
131 icons << tr(
"- Silk Icon Set (C) Mark James (famfamfam.com)");
132 icons << tr(
"- Tango Icon Library / Tango Desktop Project");
133 paragraphs << tr(
"This program uses icons (or derivates of) from following sources:\n") + icons.join(
"\n");
135 return paragraphs.join(
"\n\n");