/* * This file is part of smolbote. It's copyrighted by the contributors recorded * in the version control history of the file, available from its original * location: https://neueland.iserlohn-fortress.net/gitea/aqua/smolbote * * SPDX-License-Identifier: GPL-3.0 */ #include "profilemanagerdialog.h" #include "profileview.h" #include #include 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 &id, Profile *profile) { Q_CHECK_PTR(profile); auto *item = new QListWidgetItem(id, ui->listWidget); auto pointer = QPointer(profile); item->setData(Qt::UserRole, QVariant::fromValue(pointer)); } 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 profile = item->data(Qt::UserRole).value>(); auto *v = new ProfileView(profile.data(), this); ui->groupBox->layout()->addWidget(v); v->adjustSize(); }