1
0
Fork 0
flightgear/src/GUI/MPServersModel.h

60 lines
1.3 KiB
C
Raw Normal View History

2017-02-21 11:01:06 +00:00
#ifndef MPSERVERSMODEL_H
#define MPSERVERSMODEL_H
#include <QAbstractListModel>
#include <Network/RemoteXMLRequest.hxx>
class MPServersModel : public QAbstractListModel
{
Q_OBJECT
Q_PROPERTY(bool valid READ valid NOTIFY validChanged)
2017-02-21 11:01:06 +00:00
public:
MPServersModel(QObject* parent = nullptr);
~MPServersModel();
int rowCount(const QModelIndex& index) const override;
QVariant data(const QModelIndex& index, int role) const override;
QHash<int, QByteArray> roleNames() const override;
void onRefreshMPServersDone(simgear::HTTP::Request*);
void onRefreshMPServersFailed(simgear::HTTP::Request*);
int findMPServerPort(const std::string& host);
void restoreMPServerSelection();
void refresh();
void requestRestore();
Q_INVOKABLE QString serverForIndex(int index) const;
Q_INVOKABLE int portForIndex(int index) const;
bool valid() const;
2017-02-21 11:01:06 +00:00
signals:
void restoreIndex(int index);
void restoreDefault();
void validChanged();
2017-02-21 11:01:06 +00:00
private:
SGSharedPtr<RemoteXMLRequest> m_mpServerRequest;
bool m_doRestoreMPServer = false;
struct ServerInfo
{
ServerInfo(QString n, QString l, QString h, int port);
QString name, location, host;
int port = 0;
};
std::vector<ServerInfo> m_servers;
};
#endif // MPSERVERSMODEL_H