1/*
2 * This file Copyright (C) Mnemosyne LLC
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2
6 * as published by the Free Software Foundation.
7 *
8 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
9 *
10 * $Id: about.cc 12697 2011-08-20 05:19:27Z jordan $
11 */
12
13#include <QDialogButtonBox>
14#include <QFont>
15#include <QLabel>
16#include <QMessageBox>
17#include <QPixmap>
18#include <QPushButton>
19#include <QString>
20#include <QTextEdit>
21#include <QVBoxLayout>
22#include <QWidget>
23
24#include <libtransmission/transmission.h>
25#include <libtransmission/version.h>
26
27#include "about.h"
28#include "hig.h"
29#include "license.h"
30
31AboutDialog :: AboutDialog( QWidget * parent ):
32    QDialog( parent, Qt::Dialog ),
33    myLicenseDialog( new LicenseDialog( this ) )
34{
35    setWindowTitle( tr( "About Transmission" ) );
36    QLabel * l;
37    QVBoxLayout * v = new QVBoxLayout( this );
38
39    l = new QLabel;
40    l->setPixmap( QPixmap( QString::fromAscii( ":/icons/transmission-48.png" ) ) );
41    l->setAlignment( Qt::AlignCenter );
42    v->addWidget( l );
43
44    QFont f( font( ) );
45    f.setWeight( QFont::Bold );
46    f.setPointSize( int( f.pointSize( ) * 1.2 ) );
47    l = new QLabel( tr( "<big>Transmission %1</big>" ).arg( QString::fromAscii( LONG_VERSION_STRING ) ) );
48    l->setAlignment( Qt::AlignCenter );
49    l->setFont( f );
50    l->setMargin( 8 );
51    v->addWidget( l );
52
53    l = new QLabel( tr( "A fast and easy BitTorrent client" ) );
54    l->setStyleSheet( QString::fromAscii( "text-align: center" ) );
55    l->setAlignment( Qt::AlignCenter );
56    v->addWidget( l );
57
58    l = new QLabel( tr( "Copyright (c) The Transmission Project" ) );
59    l->setAlignment( Qt::AlignCenter );
60    v->addWidget( l );
61
62    l = new QLabel( QString::fromAscii( "<a href=\"http://www.transmissionbt.com/\">http://www.transmissionbt.com/</a>" ) );
63    l->setOpenExternalLinks( true );
64    l->setAlignment( Qt::AlignCenter );
65    v->addWidget( l );
66
67    v->addSpacing( HIG::PAD_BIG );
68
69    QPushButton * b;
70    QDialogButtonBox * box = new QDialogButtonBox;
71
72    b = new QPushButton( tr( "C&redits" ), this );
73    box->addButton( b, QDialogButtonBox::ActionRole );
74    connect( b, SIGNAL(clicked()), this, SLOT(showCredits()) );
75
76    b = new QPushButton( tr( "&License" ), this );
77    box->addButton( b, QDialogButtonBox::ActionRole );
78    connect( b, SIGNAL(clicked()), myLicenseDialog, SLOT(show()) );
79
80    box->addButton( QDialogButtonBox::Close );
81    box->setCenterButtons( true );
82    v->addWidget( box );
83    connect( box, SIGNAL(rejected()), this, SLOT(hide()) );
84}
85
86void
87AboutDialog :: showCredits( )
88{
89    QMessageBox::about( this, tr( "Credits" ),
90        QString::fromAscii( "Jordan Lee (Backend; Daemon; GTK+; Qt)\n"
91                            "Michell Livingston (Backend; OS X)\n"
92                            "Kevin Glowacz (Web client)" ) );
93}
94
95