diff options
author | Forkk <forkk@forkk.net> | 2014-05-01 12:43:55 -0500 |
---|---|---|
committer | Forkk <forkk@forkk.net> | 2014-05-01 12:43:55 -0500 |
commit | 605a33405723ef4e8a4d3e8e92a0c9b754ab4ff9 (patch) | |
tree | 6664fd9ac35f7c82d76f8cc48610a4680a857bfa /gui/dialogs/AboutDialog.cpp | |
parent | 5fa36f67b3216c28098b911bb9fa37b7589a94eb (diff) | |
download | MultiMC-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.cpp | 73 |
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 <<a href='mailto:forkk@forkk.net'>forkk@forkk.net</a>></p>" + "<p>Petr Mrázek <<a href='mailto:peterix@gmail.com'>peterix@gmail.com</a>></p>" + "<p>Sky <<a href='https://www.twitter.com/drayshak'>@drayshak</a>></p>" + "<p>Jan (02JanDal) <<a href='mailto:02jandal@gmail.com'>02jandal@gmail.com</a>></p>" + "" + "<h3>With thanks to</h3>" + "<p>Orochimarufan <<a href='mailto:orochimarufan.x3@gmail.com'>orochimarufan.x3@gmail.com</a>></p>" + "<p>TakSuyu <<a href='mailto:taksuyu@gmail.com'>taksuyu@gmail.com</a>></p>" + "<p>Kilobyte <<a href='mailto:stiepen22@gmx.de'>stiepen22@gmx.de</a>></p>" + "<p>Robotbrain <<a href='https://twitter.com/skylordelros'>@skylordelros</a>></p>" + "<p>Rootbear75 <<a href='https://twitter.com/rootbear75'>@rootbear75</a>> (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); +} + |