diff options
author | Aqua-sama <aqua@iserlohn-fortress.net> | 2018-06-16 13:55:35 +0200 |
---|---|---|
committer | Aqua-sama <aqua@iserlohn-fortress.net> | 2018-06-16 13:55:35 +0200 |
commit | b27e55b0bbba9a1678159abe44280e173374f971 (patch) | |
tree | a7a5bb75ad9b4dc3fc31b39b5ab2fe860b55a27e /plugins/ProfileEditor/forms/profilemanagerdialog.cpp | |
parent | Add extra-cmake-modules to make depends (diff) | |
download | smolbote-b27e55b0bbba9a1678159abe44280e173374f971.tar.xz |
Sort .profile by time
Remove ProfileInterface::setProfiles
ProfileView: Add General tab
ProfileView: some cleanup
ProfileView: Add Cookies tab
Diffstat (limited to 'plugins/ProfileEditor/forms/profilemanagerdialog.cpp')
-rw-r--r-- | plugins/ProfileEditor/forms/profilemanagerdialog.cpp | 21 |
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(); } |