summaryrefslogtreecommitdiffstats
path: root/gui
diff options
context:
space:
mode:
Diffstat (limited to 'gui')
-rw-r--r--gui/lwjglselectdialog.cpp68
-rw-r--r--gui/lwjglselectdialog.h46
-rw-r--r--gui/lwjglselectdialog.ui85
-rw-r--r--gui/mainwindow.cpp21
-rw-r--r--gui/mainwindow.h2
5 files changed, 222 insertions, 0 deletions
diff --git a/gui/lwjglselectdialog.cpp b/gui/lwjglselectdialog.cpp
new file mode 100644
index 00000000..ded299cf
--- /dev/null
+++ b/gui/lwjglselectdialog.cpp
@@ -0,0 +1,68 @@
+/* Copyright 2013 MultiMC Contributors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "lwjglselectdialog.h"
+#include "ui_lwjglselectdialog.h"
+
+#include "lwjglversionlist.h"
+
+LWJGLSelectDialog::LWJGLSelectDialog(QWidget *parent) :
+ QDialog(parent),
+ ui(new Ui::LWJGLSelectDialog)
+{
+ ui->setupUi(this);
+ ui->labelStatus->setVisible(false);
+ ui->lwjglListView->setModel(&LWJGLVersionList::get());
+
+ connect(&LWJGLVersionList::get(), SIGNAL(loadingStateUpdated(bool)), SLOT(loadingStateUpdated(bool)));
+ connect(&LWJGLVersionList::get(), SIGNAL(loadListFailed(QString)), SLOT(loadingFailed(QString)));
+ loadingStateUpdated(LWJGLVersionList::get().isLoading());
+}
+
+LWJGLSelectDialog::~LWJGLSelectDialog()
+{
+ delete ui;
+}
+
+QString LWJGLSelectDialog::selectedVersion() const
+{
+ return LWJGLVersionList::get().data(
+ ui->lwjglListView->selectionModel()->currentIndex(),
+ Qt::DisplayRole).toString();
+}
+
+void LWJGLSelectDialog::on_refreshButton_clicked()
+{
+ if (!LWJGLVersionList::get().isLoading())
+ LWJGLVersionList::get().loadList();
+}
+
+void LWJGLSelectDialog::loadingStateUpdated(bool loading)
+{
+ setEnabled(!loading);
+ if (loading)
+ {
+ ui->labelStatus->setText("Loading LWJGL version list...");
+ ui->labelStatus->setStyleSheet("QLabel { color: black; }");
+ }
+ ui->labelStatus->setVisible(loading);
+}
+
+void LWJGLSelectDialog::loadingFailed(QString error)
+{
+ ui->labelStatus->setText(error);
+ ui->labelStatus->setStyleSheet("QLabel { color: red; }");
+ ui->labelStatus->setVisible(true);
+}
diff --git a/gui/lwjglselectdialog.h b/gui/lwjglselectdialog.h
new file mode 100644
index 00000000..1772904a
--- /dev/null
+++ b/gui/lwjglselectdialog.h
@@ -0,0 +1,46 @@
+/* Copyright 2013 MultiMC Contributors
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef LWJGLSELECTDIALOG_H
+#define LWJGLSELECTDIALOG_H
+
+#include <QDialog>
+
+namespace Ui
+{
+class LWJGLSelectDialog;
+}
+
+class LWJGLSelectDialog : public QDialog
+{
+ Q_OBJECT
+
+public:
+ explicit LWJGLSelectDialog(QWidget *parent = 0);
+ ~LWJGLSelectDialog();
+
+ QString selectedVersion() const;
+
+private slots:
+ void on_refreshButton_clicked();
+
+ void loadingStateUpdated(bool loading);
+ void loadingFailed(QString error);
+
+private:
+ Ui::LWJGLSelectDialog *ui;
+};
+
+#endif // LWJGLSELECTDIALOG_H
diff --git a/gui/lwjglselectdialog.ui b/gui/lwjglselectdialog.ui
new file mode 100644
index 00000000..c715cc07
--- /dev/null
+++ b/gui/lwjglselectdialog.ui
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>LWJGLSelectDialog</class>
+ <widget class="QDialog" name="LWJGLSelectDialog">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>400</width>
+ <height>300</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Dialog</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QLabel" name="labelStatus">
+ <property name="text">
+ <string>Status label...</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QListView" name="lwjglListView"/>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QPushButton" name="refreshButton">
+ <property name="text">
+ <string>&amp;Refresh</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QDialogButtonBox" name="buttonBox">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>LWJGLSelectDialog</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>248</x>
+ <y>254</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>157</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>rejected()</signal>
+ <receiver>LWJGLSelectDialog</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>316</x>
+ <y>260</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>286</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/gui/mainwindow.cpp b/gui/mainwindow.cpp
index 47753b37..e60155c6 100644
--- a/gui/mainwindow.cpp
+++ b/gui/mainwindow.cpp
@@ -40,6 +40,7 @@
#include "gui/browserdialog.h"
#include "gui/aboutdialog.h"
#include "gui/versionselectdialog.h"
+#include "gui/lwjglselectdialog.h"
#include "gui/consolewindow.h"
#include "kcategorizedview.h"
@@ -59,6 +60,7 @@
#include "instancedelegate.h"
#include "minecraftversionlist.h"
+#include "lwjglversionlist.h"
// Opens the given file in the default application.
// TODO: Move this somewhere.
@@ -140,6 +142,11 @@ MainWindow::MainWindow ( QWidget *parent ) :
m_versionLoadTask = MinecraftVersionList::getMainList().getLoadTask();
startTask(m_versionLoadTask);
}
+
+ if (!LWJGLVersionList::get().isLoaded())
+ {
+ LWJGLVersionList::get().loadList();
+ }
}
MainWindow::~MainWindow()
@@ -460,3 +467,17 @@ void MainWindow::on_actionChangeInstMCVersion_triggered()
inst->setIntendedVersion(vselect->selectedVersion()->descriptor());
}
}
+
+void MainWindow::on_actionChangeInstLWJGLVersion_triggered()
+{
+ Instance *inst = selectedInstance();
+
+ if (!inst)
+ return;
+
+ LWJGLSelectDialog *lselect = new LWJGLSelectDialog(this);
+ if (lselect->exec())
+ {
+
+ }
+}
diff --git a/gui/mainwindow.h b/gui/mainwindow.h
index 192cdbc4..a9a4d395 100644
--- a/gui/mainwindow.h
+++ b/gui/mainwindow.h
@@ -99,6 +99,8 @@ private slots:
void taskStart(Task *task);
void taskEnd(Task *task);
+ void on_actionChangeInstLWJGLVersion_triggered();
+
public slots:
void instanceActivated ( QModelIndex );