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.cpp21
1 files changed, 13 insertions, 8 deletions
diff --git a/plugins/ProfileEditor/forms/profilemanagerdialog.cpp b/plugins/ProfileEditor/forms/profilemanagerdialog.cpp
index 2f0f4a2..427330a 100644
--- a/plugins/ProfileEditor/forms/profilemanagerdialog.cpp
+++ b/plugins/ProfileEditor/forms/profilemanagerdialog.cpp
@@ -3,11 +3,11 @@
#include "ui_profilemanagerdialog.h"
#include <webprofile.h>
#include <QDir>
+#include <QPointer>
-ProfileManagerDialog::ProfileManagerDialog(QHash<QString, WebProfile *> *profiles, QWidget *parent)
+ProfileManagerDialog::ProfileManagerDialog(const QVector<WebProfile *> &profiles, QWidget *parent)
: QDialog(parent)
, ui(new Ui::ProfileManagerDialog)
- , profiles(profiles)
{
ui->setupUi(this);
@@ -18,8 +18,12 @@ ProfileManagerDialog::ProfileManagerDialog(QHash<QString, WebProfile *> *profile
deleteProfile(ui->listWidget->currentItem());
});
- for(auto i = profiles->constBegin(); i != profiles->constEnd(); ++i) {
- ui->listWidget->addItem(i.key());
+ for(auto *profile : profiles) {
+ auto *item = new QListWidgetItem(ui->listWidget);
+ item->setText(profile->name());
+
+ auto pointer = QPointer<WebProfile>(profile);
+ item->setData(Qt::UserRole, QVariant::fromValue(pointer));
}
}
@@ -43,7 +47,8 @@ void ProfileManagerDialog::showProfile(QListWidgetItem *item)
}
ui->groupBox->setVisible(true);
- auto *v = new ProfileView(profiles->value(item->text()), this);
+ auto profile = item->data(Qt::UserRole).value<QPointer<WebProfile>>();
+ auto *v = new ProfileView(profile.data(), this);
ui->groupBox->layout()->addWidget(v);
v->adjustSize();
}
@@ -60,8 +65,8 @@ void ProfileManagerDialog::deleteProfile(QListWidgetItem *item)
delete i;
}
- auto *profile = profiles->value(item->text());
- Q_CHECK_PTR(profile);
+ auto profile = item->data(Qt::UserRole).value<QPointer<WebProfile>>();
+ Q_ASSERT(!profile.isNull());
qDebug("deleting profile %s", qUtf8Printable(profile->name()));
qDebug("deleting %s: %s", qUtf8Printable(profile->configurationPath()), QFile(profile->configurationPath()).remove() ? "okay" : "failed");
@@ -69,5 +74,5 @@ void ProfileManagerDialog::deleteProfile(QListWidgetItem *item)
qDebug("deleting %s: %s", qUtf8Printable(profile->cachePath()), QDir(profile->cachePath()).removeRecursively() ? "okay" : "failed");
delete item;
- delete profile;
+ delete profile.data();
}