/******************************************************************************* ** ** smolbote: yet another qute browser ** Copyright (C) 2017 Xian Nox ** ** This program is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation, either version 3 of the License, or ** (at your option) any later version. ** ** This program is distributed in the hope that it will be useful, ** but WITHOUT ANY WARRANTY; without even the implied warranty of ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ** GNU General Public License for more details. ** ** You should have received a copy of the GNU General Public License ** along with this program. If not, see . ** ******************************************************************************/ #include "profilesdialog.h" #include "ui_profilesdialog.h" #include "browser.h" #include #include ProfilesDialog::ProfilesDialog(MainWindow *window, QWidget *parent) : QDialog(parent), ui(new Ui::ProfilesDialog) { m_window = window; m_view = new ProfileView(0, this); // Hide the profile view because we're fancy // Give focus to the widget because otherwise the listwidget gains focus // this causes it to select the first item in it, which in turn triggers the signal // and so the profile view gets shown even though the user hasn't selected anything // and so we get to be less fancy, defeating the point of the exercise // [on linux; other OS's not checked] m_view->hide(); this->setFocus(); ui->setupUi(this); ui->horizontalLayout->addWidget(m_view); connect(ui->listWidget, SIGNAL(currentRowChanged(int)), this, SLOT(viewProfile(int))); connect(this, SIGNAL(accepted()), this, SLOT(loadSelectedProfile())); } ProfilesDialog::~ProfilesDialog() { delete ui; } int ProfilesDialog::exec() { qDebug("Showing..."); for(QString name : qApp->profiles()) { QListWidgetItem *item = new QListWidgetItem(qApp->profile(name)->name(), ui->listWidget); item->setData(Qt::UserRole, name); } return QDialog::exec(); } void ProfilesDialog::loadSelectedProfile() { m_window->setProfile(qApp->profile(ui->listWidget->currentItem()->data(Qt::UserRole).toString())); } void ProfilesDialog::viewProfile(int index) { m_view->setProfile(qApp->profile(ui->listWidget->item(index)->data(Qt::UserRole).toString())); m_view->show(); }