summaryrefslogtreecommitdiffstats
path: root/gui/dialogs/AboutDialog.cpp
diff options
context:
space:
mode:
authorForkk <forkk@forkk.net>2014-05-01 12:43:55 -0500
committerForkk <forkk@forkk.net>2014-05-01 12:43:55 -0500
commit605a33405723ef4e8a4d3e8e92a0c9b754ab4ff9 (patch)
tree6664fd9ac35f7c82d76f8cc48610a4680a857bfa /gui/dialogs/AboutDialog.cpp
parent5fa36f67b3216c28098b911bb9fa37b7589a94eb (diff)
downloadMultiMC-605a33405723ef4e8a4d3e8e92a0c9b754ab4ff9.tar
MultiMC-605a33405723ef4e8a4d3e8e92a0c9b754ab4ff9.tar.gz
MultiMC-605a33405723ef4e8a4d3e8e92a0c9b754ab4ff9.tar.lz
MultiMC-605a33405723ef4e8a4d3e8e92a0c9b754ab4ff9.tar.xz
MultiMC-605a33405723ef4e8a4d3e8e92a0c9b754ab4ff9.zip
Show Patreon patrons in the about dialog
Diffstat (limited to 'gui/dialogs/AboutDialog.cpp')
-rw-r--r--gui/dialogs/AboutDialog.cpp73
1 files changed, 73 insertions, 0 deletions
diff --git a/gui/dialogs/AboutDialog.cpp b/gui/dialogs/AboutDialog.cpp
index 9883aafb..211303cc 100644
--- a/gui/dialogs/AboutDialog.cpp
+++ b/gui/dialogs/AboutDialog.cpp
@@ -20,11 +20,65 @@
#include "gui/Platform.h"
#include "BuildConfig.h"
+#include <logic/net/NetJob.h>
+
+// Credits
+// This is a hack, but I can't think of a better way to do this easily without screwing with QTextDocument...
+QString getCreditsHtml(QStringList patrons)
+{
+ QString creditsHtml =
+ "<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0//EN' 'http://www.w3.org/TR/REC-html40/strict.dtd'>"
+ "<html>"
+ ""
+ "<head>"
+ "<meta name='qrichtext' content='1' />"
+ "<style type='text/css'>"
+ "p { white-space: pre-wrap; margin-top:2px; margin-bottom:2px; }"
+ "</style>"
+ "</head>"
+ ""
+ "<body style=' font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;'>"
+ ""
+ "<h3>MultiMC Developers</h3>"
+ "<p>Andrew Okin &lt;<a href='mailto:forkk@forkk.net'>forkk@forkk.net</a>&gt;</p>"
+ "<p>Petr Mrázek &lt;<a href='mailto:peterix@gmail.com'>peterix@gmail.com</a>&gt;</p>"
+ "<p>Sky &lt;<a href='https://www.twitter.com/drayshak'>@drayshak</a>&gt;</p>"
+ "<p>Jan (02JanDal) &lt;<a href='mailto:02jandal@gmail.com'>02jandal@gmail.com</a>&gt;</p>"
+ ""
+ "<h3>With thanks to</h3>"
+ "<p>Orochimarufan &lt;<a href='mailto:orochimarufan.x3@gmail.com'>orochimarufan.x3@gmail.com</a>&gt;</p>"
+ "<p>TakSuyu &lt;<a href='mailto:taksuyu@gmail.com'>taksuyu@gmail.com</a>&gt;</p>"
+ "<p>Kilobyte &lt;<a href='mailto:stiepen22@gmx.de'>stiepen22@gmx.de</a>&gt;</p>"
+ "<p>Robotbrain &lt;<a href='https://twitter.com/skylordelros'>@skylordelros</a>&gt;</p>"
+ "<p>Rootbear75 &lt;<a href='https://twitter.com/rootbear75'>@rootbear75</a>&gt; (build server)</p>"
+ ""
+ "<h3>Patreon Patrons</h3>"
+ "%1"
+ ""
+ "</body>"
+ "</html>";
+ if (patrons.isEmpty())
+ return creditsHtml.arg("<p>Loading...</p>");
+ else
+ {
+ QString patronsStr;
+ for (QString patron : patrons)
+ {
+ patronsStr.append(QString("<p>%1</p>").arg(patron));
+ }
+
+ return creditsHtml.arg(patronsStr);
+ }
+}
+
AboutDialog::AboutDialog(QWidget *parent) : QDialog(parent), ui(new Ui::AboutDialog)
{
MultiMCPlatform::fixWM_CLASS(this);
ui->setupUi(this);
+ QString chtml = getCreditsHtml(QStringList());
+ ui->creditsText->setHtml(chtml);
+
ui->urlLabel->setOpenExternalLinks(true);
ui->icon->setPixmap(QIcon(":/icons/multimc/scalable/apps/multimc.svg").pixmap(64));
@@ -47,9 +101,28 @@ AboutDialog::AboutDialog(QWidget *parent) : QDialog(parent), ui(new Ui::AboutDia
connect(ui->closeButton, SIGNAL(clicked()), SLOT(close()));
MMC->connect(ui->aboutQt, SIGNAL(clicked()), SLOT(aboutQt()));
+
+ loadPatronList();
}
AboutDialog::~AboutDialog()
{
delete ui;
}
+
+void AboutDialog::loadPatronList()
+{
+ NetJob* job = new NetJob("Patreon Patron List");
+ patronListDownload = ByteArrayDownload::make(QUrl("http://files.multimc.org/patrons.txt"));
+ job->addNetAction(patronListDownload);
+ connect(job, &NetJob::succeeded, this, &AboutDialog::patronListLoaded);
+ job->start();
+}
+
+void AboutDialog::patronListLoaded()
+{
+ QString patronListStr(patronListDownload->m_data);
+ QString html = getCreditsHtml(patronListStr.split("\n", QString::SkipEmptyParts));
+ ui->creditsText->setHtml(html);
+}
+