/hedgewars-src-0.9.17/QTfrontend/ui/widget/about.cpp
C++ | 174 lines | 139 code | 16 blank | 19 comment | 4 complexity | bffe36af8b6f129f1f4a90521fbf68d2 MD5 | raw file
Possible License(s): GPL-2.0, BSD-3-Clause
- /*
- * Hedgewars, a free turn based strategy game
- * Copyright (c) 2006-2011 Andrey Korotaev <unC0Rr@gmail.com>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; version 2 of the License
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
- #include <QGridLayout>
- #include <QLabel>
- #include <QList>
- #include <QUrl>
- #include <QRegExp>
- #include "hwconsts.h"
- #include "SDLInteraction.h"
- #include "about.h"
- About::About(QWidget * parent) :
- QWidget(parent)
- {
- QGridLayout *mainLayout = new QGridLayout(this);
- QLabel *imageLabel = new QLabel;
- QImage image(":/res/Hedgehog.png");
- imageLabel->setPixmap(QPixmap::fromImage(image));
- imageLabel->setScaledContents(true);
- imageLabel->setMinimumWidth(2.8);
- imageLabel->setMaximumWidth(280);
- imageLabel->setMinimumHeight(30);
- imageLabel->setMaximumHeight(300);
- mainLayout->addWidget(imageLabel, 0, 0, 2, 1);
- QLabel *lbl1 = new QLabel(this);
- lbl1->setOpenExternalLinks(true);
- lbl1->setText(
- "<style type=\"text/css\">"
- "a { color: #ffcc00; }"
- // "a:hover { color: yellow; }"
- "</style>"
- "<div align=\"center\"><h1>Hedgewars</h1>"
- "<h3>" + QLabel::tr("Version") + " " + *cVersionString + "</h3>"
- "<p><a href=\"http://www.hedgewars.org/\">http://www.hedgewars.org/</a></p><br>" +
- QLabel::tr("This program is distributed under the GNU General Public License v2") +
- "</div>"
- );
- lbl1->setWordWrap(true);
- mainLayout->addWidget(lbl1, 0, 1);
- lbl2 = new QTextBrowser(this);
- lbl2->setOpenExternalLinks(true);
- lbl2->setText(
- "<style type=\"text/css\">"
- "a { color: #ffcc00; }"
- // "a:hover { color: yellow; }"
- "</style>" +
- QString("<h2>") +
- QLabel::tr("Developers:") +
- "</h2><p>"
- "Engine, frontend, net server: Andrey Korotaev <<a href=\"mailto:unC0Rr@gmail.com\">unC0Rr@gmail.com</a>><br>"
- "Many frontend improvements: Igor Ulyanov <<a href=\"mailto:disinbox@gmail.com\">disinbox@gmail.com</a>><br>"
- "Many engine and frontend improvements: Derek Pomery <<a href=\"mailto:nemo@m8y.org\">nemo@m8y.org</a>><br>"
- "Drill rocket, Ballgun, RC Plane weapons: Martin Boze <<a href=\"mailto:afffect@gmail.com\">afffect@gmail.com</a>><br>"
- "Mine number and time game settings: David A. Cuadrado <<a href=\"mailto:krawek@gmail.com\">krawek@gmail.com</a>><br>"
- "Frontend improvements: Martin Minarik <<a href=\"mailto:ttsmj@pokec.sk\">ttsmj@pokec.sk</a>><br>"
- "Frontend improvements: Kristian Lehmann <<a href=\"mailto:email@thexception.net\">email@thexception.net</a>><br>"
- "Mac OS X/iPhone port, OpenGL-ES conversion: Vittorio Giovara <<a href=\"mailto:vittorio.giovara@gmail.com\">vittorio.giovara@gmail.com</a>><br>"
- "Many engine and frontend improvements (and bugs): Richard Karolyi <<a href=\"mailto:sheepluva@" "ercatec.net\">sheepluva@" "ercatec.net</a>><br>"
- "Gamepad and Lua integration: Mario Liebisch <<a href=\"mailto:mario.liebisch@gmail.com\">mario.liebisch@gmail.com</a>><br>"
- "Many engine improvements and graphics: Carlos Vives <<a href=\"mailto:mail@carlosvives.es\">mail@carlosvives.es</a>><br>"
- "Maze maps: Henning Kühn <<a href=\"mailto:prg@cooco.de\">prg@cooco.de</a>><br>"
- "Engine and frontend improvements: Henrik Rostedt <<a href=\"mailto:henrik.rostedt@gmail.com\">henrik.rostedt@gmail.com</a>><br>"
- "Lua game modes and missions: John Lambert <<a href=\"mailto:redgrinner@gmail.com\">redgrinner@gmail.com</a>><br>"
- "Frontend improvements: Mayur Pawashe <<a href=\"mailto:zorgiepoo@gmail.com\">zorgiepoo@gmail.com</a>><br>"
- "Android port: Richard Deurwaarder <<a href=\"mailto:xeli@xelification.com\">xeli@xelification.com</a>><br>"
- "</p><h2>" +
- QLabel::tr("Art:") + "</h2>"
- + QString::fromUtf8(
- "<p>John Dum <<a href=\"mailto:fizzy@gmail.com\">fizzy@gmail.com</a>>"
- "<br>"
- "Joshua Frese <<a href=\"mailto:joshfrese@gmail.com\">joshfrese@gmail.com</a>>"
- "<br>"
- "Stanko Tadi? <<a href=\"mailto:stanko@mfhinc.net\">stanko@mfhinc.net</a>>"
- "<br>"
- "Julien Koesten <<a href=\"mailto:julienkoesten@aol.com\">julienkoesten@aol.com</a>>"
- "<br>"
- "Joshua O'Sullivan <<a href=\"mailto:coheedftw@hotmail.co.uk\">coheedftw@hotmail.co.uk</a>>"
- "<br>"
- "Nils Lück <<a href=\"mailto:nils.luck.design@gmail.com\">nils.luck.design@gmail.com</a>>"
- "<br>"
- "Guillaume Englert <<a href=\"mailto:genglert@hybird.org\">genglert@hybird.org</a>>"
- "<br>"
- "Hats: Trey Perry <<a href=\"mailto:tx.perry.j@gmail.com\">tx.perry.j@gmail.com</a>>"
- "</p><h2>") +
- QLabel::tr("Sounds:") + "</h2>"
- "Hedgehogs voice: Stephen Alexander <<a href=\"mailto:ArmagonNo1@gmail.com\">ArmagonNo1@gmail.com</a>>"
- "<br>"
- "John Dum <<a href=\"mailto:fizzy@gmail.com\">fizzy@gmail.com</a>>"
- "<br>"
- "Jonatan Nilsson <<a href=\"mailto:jonatanfan@gmail.com\">jonatanfan@gmail.com</a>>"
- "<br>"
- "Daniel Martin <<a href=\"mailto:elhombresinremedio@gmail.com\">elhombresinremedio@gmail.com</a>>"
- "</p><h2>" +
- QLabel::tr("Translations:") + "</h2><p>"
- + QString::fromUtf8(
- "Brazilian Portuguese: Romulo Fernandes Machado <<a href=\"mailto:abra185@gmail.com\">abra185@gmail.com</a>><br>"
- "Bulgarian: Svetoslav Stefanov<br>"
- "Czech: Petr ?ezá?ek <<a href=\"mailto:rezacek@gmail.com\">rezacek@gmail.com</a>><br>"
- "Chinese: Jie Luo <<a href=\"mailto:lililjlj@gmail.com\">lililjlj@gmail.com</a>><br>"
- "English: Andrey Korotaev <<a href=\"mailto:unC0Rr@gmail.com\">unC0Rr@gmail.com</a>><br>"
- "Finnish: Nina Kuisma <<a href=\"mailto:ninnnu@gmail.com\">ninnnu@gmail.com</a>><br>"
- "French: Antoine Turmel <<a href=\"mailto:geekshadow@gmail.com\">geekshadow@gmail.com</a>><br>"
- "German: Peter Hüwe <<a href=\"mailto:PeterHuewe@gmx.de\">PeterHuewe@gmx.de</a>>, Mario Liebisch <<a href=\"mailto:mario.liebisch@gmail.com\">mario.liebisch@gmail.com</a>>, Richard Karolyi <<a href=\"mailto:sheepluva@" "ercatec.net\">sheepluva@" "ercatec.net</a>><br>"
- "Greek: <<a href=\"mailto:talos_kriti@yahoo.gr\">talos_kriti@yahoo.gr</a>><br>"
- "Italian: Luca Bonora <<a href=\"mailto:bonora.luca@gmail.com\">bonora.luca@gmail.com</a>>, Marco Bresciani<br>"
- "Japanese: ADAM Etienne <<a href=\"mailto:etienne.adam@gmail.com\">etienne.adam@gmail.com</a>><br>"
- "Korean: Anthony Bellew <<a href=\"mailto:webmaster@anthonybellew.com\">webmaster@anthonybellew.com</a>><br>"
- "Lithuanian: Lukas Urbonas <<a href=\"mailto:lukasu08@gmail.com\">lukasu08@gmail.com</a>><br>"
- "Polish: Maciej Mrozi?ski <<a href=\"mailto:mynick2@o2.pl\">mynick2@o2.pl</a>>, Wojciech Latkowski <<a href=\"mailto:magik17l@gmail.com\">magik17l@gmail.com</a>>, Piotr Mitana, Maciej Górny<br>"
- "Portuguese: Fábio Canário <<a href=\"mailto:inufabie@gmail.com\">inufabie@gmail.com</a>><br>"
- "Russian: Andrey Korotaev <<a href=\"mailto:unC0Rr@gmail.com\">unC0Rr@gmail.com</a>><br>"
- "Slovak: Jose Riha<br>"
- "Spanish: Carlos Vives <<a href=\"mailto:mail@carlosvives.es\">mail@carlosvives.es</a>><br>"
- "Swedish: Niklas Grahn <<a href=\"mailto:raewolusjoon@yaoo.com\">raewolusjoon@yaoo.com</a>>, Henrik Rostedt <<a href=\"mailto:henrik.rostedt@gmail.com\">henrik.rostedt@gmail.com</a>><br>"
- "Ukrainian: Eugene V. Lyubimkin <<a href=\"mailto:jackyf.devel@gmail.com\">jackyf.devel@gmail.com</a>>, Igor Paliychuk <<a href=\"mailto:mansonigor@gmail.com\">mansonigor@gmail.com</a>>, Eugene Sakara <<a href=\"mailto:eresid@gmail.com\">eresid@gmail.com</a>>"
- "</p><h2>") +
- QLabel::tr("Special thanks:") + "</h2><p>"
- "Aleksey Andreev <<a href=\"mailto:blaknayabr@gmail.com\">blaknayabr@gmail.com</a>><br>"
- "Aleksander Rudalev <<a href=\"mailto:alexv@pomorsu.ru\">alexv@pomorsu.ru</a>><br>"
- "Natasha Korotaeva <<a href=\"mailto:layout@pisem.net\">layout@pisem.net</a>><br>"
- "Adam Higerd (aka ahigerd at FreeNode)"
- "</p>"
- );
- mainLayout->addWidget(lbl2, 1, 1);
- setAcceptDrops(true);
- }
- void About::dragEnterEvent(QDragEnterEvent * event)
- {
- if (event->mimeData()->hasUrls())
- {
- QList<QUrl> urls = event->mimeData()->urls();
- QString url = urls[0].toString();
- if (urls.count() == 1)
- if (url.contains(QRegExp("^file://.*\\.ogg$")))
- event->acceptProposedAction();
- }
- }
- void About::dropEvent(QDropEvent * event)
- {
- QString file =
- event->mimeData()->urls()[0].toString().remove(QRegExp("^file://"));
- SDLInteraction::instance().setMusicTrack(file);
- event->acceptProposedAction();
- }