]> git.sesse.net Git - vlc/blob - modules/gui/qt4/dialogs/help.cpp
Qt4-help. Small modifications on the size.
[vlc] / modules / gui / qt4 / dialogs / help.cpp
1 /*****************************************************************************
2  * Help.cpp : Help and About dialogs
3  ****************************************************************************
4  * Copyright (C) 2007 the VideoLAN team
5  * $Id$
6  *
7  * Authors: Jean-Baptiste Kempf <jb (at) videolan.org>
8  *
9  * This program is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License as published by
11  * the Free Software Foundation; either version 2 of the License, or
12  * (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this program; if not, write to the Free Software
21  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
22  *****************************************************************************/
23
24 #include "dialogs/about.hpp"
25 #include "dialogs/help.hpp"
26
27 #include "dialogs_provider.hpp"
28 #include "util/qvlcframe.hpp"
29 #include "qt4.hpp"
30
31 #include <QTextBrowser>
32 #include <QTabWidget>
33 #include <QFile>
34 #include <QLabel>
35 #include <QString>
36
37 HelpDialog *HelpDialog::instance = NULL;
38
39 HelpDialog::HelpDialog( intf_thread_t *_p_intf) :  QVLCFrame( _p_intf )
40 {
41     setWindowTitle( qtr( "Help" ) );
42     resize( 600, 560 );
43
44     QGridLayout *layout = new QGridLayout( this );
45     QTextBrowser *helpBrowser = new QTextBrowser( this );
46     helpBrowser->setOpenExternalLinks( true );
47     helpBrowser->setHtml( _("<html><h2>Welcome to VLC media player help</h2><h3>Documentation</h3><p>You can find VLC documentation on VideoLAN's <a href=\"http://wiki.videolan.org\">wiki</a> website.</p> <p>If you are a newcomer to VLC media player, please read the<br><a href=\"http://wiki.videolan.org/Documentation:VLC_for_dummies\"><em>Introduction to VLC media player</em></a>.</p><p>You will find some information on how to use the player in the <br>\"<a href=\"http://wiki.videolan.org/Documentation:Play_HowTo\"><em>How to play files with VLC media player<em></a>\" document.</p> For all the saving, converting, transcoding, encoding, muxing and streaming tasks, you should find useful information in the <a href=\"http://wiki.videolan.org/Documentation:Streaming_HowTo\">Streaming Documentation</a>.</p><p>If you are unsure about terminology, please consult the <a href=\"http://wiki.videolan.org/Knowledge_Base\">knowledge base</a>.</p>  <p>To understand the main keyboard shortcuts, read the <a href=\"http://wiki.videolan.org/Hotkeys\">shortcuts</a> page.</p><h3>Help</h3><p>Before asking any question, please refer yourself to the <a href=\"http://wiki.videolan.org/Frequently_Asked_Questions\">FAQ</a>.</p><p>You might then get (and give) help on the <a href=\"http://forum.videolan.org\">Forums</a>, the <a href=\"http://www.videolan.org/vlc/lists.html\">mailing-lists</a> or our IRC channel ( <a href=\"http://krishna.videolan.org/cgi-bin/irc/irc.cgi\"><em>#videolan</em></a> on irc.freenode.net ).</p><h3>Contribute to the project</h3><p>You can help the VideoLAN project giving some of your time to help the community, to design skins, to translate the documentation, to test and to code. You can also give funds and material to help us. And of course, you can <b>promote</b> VLC media player.</p></html>") );
48     QPushButton *closeButton = new QPushButton( qtr( "&Close" ) );
49     closeButton->setDefault( true );
50
51     layout->addWidget( helpBrowser, 0, 0, 1, 0 );
52     layout->addWidget( closeButton, 1, 3 );
53
54     BUTTONACT( closeButton, close() );
55 }
56
57 HelpDialog::~HelpDialog()
58 {
59 }
60 void HelpDialog::close()
61 {
62     this->toggleVisible();
63 }
64
65 AboutDialog *AboutDialog::instance = NULL;
66
67 AboutDialog::AboutDialog( intf_thread_t *_p_intf) :  QVLCFrame( _p_intf )
68 {
69     setWindowTitle( qtr( "About" ) );
70     resize( 600, 500 );
71
72     QGridLayout *layout = new QGridLayout( this );
73     QTabWidget *tab = new QTabWidget( this );
74
75     QPushButton *closeButton = new QPushButton( qtr( "&Close" ) );
76     closeButton->setSizePolicy( QSizePolicy::Minimum, QSizePolicy::Minimum );
77     closeButton->setDefault( true );
78
79     QLabel *introduction = new QLabel(
80             qtr( "Information about VLC media player." ) );
81     QLabel *iconVLC = new QLabel;
82     iconVLC->setPixmap( QPixmap( ":/vlc48.png" ) );
83     layout->addWidget( iconVLC, 0, 0, 1, 1 );
84     layout->addWidget( introduction, 0, 1, 1, 7 );
85     layout->addWidget( tab, 1, 0, 1, 8 );
86     layout->addWidget( closeButton, 2, 6, 1, 2 );
87
88     /* Main Introduction */
89     QWidget *infoWidget = new QWidget( this );
90     QHBoxLayout *infoLayout = new QHBoxLayout( infoWidget );
91     QLabel *infoLabel = new QLabel( "VLC media player " PACKAGE_VERSION "\n\n"
92             "(c) 1996-2006 - the VideoLAN Team\n\n" +
93             qtr( "VLC media player is a free media player, made by the "
94                 "VideoLAN Team.\nIt is a standalone multimedia player, "
95                 "encoder and streamer, that can read from many supports "
96                 "(files, CDs, DVDs, networks, capture cards) and that works "
97                 "on many platforms.\n\n" )
98             + qtr( "You are using the new Qt4 Interface.\n" )
99             + qtr( "Compiled by " ) + qfu( VLC_CompileBy() )+ "@"
100             + qfu( VLC_CompileDomain() ) + ".\n"
101             + "Compiler: " + qfu( VLC_Compiler() ) +".\n"
102             + qtr( "Based on SVN revision: " ) + qfu( VLC_Changeset() )
103             + ".\n\n"
104             + qtr( "This program comes with NO WARRANTY, to the extent "
105                 "permitted by the law; read the distribution tab.\n\n" )
106             + "The VideoLAN team <videolan@videolan.org> \n"
107               "http://www.videolan.org/\n") ;
108     infoLabel->setWordWrap( infoLabel );
109
110     QLabel *iconVLC2 = new QLabel;
111     iconVLC2->setPixmap( QPixmap( ":/vlc128.png" ) );
112     infoLayout->addWidget( iconVLC2 );
113     infoLayout->addWidget( infoLabel );
114
115     /* GPL License */
116     QTextEdit *licenseEdit = new QTextEdit( this );
117 #ifdef WIN32
118     QFile *licenseFile = new QFile( "COPYING.txt" );
119     licenseFile->open( QIODevice::ReadOnly | QIODevice::Text );
120     licenseEdit->setText( licenseFile->readAll().data() );
121     licenseFile->close();
122 #else
123     char *psz_license = LICENCE;
124     licenseEdit->setText( qfu( psz_license ) );
125 #endif
126     licenseEdit->setReadOnly( true );
127
128     /* People who helped */
129     QWidget *thanksWidget = new QWidget( this );
130     QVBoxLayout *thanksLayout = new QVBoxLayout( thanksWidget );
131
132     QLabel *thanksLabel = new QLabel( qtr("We would like to thanks the whole "
133                 "community, the testers, our users and the following people "
134                 "(and the missing ones...) for their collaboration to "
135                 "provide the best software." ) );
136     thanksLabel->setWordWrap( true );
137     thanksLayout->addWidget( thanksLabel );
138     QTextEdit *thanksEdit = new QTextEdit( this );
139 #ifdef WIN32
140     QFile *thanksFile = new QFile( "THANKS.txt" );
141     thanksFile->open( QIODevice::ReadOnly | QIODevice::Text );
142     thanksEdit->setText( thanksFile->readAll().data() );
143     thanksFile->close();
144 #else
145     char *psz_thanks = THANKS;
146     thanksEdit->setText( qfu( psz_thanks ) );
147 #endif
148     thanksEdit->setReadOnly( true );
149     thanksLayout->addWidget( thanksEdit );
150
151     /* People who wrote the software */
152     QTextEdit *authorsEdit = new QTextEdit( this );
153 #ifdef WIN32
154     QFile *authorsFile = new QFile( "COPYING.txt" );
155     authorsFile->open( QIODevice::ReadOnly | QIODevice::Text );
156     authorsEdit->setText( authorsFile->readAll().data() );
157     authorsFile->close();
158 #else
159     char *psz_authors = AUTHORS;
160     authorsEdit->setText( qfu( psz_authors ) );
161 #endif
162     authorsEdit->setReadOnly( true );
163
164     /* add the tabs to the Tabwidget */
165     tab->addTab( infoWidget, qtr( "General Info" ) );
166     tab->addTab( authorsEdit, qtr( "Authors" ) );
167     tab->addTab( thanksWidget, qtr("Thanks") );
168     tab->addTab( licenseEdit, qtr("Distribution License") );
169
170     BUTTONACT( closeButton, close() );
171 }
172
173 AboutDialog::~AboutDialog()
174 {
175 }
176 void AboutDialog::close()
177 {
178     this->toggleVisible();
179 }