1 /***************************************************************************
2 * Copyright (C) 2005-2020 by the Quassel Project *
3 * devel@quassel-irc.org *
5 * This program is free software; you can redistribute it and/or modify *
6 * it under the terms of the GNU General Public License as published by *
7 * the Free Software Foundation; either version 2 of the License, or *
8 * (at your option) version 3. *
10 * This program is distributed in the hope that it will be useful, *
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13 * GNU General Public License for more details. *
15 * You should have received a copy of the GNU General Public License *
16 * along with this program; if not, write to the *
17 * Free Software Foundation, Inc., *
18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
19 ***************************************************************************/
21 #include "aboutdata.h"
29 AboutPerson::AboutPerson(QString name, QString nick, QString task, QString emailAddress, QLocale::Language translatedLanguage)
30 : _name(std::move(name))
31 , _nick(std::move(nick))
32 , _task(std::move(task))
33 , _emailAddress(std::move(emailAddress))
34 , _language(translatedLanguage)
37 QString AboutPerson::name() const
42 QString AboutPerson::nick() const
47 QString AboutPerson::task() const
52 QString AboutPerson::emailAddress() const
57 QLocale::Language AboutPerson::translatedLanguage() const
62 QString AboutPerson::prettyName() const
64 if (!name().isEmpty() && !nick().isEmpty())
65 return name() + " (" + nick() + ')';
67 if (name().isEmpty() && !nick().isEmpty())
73 /**************************************************************************************************/
75 AboutData::AboutData(QObject* parent)
79 QList<AboutPerson> AboutData::authors() const
84 QList<AboutPerson> AboutData::credits() const
89 AboutData& AboutData::addAuthor(const AboutPerson& author)
91 _authors.append(author);
95 AboutData& AboutData::addAuthors(std::initializer_list<AboutPerson> authors)
97 _authors.append(authors);
101 AboutData& AboutData::addCredit(const AboutPerson& credit)
103 _credits.append(credit);
107 AboutData& AboutData::addCredits(std::initializer_list<AboutPerson> credits)
109 _credits.append(credits);
115 KAboutData AboutData::kAboutData() const
117 KAboutData aboutData(Quassel::buildInfo().applicationName, tr("Quassel IRC"), Quassel::buildInfo().plainVersionString);
118 aboutData.addLicense(KAboutLicense::GPL_V2);
119 aboutData.addLicense(KAboutLicense::GPL_V3);
120 aboutData.setShortDescription(tr("A modern, distributed IRC client"));
121 aboutData.setProgramLogo(QVariant::fromValue(QImage(":/pics/quassel-logo.png")));
122 aboutData.setBugAddress("https://bugs.quassel-irc.org/projects/quassel-irc/issues/new");
123 aboutData.setOrganizationDomain(Quassel::buildInfo().organizationDomain.toUtf8());
125 for (const auto& person : authors()) {
126 aboutData.addAuthor(person.prettyName(), person.task(), person.emailAddress());
129 for (const auto& person : credits()) {
130 aboutData.addCredit(person.prettyName(), person.task(), person.emailAddress());
138 /**************************************************************************************************/
141 * NOTE: The list of contributors was retrieved from the Git history, but sometimes things fall
142 * through the cracks... especially for translations, we don't have an easy way to track
143 * contributors' names.
144 * If you find wrong data for yourself, want your nickname and/or mail addresses added or
145 * removed, or feel left out or unfairly credited, please don't hesitate to let us know! We
146 * do want to credit everyone who has contributed to Quassel development.
149 void AboutData::setQuasselPersons(AboutData* aboutData)
151 aboutData->addAuthors({
152 {"Manuel Nickschas", "Sputnick", tr("Project founder, lead developer"), "sputnick@quassel-irc.org"},
153 {"Marcus Eggenberger", "EgS", tr("Project motivator, lead developer"), "egs@quassel-irc.org"},
154 {"Alexander von Renteln", "phon", tr("Former lead developer"), "phon@quassel-irc.org"},
155 {"Daniel Albers", "al", tr("Master of Translation, many fixes and enhancements, Travis support")},
156 {"Sebastian Goth", "seezer", tr("Many features, fixes and improvements")},
157 {"Bas Pape", "Tucos", tr("Many fixes and improvements, bug and patch triaging, community support")},
158 {"Shane Synan", "digitalcircuit", tr("IRCv3 support, documentation, many other improvements, testing, outstanding PRs")},
159 {"Janne Koschinski", "justJanne", tr("Quasseldroid, architecture, (mobile) performance, many other improvements and fixes, testing")},
162 aboutData->addCredits(
163 {{"A. V. Lukyanov", "", tr("OSX UI improvements")},
164 {"Adam Harwood", "2kah", tr("Chatview improvements")},
165 {"Adam Tulinius", "adamt", tr("Early beta tester and bughunter, Danish translation"), "", QLocale::Danish},
166 {"Adolfo Jayme Barrientos", "", tr("Spanish translation"), "", QLocale::Spanish},
167 {"Adriaan de Groot", "", tr("Build system fixes")},
168 {"Alex Ingram", "", tr("Database performance improvements")},
169 {"Alexander Stein", "", tr("Tray icon fix")},
170 {"Alf Gaida", "agaida", tr("Language improvements")},
171 {"Allan Jude", "", tr("Documentation improvements")},
172 {"André Marcelo Alvarenga", "", tr("Brazilian translation"), "", QLocale::Portuguese},
173 {"Andrej Mernik", "", tr("Slovenian translation"), "", QLocale::Slovenian},
174 {"Andrew Brown", "", tr("Fixes")},
175 {"Arthur Țițeică", "roentgen", tr("Romanian translation"), "", QLocale::Romanian},
176 {"A S Alam", "", tr("Punjabi translation"), "", QLocale::Punjabi},
177 {"Atte Virtanen", "", tr("Finnish translation"), "", QLocale::Finnish},
178 {"Aurélien Gâteau", "agateau", tr("Message indicator support")},
179 {"Awad Mackie", "firesock", tr("Chatview improvements")},
180 {"Armin K", "", tr("Build system fix")},
181 {"", "Ayonix", tr("Build system fix")},
182 {"Benjamin Zeller", "zbenjamin", tr("Windows build system fixes")},
183 {"Ben Rosser", "", tr("AppData metadata, LDAP support")},
184 {"Bernhard Scheirle", "", tr("Nicer tooltips, spell check and other improvements")},
185 {"Bruno Brigras", "", tr("Crash fixes")},
186 {"Bruno Patri", "", tr("French translation"), "", QLocale::French},
187 {"Cédric Valmary", "", tr("Occitan translation"), "", QLocale::Occitan},
188 {"Celeste Paul", "seele", tr("Usability review")},
189 {"Chris Fuenty", "stitch", tr("SASL support")},
190 {"Chris Holland", "Shade / Zren", tr("Various improvements")},
191 {"Chris Le Sueur", "Fish-Face", tr("Various fixes and improvements")},
192 {"Chris Moeller", "kode54", tr("Various fixes and improvements")},
193 {"Christian Schwarz", "", tr("Settings fixes")},
194 {"", "Condex", tr("Galician translation"), "", QLocale::Galician},
195 {"", "cordata", tr("Esperanto translation"), "", QLocale::Esperanto},
196 {"Daniel E. Moctezuma", "", tr("Japanese translation"), "", QLocale::Japanese},
197 {"Daniel Meltzer", "hydrogen", tr("Various fixes and improvements")},
198 {"Daniel Pielmeier", "billie", tr("Gentoo maintainer")},
199 {"Daniel Schaal", "", tr("Certificate handling improvements")},
200 {"Daniel Silverstone", "", tr("Fixes")},
201 {"Daniel Steinmetz", "son", tr("Early beta tester and bughunter (on Vista™!)")},
202 {"David Planella", "", tr("Translation system fixes")},
203 {"David Roden", "Bombe", tr("Fixes")},
204 {"David Sansome", "", tr("OSX Notification Center support")},
205 {"Demiray Muhterem", "", tr("Turkish translation"), "", QLocale::Turkish},
206 {"Deniz Türkoglu", "", tr("Mac fixes")},
207 {"Dennis Schridde", "devurandom", tr("D-Bus notifications")},
208 {"", "derpella", tr("Polish translation"), "", QLocale::Polish},
209 {"Diego Pettenò", "Flameeyes", tr("Build system improvements")},
210 {"Dirk Rettschlag", "MarcLandis", tr("Formatting support and other input line improvements, many other fixes")},
211 {"", "Dorian", tr("French translation"), "", QLocale::French},
212 {"Drew Patridge", "LinuxDolt", tr("BluesTheme stylesheet")},
213 {"Edward Hades", "", tr("Russian translation"), "", QLocale::Russian},
214 {"Fabiano Francesconi", "elbryan", tr("Italian translation"), "", QLocale::Italian},
215 {"Felix Geyer", "debfx", tr("Certificate handling improvements")},
216 {"Felix Kaechele", "", tr("German translation"), "", QLocale::German},
217 {"Florent Castelli", "", tr("Sanitize topic handling, twitch.tv support")},
218 {"Frederik M.J. Vestre", "freqmod", tr("Norwegian translation"), "", QLocale::Norwegian},
219 {"Gábor Németh", "ELITE_x", tr("Hungarian translation"), "", QLocale::Hungarian},
220 {"Gryllida A", "gry", tr("IRC parser improvements")},
221 {"György Balló", "", tr("Fixes")},
222 {"H. İbrahim Güngör", "igungor", tr("Turkish translation"), "", QLocale::Turkish},
223 {"Hannah von Reth", "TheOneRing", tr("Windows build support and Appveyor maintenance, snorenotify backend")},
224 {"Harald Fernengel", "harryF", tr("Initial Qt5 support")},
225 {"Harald Sitter", "apachelogger", tr("{Ku|U}buntu packager, motivator, promoter")},
226 {"Hendrik Leppkes", "nevcairiel", tr("Various features and improvements")},
227 {"Henning Rohlfs", "honk", tr("Various fixes")},
228 {"J-P Nurmi", "", tr("Various fixes")},
229 {"Jaak Ristioja", "", tr("Bugfixes")},
230 {"Jan Alexander Steffens", "heftig", tr("Fixes")},
231 {"Jaroslav Lichtblau", "", tr("Czech translation"), "", QLocale::Czech},
232 {"Jason Joyce", "", tr("Python improvements")},
233 {"Jason Lynch", "", tr("Bugfixes")},
234 {"Javier Llorente", "", tr("Proxy improvements, Spanish translation"), "", QLocale::Spanish},
235 {"Jens Arnold", "amiconn", tr("Postgres migration fixes")},
236 {"Jens True", "", tr("Danish translation"), "", QLocale::Danish},
237 {"Jerome Leclanche", "Adys", tr("Context menu fixes")},
238 {"Jesper Thomschütz", "", tr("Various fixes")},
239 {"Jiri Grönroos", "", tr("Finnish translation"), "", QLocale::Finnish},
240 {"Joe Hansen", "", tr("Danish translation"), "", QLocale::Danish},
241 {"Johannes Huber", "johu", tr("Many fixes and improvements, bug triaging")},
242 {"John Hand", "nox", tr("Original \"All-Seeing Eye\" logo")},
243 {"Jonas Heese", "Dante", tr("Project founder, various improvements")},
244 {"Jonathan Farnham", "", tr("Spanish translation"), "", QLocale::Spanish},
245 {"Joshua T Corbin", "tvakah", tr("Various fixes")},
246 {"Jovan Jojkić", "", tr("Serbian translation"), "", QLocale::Serbian},
247 {"Jure Repinc", "JLP", tr("Slovenian translation"), "", QLocale::Slovenian},
248 {"Jussi Schultink", "jussi01", tr("Tireless tester, {Ku|U}buntu tester and lobbyist, liters of delicious Finnish alcohol")},
249 {"K. Ernest Lee", "iFire", tr("Qt5 porting help, Travis CI setup")},
250 {"Kevin Funk", "KRF", tr("German translation"), "", QLocale::German},
251 {"Kimmo Huoman", "kipe", tr("Buffer merge improvements")},
252 {"Konstantin Bläsi", "", tr("Fixes")},
253 {"Kostas Koudaras", "", tr("Greek translation"), "", QLocale::Greek},
254 {"", "Larso", tr("Finnish translation"), "", QLocale::Finnish},
255 {"Lasse Liehu", "", tr("Finnish translation"), "", QLocale::Finnish},
256 {"Leo Franchi", "", tr("OSX improvements")},
257 {"Liudas Alisauskas", "", tr("Lithuanian translation"), "", QLocale::Lithuanian},
258 {"Luke Faraone", "", tr("Documentation fixes")},
259 {"Maia Kozheva", "", tr("Russian translation"), "", QLocale::Russian},
260 {"Manuel Hoffmann", "contradictioned", tr("German translation"), "", QLocale::German},
261 {"Marcin Jabrzyk", "", tr("Improvements")},
262 {"Marco Genise", "kaffeedoktor", tr("Ideas, hacking, initial motivation")},
263 {"Marco Paolone", "Quizzlo", tr("Italian translation"), "", QLocale::Italian},
264 {"Martin Mayer", "m4yer", tr("German translation"), "", QLocale::German},
265 {"Martin Sandsmark", "sandsmark", tr("Many fixes and improvements, Sonnet support, QuasselDroid")},
266 {"Matt Schatz", "genius3000", tr("Various fixes")},
267 {"Matthias Coy", "pennywise", tr("German translation"), "", QLocale::German},
268 {"Mattia Basaglia", "", tr("Fixes")},
269 {"Michael Groh", "brot", tr("German translation, fixes"), "", QLocale::German},
270 {"Michael Kedzierski", "ycros", tr("Mac fixes")},
271 {"Michael Marley", "mamarley", tr("Many fixes and improvements; Ubuntu PPAs")},
272 {"Miguel Anxo Bouzada", "", tr("Galician translation"), "", QLocale::Galician},
273 {"Miguel Revilla", "", tr("Spanish translation"), "", QLocale::Spanish},
274 {"Nuno Pinheiro", "", tr("Tons of Oxygen icons including the Quassel logo")},
275 {"Patrick Lauer", "bonsaikitten", tr("Gentoo maintainer")},
276 {"Paul Klumpp", "Haudrauf", tr("Initial design and main window layout")},
277 {"Pavel Volkovitskiy", "int", tr("Early beta tester and bughunter")},
278 {"Pedro Araujo", "", tr("Brazilian translation"), "", QLocale::Portuguese},
279 {"Per Nielsen", "", tr("Danish translation"), "", QLocale::Danish},
280 {"Pete Beardmore", "elbeardmorez", tr("Linewrap for input line")},
281 {"Petr Bena", "", tr("Performance improvements and cleanups")},
282 {"", "phuzion", tr("Various fixes")},
283 {"Pierre-Hugues Husson", "", tr("/print command")},
284 {"Pierre Schweitzer", "", tr("Performance improvements")},
285 {"Rafael Belmonte", "EagleScreen", tr("Spanish translation"), "", QLocale::Spanish},
286 {"Raju Devidas Vindane", "", tr("Hindi and Marathi translations"), "", QLocale::Hindi},
287 {"Ramanathan Sivagurunathan", "", tr("Bugfixes")},
288 {"Raul Salinas-Monteagudo", "", tr("Fixes")},
289 {"Regis Perrin", "ZRegis", tr("French translation"), "", QLocale::French},
290 {"Rolf Eike Beer", "DerDakon", tr("Build system improvements")},
291 {"Rolf Michael Bislin", "romibi", tr("Windows build support, automated OSX builds in Travis, various improvements")},
292 {"Roscoe van Wyk", "", tr("Bugfixes")},
293 {"Rüdiger Sonderfeld", "ruediger", tr("Emacs keybindings")},
294 {"Ryan Bales", "selabnayr", tr("Improvements")},
295 {"Sai Nane", "esainane", tr("Various fixes")},
296 {"", "salnx", tr("Highlight configuration improvements")},
297 {"Scott Kitterman", "ScottK", tr("Debian/Kubuntu packager, (packaging/build system) bughunter")},
298 {"Sebastian Meyer", "", tr("Bugfixes, German translation"), "", QLocale::German},
299 {"Sebastien Fricker", "", tr("Audio backend improvements")},
300 {"Sergiu Bivol", "", tr("Romanian translation"), "", QLocale::Romanian},
301 {"", "sfionov", tr("Russian translation"), "", QLocale::Russian},
302 {"Shengjing Zhu", "", tr("Chinese translation"), "", QLocale::Chinese},
303 {"Simon Philips", "", tr("Dutch translation"), "", QLocale::Dutch},
304 {"Sjors Gielen", "dazjorz", tr("Bugfixes")},
305 {"Stefanos Sofroniou", "", tr("Greek translation"), "", QLocale::Greek},
306 {"Stella Rouzi", "differentreality", tr("Greek translation"), "", QLocale::Greek},
307 {"Sungjin Kang", "", tr("Korean translation"), "", QLocale::Korean},
308 {"Sven Anderson", "", tr("Database performance improvements")},
309 {"Svetlana Tkachenko", "gry", tr("Alias improvements")},
310 {"Tae-Hoon Kwon", "", tr("Korean translation"), "", QLocale::Korean},
311 {"Terje Andersen", "tan", tr("Norwegian translation, documentation")},
312 {"Theo Chatzimichos", "tampakrap", tr("Greek translation"), "", QLocale::Greek},
313 {"Theofilos Intzoglou", "", tr("Greek translation"), "", QLocale::Greek},
314 {"Thomas Hogh", "Datafreak", tr("Former Windows builder")},
315 {"Thomas Müller", "", tr("Fixes, Debian packaging")},
316 {"Tim Schumacher", "xAFFE", tr("Fixes and feedback")},
317 {"Tinjo Kohen", "", tr("Esperanto translation"), "", QLocale::Esperanto},
318 {"Tobias Frei", "ToBeFree", tr("German translation"), "", QLocale::German},
319 {"Tomáš Chvátal", "scarabeus", tr("Czech translation"), "", QLocale::Czech},
320 {"Veeti Paananen", "", tr("Certificate handling improvements")},
321 {"Viktor Suprun", "", tr("Russian translation"), "", QLocale::Russian},
322 {"Vít Pelčák", "", tr("Czech translation"), "", QLocale::Czech},
323 {"Volkan Gezer", "", tr("Turkish translation"), "", QLocale::Turkish},
324 {"Weng Xuetian", "wengxt", tr("Build system fix")},
325 {"Willem Jan Palenstijn", "", tr("Fixes")},
326 {"Yaohan Chen", "hagabaka", tr("Network detection improvements")},
327 {"Yuri Chornoivan", "", tr("Ukrainian translation"), "", QLocale::Ukrainian},
328 {"Zé", "", tr("Portuguese translation"), "", QLocale::Portuguese},
329 {"", "zeugma", tr("Turkish translation"), "", QLocale::Turkish}});