/* * 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 "profileeditorplugin.h" #include "forms/profilemanagerdialog.h" #include "forms/newprofiledialog.h" QHash> ProfileEditorPlugin::commands() { QHash> hash; hash.insert("edit-profiles-ui", [this]() -> int { auto *dialog = createWidget(nullptr); return dialog->exec(); }); return hash; } QDialog *ProfileEditorPlugin::createWidget(QWidget *parent) const { auto *app = browser(); Q_CHECK_PTR(app); auto *widget = new ProfileManagerDialog(parent); widget->setAttribute(Qt::WA_DeleteOnClose, true); for(const auto &pair : app->profileList()) { widget->addProfile(pair.first, pair.second); } connect(widget->ui->new_pushButton, &QPushButton::clicked, widget, [=]() { auto *newProfileDlg = new NewProfileDialog(widget); if(newProfileDlg->exec() == QDialog::Accepted) { const auto pair = app->loadProfile(newProfileDlg->getId(), newProfileDlg->getOtr()); widget->addProfile(pair.first, pair.second); } delete newProfileDlg; }); connect(widget->ui->delete_pushButton, &QPushButton::clicked, widget, [=]() { auto *item = widget->ui->listWidget->currentItem(); if(item != nullptr) { // there is a selected widget const QString id = item->text(); widget->showProfile(nullptr); app->removeProfile(id); } }); return widget; }