Show Patreon patrons in the about dialog
This commit is contained in:
		| @@ -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); | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -17,6 +17,8 @@ | ||||
|  | ||||
| #include <QDialog> | ||||
|  | ||||
| #include <logic/net/ByteArrayDownload.h> | ||||
|  | ||||
| namespace Ui | ||||
| { | ||||
| class AboutDialog; | ||||
| @@ -30,6 +32,16 @@ public: | ||||
| 	explicit AboutDialog(QWidget *parent = 0); | ||||
| 	~AboutDialog(); | ||||
|  | ||||
| public | ||||
| slots: | ||||
| 	/// Starts loading a list of Patreon patrons. | ||||
| 	void loadPatronList(); | ||||
| 	 | ||||
| 	/// Slot for when the patron list loads successfully. | ||||
| 	void patronListLoaded(); | ||||
|  | ||||
| private: | ||||
| 	Ui::AboutDialog *ui; | ||||
|  | ||||
| 	ByteArrayDownloadPtr patronListDownload; | ||||
| }; | ||||
|   | ||||
| @@ -59,7 +59,7 @@ | ||||
|         <string/> | ||||
|        </property> | ||||
|        <property name="pixmap"> | ||||
|         <pixmap resource="../../graphics.qrc">:/icons/multimc/scalable/apps/multimc.svg</pixmap> | ||||
|         <pixmap resource="../../resources/multimc/multimc.qrc">:/icons/multimc/scalable/apps/multimc.svg</pixmap> | ||||
|        </property> | ||||
|       </widget> | ||||
|      </item> | ||||
| @@ -96,7 +96,7 @@ | ||||
|    <item> | ||||
|     <widget class="QToolBox" name="toolBox"> | ||||
|      <property name="currentIndex"> | ||||
|       <number>0</number> | ||||
|       <number>1</number> | ||||
|      </property> | ||||
|      <widget class="QWidget" name="aboutPage"> | ||||
|       <property name="geometry"> | ||||
| @@ -104,7 +104,7 @@ | ||||
|         <x>0</x> | ||||
|         <y>0</y> | ||||
|         <width>689</width> | ||||
|         <height>311</height> | ||||
|         <height>331</height> | ||||
|        </rect> | ||||
|       </property> | ||||
|       <attribute name="label"> | ||||
| @@ -229,7 +229,7 @@ | ||||
|         <x>0</x> | ||||
|         <y>0</y> | ||||
|         <width>689</width> | ||||
|         <height>311</height> | ||||
|         <height>331</height> | ||||
|        </rect> | ||||
|       </property> | ||||
|       <attribute name="label"> | ||||
| @@ -245,19 +245,8 @@ | ||||
|           <string><!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, li { white-space: pre-wrap; } | ||||
| </style></head><body style=" font-family:'Bitstream Vera Sans'; font-size:11pt; font-weight:400; font-style:normal;"> | ||||
| <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:10pt; font-weight:600;">MultiMC</span></p> | ||||
| <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:10pt;">Andrew Okin &lt;</span><a href="mailto:forkk@forkk.net"><span style=" font-family:'MS Shell Dlg 2'; font-size:10pt; text-decoration: underline; color:#0000ff;">forkk@forkk.net</span></a><span style=" font-family:'MS Shell Dlg 2'; font-size:10pt;">&gt;</span></p> | ||||
| <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:10pt;">Petr Mrázek &lt;</span><a href="mailto:peterix@gmail.com"><span style=" font-family:'MS Shell Dlg 2'; font-size:10pt; text-decoration: underline; color:#0000ff;">peterix@gmail.com</span></a><span style=" font-family:'MS Shell Dlg 2'; font-size:10pt;">&gt;</span></p> | ||||
| <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:10pt;">Sky &lt;</span><a href="https://www.twitter.com/drayshak"><span style=" font-family:'MS Shell Dlg 2'; font-size:10pt; text-decoration: underline; color:#0000ff;">@drayshak</span></a><span style=" font-family:'MS Shell Dlg 2'; font-size:10pt;">&gt;</span></p> | ||||
| <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:10pt; font-weight:600;"><br /></p> | ||||
| <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Ubuntu'; font-size:10pt; font-weight:600;">With thanks to</span></p> | ||||
| <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:10pt;">Orochimarufan &lt;</span><a href="mailto:orochimarufan.x3@gmail.com"><span style=" font-family:'MS Shell Dlg 2'; font-size:10pt; text-decoration: underline; color:#0000ff;">orochimarufan.x3@gmail.com</span></a><span style=" font-family:'MS Shell Dlg 2'; font-size:10pt;">&gt;</span></p> | ||||
| <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:10pt;">TakSuyu &lt;</span><a href="mailto:taksuyu@gmail.com"><span style=" font-family:'MS Shell Dlg 2'; font-size:10pt; text-decoration: underline; color:#0000ff;">taksuyu@gmail.com</span></a><span style=" font-family:'MS Shell Dlg 2'; font-size:10pt;">&gt;</span></p> | ||||
| <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:10pt;">Kilobyte &lt;</span><a href="mailto:stiepen22@gmx.de"><span style=" font-family:'MS Shell Dlg 2'; font-size:10pt; text-decoration: underline; color:#0000ff;">stiepen22@gmx.de</span></a><span style=" font-family:'MS Shell Dlg 2'; font-size:10pt;">&gt;</span></p> | ||||
| <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:10pt;">Jan (02JanDal) &lt;</span><a href="mailto:02jandal@gmail.com"><span style=" font-family:'MS Shell Dlg 2'; font-size:10pt; text-decoration: underline; color:#0000ff;">02jandal@gmail.com</span></a><span style=" font-family:'MS Shell Dlg 2'; font-size:10pt;">&gt;</span></p> | ||||
| <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:10pt;">Robotbrain &lt;</span><a href="https://twitter.com/skylordelros"><span style=" font-family:'MS Shell Dlg 2'; font-size:10pt; text-decoration: underline; color:#0000ff;">@skylordelros</span></a><span style=" font-family:'MS Shell Dlg 2'; font-size:10pt;">&gt;</span></p> | ||||
| <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:10pt;">Rootbear75 &lt;</span><a href="https://twitter.com/rootbear75"><span style=" font-family:'MS Shell Dlg 2'; font-size:10pt; text-decoration: underline; color:#0000ff;">@rootbear75</span></a><span style=" font-family:'MS Shell Dlg 2'; font-size:10pt;">&gt; (build server)</span></p></body></html></string> | ||||
| </style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> | ||||
| <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html></string> | ||||
|          </property> | ||||
|          <property name="textInteractionFlags"> | ||||
|           <set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set> | ||||
| @@ -282,7 +271,7 @@ p, li { white-space: pre-wrap; } | ||||
|         <x>0</x> | ||||
|         <y>0</y> | ||||
|         <width>689</width> | ||||
|         <height>311</height> | ||||
|         <height>331</height> | ||||
|        </rect> | ||||
|       </property> | ||||
|       <attribute name="label"> | ||||
| @@ -309,7 +298,7 @@ p, li { white-space: pre-wrap; } | ||||
|           <string><!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, li { white-space: pre-wrap; } | ||||
| </style></head><body style=" font-family:'DejaVu Sans Mono'; font-size:11pt; font-weight:400; font-style:normal;"> | ||||
| </style></head><body style=" font-family:'DejaVu Sans Mono'; font-size:9pt; font-weight:400; font-style:normal;"> | ||||
| <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Bitstream Vera Sans'; font-size:18pt; font-weight:600;">MultiMC</span></p> | ||||
| <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">Copyright 2012-2014 MultiMC Contributors</span></p> | ||||
| <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:10pt;">Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);</span></p> | ||||
| @@ -433,7 +422,7 @@ p, li { white-space: pre-wrap; } | ||||
| <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;"> */</span></p> | ||||
| <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p> | ||||
| <p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Bitstream Vera Sans'; font-size:18pt; font-weight:600;">Java IconLoader class</span></p> | ||||
| <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> | ||||
| <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:11pt;"><br /></p> | ||||
| <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Copyright (c) 2011, Chris Molini</span></p> | ||||
| <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">All rights reserved.</span></p> | ||||
| <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:8pt;"><br /></p> | ||||
| @@ -471,7 +460,7 @@ p, li { white-space: pre-wrap; } | ||||
|         <x>0</x> | ||||
|         <y>0</y> | ||||
|         <width>689</width> | ||||
|         <height>311</height> | ||||
|         <height>331</height> | ||||
|        </rect> | ||||
|       </property> | ||||
|       <attribute name="label"> | ||||
| @@ -484,12 +473,12 @@ p, li { white-space: pre-wrap; } | ||||
|           <string><!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, li { white-space: pre-wrap; } | ||||
| </style></head><body style=" font-family:'Bitstream Vera Sans'; font-size:11pt; font-weight:400; font-style:normal;"> | ||||
| <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">We keep MultiMC open source because we think it's important to be able to see the source code for a project like this, and we do so using the Apache license.</p> | ||||
| <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> | ||||
| <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Part of the reason for using the Apache license is we don't want people using the &quot;MultiMC&quot; name when redistributing the project. This means people must take the time to go through the source code and remove all references to &quot;MultiMC&quot;, including but not limited to the project icon and the title of windows, (no *MultiMC-fork* in the title).</p> | ||||
| <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> | ||||
| <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">The Apache license covers reasonable use for the name - a mention of the project's origins in the About dialog and the license is acceptable. However, it should be abundantly clear that the project is a fork <span style=" font-weight:600;">without</span> implying that you have our blessing.</p></body></html></string> | ||||
| </style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> | ||||
| <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Bitstream Vera Sans'; font-size:11pt;">We keep MultiMC open source because we think it's important to be able to see the source code for a project like this, and we do so using the Apache license.</span></p> | ||||
| <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Bitstream Vera Sans'; font-size:11pt;"><br /></p> | ||||
| <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Bitstream Vera Sans'; font-size:11pt;">Part of the reason for using the Apache license is we don't want people using the &quot;MultiMC&quot; name when redistributing the project. This means people must take the time to go through the source code and remove all references to &quot;MultiMC&quot;, including but not limited to the project icon and the title of windows, (no *MultiMC-fork* in the title).</span></p> | ||||
| <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'Bitstream Vera Sans'; font-size:11pt;"><br /></p> | ||||
| <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'Bitstream Vera Sans'; font-size:11pt;">The Apache license covers reasonable use for the name - a mention of the project's origins in the About dialog and the license is acceptable. However, it should be abundantly clear that the project is a fork </span><span style=" font-family:'Bitstream Vera Sans'; font-size:11pt; font-weight:600;">without</span><span style=" font-family:'Bitstream Vera Sans'; font-size:11pt;"> implying that you have our blessing.</span></p></body></html></string> | ||||
|          </property> | ||||
|          <property name="textInteractionFlags"> | ||||
|           <set>Qt::LinksAccessibleByKeyboard|Qt::LinksAccessibleByMouse|Qt::TextBrowserInteraction|Qt::TextSelectableByKeyboard|Qt::TextSelectableByMouse</set> | ||||
| @@ -537,7 +526,7 @@ p, li { white-space: pre-wrap; } | ||||
|   </layout> | ||||
|  </widget> | ||||
|  <resources> | ||||
|   <include location="../../graphics.qrc"/> | ||||
|   <include location="../../resources/multimc/multimc.qrc"/> | ||||
|  </resources> | ||||
|  <connections/> | ||||
| </ui> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user