aboutsummaryrefslogtreecommitdiff
path: root/application/pages/modplatform/technic
diff options
context:
space:
mode:
Diffstat (limited to 'application/pages/modplatform/technic')
-rw-r--r--application/pages/modplatform/technic/TechnicData.h4
-rw-r--r--application/pages/modplatform/technic/TechnicModel.cpp1
-rw-r--r--application/pages/modplatform/technic/TechnicPage.cpp25
-rw-r--r--application/pages/modplatform/technic/TechnicPage.ui29
4 files changed, 42 insertions, 17 deletions
diff --git a/application/pages/modplatform/technic/TechnicData.h b/application/pages/modplatform/technic/TechnicData.h
index 5c746619..c7ddd9ce 100644
--- a/application/pages/modplatform/technic/TechnicData.h
+++ b/application/pages/modplatform/technic/TechnicData.h
@@ -18,7 +18,6 @@
#include <QList>
#include <QString>
-
namespace Technic {
struct Modpack {
QString slug;
@@ -34,6 +33,9 @@ struct Modpack {
QString minecraftVersion;
bool metadataLoaded = false;
+ QString websiteUrl;
+ QString author;
+ QString description;
};
}
diff --git a/application/pages/modplatform/technic/TechnicModel.cpp b/application/pages/modplatform/technic/TechnicModel.cpp
index bdc411c3..e1294554 100644
--- a/application/pages/modplatform/technic/TechnicModel.cpp
+++ b/application/pages/modplatform/technic/TechnicModel.cpp
@@ -20,7 +20,6 @@
#include <QIcon>
-
Technic::ListModel::ListModel(QObject *parent) : QAbstractListModel(parent)
{
}
diff --git a/application/pages/modplatform/technic/TechnicPage.cpp b/application/pages/modplatform/technic/TechnicPage.cpp
index 75efd3ed..f6facd57 100644
--- a/application/pages/modplatform/technic/TechnicPage.cpp
+++ b/application/pages/modplatform/technic/TechnicPage.cpp
@@ -13,7 +13,6 @@
* limitations under the License.
*/
-
#include "TechnicPage.h"
#include "ui_TechnicPage.h"
@@ -159,6 +158,9 @@ void TechnicPage::suggestCurrent()
}
current.minecraftVersion = Json::ensureString(obj, "minecraft", QString(), "__placeholder__");
+ current.websiteUrl = Json::ensureString(obj, "platformUrl", QString(), "__placeholder__");
+ current.author = Json::ensureString(obj, "user", QString(), "__placeholder__");
+ current.description = Json::ensureString(obj, "description", QString(), "__placeholder__");
current.metadataLoaded = true;
metadataLoaded();
});
@@ -169,29 +171,22 @@ void TechnicPage::suggestCurrent()
// expects current.metadataLoaded to be true
void TechnicPage::metadataLoaded()
{
- /*QString text = "";
+ QString text = "";
QString name = current.name;
if (current.websiteUrl.isEmpty())
+ // This allows injecting HTML here.
text = name;
else
+ // URL not properly escaped for inclusion in HTML. The name allows for injecting HTML.
text = "<a href=\"" + current.websiteUrl + "\">" + name + "</a>";
- if (!current.authors.empty()) {
- auto authorToStr = [](Technic::ModpackAuthor & author) {
- if(author.url.isEmpty()) {
- return author.name;
- }
- return QString("<a href=\"%1\">%2</a>").arg(author.url, author.name);
- };
- QStringList authorStrs;
- for(auto & author: current.authors) {
- authorStrs.push_back(authorToStr(author));
- }
- text += tr(" by ") + authorStrs.join(", ");
+ if (!current.author.isEmpty()) {
+ // This allows injecting HTML here
+ text += tr(" by ") + current.author;
}
ui->frame->setModText(text);
- ui->frame->setModDescription(current.description);*/
+ ui->frame->setModDescription(current.description);
if (!current.isSolder)
{
dialog->setSuggestedPack(current.name, new Technic::SingleZipPackInstallTask(current.url, current.minecraftVersion));
diff --git a/application/pages/modplatform/technic/TechnicPage.ui b/application/pages/modplatform/technic/TechnicPage.ui
index be56fa82..36ce2ecf 100644
--- a/application/pages/modplatform/technic/TechnicPage.ui
+++ b/application/pages/modplatform/technic/TechnicPage.ui
@@ -55,8 +55,37 @@
</property>
</widget>
</item>
+ <item>
+ <widget class="MCModInfoFrame" name="frame">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="frameShape">
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="frameShadow">
+ <enum>QFrame::Raised</enum>
+ </property>
+ </widget>
+ </item>
</layout>
</widget>
+ <customwidgets>
+ <customwidget>
+ <class>MCModInfoFrame</class>
+ <extends>QFrame</extends>
+ <header>widgets/MCModInfoFrame.h</header>
+ <container>1</container>
+ </customwidget>
+ </customwidgets>
+ <tabstops>
+ <tabstop>searchEdit</tabstop>
+ <tabstop>searchButton</tabstop>
+ <tabstop>packView</tabstop>
+ </tabstops>
<resources/>
<connections/>
</ui>