aboutsummaryrefslogtreecommitdiff
path: root/lib/about/aboutplugin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/about/aboutplugin.cpp')
-rw-r--r--lib/about/aboutplugin.cpp28
1 files changed, 26 insertions, 2 deletions
diff --git a/lib/about/aboutplugin.cpp b/lib/about/aboutplugin.cpp
index 7df75fa..b2fab51 100644
--- a/lib/about/aboutplugin.cpp
+++ b/lib/about/aboutplugin.cpp
@@ -54,19 +54,43 @@ QTreeWidgetItem *createItem(const QString &key, const QJsonValue &json, QTreeWid
return item;
}
-AboutPluginDialog::AboutPluginDialog(const QPluginLoader *loader, QWidget *parent)
+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->loaded->setChecked(loader->isLoaded());
+ 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[QLatin1Literal("name")].toString());
ui->author->setText(metaData[QLatin1Literal("author")].toString());