From 605a33405723ef4e8a4d3e8e92a0c9b754ab4ff9 Mon Sep 17 00:00:00 2001 From: Forkk Date: Thu, 1 May 2014 12:43:55 -0500 Subject: Show Patreon patrons in the about dialog --- gui/dialogs/AboutDialog.cpp | 73 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) (limited to 'gui/dialogs/AboutDialog.cpp') 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 + +// 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 = + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "

MultiMC Developers

" + "

Andrew Okin <forkk@forkk.net>

" + "

Petr Mrázek <peterix@gmail.com>

" + "

Sky <@drayshak>

" + "

Jan (02JanDal) <02jandal@gmail.com>

" + "" + "

With thanks to

" + "

Orochimarufan <orochimarufan.x3@gmail.com>

" + "

TakSuyu <taksuyu@gmail.com>

" + "

Kilobyte <stiepen22@gmx.de>

" + "

Robotbrain <@skylordelros>

" + "

Rootbear75 <@rootbear75> (build server)

" + "" + "

Patreon Patrons

" + "%1" + "" + "" + ""; + if (patrons.isEmpty()) + return creditsHtml.arg("

Loading...

"); + else + { + QString patronsStr; + for (QString patron : patrons) + { + patronsStr.append(QString("

%1

").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); +} + -- cgit