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 {"A. Wilcox", "", tr("Fixes")},
165 {"Adam Harwood", "2kah", tr("Chatview improvements")},
166 {"Adam Tulinius", "adamt", tr("Early beta tester and bughunter, Danish translation"), "", QLocale::Danish},
167 {"Adolfo Jayme Barrientos", "", tr("Spanish translation"), "", QLocale::Spanish},
168 {"Adriaan de Groot", "", tr("Build system fixes")},
169 {"Alex Ingram", "", tr("Database performance improvements")},
170 {"Alex McGrath", "", tr("UI improvements")},
171 {"Alexander Stein", "", tr("Tray icon fix")},
172 {"Alf Gaida", "agaida", tr("Language improvements")},
173 {"Allan Jude", "", tr("Documentation improvements")},
174 {"", "alturiak", tr("Various improvements")},
175 {"André Marcelo Alvarenga", "", tr("Brazilian translation"), "", QLocale::Portuguese},
176 {"Andrej Mernik", "", tr("Slovenian translation"), "", QLocale::Slovenian},
177 {"Andrew Brown", "", tr("Fixes")},
178 {"Arthur Țițeică", "roentgen", tr("Romanian translation"), "", QLocale::Romanian},
179 {"A S Alam", "", tr("Punjabi translation"), "", QLocale::Punjabi},
180 {"Atte Virtanen", "", tr("Finnish translation"), "", QLocale::Finnish},
181 {"Aurélien Gâteau", "agateau", tr("Message indicator support")},
182 {"Awad Mackie", "firesock", tr("Chatview improvements")},
183 {"Armin K", "", tr("Build system fix")},
184 {"", "Ayonix", tr("Build system fix")},
185 {"Benjamin Zeller", "zbenjamin", tr("Windows build system fixes")},
186 {"Ben Rosser", "", tr("AppData metadata, LDAP support")},
187 {"Bernhard Scheirle", "", tr("Nicer tooltips, spell check and other improvements")},
188 {"Bruno Brigras", "", tr("Crash fixes")},
189 {"Bruno Patri", "", tr("French translation"), "", QLocale::French},
190 {"Cédric Valmary", "", tr("Occitan translation"), "", QLocale::Occitan},
191 {"Celeste Paul", "seele", tr("Usability review")},
192 {"Chris Fuenty", "stitch", tr("SASL support")},
193 {"Chris Holland", "Shade / Zren", tr("Various improvements")},
194 {"Chris Le Sueur", "Fish-Face", tr("Various fixes and improvements")},
195 {"Chris Moeller", "kode54", tr("Various fixes and improvements")},
196 {"Christian Schwarz", "", tr("Settings fixes")},
197 {"", "Condex", tr("Galician translation"), "", QLocale::Galician},
198 {"", "cordata", tr("Esperanto translation"), "", QLocale::Esperanto},
199 {"Daniel E. Moctezuma", "", tr("Japanese translation"), "", QLocale::Japanese},
200 {"Daniel Meltzer", "hydrogen", tr("Various fixes and improvements")},
201 {"Daniel Pielmeier", "billie", tr("Gentoo maintainer")},
202 {"Daniel Schaal", "", tr("Certificate handling improvements")},
203 {"Daniel Silverstone", "", tr("Fixes")},
204 {"Daniel Steinmetz", "son", tr("Early beta tester and bughunter (on Vista™!)")},
205 {"David Planella", "", tr("Translation system fixes")},
206 {"David Roden", "Bombe", tr("Fixes")},
207 {"David Sansome", "", tr("OSX Notification Center support")},
208 {"Demiray Muhterem", "", tr("Turkish translation"), "", QLocale::Turkish},
209 {"Deniz Türkoglu", "", tr("Mac fixes")},
210 {"Dennis Schridde", "devurandom", tr("D-Bus notifications")},
211 {"", "derpella", tr("Polish translation"), "", QLocale::Polish},
212 {"Diego Pettenò", "Flameeyes", tr("Build system improvements")},
213 {"Dirk Rettschlag", "MarcLandis", tr("Formatting support and other input line improvements, many other fixes")},
214 {"", "Dorian", tr("French translation"), "", QLocale::French},
215 {"Drew Patridge", "LinuxDolt", tr("BluesTheme stylesheet")},
216 {"Edward Hades", "", tr("Russian translation"), "", QLocale::Russian},
217 {"Fabiano Francesconi", "elbryan", tr("Italian translation"), "", QLocale::Italian},
218 {"Felix Geyer", "debfx", tr("Certificate handling improvements")},
219 {"Felix Kaechele", "", tr("German translation"), "", QLocale::German},
220 {"Florent Castelli", "", tr("Sanitize topic handling, twitch.tv support")},
221 {"Frederik M.J. Vestre", "freqmod", tr("Norwegian translation"), "", QLocale::Norwegian},
222 {"Gábor Németh", "ELITE_x", tr("Hungarian translation"), "", QLocale::Hungarian},
223 {"Gryllida A", "gry", tr("IRC parser improvements")},
224 {"György Balló", "", tr("Fixes")},
225 {"H. İbrahim Güngör", "igungor", tr("Turkish translation"), "", QLocale::Turkish},
226 {"Hannah von Reth", "TheOneRing", tr("Windows build support and Appveyor maintenance, snorenotify backend")},
227 {"Harald Fernengel", "harryF", tr("Initial Qt5 support")},
228 {"Harald Sitter", "apachelogger", tr("{Ku|U}buntu packager, motivator, promoter")},
229 {"Hendrik Leppkes", "nevcairiel", tr("Various features and improvements")},
230 {"Henning Rohlfs", "honk", tr("Various fixes")},
231 {"J-P Nurmi", "", tr("Various fixes")},
232 {"Jaak Ristioja", "", tr("Bugfixes")},
233 {"Jan Alexander Steffens", "heftig", tr("Fixes")},
234 {"Jaroslav Lichtblau", "", tr("Czech translation"), "", QLocale::Czech},
235 {"Jason Joyce", "", tr("Python improvements")},
236 {"Jason Lynch", "", tr("Bugfixes")},
237 {"Javier Llorente", "", tr("Proxy improvements, Spanish translation"), "", QLocale::Spanish},
238 {"Jay Colson", "", tr("Postgres improvements")},
239 {"Jens Arnold", "amiconn", tr("Postgres migration fixes")},
240 {"Jens True", "", tr("Danish translation"), "", QLocale::Danish},
241 {"Jerome Leclanche", "Adys", tr("Context menu fixes")},
242 {"Jesper Thomschütz", "", tr("Various fixes")},
243 {"Jiri Grönroos", "", tr("Finnish translation"), "", QLocale::Finnish},
244 {"Joe Hansen", "", tr("Danish translation"), "", QLocale::Danish},
245 {"Johannes Huber", "johu", tr("Many fixes and improvements, bug triaging")},
246 {"John Hand", "nox", tr("Original \"All-Seeing Eye\" logo")},
247 {"Jonas Heese", "Dante", tr("Project founder, various improvements")},
248 {"Jonathan Farnham", "", tr("Spanish translation"), "", QLocale::Spanish},
249 {"Joshua T Corbin", "tvakah", tr("Various fixes")},
250 {"Jovan Jojkić", "", tr("Serbian translation"), "", QLocale::Serbian},
251 {"Jure Repinc", "JLP", tr("Slovenian translation"), "", QLocale::Slovenian},
252 {"Jussi Schultink", "jussi01", tr("Tireless tester, {Ku|U}buntu tester and lobbyist, liters of delicious Finnish alcohol")},
253 {"K. Ernest Lee", "iFire", tr("Qt5 porting help, Travis CI setup")},
254 {"Kai Uwe Broulik", "", tr("Various fixes")},
255 {"Kevin Funk", "KRF", tr("German translation"), "", QLocale::German},
256 {"Kimmo Huoman", "kipe", tr("Buffer merge improvements")},
257 {"Konstantin Bläsi", "", tr("Fixes")},
258 {"Kostas Koudaras", "", tr("Greek translation"), "", QLocale::Greek},
259 {"", "Larso", tr("Finnish translation"), "", QLocale::Finnish},
260 {"Lasse Liehu", "", tr("Finnish translation"), "", QLocale::Finnish},
261 {"Lee Starnes", "", tr("Improvements")},
262 {"Leo Franchi", "", tr("OSX improvements")},
263 {"Liudas Alisauskas", "", tr("Lithuanian translation"), "", QLocale::Lithuanian},
264 {"Luke Faraone", "", tr("Documentation fixes")},
265 {"Maia Kozheva", "", tr("Russian translation"), "", QLocale::Russian},
266 {"Manuel Hoffmann", "contradictioned", tr("German translation"), "", QLocale::German},
267 {"Marcin Jabrzyk", "", tr("Improvements")},
268 {"Marco Genise", "kaffeedoktor", tr("Ideas, hacking, initial motivation")},
269 {"Marco Paolone", "Quizzlo", tr("Italian translation"), "", QLocale::Italian},
270 {"Martin Mayer", "m4yer", tr("German translation"), "", QLocale::German},
271 {"Martin Sandsmark", "sandsmark", tr("Many fixes and improvements, Sonnet support, QuasselDroid")},
272 {"Matt Schatz", "genius3000", tr("Various fixes")},
273 {"Matthias Coy", "pennywise", tr("German translation"), "", QLocale::German},
274 {"Mattia Basaglia", "", tr("Fixes")},
275 {"Michael Groh", "brot", tr("German translation, fixes"), "", QLocale::German},
276 {"Michael Kedzierski", "ycros", tr("Mac fixes")},
277 {"Michael Marley", "mamarley", tr("Many fixes and improvements; Ubuntu PPAs")},
278 {"Miguel Anxo Bouzada", "", tr("Galician translation"), "", QLocale::Galician},
279 {"Miguel Revilla", "", tr("Spanish translation"), "", QLocale::Spanish},
280 {"Nuno Pinheiro", "", tr("Tons of Oxygen icons including the Quassel logo")},
281 {"Patrick Lauer", "bonsaikitten", tr("Gentoo maintainer")},
282 {"Paul Klumpp", "Haudrauf", tr("Initial design and main window layout")},
283 {"Pavel Volkovitskiy", "int", tr("Early beta tester and bughunter")},
284 {"Pedro Araujo", "", tr("Brazilian translation"), "", QLocale::Portuguese},
285 {"Per Nielsen", "", tr("Danish translation"), "", QLocale::Danish},
286 {"Pete Beardmore", "elbeardmorez", tr("Linewrap for input line")},
287 {"Petr Bena", "", tr("Performance improvements and cleanups")},
288 {"", "phuzion", tr("Various fixes")},
289 {"Pierre-Hugues Husson", "", tr("/print command")},
290 {"Pierre Schweitzer", "", tr("Performance improvements")},
291 {"Rafael Belmonte", "EagleScreen", tr("Spanish translation"), "", QLocale::Spanish},
292 {"Rafael Kitover", "", tr("CMake fixes")},
293 {"Raju Devidas Vindane", "", tr("Hindi and Marathi translations"), "", QLocale::Hindi},
294 {"Ramanathan Sivagurunathan", "", tr("Bugfixes")},
295 {"Raul Salinas-Monteagudo", "", tr("Fixes")},
296 {"Regis Perrin", "ZRegis", tr("French translation"), "", QLocale::French},
297 {"Rolf Eike Beer", "DerDakon", tr("Build system improvements")},
298 {"Rolf Michael Bislin", "romibi", tr("Windows build support, automated OSX builds in Travis, various improvements")},
299 {"Roscoe van Wyk", "", tr("Bugfixes")},
300 {"Rüdiger Sonderfeld", "ruediger", tr("Emacs keybindings")},
301 {"Ryan Bales", "selabnayr", tr("Improvements")},
302 {"Sai Nane", "esainane", tr("Various fixes")},
303 {"", "salnx", tr("Highlight configuration improvements")},
304 {"Scott Kitterman", "ScottK", tr("Debian/Kubuntu packager, (packaging/build system) bughunter")},
305 {"Sebastian Meyer", "", tr("Bugfixes, German translation"), "", QLocale::German},
306 {"Sebastien Fricker", "", tr("Audio backend improvements")},
307 {"Sergiu Bivol", "", tr("Romanian translation"), "", QLocale::Romanian},
308 {"", "sfionov", tr("Russian translation"), "", QLocale::Russian},
309 {"Shengjing Zhu", "", tr("Chinese translation"), "", QLocale::Chinese},
310 {"Simon Philips", "", tr("Dutch translation"), "", QLocale::Dutch},
311 {"Sjors Gielen", "dazjorz", tr("Bugfixes")},
312 {"Stefanos Sofroniou", "", tr("Greek translation"), "", QLocale::Greek},
313 {"Stella Rouzi", "differentreality", tr("Greek translation"), "", QLocale::Greek},
314 {"Steve Groesz", "wolfpackmars2", tr("Documentation improvements")},
315 {"Sungjin Kang", "", tr("Korean translation"), "", QLocale::Korean},
316 {"Sven Anderson", "", tr("Database performance improvements")},
317 {"Svetlana Tkachenko", "gry", tr("Alias improvements")},
318 {"Tae-Hoon Kwon", "", tr("Korean translation"), "", QLocale::Korean},
319 {"Terje Andersen", "tan", tr("Norwegian translation, documentation")},
320 {"Theo Chatzimichos", "tampakrap", tr("Greek translation"), "", QLocale::Greek},
321 {"Theofilos Intzoglou", "", tr("Greek translation"), "", QLocale::Greek},
322 {"Thomas Hogh", "Datafreak", tr("Former Windows builder")},
323 {"Thomas Müller", "", tr("Fixes, Debian packaging")},
324 {"Tim Schumacher", "xAFFE", tr("Fixes and feedback")},
325 {"Tinjo Kohen", "", tr("Esperanto translation"), "", QLocale::Esperanto},
326 {"Tobias Frei", "ToBeFree", tr("German translation"), "", QLocale::German},
327 {"Tomáš Chvátal", "scarabeus", tr("Czech translation"), "", QLocale::Czech},
328 {"Veeti Paananen", "", tr("Certificate handling improvements")},
329 {"Viktor Suprun", "", tr("Russian translation"), "", QLocale::Russian},
330 {"Vít Pelčák", "", tr("Czech translation"), "", QLocale::Czech},
331 {"Vitor Luis", "PeGaSuS-Coder", tr("Improvements")},
332 {"Volkan Gezer", "", tr("Turkish translation"), "", QLocale::Turkish},
333 {"Weng Xuetian", "wengxt", tr("Build system fix")},
334 {"Willem Jan Palenstijn", "", tr("Fixes")},
335 {"Wolfgang Müller", "wylfen", tr("Logger fixes")},
336 {"Yaohan Chen", "hagabaka", tr("Network detection improvements")},
337 {"Yuri Chornoivan", "", tr("Ukrainian translation"), "", QLocale::Ukrainian},
338 {"Zé", "", tr("Portuguese translation"), "", QLocale::Portuguese},
339 {"", "zeugma", tr("Turkish translation"), "", QLocale::Turkish}});