launcher/prompts.cpp

changeset 46
07578e081ae8
parent 45
f5b526a3423a
child 52
7dcfac8a9f17
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/launcher/prompts.cpp	Sat Jun 06 23:12:59 2015 +0300
@@ -0,0 +1,137 @@
+/*
+ *  ZCinema: Zandronum demo launcher
+ *  Copyright (C) 2013-2015 Teemu 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 <http://www.gnu.org/licenses/>.
+ */
+
+#include <QFileDialog>
+#include <commonlib/misc.h>
+#include <commonlib/version.h>
+#include <commonlib/config.h>
+#include "prompts.h"
+#include "ui_unknownversion.h"
+#include "ui_findfile.h"
+
+//
+// -------------------------------------------------------------------------------------------------
+//
+
+UnknownVersionPrompt::UnknownVersionPrompt (
+	QString fileName,
+	QString binaryName,
+	bool isRelease,
+	QWidget* parent,
+	Qt::WindowFlags f
+) :
+	QDialog (parent, f),
+	m_binaryString (binaryName),
+	m_isRelease (isRelease)
+{
+	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()));
+	setWindowTitle (versionSignature());
+}
+
+//
+// -------------------------------------------------------------------------------------------------
+//
+
+UnknownVersionPrompt::~UnknownVersionPrompt()
+{
+	delete ui;
+}
+
+//
+// -------------------------------------------------------------------------------------------------
+//
+
+void UnknownVersionPrompt::addBinary()
+{
+	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 = 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()
+{
+	delete m_ui;
+}
+
+//
+// -------------------------------------------------------------------------------------------------
+//
+
+void FindFilePrompt::findDemo()
+{
+	QString path = QFileDialog::getOpenFileName (this, tr ("Open Demo File"),
+				   QDir::homePath(), tr ("Demo files (*.cld);;All files (*.*)"));
+
+	if (not path.isEmpty())
+		m_ui->m_path->setText (path);
+}
+
+//
+// -------------------------------------------------------------------------------------------------
+//
+
+QString FindFilePrompt::path() const
+{
+	return m_ui->m_path->text();
+}
\ No newline at end of file

mercurial