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/aboutplugin.cpp | 111 ---------------------------------------------- 1 file changed, 111 deletions(-) delete mode 100644 lib/about/aboutplugin.cpp (limited to 'lib/about/aboutplugin.cpp') 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; -} -- cgit v1.2.1