/* Copyright (C) 2012 Sebastian Herbord. All rights reserved. This file is part of Mod Organizer. Mod Organizer 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. Mod Organizer 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 Mod Organizer. If not, see . */ #include "selectiondialog.h" #include "ui_selectiondialog.h" #include SelectionDialog::SelectionDialog(const QString &description, QWidget *parent) : QDialog(parent), ui(new Ui::SelectionDialog), m_Choice(NULL), m_ValidateByData(false) { ui->setupUi(this); ui->descriptionLabel->setText(description); } SelectionDialog::~SelectionDialog() { delete ui; } void SelectionDialog::addChoice(const QString &buttonText, const QString &description, const QVariant &data) { QCommandLinkButton *button = new QCommandLinkButton(buttonText, description, ui->buttonBox); button->setProperty("data", data); ui->buttonBox->addButton(button, QDialogButtonBox::AcceptRole); if (data.isValid()) m_ValidateByData = true; } QVariant SelectionDialog::getChoiceData() { return m_Choice->property("data"); } QString SelectionDialog::getChoiceString() { if ((m_Choice == NULL) || (m_ValidateByData && !m_Choice->property("data").isValid())) { return QString(); } else { return m_Choice->text(); } } void SelectionDialog::on_buttonBox_clicked(QAbstractButton *button) { m_Choice = button; if (!m_ValidateByData || m_Choice->property("data").isValid()) { this->accept(); } else { this->reject(); } } void SelectionDialog::on_cancelButton_clicked() { this->reject(); }