--- a/src/prompts.cpp Fri Jun 05 19:13:44 2015 +0300 +++ b/src/prompts.cpp Sat Jun 06 22:03:00 2015 +0300 @@ -16,15 +16,19 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ +#include <QTableWidgetItem> +#include <QFileDialog> #include "prompts.h" #include "ui_unknownversion.h" #include "misc.h" #include "config.h" #include "ui_findfile.h" -#include <QFileDialog> +#include "ui_addversion.h" -// ============================================================================= -// ----------------------------------------------------------------------------- +// +// ------------------------------------------------------------------------------------------------- +// + UnknownVersionPrompt::UnknownVersionPrompt ( QString fileName, QString binaryName, @@ -38,73 +42,159 @@ { ui = new Ui_UnknownVersion; ui->setupUi (this); - + // Replace the placeholders QString text = ui->m_description->text(); text.replace ("<DEMO>", basename (fileName)); text.replace ("<VERSION>", binaryName); ui->m_description->setText (text); - - connect (ui->m_addVersion, SIGNAL (clicked(bool)), this, SLOT (addBinary())); - connect (ui->m_findBinary, SIGNAL (clicked(bool)), this, SLOT (findBinary())); + + connect (ui->m_addVersion, SIGNAL (clicked (bool)), this, SLOT (addBinary())); + connect (ui->m_findBinary, SIGNAL (clicked (bool)), this, SLOT (findBinary())); setWindowTitle (versionSignature()); } -// ============================================================================= -// ----------------------------------------------------------------------------- -UnknownVersionPrompt::~UnknownVersionPrompt() { +// +// ------------------------------------------------------------------------------------------------- +// + +UnknownVersionPrompt::~UnknownVersionPrompt() +{ delete ui; } -// ============================================================================= -// ----------------------------------------------------------------------------- +// +// ------------------------------------------------------------------------------------------------- +// + void UnknownVersionPrompt::addBinary() { - addVersion (ZandronumVersion (m_binaryString, m_isRelease, ui->m_binaryPath->text())); + ZandronumVersion version (m_binaryString, m_isRelease, ui->m_binaryPath->text()); + QList<QVariant> versions = Config::get ("versions").toList(); + QVariant var; + var.setValue (version); + versions.append (var); + Config::set ("versions", versions); accept(); } -// ============================================================================= -// ----------------------------------------------------------------------------- -void UnknownVersionPrompt::findBinary() { - QString path = ConfigWindow::getBinaryPath (this); - +// +// ------------------------------------------------------------------------------------------------- +// + +void UnknownVersionPrompt::findBinary() +{ + QString path = getBinaryPath (this); + if (path.isEmpty()) return; - + ui->m_binaryPath->setText (path); } -// ============================================================================= -// ----------------------------------------------------------------------------- +// +// ------------------------------------------------------------------------------------------------- +// + FindFilePrompt::FindFilePrompt (QWidget* parent, Qt::WindowFlags f) : QDialog (parent, f), m_ui (new Ui_FindFile) { m_ui->setupUi (this); connect (m_ui->m_find, SIGNAL (clicked()), this, SLOT (findDemo())); - + setWindowTitle (versionSignature()); } -// ============================================================================= -// ----------------------------------------------------------------------------- -FindFilePrompt::~FindFilePrompt() { +// +// ------------------------------------------------------------------------------------------------- +// + +FindFilePrompt::~FindFilePrompt() +{ delete m_ui; } -// ============================================================================= -// ----------------------------------------------------------------------------- -void FindFilePrompt::findDemo() { +// +// ------------------------------------------------------------------------------------------------- +// + +void FindFilePrompt::findDemo() +{ QString path = QFileDialog::getOpenFileName (this, tr ("Open Demo File"), - QDir::homePath(), tr ("Demo files (*.cld);;All files (*.*)")); - - if (!path.isEmpty()) + QDir::homePath(), tr ("Demo files (*.cld);;All files (*.*)")); + + if (not path.isEmpty()) m_ui->m_path->setText (path); } -// ============================================================================= -// ----------------------------------------------------------------------------- -QString FindFilePrompt::path() const { +// +// ------------------------------------------------------------------------------------------------- +// + +QString FindFilePrompt::path() const +{ return m_ui->m_path->text(); } + +// +// ------------------------------------------------------------------------------------------------- +// + +AddVersionPrompt::AddVersionPrompt (VersionGuiEntry* entry, QWidget* parent, Qt::WindowFlags f) + : QDialog (parent, f), + ui (*new Ui_AddVersion), + m_entry (entry) +{ + ui.setupUi (this); + connect (ui.buttonBox, SIGNAL (accepted()), this, SLOT (acceptPressed())); + connect (ui.buttonBox, SIGNAL (rejected()), this, SLOT (reject())); + connect (ui.findExeButton, SIGNAL (clicked()), this, SLOT (findExePath())); + + ui.nameField->setText (entry->name); + ui.exePathField->setText (entry->pathItem->text()); + ui.releaseCheckbox->setChecked (entry->isRelease); +} + +// +// ------------------------------------------------------------------------------------------------- +// + +void AddVersionPrompt::acceptPressed() +{ + m_entry->name = ui.nameField->text(); + m_entry->isRelease = ui.releaseCheckbox->isChecked(); + m_entry->labelItem->setText (m_entry->name); + m_entry->pathItem->setText (ui.exePathField->text()); + accept(); +} + +// +// ------------------------------------------------------------------------------------------------- +// + +AddVersionPrompt::~AddVersionPrompt() +{ + delete &ui; +} + +// +// ------------------------------------------------------------------------------------------------- +// + +void AddVersionPrompt::findExePath() +{ + QString path = getBinaryPath (this); + + if (not path.isEmpty()) + ui.exePathField->setText (path); +} + +// +// ------------------------------------------------------------------------------------------------- +// + +VersionGuiEntry* AddVersionPrompt::getVersionInfo() +{ + return m_entry; +} \ No newline at end of file