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.cpp45
1 files changed, 45 insertions, 0 deletions
diff --git a/plugins/ProfileEditor/forms/profilemanagerdialog.cpp b/plugins/ProfileEditor/forms/profilemanagerdialog.cpp
new file mode 100644
index 0000000..c5fec2b
--- /dev/null
+++ b/plugins/ProfileEditor/forms/profilemanagerdialog.cpp
@@ -0,0 +1,45 @@
+#include "profilemanagerdialog.h"
+#include "ui_profilemanagerdialog.h"
+#include <QWebEngineProfile>
+#include <QLabel>
+#include "profileview.h"
+
+ProfileManagerDialog::ProfileManagerDialog(QWidget *parent) :
+ QDialog(parent),
+ ui(new Ui::ProfileManagerDialog)
+{
+ ui->setupUi(this);
+
+ connect(ui->listWidget, &QListWidget::itemPressed, this, &ProfileManagerDialog::showProfile);
+ showProfile(nullptr);
+}
+
+ProfileManagerDialog::~ProfileManagerDialog()
+{
+ delete ui;
+}
+
+void ProfileManagerDialog::addProfile(const QString &name, QWebEngineProfile *profile)
+{
+ profiles.insert(name, profile);
+ ui->listWidget->addItem(name);
+}
+
+void ProfileManagerDialog::showProfile(QListWidgetItem *item)
+{
+ // clear out groupbox layout
+ QLayoutItem *i;
+ while((i = ui->groupBox->layout()->takeAt(0)) != nullptr) {
+ delete i->widget();
+ delete i;
+ }
+
+ if(item == nullptr) {
+ ui->groupBox->setVisible(false);
+ return;
+ }
+ ui->groupBox->setVisible(true);
+
+ auto *v = new ProfileView(profiles.value(item->text()), this);
+ ui->groupBox->layout()->addWidget(v);
+}