GH-894 link server status widgets to help.mojang.com
This commit is contained in:
parent
c7c81463fd
commit
4f417d527e
@ -11,6 +11,49 @@
|
|||||||
#include <QMap>
|
#include <QMap>
|
||||||
#include <QToolButton>
|
#include <QToolButton>
|
||||||
#include <QAction>
|
#include <QAction>
|
||||||
|
#include <QDesktopServices>
|
||||||
|
|
||||||
|
class ClickableLabel : public QLabel
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
ClickableLabel(QWidget *parent) : QLabel(parent)
|
||||||
|
{
|
||||||
|
setCursor(Qt::PointingHandCursor);
|
||||||
|
}
|
||||||
|
|
||||||
|
~ClickableLabel(){};
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void clicked();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void mousePressEvent(QMouseEvent *event)
|
||||||
|
{
|
||||||
|
emit clicked();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
class ClickableIconLabel : public IconLabel
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
ClickableIconLabel(QWidget *parent, QIcon icon, QSize size) : IconLabel(parent, icon, size)
|
||||||
|
{
|
||||||
|
setCursor(Qt::PointingHandCursor);
|
||||||
|
}
|
||||||
|
|
||||||
|
~ClickableIconLabel(){};
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void clicked();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void mousePressEvent(QMouseEvent *event)
|
||||||
|
{
|
||||||
|
emit clicked();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
ServerStatus::ServerStatus(QWidget *parent, Qt::WindowFlags f) : QWidget(parent, f)
|
ServerStatus::ServerStatus(QWidget *parent, Qt::WindowFlags f) : QWidget(parent, f)
|
||||||
{
|
{
|
||||||
@ -67,19 +110,26 @@ void ServerStatus::addLine()
|
|||||||
void ServerStatus::addStatus(QString key, QString name)
|
void ServerStatus::addStatus(QString key, QString name)
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
auto label = new IconLabel(this, badIcon, QSize(16, 16));
|
auto label = new ClickableIconLabel(this, badIcon, QSize(16, 16));
|
||||||
label->setToolTip(key);
|
label->setToolTip(key);
|
||||||
serverLabels[key] = label;
|
serverLabels[key] = label;
|
||||||
layout->addWidget(label);
|
layout->addWidget(label);
|
||||||
|
connect(label,SIGNAL(clicked()),SLOT(clicked()));
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
auto label = new QLabel(this);
|
auto label = new ClickableLabel(this);
|
||||||
label->setText(name);
|
label->setText(name);
|
||||||
label->setToolTip(key);
|
label->setToolTip(key);
|
||||||
layout->addWidget(label);
|
layout->addWidget(label);
|
||||||
|
connect(label,SIGNAL(clicked()),SLOT(clicked()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ServerStatus::clicked()
|
||||||
|
{
|
||||||
|
QDesktopServices::openUrl(QUrl("https://help.mojang.com/"));
|
||||||
|
}
|
||||||
|
|
||||||
void ServerStatus::setStatus(QString key, int value)
|
void ServerStatus::setStatus(QString key, int value)
|
||||||
{
|
{
|
||||||
if (!serverLabels.contains(key))
|
if (!serverLabels.contains(key))
|
||||||
@ -127,3 +177,5 @@ void ServerStatus::StatusReloading(bool is_reloading)
|
|||||||
{
|
{
|
||||||
m_statusRefresh->setChecked(is_reloading);
|
m_statusRefresh->setChecked(is_reloading);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#include "ServerStatus.moc"
|
||||||
|
@ -22,6 +22,9 @@ public slots:
|
|||||||
void StatusChanged(const QMap<QString, QString> statuses);
|
void StatusChanged(const QMap<QString, QString> statuses);
|
||||||
void StatusReloading(bool is_reloading);
|
void StatusReloading(bool is_reloading);
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void clicked();
|
||||||
|
|
||||||
private: /* methods */
|
private: /* methods */
|
||||||
void addLine();
|
void addLine();
|
||||||
void addStatus(QString key, QString name);
|
void addStatus(QString key, QString name);
|
||||||
|
Loading…
Reference in New Issue
Block a user