From eaa6623d1b82982509b8f5f51a44205a3d5f9b5f Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Sun, 19 Apr 2020 14:22:29 +0300 Subject: move lib/about to src/about - add AboutDialog test - add SVG icon in place of application icon --- lib/about/aboutdialog.cpp | 71 ---------------- lib/about/aboutdialog.h | 31 ------- lib/about/aboutdialog.ui | 186 ------------------------------------------ lib/about/aboutplugin.cpp | 111 ------------------------- lib/about/aboutplugin.h | 31 ------- lib/about/aboutplugin.ui | 196 -------------------------------------------- lib/about/meson.build | 12 --- meson.build | 5 +- src/about/aboutdialog.cpp | 78 ++++++++++++++++++ src/about/aboutdialog.h | 31 +++++++ src/about/aboutdialog.ui | 201 ++++++++++++++++++++++++++++++++++++++++++++++ src/about/aboutplugin.cpp | 111 +++++++++++++++++++++++++ src/about/aboutplugin.h | 31 +++++++ src/about/aboutplugin.ui | 196 ++++++++++++++++++++++++++++++++++++++++++++ src/about/meson.build | 21 +++++ src/about/test/main.cpp | 21 +++++ src/meson.build | 2 + 17 files changed, 694 insertions(+), 641 deletions(-) delete mode 100644 lib/about/aboutdialog.cpp delete mode 100644 lib/about/aboutdialog.h delete mode 100644 lib/about/aboutdialog.ui delete mode 100644 lib/about/aboutplugin.cpp delete mode 100644 lib/about/aboutplugin.h delete mode 100644 lib/about/aboutplugin.ui delete mode 100644 lib/about/meson.build create mode 100644 src/about/aboutdialog.cpp create mode 100644 src/about/aboutdialog.h create mode 100644 src/about/aboutdialog.ui create mode 100644 src/about/aboutplugin.cpp create mode 100644 src/about/aboutplugin.h create mode 100644 src/about/aboutplugin.ui create mode 100644 src/about/meson.build create mode 100644 src/about/test/main.cpp diff --git a/lib/about/aboutdialog.cpp b/lib/about/aboutdialog.cpp deleted file mode 100644 index 99fb7ce..0000000 --- a/lib/about/aboutdialog.cpp +++ /dev/null @@ -1,71 +0,0 @@ -/* - * 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/gitea/aqua/smolbote - * - * SPDX-License-Identifier: GPL-3.0 - */ - -#include "aboutdialog.h" -#include "ui_aboutdialog.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__ -#elif defined(_MSC_VER) -#define compiler "MSVC" -#else -#define compiler "unknown compiler" -#endif - -AboutDialog::AboutDialog(QWidget *parent) - : QDialog(parent) - , ui(new Ui::AboutDialog) -{ - setAttribute(Qt::WA_DeleteOnClose, true); - ui->setupUi(this); - - ui->icon->setPixmap(qApp->windowIcon().pixmap(72, 72)); - - ui->aboutLabel->setText(tr("

smolbote %1

" - "

yet another no-frills browser

" - "

This program is free software, see License for more information.

") - .arg(qApp->applicationVersion())); - - ui->licenseLabel->setText(tr("

Copyright 2017 - 2019 aqua

" - "

This program is free software, and you are welcome to use it under the conditions set by the GNU GPLv3.
" - "This is a short summary:

" - "

This program is distributed in the hope that it will be useful, but without any warranty.

" - "

You can read the full terms of the license on the GNU website.

")); - - ui->detailsLabel->setText(tr("

Version " poi_Version "

" - "

Compiled with " compiler "

" - "

Libraries:

