aboutsummaryrefslogtreecommitdiff
path: root/launcher/ui/widgets
diff options
context:
space:
mode:
authorAlexandru Ionut Tripon <alexandru.tripon97@gmail.com>2023-08-12 12:42:30 +0300
committerGitHub <noreply@github.com>2023-08-12 12:42:30 +0300
commitb3b2e9df35222209b4920202d86091eeeb87f03f (patch)
treece44c3877ee36c21279d142b2af1c393e7b87780 /launcher/ui/widgets
parentca061080c13042642fb3bd49a29a863756f45866 (diff)
parent3aba7f8fec45c7c87be486d8f6b5c96f69facf93 (diff)
downloadPrismLauncher-b3b2e9df35222209b4920202d86091eeeb87f03f.tar.gz
PrismLauncher-b3b2e9df35222209b4920202d86091eeeb87f03f.tar.bz2
PrismLauncher-b3b2e9df35222209b4920202d86091eeeb87f03f.zip
Merge branch 'develop' into feat/acknowledge_release_type
Signed-off-by: Alexandru Ionut Tripon <alexandru.tripon97@gmail.com>
Diffstat (limited to 'launcher/ui/widgets')
-rw-r--r--launcher/ui/widgets/CustomCommands.cpp15
-rw-r--r--launcher/ui/widgets/CustomCommands.h20
-rw-r--r--launcher/ui/widgets/DropLabel.cpp17
-rw-r--r--launcher/ui/widgets/DropLabel.h19
-rw-r--r--launcher/ui/widgets/ErrorFrame.cpp46
-rw-r--r--launcher/ui/widgets/ErrorFrame.h22
-rw-r--r--launcher/ui/widgets/FocusLineEdit.cpp9
-rw-r--r--launcher/ui/widgets/FocusLineEdit.h17
-rw-r--r--launcher/ui/widgets/IconLabel.cpp16
-rw-r--r--launcher/ui/widgets/IconLabel.h13
-rw-r--r--launcher/ui/widgets/InfoFrame.cpp203
-rw-r--r--launcher/ui/widgets/InfoFrame.h43
-rw-r--r--launcher/ui/widgets/JavaSettingsWidget.cpp145
-rw-r--r--launcher/ui/widgets/JavaSettingsWidget.h75
-rw-r--r--launcher/ui/widgets/LabeledToolButton.cpp48
-rw-r--r--launcher/ui/widgets/LabeledToolButton.h16
-rw-r--r--launcher/ui/widgets/LanguageSelectionWidget.cpp28
-rw-r--r--launcher/ui/widgets/LanguageSelectionWidget.h25
-rw-r--r--launcher/ui/widgets/LineSeparator.cpp14
-rw-r--r--launcher/ui/widgets/LineSeparator.h14
-rw-r--r--launcher/ui/widgets/LogView.cpp51
-rw-r--r--launcher/ui/widgets/LogView.h33
-rw-r--r--launcher/ui/widgets/ModFilterWidget.cpp110
-rw-r--r--launcher/ui/widgets/ModFilterWidget.h33
-rw-r--r--launcher/ui/widgets/ModListView.cpp46
-rw-r--r--launcher/ui/widgets/ModListView.h11
-rw-r--r--launcher/ui/widgets/PageContainer.cpp103
-rw-r--r--launcher/ui/widgets/PageContainer.h56
-rw-r--r--launcher/ui/widgets/PageContainer_p.h77
-rw-r--r--launcher/ui/widgets/ProjectItem.cpp5
-rw-r--r--launcher/ui/widgets/ProjectItem.h7
-rw-r--r--launcher/ui/widgets/SubTaskProgressBar.cpp6
-rw-r--r--launcher/ui/widgets/SubTaskProgressBar.h10
-rw-r--r--launcher/ui/widgets/ThemeCustomizationWidget.cpp37
-rw-r--r--launcher/ui/widgets/ThemeCustomizationWidget.h36
-rw-r--r--launcher/ui/widgets/VariableSizedImageObject.cpp2
-rw-r--r--launcher/ui/widgets/VariableSizedImageObject.h2
-rw-r--r--launcher/ui/widgets/VersionListView.cpp48
-rw-r--r--launcher/ui/widgets/VersionListView.h31
-rw-r--r--launcher/ui/widgets/VersionSelectWidget.cpp52
-rw-r--r--launcher/ui/widgets/VersionSelectWidget.h49
-rw-r--r--launcher/ui/widgets/WideBar.cpp23
42 files changed, 718 insertions, 915 deletions
diff --git a/launcher/ui/widgets/CustomCommands.cpp b/launcher/ui/widgets/CustomCommands.cpp
index 5ab90395..9b98d740 100644
--- a/launcher/ui/widgets/CustomCommands.cpp
+++ b/launcher/ui/widgets/CustomCommands.cpp
@@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-3.0-only
/*
- * PolyMC - Minecraft Launcher
+ * Prism Launcher - Minecraft Launcher
* Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
*
* This program is free software: you can redistribute it and/or modify
@@ -41,9 +41,7 @@ CustomCommands::~CustomCommands()
delete ui;
}
-CustomCommands::CustomCommands(QWidget* parent):
- QWidget(parent),
- ui(new Ui::CustomCommands)
+CustomCommands::CustomCommands(QWidget* parent) : QWidget(parent), ui(new Ui::CustomCommands)
{
ui->setupUi(this);
}
@@ -51,8 +49,7 @@ CustomCommands::CustomCommands(QWidget* parent):
void CustomCommands::initialize(bool checkable, bool checked, const QString& prelaunch, const QString& wrapper, const QString& postexit)
{
ui->customCommandsGroupBox->setCheckable(checkable);
- if(checkable)
- {
+ if (checkable) {
ui->customCommandsGroupBox->setChecked(checked);
}
ui->preLaunchCmdTextBox->setText(prelaunch);
@@ -60,14 +57,14 @@ void CustomCommands::initialize(bool checkable, bool checked, const QString& pre
ui->postExitCmdTextBox->setText(postexit);
}
-
-void CustomCommands::retranslate() {
+void CustomCommands::retranslate()
+{
ui->retranslateUi(this);
}
bool CustomCommands::checked() const
{
- if(!ui->customCommandsGroupBox->isCheckable())
+ if (!ui->customCommandsGroupBox->isCheckable())
return true;
return ui->customCommandsGroupBox->isChecked();
}
diff --git a/launcher/ui/widgets/CustomCommands.h b/launcher/ui/widgets/CustomCommands.h
index ed10ba95..5b410ae9 100644
--- a/launcher/ui/widgets/CustomCommands.h
+++ b/launcher/ui/widgets/CustomCommands.h
@@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-3.0-only
/*
- * PolyMC - Minecraft Launcher
+ * Prism Launcher - Minecraft Launcher
* Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
*
* This program is free software: you can redistribute it and/or modify
@@ -37,19 +37,17 @@
#include <QWidget>
-namespace Ui
-{
+namespace Ui {
class CustomCommands;
}
-class CustomCommands : public QWidget
-{
+class CustomCommands : public QWidget {
Q_OBJECT
-public:
- explicit CustomCommands(QWidget *parent = 0);
+ public:
+ explicit CustomCommands(QWidget* parent = 0);
virtual ~CustomCommands();
- void initialize(bool checkable, bool checked, const QString & prelaunch, const QString & wrapper, const QString & postexit);
+ void initialize(bool checkable, bool checked, const QString& prelaunch, const QString& wrapper, const QString& postexit);
void retranslate();
bool checked() const;
@@ -57,8 +55,6 @@ public:
QString wrapperCommand() const;
QString postexitCommand() const;
-private:
- Ui::CustomCommands *ui;
+ private:
+ Ui::CustomCommands* ui;
};
-
-
diff --git a/launcher/ui/widgets/DropLabel.cpp b/launcher/ui/widgets/DropLabel.cpp
index a900e57c..b1473b35 100644
--- a/launcher/ui/widgets/DropLabel.cpp
+++ b/launcher/ui/widgets/DropLabel.cpp
@@ -1,34 +1,33 @@
#include "DropLabel.h"
-#include <QMimeData>
#include <QDropEvent>
+#include <QMimeData>
-DropLabel::DropLabel(QWidget *parent) : QLabel(parent)
+DropLabel::DropLabel(QWidget* parent) : QLabel(parent)
{
setAcceptDrops(true);
}
-void DropLabel::dragEnterEvent(QDragEnterEvent *event)
+void DropLabel::dragEnterEvent(QDragEnterEvent* event)
{
event->acceptProposedAction();
}
-void DropLabel::dragMoveEvent(QDragMoveEvent *event)
+void DropLabel::dragMoveEvent(QDragMoveEvent* event)
{
event->acceptProposedAction();
}
-void DropLabel::dragLeaveEvent(QDragLeaveEvent *event)
+void DropLabel::dragLeaveEvent(QDragLeaveEvent* event)
{
event->accept();
}
-void DropLabel::dropEvent(QDropEvent *event)
+void DropLabel::dropEvent(QDropEvent* event)
{
- const QMimeData *mimeData = event->mimeData();
+ const QMimeData* mimeData = event->mimeData();
- if (!mimeData)
- {
+ if (!mimeData) {
return;
}
diff --git a/launcher/ui/widgets/DropLabel.h b/launcher/ui/widgets/DropLabel.h
index c5ca0bcc..0027f48b 100644
--- a/launcher/ui/widgets/DropLabel.h
+++ b/launcher/ui/widgets/DropLabel.h
@@ -2,19 +2,18 @@
#include <QLabel>
-class DropLabel : public QLabel
-{
+class DropLabel : public QLabel {
Q_OBJECT
-public:
- explicit DropLabel(QWidget *parent = nullptr);
+ public:
+ explicit DropLabel(QWidget* parent = nullptr);
-signals:
+ signals:
void droppedURLs(QList<QUrl> urls);
-protected:
- void dropEvent(QDropEvent *event) override;
- void dragEnterEvent(QDragEnterEvent *event) override;
- void dragMoveEvent(QDragMoveEvent *event) override;
- void dragLeaveEvent(QDragLeaveEvent *event) override;
+ protected:
+ void dropEvent(QDropEvent* event) override;
+ void dragEnterEvent(QDragEnterEvent* event) override;
+ void dragMoveEvent(QDragMoveEvent* event) override;
+ void dragLeaveEvent(QDragLeaveEvent* event) override;
};
diff --git a/launcher/ui/widgets/ErrorFrame.cpp b/launcher/ui/widgets/ErrorFrame.cpp
index b3e41036..213c26b7 100644
--- a/launcher/ui/widgets/ErrorFrame.cpp
+++ b/launcher/ui/widgets/ErrorFrame.cpp
@@ -27,9 +27,7 @@ void ErrorFrame::clear()
setDescription(QString());
}
-ErrorFrame::ErrorFrame(QWidget *parent) :
- QFrame(parent),
- ui(new Ui::ErrorFrame)
+ErrorFrame::ErrorFrame(QWidget* parent) : QFrame(parent), ui(new Ui::ErrorFrame)
{
ui->setupUi(this);
ui->label_Description->setHidden(true);
@@ -44,24 +42,18 @@ ErrorFrame::~ErrorFrame()
void ErrorFrame::updateHiddenState()
{
- if(ui->label_Description->isHidden() && ui->label_Title->isHidden())
- {
+ if (ui->label_Description->isHidden() && ui->label_Title->isHidden()) {
setHidden(true);
- }
- else
- {
+ } else {
setHidden(false);
}
}
void ErrorFrame::setTitle(QString text)
{
- if(text.isEmpty())
- {
+ if (text.isEmpty()) {
ui->label_Title->setHidden(true);
- }
- else
- {
+ } else {
ui->label_Title->setText(text);
ui->label_Title->setHidden(false);
}
@@ -70,14 +62,11 @@ void ErrorFrame::setTitle(QString text)
void ErrorFrame::setDescription(QString text)
{
- if(text.isEmpty())
- {
+ if (text.isEmpty()) {
ui->label_Description->setHidden(true);
updateHiddenState();
return;
- }
- else
- {
+ } else {
ui->label_Description->setHidden(false);
updateHiddenState();
}
@@ -87,9 +76,8 @@ void ErrorFrame::setDescription(QString text)
QChar rem('\n');
QString finaltext;
finaltext.reserve(intermediatetext.size());
- foreach(const QChar& c, intermediatetext)
- {
- if(c == rem && prev){
+ foreach (const QChar& c, intermediatetext) {
+ if (c == rem && prev) {
continue;
}
prev = c == rem;
@@ -97,33 +85,27 @@ void ErrorFrame::setDescription(QString text)
}
QString labeltext;
labeltext.reserve(300);
- if(finaltext.length() > 290)
- {
+ if (finaltext.length() > 290) {
ui->label_Description->setOpenExternalLinks(false);
ui->label_Description->setTextFormat(Qt::TextFormat::RichText);
desc = text;
// This allows injecting HTML here.
labeltext.append("<html><body>" + finaltext.left(287) + "<a href=\"#mod_desc\">...</a></body></html>");
QObject::connect(ui->label_Description, &QLabel::linkActivated, this, &ErrorFrame::ellipsisHandler);
- }
- else
- {
+ } else {
ui->label_Description->setTextFormat(Qt::TextFormat::PlainText);
labeltext.append(finaltext);
}
ui->label_Description->setText(labeltext);
}
-void ErrorFrame::ellipsisHandler(const QString &link)
+void ErrorFrame::ellipsisHandler(const QString& link)
{
- if(!currentBox)
- {
+ if (!currentBox) {
currentBox = CustomMessageBox::selectable(this, QString(), desc);
connect(currentBox, &QMessageBox::finished, this, &ErrorFrame::boxClosed);
currentBox->show();
- }
- else
- {
+ } else {
currentBox->setText(desc);
}
}
diff --git a/launcher/ui/widgets/ErrorFrame.h b/launcher/ui/widgets/ErrorFrame.h
index d5069a14..1aea6a1d 100644
--- a/launcher/ui/widgets/ErrorFrame.h
+++ b/launcher/ui/widgets/ErrorFrame.h
@@ -17,17 +17,15 @@
#include <QFrame>
-namespace Ui
-{
+namespace Ui {
class ErrorFrame;
}
-class ErrorFrame : public QFrame
-{
+class ErrorFrame : public QFrame {
Q_OBJECT
-public:
- explicit ErrorFrame(QWidget *parent = 0);
+ public:
+ explicit ErrorFrame(QWidget* parent = 0);
~ErrorFrame();
void setTitle(QString text);
@@ -35,15 +33,15 @@ public:
void clear();
-public slots:
- void ellipsisHandler(const QString& link );
+ public slots:
+ void ellipsisHandler(const QString& link);
void boxClosed(int result);
-private:
+ private:
void updateHiddenState();
-private:
- Ui::ErrorFrame *ui;
+ private:
+ Ui::ErrorFrame* ui;
QString desc;
- class QMessageBox * currentBox = nullptr;
+ class QMessageBox* currentBox = nullptr;
};
diff --git a/launcher/ui/widgets/FocusLineEdit.cpp b/launcher/ui/widgets/FocusLineEdit.cpp
index b272100c..6570227b 100644
--- a/launcher/ui/widgets/FocusLineEdit.cpp
+++ b/launcher/ui/widgets/FocusLineEdit.cpp
@@ -1,23 +1,22 @@
#include "FocusLineEdit.h"
#include <QDebug>
-FocusLineEdit::FocusLineEdit(QWidget *parent) : QLineEdit(parent)
+FocusLineEdit::FocusLineEdit(QWidget* parent) : QLineEdit(parent)
{
_selectOnMousePress = false;
}
-void FocusLineEdit::focusInEvent(QFocusEvent *e)
+void FocusLineEdit::focusInEvent(QFocusEvent* e)
{
QLineEdit::focusInEvent(e);
selectAll();
_selectOnMousePress = true;
}
-void FocusLineEdit::mousePressEvent(QMouseEvent *me)
+void FocusLineEdit::mousePressEvent(QMouseEvent* me)
{
QLineEdit::mousePressEvent(me);
- if (_selectOnMousePress)
- {
+ if (_selectOnMousePress) {
selectAll();
_selectOnMousePress = false;
}
diff --git a/launcher/ui/widgets/FocusLineEdit.h b/launcher/ui/widgets/FocusLineEdit.h
index 71b4f140..f5ea6602 100644
--- a/launcher/ui/widgets/FocusLineEdit.h
+++ b/launcher/ui/widgets/FocusLineEdit.h
@@ -1,17 +1,14 @@
#include <QLineEdit>
-class FocusLineEdit : public QLineEdit
-{
+class FocusLineEdit : public QLineEdit {
Q_OBJECT
-public:
- FocusLineEdit(QWidget *parent);
- virtual ~FocusLineEdit()
- {
- }
+ public:
+ FocusLineEdit(QWidget* parent);
+ virtual ~FocusLineEdit() {}
-protected:
- void focusInEvent(QFocusEvent *e);
- void mousePressEvent(QMouseEvent *me);
+ protected:
+ void focusInEvent(QFocusEvent* e);
+ void mousePressEvent(QMouseEvent* me);
bool _selectOnMousePress;
};
diff --git a/launcher/ui/widgets/IconLabel.cpp b/launcher/ui/widgets/IconLabel.cpp
index bf1c2358..28776686 100644
--- a/launcher/ui/widgets/IconLabel.cpp
+++ b/launcher/ui/widgets/IconLabel.cpp
@@ -1,13 +1,12 @@
#include "IconLabel.h"
-#include <QStyle>
-#include <QStyleOption>
#include <QLayout>
#include <QPainter>
#include <QRect>
+#include <QStyle>
+#include <QStyleOption>
-IconLabel::IconLabel(QWidget *parent, QIcon icon, QSize size)
- : QWidget(parent), m_size(size), m_icon(icon)
+IconLabel::IconLabel(QWidget* parent, QIcon icon, QSize size) : QWidget(parent), m_size(size), m_icon(icon)
{
setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
}
@@ -23,19 +22,16 @@ void IconLabel::setIcon(QIcon icon)
update();
}
-void IconLabel::paintEvent(QPaintEvent *)
+void IconLabel::paintEvent(QPaintEvent*)
{
QPainter p(this);
QRect rect = contentsRect();
int width = rect.width();
int height = rect.height();
- if(width < height)
- {
+ if (width < height) {
rect.setHeight(width);
rect.translate(0, (height - width) / 2);
- }
- else if (width > height)
- {
+ } else if (width > height) {
rect.setWidth(height);
rect.translate((width - height) / 2, 0);
}
diff --git a/launcher/ui/widgets/IconLabel.h b/launcher/ui/widgets/IconLabel.h
index 6d212c4c..41d97f69 100644
--- a/launcher/ui/widgets/IconLabel.h
+++ b/launcher/ui/widgets/IconLabel.h
@@ -1,26 +1,25 @@
#pragma once
-#include <QWidget>
#include <QIcon>
+#include <QWidget>
class QStyleOption;
/**
* This is a trivial widget that paints a QIcon of the specified size.
*/
-class IconLabel : public QWidget
-{
+class IconLabel : public QWidget {
Q_OBJECT
-public:
+ public:
/// Create a line separator. orientation is the orientation of the line.
- explicit IconLabel(QWidget *parent, QIcon icon, QSize size);
+ explicit IconLabel(QWidget* parent, QIcon icon, QSize size);
virtual QSize sizeHint() const;
- virtual void paintEvent(QPaintEvent *);
+ virtual void paintEvent(QPaintEvent*);
void setIcon(QIcon icon);
-private:
+ private:
QSize m_size;
QIcon m_icon;
};
diff --git a/launcher/ui/widgets/InfoFrame.cpp b/launcher/ui/widgets/InfoFrame.cpp
index 9c041bfe..a0fda952 100644
--- a/launcher/ui/widgets/InfoFrame.cpp
+++ b/launcher/ui/widgets/InfoFrame.cpp
@@ -1,54 +1,70 @@
// SPDX-License-Identifier: GPL-3.0-only
/*
-* PolyMC - Minecraft Launcher
-* Copyright (c) 2022 flowln <flowlnlnln@gmail.com>
-*
-* This program is free software: you can redistribute it and/or modify
-* it under the terms of the GNU General Public License as published by
-* the Free Software Foundation, version 3.
-*
-* This program is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU General Public License for more details.
-*
-* You should have received a copy of the GNU General Public License
-* along with this program. If not, see <https://www.gnu.org/licenses/>.
-*
-* This file incorporates work covered by the following copyright and
-* permission notice:
-*
-* Copyright 2013-2021 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.
-*/
-
+ * Prism Launcher - Minecraft Launcher
+ * Copyright (c) 2022 flowln <flowlnlnln@gmail.com>
+ * Copyright (c) 2023 Trial97 <alexandru.tripon97@gmail.com>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, version 3.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
+ *
+ * This file incorporates work covered by the following copyright and
+ * permission notice:
+ *
+ * Copyright 2013-2021 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.
+ */
+
+#include <QLabel>
#include <QMessageBox>
+#include <QToolTip>
#include "InfoFrame.h"
#include "ui_InfoFrame.h"
#include "ui/dialogs/CustomMessageBox.h"
-InfoFrame::InfoFrame(QWidget *parent) :
- QFrame(parent),
- ui(new Ui::InfoFrame)
+void setupLinkToolTip(QLabel* label)
+{
+ QObject::connect(label, &QLabel::linkHovered, [label](const QString& link) {
+ if (auto url = QUrl(link); !url.isValid() || (url.scheme() != "http" && url.scheme() != "https"))
+ return;
+ label->setToolTip(link);
+ });
+}
+
+InfoFrame::InfoFrame(QWidget* parent) : QFrame(parent), ui(new Ui::InfoFrame)
{
ui->setupUi(this);
ui->descriptionLabel->setHidden(true);
ui->nameLabel->setHidden(true);
ui->licenseLabel->setHidden(true);
ui->issueTrackerLabel->setHidden(true);
+
+ setupLinkToolTip(ui->iconLabel);
+ setupLinkToolTip(ui->descriptionLabel);
+ setupLinkToolTip(ui->nameLabel);
+ setupLinkToolTip(ui->licenseLabel);
+ setupLinkToolTip(ui->issueTrackerLabel);
updateHiddenState();
}
@@ -59,45 +75,43 @@ InfoFrame::~InfoFrame()
void InfoFrame::updateWithMod(Mod const& m)
{
- if (m.type() == ResourceType::FOLDER)
- {
+ if (m.type() == ResourceType::FOLDER) {
clear();
return;
}
QString text = "";
QString name = "";
+ QString link = m.metaurl();
if (m.name().isEmpty())
name = m.internal_id();
else
name = m.name();
- if (m.homeurl().isEmpty())
+ if (link.isEmpty())
text = name;
- else
- text = "<a href=\"" + m.homeurl() + "\">" + name + "</a>";
+ else {
+ text = "<a href=\"" + link + "\">" + name + "</a>";
+ }
if (!m.authors().isEmpty())
text += " by " + m.authors().join(", ");
setName(text);
- if (m.description().isEmpty())
- {
+ if (m.description().isEmpty()) {
setDescription(QString());
- }
- else
- {
+ } else {
setDescription(m.description());
}
- setImage(m.icon({64,64}));
+ setImage(m.icon({ 64, 64 }));
auto licenses = m.licenses();
QString licenseText = "";
if (!licenses.empty()) {
for (auto l : licenses) {
if (!licenseText.isEmpty()) {
- licenseText += "\n"; // add newline between licenses
+ licenseText += "\n"; // add newline between licenses
}
if (!l.name.isEmpty()) {
if (l.url.isEmpty()) {
@@ -109,9 +123,9 @@ void InfoFrame::updateWithMod(Mod const& m)
licenseText += "<a href=\"" + l.url + "\">" + l.url + "</a>";
}
if (!l.description.isEmpty() && l.description != l.name) {
- licenseText += " " + l.description;
+ licenseText += " " + l.description;
}
- }
+ }
}
if (!licenseText.isEmpty()) {
setLicense(tr("License: %1").arg(licenseText));
@@ -123,7 +137,7 @@ void InfoFrame::updateWithMod(Mod const& m)
if (!m.issueTracker().isEmpty()) {
issueTracker += tr("Report issues to: ");
issueTracker += "<a href=\"" + m.issueTracker() + "\">" + m.issueTracker() + "</a>";
- }
+ }
setIssueTracker(issueTracker);
}
@@ -133,7 +147,8 @@ void InfoFrame::updateWithResource(const Resource& resource)
setImage();
}
-QString InfoFrame::renderColorCodes(QString input) {
+QString InfoFrame::renderColorCodes(QString input)
+{
// We have to manually set the colors for use.
//
// A color is set using §x, with x = a hex number from 0 to f.
@@ -144,16 +159,12 @@ QString InfoFrame::renderColorCodes(QString input) {
// TODO: Wrap links inside <a> tags
// https://minecraft.fandom.com/wiki/Formatting_codes#Color_codes
- const QMap<QChar, QString> color_codes_map = {
- {'0', "#000000"}, {'1', "#0000AA"}, {'2', "#00AA00"}, {'3', "#00AAAA"}, {'4', "#AA0000"},
- {'5', "#AA00AA"}, {'6', "#FFAA00"}, {'7', "#AAAAAA"}, {'8', "#555555"}, {'9', "#5555FF"},
- {'a', "#55FF55"}, {'b', "#55FFFF"}, {'c', "#FF5555"}, {'d', "#FF55FF"}, {'e', "#FFFF55"},
- {'f', "#FFFFFF"}
- };
+ const QMap<QChar, QString> color_codes_map = { { '0', "#000000" }, { '1', "#0000AA" }, { '2', "#00AA00" }, { '3', "#00AAAA" },
+ { '4', "#AA0000" }, { '5', "#AA00AA" }, { '6', "#FFAA00" }, { '7', "#AAAAAA" },
+ { '8', "#555555" }, { '9', "#5555FF" }, { 'a', "#55FF55" }, { 'b', "#55FFFF" },