/*
* This file is part of smolbote. It's copyrighted by the contributors recorded
* in the version control history of the file, available from its original
* location: https://neueland.iserlohn-fortress.net/smolbote.hg
*
* SPDX-License-Identifier: GPL-3.0
*/
#include "aboutdialog.h"
#include "browser.h"
#include "ui_aboutdialog.h"
#include "version.h"
#include
// compiler
// clang also defines __GNUC__, so we need to check for clang first
#if defined(__clang__)
#define compiler "Clang " __clang_version__
#elif defined(__GNUC__)
#define compiler "GCC " __VERSION__
#else
#define compiler "unknown compiler";
#endif
AboutDialog::AboutDialog(QWidget *parent)
: QDialog(parent)
, ui(new Ui::AboutDialog)
{
setAttribute(Qt::WA_DeleteOnClose, true);
ui->setupUi(this);
auto *browser = dynamic_cast(QApplication::instance());
ui->icon->setPixmap(dynamic_cast(browser)->windowIcon().pixmap(72, 72));
auto *aboutLabel = new QLabel(this);
aboutLabel->setWordWrap(true);
aboutLabel->setText(tr("smolbote " SMOLBOTE_VERSION "
"
"yet another no-frills browser
"));
ui->toolBox->addItem(aboutLabel, tr("About"));
auto *licenseLabel = new QLabel(this);
licenseLabel->setWordWrap(true);
licenseLabel->setText(tr("Copyright (C) 2017 Xian Nox
"
"This program is free software, and you are welcome to use it under the conditions set by the GNU GPLv3:"
"
"
"- the freedom to use the software for any purpose,
"
"- the freedom to change the software to suit your needs,
"
"- the freedom to share the software with anyone,
"
"- the freedom to share the changes you make, and
"
"- the responsibility to grant the same freedoms when sharing the software.
"
"
"
"You can find the full license text in LICENSE.md.
"));
ui->toolBox->addItem(licenseLabel, tr("License"));
auto *libsLabel = new QLabel(this);
libsLabel->setWordWrap(true);
libsLabel->setText(tr("Version " SMOLBOTE_DESCRIBE "
"
"Branch: " SMOLBOTE_BRANCH "
"
"Compiled with " compiler "
"
""
"- Qt " QT_VERSION_STR "
"
"- Boost " BOOST_LIB_VERSION "
"
"
"));
ui->toolBox->addItem(libsLabel, tr("Details"));
// list profiles
if(!browser->profiles().isEmpty()) {
QString profilesText = tr("Profile list:
"
"");
for(const QString &name : browser->profiles()) {
if(name.isEmpty())
profilesText += tr("- Off-the-record
");
else
profilesText += tr("- %1
").arg(name);
}
profilesText += tr("
");
libsLabel->setText(libsLabel->text() + profilesText);
}
// list plugins
if(!browser->plugins().isEmpty()) {
QString pluginText = tr("Plugin list:
"
"");
for(const Browser::Plugin &plugin : browser->plugins()) {
pluginText += tr("- %1 (%2)
").arg(plugin.meta["name"].toString(), plugin.meta["author"].toString());
}
pluginText += tr("
");
libsLabel->setText(libsLabel->text() + pluginText);
}
}
AboutDialog::~AboutDialog()
{
delete ui;
}