")); - -} - -AboutDialog::~AboutDialog() -{ - delete ui; -} diff --git a/lib/about/aboutdialog.h b/lib/about/aboutdialog.h deleted file mode 100644 index 1d33d3e..0000000 --- a/lib/about/aboutdialog.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * 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/gitea/aqua/smolbote - * - * SPDX-License-Identifier: GPL-3.0 - */ - -#ifndef SMOLBOTE_ABOUTDIALOG_H -#define SMOLBOTE_ABOUTDIALOG_H - -#include - -namespace Ui -{ -class AboutDialog; -} - -class AboutDialog : public QDialog -{ - Q_OBJECT - -public: - explicit AboutDialog(QWidget *parent = nullptr); - ~AboutDialog() override; - -private: - Ui::AboutDialog *ui; -}; - -#endif // SMOLBOTE_ABOUTDIALOG_H diff --git a/lib/about/aboutdialog.ui b/lib/about/aboutdialog.ui deleted file mode 100644 index 0af877d..0000000 --- a/lib/about/aboutdialog.ui +++ /dev/null @@ -1,186 +0,0 @@ - - - AboutDialog - - - - 0 - 0 - 500 - 600 - - - - About - - - - - - - - - 72 - 72 - - - - TextLabel - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - - - - 0 - - - - - 0 - 0 - 406 - 450 - - - - About - - - - - - TextLabel - - - true - - - - - - - - - 0 - 0 - 406 - 450 - - - - License - - - - - - TextLabel - - - true - - - true - - - - - - - - - 0 - 0 - 406 - 450 - - - - Details - - - - - - TextLabel - - - true - - - true - - - - - - - - - - - Qt::Horizontal - - - QDialogButtonBox::Close - - - - - - - - - - - buttonBox - accepted() - AboutDialog - accept() - - - 248 - 254 - - - 157 - 274 - - - - - buttonBox - rejected() - AboutDialog - reject() - - - 316 - 260 - - - 286 - 274 - - - - - diff --git a/lib/about/aboutplugin.cpp b/lib/about/aboutplugin.cpp deleted file mode 100644 index 99c04ec..0000000 --- a/lib/about/aboutplugin.cpp +++ /dev/null @@ -1,111 +0,0 @@ -/* - * 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/gitea/aqua/smolbote - * - * SPDX-License-Identifier: GPL-3.0 - */ - -#include "aboutplugin.h" -#include "ui_aboutplugin.h" -#include -#include - -QTreeWidgetItem *createItem(const QString &key, const QJsonValue &json, QTreeWidgetItem *parent) -{ - auto *item = new QTreeWidgetItem(parent, { key, QLatin1String("---") }); - - switch(json.type()) { - case QJsonValue::Bool: - item->setText(1, json.toBool() ? QLatin1String("true") : QLatin1String("false")); - break; - - case QJsonValue::Double: - item->setText(1, QString::number(json.toDouble())); - break; - - case QJsonValue::String: - item->setText(1, json.toString()); - break; - - case QJsonValue::Array: - item->setText(1, QString()); - for(const auto &v : json.toArray()) { - createItem(QString(), v, item); - } - break; - - case QJsonValue::Object: - item->setText(1, QString()); - for(const QString &k : json.toObject().keys()) { - createItem(k, json.toObject()[k], item); - } - break; - - case QJsonValue::Null: - item->setText(1, QLatin1String("null")); - break; - - case QJsonValue::Undefined: - item->setText(1, QLatin1String("undefined")); - break; - } - - return item; -} - -AboutPluginDialog::AboutPluginDialog(QPluginLoader *loader, QWidget *parent) - : QDialog(parent) - , ui(new Ui::AboutPluginDialog) -{ - setAttribute(Qt::WA_DeleteOnClose, true); - ui->setupUi(this); - - // load button icon - { - QIcon load_icon; - load_icon.addPixmap(style()->standardPixmap(QStyle::SP_MediaPlay), QIcon::Normal, QIcon::On); - load_icon.addPixmap(style()->standardPixmap(QStyle::SP_MediaStop), QIcon::Normal, QIcon::Off); - ui->load->setIcon(load_icon); - } - - auto metaData = loader->metaData()["MetaData"].toObject(); - - this->setWindowTitle(metaData["name"].toString()); - - ui->path->setText(loader->fileName()); - ui->load->setChecked(loader->isLoaded()); - - connect(ui->load, &QToolButton::clicked, this, [this, loader](bool checked) { - if(checked) { - // load plugin - if(!loader->load()) { - ui->load->setChecked(false); - ui->error->setText(loader->errorString()); - } - } else { - // unload plugin - if(!loader->unload()) { - ui->load->setChecked(true); - ui->error->setText(loader->errorString()); - } - } - }); - - ui->name->setText(metaData[QLatin1String("name")].toString()); - ui->author->setText(metaData[QLatin1String("author")].toString()); - ui->license->setText(metaData[QLatin1String("license")].toString()); - ui->shortcut->setText(metaData[QLatin1String("shortcut")].toString()); - - for(const QString &key : loader->metaData().keys()) { - auto *i = createItem(key, loader->metaData()[key], nullptr); - - if(i != nullptr) - ui->details_treeWidget->insertTopLevelItem(0, i); - } -} - -AboutPluginDialog::~AboutPluginDialog() -{ - delete ui; -} diff --git a/lib/about/aboutplugin.h b/lib/about/aboutplugin.h deleted file mode 100644 index 9651060..0000000 --- a/lib/about/aboutplugin.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * 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/gitea/aqua/smolbote - * - * SPDX-License-Identifier: GPL-3.0 - */ - -#ifndef SMOLBOTE_ABOUTPLUGIN_H -#define SMOLBOTE_ABOUTPLUGIN_H - -#include - -namespace Ui -{ -class AboutPluginDialog; -} -class QPluginLoader; -class AboutPluginDialog : public QDialog -{ - Q_OBJECT - -public: - explicit AboutPluginDialog(QPluginLoader *loader, QWidget *parent = nullptr); - ~AboutPluginDialog() override; - -private: - Ui::AboutPluginDialog *ui; -}; - -#endif // SMOLBOTE_ABOUTPLUGIN_H diff --git a/lib/about/aboutplugin.ui b/lib/about/aboutplugin.ui deleted file mode 100644 index 31e20c6..0000000 --- a/lib/about/aboutplugin.ui +++ /dev/null @@ -1,196 +0,0 @@ - - - AboutPluginDialog - - - - 0 - 0 - 474 - 329 - - - - Dialog - - - - - - 0 - - - - General - - - - - - Name - - - - - - - - - - - - - - Author - - - - - - - - - - - - - - Shortcut - - - - - - - - - - - - - - - - - - - - - - - - License - - - - - - - - Details - - - - - - TextLabel - - - - - - - - Key - - - - - Value - - - - - - - - - Controls - - - - - - Load - - - true - - - - - - - - - - - - - - Status - - - - - - - - - - - Qt::Horizontal - - - QDialogButtonBox::Close - - - - - - - - - buttonBox - accepted() - AboutPluginDialog - accept() - - - 248 - 254 - - - 157 - 274 - - - - - buttonBox - rejected() - AboutPluginDialog - reject() - - - 316 - 260 - - - 286 - 274 - - - - - diff --git a/lib/about/meson.build b/lib/about/meson.build deleted file mode 100644 index 531355d..0000000 --- a/lib/about/meson.build +++ /dev/null @@ -1,12 +0,0 @@ -about_moc = mod_qt5.preprocess( - moc_headers: ['aboutdialog.h', 'aboutplugin.h'], - ui_files: ['aboutdialog.ui', 'aboutplugin.ui'], - dependencies: dep_qt5 -) - -dep_about = declare_dependency( - include_directories: include_directories('.'), - link_with: static_library('about', - ['aboutdialog.cpp', 'aboutplugin.cpp', about_moc, version_h], - dependencies: [dep_qt5]) -) diff --git a/meson.build b/meson.build index 8db72eb..f2a51bc 100644 --- a/meson.build +++ b/meson.build @@ -49,7 +49,7 @@ endif mod_qt5 = import('qt5') dep_qt5 = dependency('qt5', - modules: ['Core', 'Network', 'Widgets', 'WebEngineWidgets', 'Concurrent', 'Test'], + modules: [ 'Core', 'Network', 'Widgets', 'Svg', 'WebEngineWidgets', 'Concurrent', 'Test' ], include_type: 'system' ) @@ -76,7 +76,6 @@ poi_sourceset = sourceset.source_set() subdir('include') # plugin interaces -subdir('lib/about') subdir('lib/bookmarks') subdir('lib/configuration') subdir('lib/downloads') @@ -100,7 +99,7 @@ poi_exe = executable(get_option('poi'), cpp_args: ['-DQAPPLICATION_CLASS=QApplication', poi_cpp_args], sources: [ssconfig.sources()], include_directories: [include, include_directories('src')], - dependencies: [ dep_qt5, dep_spdlog, dep_SingleApplication, dep_args, optional_deps, dep_about, dep_bookmarks, dep_configuration, dep_downloads, dep_pluginloader, dep_urlfilter, dep_plugininterface, ssconfig.dependencies(), lib_session_formats ], + dependencies: [ dep_qt5, dep_spdlog, dep_SingleApplication, dep_args, optional_deps, dep_bookmarks, dep_configuration, dep_downloads, dep_pluginloader, dep_urlfilter, dep_plugininterface, ssconfig.dependencies(), lib_session_formats ], install: true, ) diff --git a/src/about/aboutdialog.cpp b/src/about/aboutdialog.cpp new file mode 100644 index 0000000..894b1ec --- /dev/null +++ b/src/about/aboutdialog.cpp @@ -0,0 +1,78 @@ +/* + * 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://library.iserlohn-fortress.net/aqua/smolbote.git + * + * SPDX-License-Identifier: GPL-3.0 + */ + +#include "aboutdialog.h" +#include "ui_aboutdialog.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__ +#elif defined(_MSC_VER) +#define compiler "MSVC" +#else +#define compiler "unknown compiler" +#endif + +AboutDialog::AboutDialog(QWidget *parent) + : QDialog(parent) + , ui(new Ui::AboutDialog) +{ + //setAttribute(Qt::WA_DeleteOnClose, true); + ui->setupUi(this); + + const QByteArray icon_svg = R"SVG( + + + + + + +)SVG"; + ui->appIcon_svg->load(icon_svg); + + ui->appName_label->setText(qApp->applicationName()); + ui->appVersion_label->setText(qApp->applicationVersion()); + + ui->aboutLabel->setText(tr("

