src/prompts.cpp

changeset 39
2c368cf5cc19
parent 37
c82a86ea87be
child 42
9528f8d06962
--- 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

mercurial