aboutsummaryrefslogtreecommitdiff
path: root/plugins/ProfileEditor/forms/profilemanagerdialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/ProfileEditor/forms/profilemanagerdialog.cpp')
-rw-r--r--plugins/ProfileEditor/forms/profilemanagerdialog.cpp30
1 files changed, 20 insertions, 10 deletions
diff --git a/plugins/ProfileEditor/forms/profilemanagerdialog.cpp b/plugins/ProfileEditor/forms/profilemanagerdialog.cpp
index f5a17b1..6cbc806 100644
--- a/plugins/ProfileEditor/forms/profilemanagerdialog.cpp
+++ b/plugins/ProfileEditor/forms/profilemanagerdialog.cpp
@@ -10,15 +10,14 @@
#include "profileview.h"
#include <QDir>
#include <QPointer>
+#include "ui_profilemanagerdialog.h"
ProfileManagerDialog::ProfileManagerDialog(QWidget *parent)
- : QDialog(parent)
+ : ProfileDialog(parent)
, ui(new Ui::ProfileManagerDialog)
{
ui->setupUi(this);
-
- connect(ui->listWidget, &QListWidget::itemPressed, this, &ProfileManagerDialog::showProfile);
- showProfile(nullptr);
+ connect(ui->listWidget, &QListWidget::itemPressed, this, &ProfileManagerDialog::showItem);
}
ProfileManagerDialog::~ProfileManagerDialog()
@@ -26,17 +25,26 @@ ProfileManagerDialog::~ProfileManagerDialog()
delete ui;
}
-void ProfileManagerDialog::addProfile(const QString &id, Profile *profile)
+int ProfileManagerDialog::addProfile(const QString &id, const QString name, QWebEngineProfile *profile, QSettings *settings)
{
Q_CHECK_PTR(profile);
auto *item = new QListWidgetItem(id, ui->listWidget);
- auto pointer = QPointer<Profile>(profile);
- item->setData(Qt::UserRole, QVariant::fromValue(pointer));
+ item->setData(Qt::UserRole, name);
+ item->setData(Qt::UserRole+1, QVariant::fromValue(QPointer<QWebEngineProfile>(profile)));
+ item->setData(Qt::UserRole+2, QVariant::fromValue(QPointer<QSettings>(settings)));
+
+ return ui->listWidget->count() - 1;
+}
+
+void ProfileManagerDialog::showProfile(int index)
+{
+ auto *item = ui->listWidget->item(index);
+ showItem(item);
}
-void ProfileManagerDialog::showProfile(QListWidgetItem *item)
+void ProfileManagerDialog::showItem(QListWidgetItem *item)
{
// clear out groupbox layout
QLayoutItem *i;
@@ -51,8 +59,10 @@ void ProfileManagerDialog::showProfile(QListWidgetItem *item)
}
ui->groupBox->setVisible(true);
- auto profile = item->data(Qt::UserRole).value<QPointer<Profile>>();
- auto *v = new ProfileView(profile.data(), this);
+ const auto name = item->data(Qt::UserRole).value<QString>();
+ auto profile = item->data(Qt::UserRole+1).value<QPointer<QWebEngineProfile>>();
+ auto settings = item->data(Qt::UserRole+2).value<QPointer<QSettings>>();
+ auto *v = new ProfileView(name, profile.data(), settings.data(), this);
ui->groupBox->layout()->addWidget(v);
v->adjustSize();
}