summaryrefslogtreecommitdiffstats
path: root/application/widgets/ServerStatus.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'application/widgets/ServerStatus.cpp')
-rw-r--r--application/widgets/ServerStatus.cpp56
1 files changed, 54 insertions, 2 deletions
diff --git a/application/widgets/ServerStatus.cpp b/application/widgets/ServerStatus.cpp
index 0c11b9bf..f0a7f97a 100644
--- a/application/widgets/ServerStatus.cpp
+++ b/application/widgets/ServerStatus.cpp
@@ -11,6 +11,49 @@
#include <QMap>
#include <QToolButton>
#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)
{
@@ -67,19 +110,26 @@ void ServerStatus::addLine()
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);
serverLabels[key] = label;
layout->addWidget(label);
+ connect(label,SIGNAL(clicked()),SLOT(clicked()));
}
{
- auto label = new QLabel(this);
+ auto label = new ClickableLabel(this);
label->setText(name);
label->setToolTip(key);
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)
{
if (!serverLabels.contains(key))
@@ -127,3 +177,5 @@ void ServerStatus::StatusReloading(bool is_reloading)
{
m_statusRefresh->setChecked(is_reloading);
}
+
+#include "ServerStatus.moc"