diff -r b8fa9171be6e -r c82a86ea87be src/versionEditor.cpp
--- a/src/versionEditor.cpp Mon Jun 01 17:06:13 2015 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,238 +0,0 @@
-/*
- * ZCinema: Zandronum demo launcher
- * Copyright (C) 2013 Santeri Piippo
- *
- * 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 "versionEditor.h"
-#include "ui_versionEditor.h"
-#include "ui_addversion.h"
-#include "config.h"
-#include "misc.h"
-
-EXTERN_CONFIG (Map, binaryPaths)
-EXTERN_CONFIG (List, devBuildNames)
-EXTERN_CONFIG (List, releaseNames)
-
-// =============================================================================
-// -----------------------------------------------------------------------------
-VersionEditor::VersionEditor (QWidget* parent, Qt::WindowFlags f) :
- QDialog (parent, f),
- m_ui (new Ui_VersionEditor)
-{
- m_ui->setupUi (this);
-
- connect (m_ui->m_versions, SIGNAL (currentCellChanged (int, int, int, int)),
- this, SLOT (selectionChanged (int)));
-
- connect (m_ui->m_add, SIGNAL (clicked (bool)), this, SLOT (add()));
- connect (m_ui->m_edit, SIGNAL (clicked (bool)), this, SLOT (edit()));
- connect (m_ui->m_remove, SIGNAL (clicked (bool)), this, SLOT (remove()));
- connect (m_ui->m_clear, SIGNAL (clicked (bool)), this, SLOT (clear()));
-
- initVersions();
-}
-
-// =============================================================================
-// -----------------------------------------------------------------------------
-VersionEditor::~VersionEditor() {
- delete m_ui;
-}
-
-// =============================================================================
-// -----------------------------------------------------------------------------
-void VersionEditor::initVersions() {
- int i = 0;
-
- for (const QVariant& ver : (cfg::releaseNames + cfg::devBuildNames)) {
- bool isRelease = (i < cfg::releaseNames.size());
- addVersion (ver.toString(), cfg::binaryPaths[ver.toString()].toString(), isRelease);
-
- ++i;
- }
-}
-
-// =============================================================================
-// -----------------------------------------------------------------------------
-void VersionEditor::add() {
- AddVersionPrompt* dlg = new AddVersionPrompt (this);
- if (!dlg->exec())
- return;
-
- addVersion (dlg->name(), dlg->path(), dlg->release());
-}
-
-// =============================================================================
-// -----------------------------------------------------------------------------
-void VersionEditor::edit() {
- QTableWidget* const vers = m_ui->m_versions;
- int row = vers->currentRow();
-
- if (row < 0)
- return;
-
- AddVersionPrompt* dlg = new AddVersionPrompt (this);
- dlg->setName (vers->item (row, NameColumn)->text());
- dlg->setPath (vers->item (row, PathColumn)->text());
- dlg->setRelease (getReleaseCheckbox(row)->isChecked());
-
- if (!dlg->exec())
- return;
-
- addVersion (dlg->name(), dlg->path(), dlg->release());
-}
-
-// =============================================================================
-// -----------------------------------------------------------------------------
-void VersionEditor::remove() {
- QTableWidget* const vers = m_ui->m_versions;
-
- str name = vers->item (vers->currentRow(), NameColumn)->text();
- vers->removeRow (vers->currentRow());
-}
-
-// =============================================================================
-// -----------------------------------------------------------------------------
-void VersionEditor::clear() {
- if (!confirm (tr ("Really remove all versions?")))
- return;
-
- for (int i = m_ui->m_versions->rowCount() - 1; i >= 0; --i)
- m_ui->m_versions->removeRow (i);
-}
-
-// =============================================================================
-// -----------------------------------------------------------------------------
-void VersionEditor::addVersion (str name, str path, bool isRelease) {
- QTableWidget* const vers = m_ui->m_versions;
-
- int row = vers->rowCount();
- vers->insertRow (row);
- vers->setItem (row, NameColumn, new QTableWidgetItem);
- vers->setItem (row, PathColumn, new QTableWidgetItem);
- vers->item (row, NameColumn)->setText (name);
- vers->item (row, PathColumn)->setText (path);
-
- QCheckBox* cb = new QCheckBox;
- cb->setChecked (isRelease);
- vers->setCellWidget (row, ReleaseColumn, cb);
-}
-
-// =============================================================================
-// -----------------------------------------------------------------------------
-void VersionEditor::saveChanges() {
- QTableWidget* const vers = m_ui->m_versions;
-
- cfg::devBuildNames.clear();
- cfg::releaseNames.clear();
- cfg::binaryPaths.clear();
-
- for (int i = 0; i < vers->rowCount(); ++i) {
- const QCheckBox* cb = getReleaseCheckbox (i);
- bool isRelease = cb->isChecked();
- const str name = vers->item (i, NameColumn)->text(),
- path = vers->item (i, PathColumn)->text();
-
- if (isRelease)
- cfg::releaseNames << QVariant (name);
- else
- cfg::devBuildNames << QVariant (name);
-
- cfg::binaryPaths[name] = path;
- }
-}
-
-// =============================================================================
-// -----------------------------------------------------------------------------
-void VersionEditor::selectionChanged (int row) {
- bool ok = (row != -1);
- m_ui->m_edit->setEnabled (ok);
- m_ui->m_remove->setEnabled (ok);
-}
-
-// =============================================================================
-// -----------------------------------------------------------------------------
-QCheckBox* VersionEditor::getReleaseCheckbox (int i) {
- return static_cast (m_ui->m_versions->cellWidget (i, ReleaseColumn));
-}
-
-// =============================================================================
-// -----------------------------------------------------------------------------
-AddVersionPrompt::AddVersionPrompt (QWidget* parent, Qt::WindowFlags f) :
- QDialog (parent, f),
- m_ui (new Ui_AddVersion)
-{
- m_ui->setupUi (this);
- connect (m_ui->m_binaryName, SIGNAL (textChanged (QString)), this, SLOT (fieldsChanged()));
- connect (m_ui->m_binaryPath, SIGNAL (textChanged (QString)), this, SLOT (fieldsChanged()));
- connect (m_ui->m_findBinary, SIGNAL (clicked (bool)), this, SLOT (findPath()));
-}
-
-// =============================================================================
-// -----------------------------------------------------------------------------
-AddVersionPrompt::~AddVersionPrompt() {
- delete m_ui;
-}
-
-// =============================================================================
-// -----------------------------------------------------------------------------
-void AddVersionPrompt::findPath() {
- str path = ConfigBox::getBinaryPath (this);
- if (!path.isEmpty())
- m_ui->m_binaryPath->setText (path);
-}
-
-// =============================================================================
-// -----------------------------------------------------------------------------
-str AddVersionPrompt::name() {
- return m_ui->m_binaryName->text();
-}
-
-// =============================================================================
-// -----------------------------------------------------------------------------
-str AddVersionPrompt::path() {
- return m_ui->m_binaryPath->text();
-}
-
-// =============================================================================
-// -----------------------------------------------------------------------------
-bool AddVersionPrompt::release() {
- return m_ui->m_release->isChecked();
-}
-
-// =============================================================================
-// -----------------------------------------------------------------------------
-void AddVersionPrompt::setName (const str& a) {
- m_ui->m_binaryName->setText (a);
-}
-
-// =============================================================================
-// -----------------------------------------------------------------------------
-void AddVersionPrompt::setPath (const str& a) {
- m_ui->m_binaryPath->setText (a);
-}
-
-// =============================================================================
-// -----------------------------------------------------------------------------
-void AddVersionPrompt::setRelease (bool a) {
- m_ui->m_release->setChecked (a);
-}
-
-// =============================================================================
-// -----------------------------------------------------------------------------
-void AddVersionPrompt::fieldsChanged() {
- bool ok = (!m_ui->m_binaryName->text().isEmpty()) && (!m_ui->m_binaryPath->text().isEmpty());
- m_ui->buttonBox->button (QDialogButtonBox::Ok)->setEnabled (ok);
-}