summaryrefslogtreecommitdiffstats
path: root/application/pages/instance/ServersPage.h
diff options
context:
space:
mode:
authorPetr Mrázek <peterix@gmail.com>2018-04-12 01:44:51 +0200
committerPetr Mrázek <peterix@gmail.com>2018-04-23 02:05:22 +0200
commit72ff342d6325cab42cc3d8401b4fac5b2f7eff3b (patch)
treec779eaaf41a16be4c9990bec21e661ec6b53bafe /application/pages/instance/ServersPage.h
parent6284f070c19053ae2bcf26dd9bccac2e0d35477f (diff)
downloadMultiMC-72ff342d6325cab42cc3d8401b4fac5b2f7eff3b.tar
MultiMC-72ff342d6325cab42cc3d8401b4fac5b2f7eff3b.tar.gz
MultiMC-72ff342d6325cab42cc3d8401b4fac5b2f7eff3b.tar.lz
MultiMC-72ff342d6325cab42cc3d8401b4fac5b2f7eff3b.tar.xz
MultiMC-72ff342d6325cab42cc3d8401b4fac5b2f7eff3b.zip
GH-2053 basics of the servers.dat management
Diffstat (limited to 'application/pages/instance/ServersPage.h')
-rw-r--r--application/pages/instance/ServersPage.h87
1 files changed, 87 insertions, 0 deletions
diff --git a/application/pages/instance/ServersPage.h b/application/pages/instance/ServersPage.h
new file mode 100644
index 00000000..6c812bd9
--- /dev/null
+++ b/application/pages/instance/ServersPage.h
@@ -0,0 +1,87 @@
+/* Copyright 2013-2018 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.
+ */
+
+#pragma once
+
+#include <QWidget>
+#include <QString>
+
+#include "pages/BasePage.h"
+#include <MultiMC.h>
+
+namespace Ui
+{
+class ServersPage;
+}
+
+struct Server;
+class ServersModel;
+class MinecraftInstance;
+
+class ServersPage : public QWidget, public BasePage
+{
+ Q_OBJECT
+
+public:
+ explicit ServersPage(MinecraftInstance *inst, QWidget *parent = 0);
+ virtual ~ServersPage();
+
+ void openedImpl() override;
+ void closedImpl() override;
+
+ virtual QString displayName() const override
+ {
+ return tr("Servers");
+ }
+ virtual QIcon icon() const override
+ {
+ return MMC->getThemedIcon("unknown_server");
+ }
+ virtual QString id() const override
+ {
+ return "servers";
+ }
+ virtual QString helpPage() const override
+ {
+ return "Servers-management";
+ }
+private:
+ void updateState();
+ void scheduleSave();
+ bool saveIsScheduled() const;
+
+private slots:
+ void currentChanged(const QModelIndex &current, const QModelIndex &previous);
+ void rowsRemoved(const QModelIndex &parent, int first, int last);
+
+ void on_addBtn_clicked();
+ void on_removeBtn_clicked();
+ void on_moveUpBtn_clicked();
+ void on_moveDownBtn_clicked();
+ void on_refreshBtn_clicked();
+ void on_RunningState_changed(bool running);
+
+ void nameEdited(const QString & name);
+ void addressEdited(const QString & address);
+ void resourceIndexChanged(int index);
+
+private: // data
+ int currentServer = -1;
+ bool m_locked = true;
+ Ui::ServersPage *ui = nullptr;
+ ServersModel * m_model = nullptr;
+ MinecraftInstance * m_inst = nullptr;
+};
+