From 36dce3fd26194cdf6dbf1ba52cc27cfa1daae389 Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Mon, 27 Aug 2018 16:42:51 +0200 Subject: PluginEditor: implement add plugin action --- .../ProfileEditor/forms/profilemanagerdialog.cpp | 26 +++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) (limited to 'plugins/ProfileEditor/forms/profilemanagerdialog.cpp') diff --git a/plugins/ProfileEditor/forms/profilemanagerdialog.cpp b/plugins/ProfileEditor/forms/profilemanagerdialog.cpp index 427330a..dac4a61 100644 --- a/plugins/ProfileEditor/forms/profilemanagerdialog.cpp +++ b/plugins/ProfileEditor/forms/profilemanagerdialog.cpp @@ -4,6 +4,7 @@ #include #include #include +#include "newprofiledialog.h" ProfileManagerDialog::ProfileManagerDialog(const QVector &profiles, QWidget *parent) : QDialog(parent) @@ -14,16 +15,20 @@ ProfileManagerDialog::ProfileManagerDialog(const QVector &profiles connect(ui->listWidget, &QListWidget::itemPressed, this, &ProfileManagerDialog::showProfile); showProfile(nullptr); + connect(ui->new_pushButton, &QPushButton::clicked, this, [=]() { + auto *profileDlg = new NewProfileDialog(this); + if(profileDlg->exec() == QDialog::Accepted) { + emit createProfile(profileDlg->getId()); + } + delete profileDlg; + }); + connect(ui->delete_pushButton, &QPushButton::clicked, this, [=]() { deleteProfile(ui->listWidget->currentItem()); }); for(auto *profile : profiles) { - auto *item = new QListWidgetItem(ui->listWidget); - item->setText(profile->name()); - - auto pointer = QPointer(profile); - item->setData(Qt::UserRole, QVariant::fromValue(pointer)); + addProfile(profile); } } @@ -32,6 +37,17 @@ ProfileManagerDialog::~ProfileManagerDialog() delete ui; } +void ProfileManagerDialog::addProfile(WebProfile *profile) +{ + Q_CHECK_PTR(profile); + + auto *item = new QListWidgetItem(ui->listWidget); + item->setText(profile->name()); + + auto pointer = QPointer(profile); + item->setData(Qt::UserRole, QVariant::fromValue(pointer)); +} + void ProfileManagerDialog::showProfile(QListWidgetItem *item) { // clear out groupbox layout -- cgit v1.2.1