%1 %2

" + "

yet another no-frills browser

" + "

This program is free software, see License for more information.

") + .arg(qApp->applicationName(), qApp->applicationVersion())); + + ui->licenseLabel->setText(tr("

Copyright 2017 - 2020 aqua@

" + "

This program is free software, and you are welcome to use it under the conditions set by the GNU GPLv3.
" + "This is a short summary:

    " + "
  • 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.
  • " + "
" + "

This program is distributed in the hope that it will be useful, but without any warranty.

" + "

You can read the full terms of the license on the GNU website.

")); + + ui->detailsLabel->setText(tr("

Version " poi_Version "

" + "

Compiled with " compiler "

" + "

Libraries:

")); +} + +AboutDialog::~AboutDialog() +{ + delete ui; +} diff --git a/src/about/aboutdialog.h b/src/about/aboutdialog.h new file mode 100644 index 0000000..e114e7c --- /dev/null +++ b/src/about/aboutdialog.h @@ -0,0 +1,31 @@ +/* + * 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://library.iserlohn-fortress.net/aqua/smolbote.git + * + * SPDX-License-Identifier: GPL-3.0 + */ + +#ifndef SMOLBOTE_ABOUTDIALOG_H +#define SMOLBOTE_ABOUTDIALOG_H + +#include + +namespace Ui +{ +class AboutDialog; +} + +class AboutDialog : public QDialog +{ + Q_OBJECT + +public: + explicit AboutDialog(QWidget *parent = nullptr); + ~AboutDialog() override; + +private: + Ui::AboutDialog *ui; +}; + +#endif // SMOLBOTE_ABOUTDIALOG_H diff --git a/src/about/aboutdialog.ui b/src/about/aboutdialog.ui new file mode 100644 index 0000000..5b1c12a --- /dev/null +++ b/src/about/aboutdialog.ui @@ -0,0 +1,201 @@ + + + AboutDialog + + + + 0 + 0 + 600 + 420 + + + + About + + + + + + + + + 120 + 120 + + + + + 120 + 120 + + + + + + + + smolbote + + + Qt::AlignCenter + + + + + + + 0.1.0 + + + Qt::AlignCenter + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + + + + + QTabWidget::West + + + 0 + + + + About + + + + + + TextLabel + + + true + + + + + + + + License + + + + + + TextLabel + + + true + + + true + + + + + + + + Details + + + + + + TextLabel + + + true + + + true + + + + + + + + Plugins + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Close + + + + + + + + + + QSvgWidget + QWidget +
QSvgWidget
+ 1 +
+
+ + + + buttonBox + accepted() + AboutDialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + AboutDialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + +
diff --git a/src/about/aboutplugin.cpp b/src/about/aboutplugin.cpp new file mode 100644 index 0000000..99c04ec --- /dev/null +++ b/src/about/aboutplugin.cpp @@ -0,0 +1,111 @@ +/* + * 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/gitea/aqua/smolbote + * + * SPDX-License-Identifier: GPL-3.0 + */ + +#include "aboutplugin.h" +#include "ui_aboutplugin.h" +#include +#include + +QTreeWidgetItem *createItem(const QString &key, const QJsonValue &json, QTreeWidgetItem *parent) +{ + auto *item = new QTreeWidgetItem(parent, { key, QLatin1String("---") }); + + switch(json.type()) { + case QJsonValue::Bool: + item->setText(1, json.toBool() ? QLatin1String("true") : QLatin1String("false")); + break; + + case QJsonValue::Double: + item->setText(1, QString::number(json.toDouble())); + break; + + case QJsonValue::String: + item->setText(1, json.toString()); + break; + + case QJsonValue::Array: + item->setText(1, QString()); + for(const auto &v : json.toArray()) { + createItem(QString(), v, item); + } + break; + + case QJsonValue::Object: + item->setText(1, QString()); + for(const QString &k : json.toObject().keys()) { + createItem(k, json.toObject()[k], item); + } + break; + + case QJsonValue::Null: + item->setText(1, QLatin1String("null")); + break; + + case QJsonValue::Undefined: + item->setText(1, QLatin1String("undefined")); + break; + } + + return item; +} + +AboutPluginDialog::AboutPluginDialog(QPluginLoader *loader, QWidget *parent) + : QDialog(parent) + , ui(new Ui::AboutPluginDialog) +{ + setAttribute(Qt::WA_DeleteOnClose, true); + ui->setupUi(this); + + // load button icon + { + QIcon load_icon; + load_icon.addPixmap(style()->standardPixmap(QStyle::SP_MediaPlay), QIcon::Normal, QIcon::On); + load_icon.addPixmap(style()->standardPixmap(QStyle::SP_MediaStop), QIcon::Normal, QIcon::Off); + ui->load->setIcon(load_icon); + } + + auto metaData = loader->metaData()["MetaData"].toObject(); + + this->setWindowTitle(metaData["name"].toString()); + + ui->path->setText(loader->fileName()); + ui->load->setChecked(loader->isLoaded()); + + connect(ui->load, &QToolButton::clicked, this, [this, loader](bool checked) { + if(checked) { + // load plugin + if(!loader->load()) { + ui->load->setChecked(false); + ui->error->setText(loader->errorString()); + } + } else { + // unload plugin + if(!loader->unload()) { + ui->load->setChecked(true); + ui->error->setText(loader->errorString()); + } + } + }); + + ui->name->setText(metaData[QLatin1String("name")].toString()); + ui->author->setText(metaData[QLatin1String("author")].toString()); + ui->license->setText(metaData[QLatin1String("license")].toString()); + ui->shortcut->setText(metaData[QLatin1String("shortcut")].toString()); + + for(const QString &key : loader->metaData().keys()) { + auto *i = createItem(key, loader->metaData()[key], nullptr); + + if(i != nullptr) + ui->details_treeWidget->insertTopLevelItem(0, i); + } +} + +AboutPluginDialog::~AboutPluginDialog() +{ + delete ui; +} diff --git a/src/about/aboutplugin.h b/src/about/aboutplugin.h new file mode 100644 index 0000000..9651060 --- /dev/null +++ b/src/about/aboutplugin.h @@ -0,0 +1,31 @@ +/* + * 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/gitea/aqua/smolbote + * + * SPDX-License-Identifier: GPL-3.0 + */ + +#ifndef SMOLBOTE_ABOUTPLUGIN_H +#define SMOLBOTE_ABOUTPLUGIN_H + +#include + +namespace Ui +{ +class AboutPluginDialog; +} +class QPluginLoader; +class AboutPluginDialog : public QDialog +{ + Q_OBJECT + +public: + explicit AboutPluginDialog(QPluginLoader *loader, QWidget *parent = nullptr); + ~AboutPluginDialog() override; + +private: + Ui::AboutPluginDialog *ui; +}; + +#endif // SMOLBOTE_ABOUTPLUGIN_H diff --git a/src/about/aboutplugin.ui b/src/about/aboutplugin.ui new file mode 100644 index 0000000..5df1c0d --- /dev/null +++ b/src/about/aboutplugin.ui @@ -0,0 +1,196 @@ + + + AboutPluginDialog + + + + 0 + 0 + 500 + 400 + + + + Dialog + + + + + + 0 + + + + General + + + + + + Name + + + + + + + + + + + + + + Author + + + + + + + + + + + + + + Shortcut + + + + + + + + + + + + + + + + + + + + + + + + License + + + + + + + + Details + + + + + + TextLabel + + + + + + + + Key + + + + + Value + + + + + + + + + Controls + + + + + + Load + + + true + + + + + + + + + + + + + + Status + + + + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Close + + + + + + + + + buttonBox + accepted() + AboutPluginDialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + AboutPluginDialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + + diff --git a/src/about/meson.build b/src/about/meson.build new file mode 100644 index 0000000..49274a8 --- /dev/null +++ b/src/about/meson.build @@ -0,0 +1,21 @@ +about_moc = mod_qt5.preprocess( + moc_headers: ['aboutdialog.h', 'aboutplugin.h'], + ui_files: ['aboutdialog.ui', 'aboutplugin.ui'], + dependencies: dep_qt5 +) + +dep_about = declare_dependency( + include_directories: '.', + link_with: static_library('about', + [ 'aboutdialog.cpp', 'aboutplugin.cpp', about_moc, version_h], + dependencies: [dep_qt5]) +) + +poi_sourceset.add(dep_about) + +test('about dialog', executable('about', + sources: 'test/main.cpp', + dependencies: [ dep_qt5, dep_about, dep_catch ]), + args: [ '-platform', 'offscreen' ], + env: 'autoclose=1' +) diff --git a/src/about/test/main.cpp b/src/about/test/main.cpp new file mode 100644 index 0000000..18037e1 --- /dev/null +++ b/src/about/test/main.cpp @@ -0,0 +1,21 @@ +#include +#include +#include "aboutdialog.h" + +int main(int argc, char **argv) +{ + QApplication app(argc, argv); + app.setApplicationName("about"); + app.setApplicationVersion("1.2.3"); + + AboutDialog dlg; + QObject::connect(&dlg, &AboutDialog::finished, &app, &QApplication::quit); + dlg.show(); + + if(qEnvironmentVariableIsSet("autoclose")) { + QTimer::singleShot(200, &dlg, &AboutDialog::accept); + } + + return app.exec(); +} + diff --git a/src/meson.build b/src/meson.build index 31f4ffc..1101b7a 100644 --- a/src/meson.build +++ b/src/meson.build @@ -7,6 +7,8 @@ poi_settings_h = custom_target('default_config_value', command: [ python3, '@INPUT0@', '--kconfig=@INPUT1@', '--dotconfig=@INPUT2@', '--input=@INPUT3@', '--output=@OUTPUT@' ] ) +subdir('about') + poi_sourceset.add(mod_qt5.preprocess( moc_headers: ['browser.h', 'mainwindow/mainwindow.h', 'mainwindow/addressbar.h', 'mainwindow/menubar.h', 'mainwindow/widgets/completer.h', 'mainwindow/widgets/urllineedit.h', 'mainwindow/widgets/dockwidget.h', 'mainwindow/widgets/navigationbar.h', 'mainwindow/widgets/searchform.h', -- cgit v1.2.1