From c88b4129ffd06b9a230a2621cbcf3610905fc15c Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Fri, 1 Jun 2018 16:25:09 +0200 Subject: Add ProfileManagerDialog --- .../ProfileEditor/forms/profilemanagerdialog.cpp | 45 +++++++++++ plugins/ProfileEditor/forms/profilemanagerdialog.h | 31 ++++++++ .../ProfileEditor/forms/profilemanagerdialog.ui | 89 ++++++++++++++++++++++ 3 files changed, 165 insertions(+) create mode 100644 plugins/ProfileEditor/forms/profilemanagerdialog.cpp create mode 100644 plugins/ProfileEditor/forms/profilemanagerdialog.h create mode 100644 plugins/ProfileEditor/forms/profilemanagerdialog.ui (limited to 'plugins/ProfileEditor/forms') 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 +#include +#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); +} diff --git a/plugins/ProfileEditor/forms/profilemanagerdialog.h b/plugins/ProfileEditor/forms/profilemanagerdialog.h new file mode 100644 index 0000000..ed79824 --- /dev/null +++ b/plugins/ProfileEditor/forms/profilemanagerdialog.h @@ -0,0 +1,31 @@ +#ifndef PROFILEMANAGERDIALOG_H +#define PROFILEMANAGERDIALOG_H + +#include +#include + +namespace Ui { +class ProfileManagerDialog; +} + +class QWebEngineProfile; +class QListWidgetItem; +class ProfileManagerDialog : public QDialog +{ + Q_OBJECT + +public: + explicit ProfileManagerDialog(QWidget *parent = 0); + ~ProfileManagerDialog(); + + void addProfile(const QString &name, QWebEngineProfile *profile); + +private slots: + void showProfile(QListWidgetItem *item); + +private: + Ui::ProfileManagerDialog *ui; + QHash profiles; +}; + +#endif // PROFILEMANAGERDIALOG_H diff --git a/plugins/ProfileEditor/forms/profilemanagerdialog.ui b/plugins/ProfileEditor/forms/profilemanagerdialog.ui new file mode 100644 index 0000000..ae3829a --- /dev/null +++ b/plugins/ProfileEditor/forms/profilemanagerdialog.ui @@ -0,0 +1,89 @@ + + + ProfileManagerDialog + + + + 0 + 0 + 400 + 300 + + + + Profile Manager + + + + + + + + + 0 + 0 + + + + + + + + + 0 + 0 + + + + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Close + + + + + + + + + buttonBox + accepted() + ProfileManagerDialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + ProfileManagerDialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + + -- cgit v1.2.1