#include "profilemanagerdialog.h" #include "profileview.h" #include "ui_profilemanagerdialog.h" #include ProfileManagerDialog::ProfileManagerDialog(QHash &profiles, QWidget *parent) : QDialog(parent) , ui(new Ui::ProfileManagerDialog) , profiles(profiles) { ui->setupUi(this); connect(ui->listWidget, &QListWidget::itemPressed, this, &ProfileManagerDialog::showProfile); showProfile(nullptr); for(auto i = profiles.constBegin(); i != profiles.constEnd(); ++i) { ui->listWidget->addItem(i.key()); } } ProfileManagerDialog::~ProfileManagerDialog() { delete ui; } 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); }