diff options
author | Petr Mrázek <peterix@gmail.com> | 2018-04-12 01:44:51 +0200 |
---|---|---|
committer | Petr Mrázek <peterix@gmail.com> | 2018-04-23 02:05:22 +0200 |
commit | 72ff342d6325cab42cc3d8401b4fac5b2f7eff3b (patch) | |
tree | c779eaaf41a16be4c9990bec21e661ec6b53bafe /application/pages/instance/ServersPage.h | |
parent | 6284f070c19053ae2bcf26dd9bccac2e0d35477f (diff) | |
download | MultiMC-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.h | 87 |
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 ¤t, 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; +}; + |