2018-02-27 18:06:05 +01:00
/*
* Strawberry Music Player
* This file was part of Clementine .
* Copyright 2010 , David Sansome < me @ davidsansome . com >
2018-09-21 01:12:21 +02:00
* Copyright 2013 , Jonas Kvinge < jonas @ strawbs . net >
2018-02-27 18:06:05 +01:00
*
* Strawberry 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 , either version 3 of the License , or
* ( at your option ) any later version .
*
* Strawberry 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 Strawberry . If not , see < http : //www.gnu.org/licenses/>.
2018-08-09 18:39:44 +02:00
*
2018-02-27 18:06:05 +01:00
*/
# include "config.h"
# include <QCoreApplication>
2018-05-01 00:41:33 +02:00
# include <QWidget>
# include <QDialog>
# include <QDialogButtonBox>
# include <QString>
# include <QStringBuilder>
# include <QFlags>
# include <QFont>
# include <QLabel>
2018-02-27 18:06:05 +01:00
# include <QPushButton>
2018-05-01 00:41:33 +02:00
# include <QKeySequence>
# include "about.h"
# include "ui_about.h"
2018-02-27 18:06:05 +01:00
About : : About ( QWidget * parent ) : QDialog ( parent ) {
2018-09-14 23:58:58 +02:00
ui_ . setupUi ( this ) ;
setWindowFlags ( this - > windowFlags ( ) | Qt : : WindowStaysOnTopHint ) ;
strawberry_authors_ \
2018-02-27 18:06:05 +01:00
< < Person ( " Jonas Kvinge " , " jonas@strawbs.net " ) ;
2018-09-14 23:58:58 +02:00
2018-02-27 18:06:05 +01:00
clementine_authors_
< < Person ( " David Sansome " , " me@davidsansome.com " )
< < Person ( " John Maguire " , " john.maguire@gmail.com " )
< < Person ( QString : : fromUtf8 ( " Paweł Bara " ) , " keirangtp@gmail.com " )
< < Person ( " Arnaud Bienner " , " arnaud.bienner@gmail.com " ) ;
2018-09-14 23:58:58 +02:00
constributors_ \
2018-02-27 18:06:05 +01:00
< < Person ( " Mark Kretschmann " , " kretschmann@kde.org " )
< < Person ( " Max Howell " , " max.howell@methylblue.com " )
< < Person ( " Jakub Stachowski " , " qbast@go2.pl " )
< < Person ( " Paul Cifarelli " , " paul@cifarelli.net " )
< < Person ( " Felipe Rivera " , " liebremx@users.sourceforge.net " )
< < Person ( " Alexander Peitz " )
< < Person ( " Artur Rona " , " artur.rona@gmail.com " )
2018-07-20 02:07:47 +02:00
< < Person ( " Andreas Muttscheller " , " asfa194@gmail.com " )
< < Person ( " Mark Furneaux " , " mark@furneaux.ca " )
< < Person ( " Florian Bigard " , " florian.bigard@gmail.com " )
2018-07-20 02:28:42 +02:00
< < Person ( " Alex Bikadorov " , " wegwerf@abwesend.de " )
< < Person ( " Mattias Andersson " , " mandersson444@gmail.com " )
2018-07-20 02:07:47 +02:00
< < Person ( " Alan Briolat " , " alan.briolat@gmail.com " )
2018-07-20 02:28:42 +02:00
< < Person ( " Arun Narayanankutty " , " n.arun.lifescience@gmail.com " )
2018-07-20 02:07:47 +02:00
< < Person ( QString : : fromUtf8 ( " Bartłomiej Burdukiewicz " ) , " dev.strikeu@gmail.com " )
< < Person ( " Andre Siviero " , " altsiviero@gmail.com " )
< < Person ( " Santiago Gil " )
2018-10-19 19:13:24 +02:00
< < Person ( " Tyler Rhodes " , " tyler.s.rhodes@gmail.com " )
< < Person ( " Vikram Ambrose " , " ambroseworks@gmail.com " )
< < Person ( " David Guillen " , " david@davidgf.net " )
2018-12-02 16:12:10 +01:00
< < Person ( " Krzysztof Sobiecki " , " sobkas@gmail.com " )
< < Person ( " Valeriy Malov " , " jazzvoid@gmail.com " )
< < Person ( " Nick Lanham " , " nick@afternight.org " ) ;
2018-07-20 02:07:47 +02:00
2019-02-22 20:24:38 +01:00
QString Title ( tr ( " About Strawberry " ) ) ;
2018-10-02 00:38:52 +02:00
2018-02-27 18:06:05 +01:00
QFont title_font ;
title_font . setBold ( true ) ;
title_font . setPointSize ( title_font . pointSize ( ) + 4 ) ;
2018-09-14 23:58:58 +02:00
setWindowTitle ( Title ) ;
2018-02-27 18:06:05 +01:00
2018-09-14 23:58:58 +02:00
ui_ . label_title - > setFont ( title_font ) ;
ui_ . label_title - > setText ( Title ) ;
2018-02-27 18:06:05 +01:00
2018-09-14 23:58:58 +02:00
ui_ . label_text - > setText ( MainHtml ( ) ) ;
ui_ . text_constributors - > setText ( ContributorsHtml ( ) ) ;
2019-01-09 22:06:15 +01:00
ui_ . text_constributors - > updateGeometry ( ) ;
updateGeometry ( ) ;
2018-02-27 18:06:05 +01:00
2018-09-14 23:58:58 +02:00
ui_ . buttonBox - > button ( QDialogButtonBox : : Close ) - > setShortcut ( QKeySequence : : Close ) ;
2018-02-27 18:06:05 +01:00
2018-09-14 23:58:58 +02:00
}
2018-04-06 22:13:11 +02:00
2018-09-14 23:58:58 +02:00
QString About : : MainHtml ( ) const {
QString ret ;
2019-02-22 20:24:38 +01:00
ret = tr ( " <p>Version %1</p> " ) . arg ( QCoreApplication : : applicationVersion ( ) ) ;
ret + = " <p> " ;
ret + = tr ( " Strawberry is a audio player and music collection organizer.<br /> " ) ;
ret + = tr ( " It is a fork of Clementine released in 2018 aimed at music collectors, audio enthusiasts and audiophiles.<br /> " ) ;
ret + = tr ( " The name is inspired by the band Strawbs. It's based on a heavily modified version of Clementine created in 2012-2013. It's written in C++ and Qt 5. " ) ;
ret + = " </p> " ;
ret + = " <p> " ;
ret + = tr ( " Strawberry is free software: you can redistribute it and/or modify<br /> " ) ;
ret + = tr ( " it under the terms of the GNU General Public License as published by<br /> " ) ;
ret + = tr ( " the Free Software Foundation, either version 3 of the License, or<br /> " ) ;
ret + = tr ( " (at your option) any later version.<br /> " ) ;
ret + = " <br /> " ;
ret + = tr ( " Strawberry is distributed in the hope that it will be useful,<br /> " ) ;
ret + = tr ( " but WITHOUT ANY WARRANTY; without even the implied warranty of<br /> " ) ;
ret + = tr ( " MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the<br /> " ) ;
ret + = tr ( " GNU General Public License for more details.<br /> " ) ;
ret + = " <br /> " ;
ret + = tr ( " You should have received a copy of the GNU General Public License<br /> " ) ;
ret + = tr ( " along with Strawberry. If not, see <a href= \" http://www.gnu.org/licenses/ \" >http://www.gnu.org/licenses/</a>. " ) ;
ret + = " </p> " ;
2018-04-06 22:13:11 +02:00
2018-09-14 23:58:58 +02:00
return ret ;
2018-04-06 22:13:11 +02:00
2018-09-14 23:58:58 +02:00
}
2018-02-27 18:06:05 +01:00
2018-09-14 23:58:58 +02:00
QString About : : ContributorsHtml ( ) const {
2018-02-27 18:06:05 +01:00
2018-09-14 23:58:58 +02:00
QString ret ;
2018-02-27 18:06:05 +01:00
2019-02-22 20:24:38 +01:00
ret + = tr ( " <p><b>Strawberry Authors</b> " ) ;
2018-09-14 23:58:58 +02:00
for ( const Person & person : strawberry_authors_ ) {
ret + = " <br /> " + PersonToHtml ( person ) ;
2018-02-27 18:06:05 +01:00
}
2019-02-22 20:24:38 +01:00
ret + = " </p> " ;
2018-02-27 18:06:05 +01:00
2019-02-22 20:24:38 +01:00
ret + = tr ( " <p><b>Clementine Authors</b> " ) ;
2018-02-27 18:06:05 +01:00
for ( const Person & person : clementine_authors_ ) {
2018-09-14 23:58:58 +02:00
ret + = " <br /> " + PersonToHtml ( person ) ;
2018-02-27 18:06:05 +01:00
}
2019-02-22 20:24:38 +01:00
ret + = " </p> " ;
2018-02-27 18:06:05 +01:00
2019-02-22 20:24:38 +01:00
ret + = tr ( " <p><b>Clementine Contributors</b> " ) ;
2018-09-14 23:58:58 +02:00
for ( const Person & person : constributors_ ) {
ret + = " <br /> " + PersonToHtml ( person ) ;
2018-02-27 18:06:05 +01:00
}
2019-02-22 20:24:38 +01:00
ret + = " </p> " ;
2018-02-27 18:06:05 +01:00
2019-02-22 20:24:38 +01:00
ret + = tr ( " <p>Thanks to all the Amarok and Clementine contributors.</p> " ) ;
2018-02-27 18:06:05 +01:00
return ret ;
}
2018-09-14 23:58:58 +02:00
QString About : : PersonToHtml ( const Person & person ) const {
2018-02-27 18:06:05 +01:00
if ( person . email . isNull ( ) )
return person . name ;
else
return QString ( " %1 <<a href= \" mailto:%2 \" >%3</a>> " ) . arg ( person . name , person . email , person . email ) ;
}