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.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/plugins/ProfileEditor/forms/profilemanagerdialog.cpp b/plugins/ProfileEditor/forms/profilemanagerdialog.cpp
index d05b480..2f0f4a2 100644
--- a/plugins/ProfileEditor/forms/profilemanagerdialog.cpp
+++ b/plugins/ProfileEditor/forms/profilemanagerdialog.cpp
@@ -2,6 +2,7 @@
#include "profileview.h"
#include "ui_profilemanagerdialog.h"
#include <webprofile.h>
+#include <QDir>
ProfileManagerDialog::ProfileManagerDialog(QHash<QString, WebProfile *> *profiles, QWidget *parent)
: QDialog(parent)
@@ -13,6 +14,10 @@ ProfileManagerDialog::ProfileManagerDialog(QHash<QString, WebProfile *> *profile
connect(ui->listWidget, &QListWidget::itemPressed, this, &ProfileManagerDialog::showProfile);
showProfile(nullptr);
+ connect(ui->delete_pushButton, &QPushButton::clicked, this, [=]() {
+ deleteProfile(ui->listWidget->currentItem());
+ });
+
for(auto i = profiles->constBegin(); i != profiles->constEnd(); ++i) {
ui->listWidget->addItem(i.key());
}
@@ -42,3 +47,27 @@ void ProfileManagerDialog::showProfile(QListWidgetItem *item)
ui->groupBox->layout()->addWidget(v);
v->adjustSize();
}
+
+void ProfileManagerDialog::deleteProfile(QListWidgetItem *item)
+{
+ if(item == nullptr)
+ return;
+
+ // clear out groupbox layout
+ QLayoutItem *i;
+ while((i = ui->groupBox->layout()->takeAt(0)) != nullptr) {
+ delete i->widget();
+ delete i;
+ }
+
+ auto *profile = profiles->value(item->text());
+ Q_CHECK_PTR(profile);
+
+ qDebug("deleting profile %s", qUtf8Printable(profile->name()));
+ qDebug("deleting %s: %s", qUtf8Printable(profile->configurationPath()), QFile(profile->configurationPath()).remove() ? "okay" : "failed");
+ qDebug("deleting %s: %s", qUtf8Printable(profile->persistentStoragePath()), QDir(profile->persistentStoragePath()).removeRecursively() ? "okay" : "failed");
+ qDebug("deleting %s: %s", qUtf8Printable(profile->cachePath()), QDir(profile->cachePath()).removeRecursively() ? "okay" : "failed");
+
+ delete item;
+ delete profile;
+}