Subversion Repositories Scribus

Rev

Rev 12276 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
4430 cbradney 1
/*
2
For general Scribus (>=1.3.2) copyright and licensing information please refer
3
to the COPYING file provided with the program. Following this notice may exist
4
a copyright and/or license notice that predates the release of Scribus 1.3.2
5
for which a new license (GPL+exception) is in place.
6
*/
1641 cbradney 7
/***************************************************************************
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
 ***************************************************************************/
5718 subik 15
#include "about.h"
11800 cbradney 16
#include <QFile>
9338 fschmid 17
#include <QPixmap>
18
#include <QToolTip>
19
#include <QLabel>
20
#include <QTabWidget>
11800 cbradney 21
#include <QTextStream>
9338 fschmid 22
#include <QWidget>
23
#include <QPushButton>
10913 jghali 24
#include <QShowEvent>
1641 cbradney 25
 
5364 cbradney 26
#include "commonstrings.h"
2688 craig 27
#include "scconfig.h"
11800 cbradney 28
#include "scpaths.h"
10108 cbradney 29
#include "sctextbrowser.h"
9898 avox 30
 
31
#ifdef HAVE_CAIRO
32
#include <cairo.h>
33
#endif
34
 
10212 cbradney 35
#include "util_ghostscript.h"
10200 cbradney 36
#include "util_icon.h"
5923 cbradney 37
#include "upgradechecker.h"
2011 cbradney 38
#include "langmgr.h"
39
 
1641 cbradney 40
/*!
12071 subik 41
 \fn About::About( QWidget* parent, AboutMode diaMode )
7368 subik 42
 \author Franz Schmid
43
 \date
1641 cbradney 44
 \brief Constructor for About dialog box
45
 \param parent QWidget pointer to parent window
12071 subik 46
 \param diaMode a dialog mode. See AboutMode.
1641 cbradney 47
 \retval About dialog
48
 */
10913 jghali 49
About::About( QWidget* parent, AboutMode diaMode ) : QDialog( parent )
1641 cbradney 50
{
10913 jghali 51
        m_mode = diaMode;
52
        m_firstShow = true;
10493 fschmid 53
        setWindowTitle( tr("About Scribus %1").arg(VERSION) );
54
        setWindowIcon(loadIcon("AppIcon.png", true));
9338 fschmid 55
        setModal(true);
56
        aboutLayout = new QVBoxLayout( this );
1641 cbradney 57
        aboutLayout->setSpacing( 6 );
58
        aboutLayout->setMargin( 10 );
10493 fschmid 59
        tabWidget2 = new QTabWidget( this );
10040 fschmid 60
//      tabWidget2->setMinimumSize( QSize( 438, 258 ) );
10493 fschmid 61
        tab = new QWidget( tabWidget2 );
9338 fschmid 62
        tabLayout1 = new QVBoxLayout( tab );
1641 cbradney 63
        tabLayout1->setSpacing( 6 );
64
        tabLayout1->setMargin( 15 );
10493 fschmid 65
        pixmapLabel1 = new QLabel( tab );
10200 cbradney 66
        pixmapLabel1->setPixmap(loadIcon("scribus_logo.png", true));
10040 fschmid 67
        pixmapLabel1->setFixedSize(QSize(pixmapLabel1->pixmap()->width(), pixmapLabel1->pixmap()->height()));
1641 cbradney 68
        pixmapLabel1->setAlignment(Qt::AlignCenter);
69
        tabLayout1->addWidget( pixmapLabel1 );
10493 fschmid 70
        buildID = new QLabel( tab );
1641 cbradney 71
        buildID->setAlignment(Qt::AlignCenter);
12341 cbradney 72
        QString BUILD_DAY = "02";
73
        QString BUILD_MONTH = CommonStrings::july;
11417 mrdocs 74
        QString BUILD_YEAR = "2008";
9697 craig 75
        QString BUILD_TIME = "";
76
        QString BUILD_TZ = "";
77
        QString BUILD_NAME = "";
3587 avox 78
 
9697 craig 79
// This is the old way:
80
        QString built = tr("%1 %2 %3").arg(BUILD_DAY).arg(BUILD_MONTH).arg(BUILD_YEAR);
3587 avox 81
 
9697 craig 82
// This is my way, only activated when envvar BUILD_NAME is set :-)  AV
83
//#include "about_builddate.inc"
84
        QString version = VERSION;
85
        if (BUILD_NAME != "")
86
                version += " \"" + BUILD_NAME + "\"";
87
        if (BUILD_NAME == "BleedingEdge")
88
                 built = tr("%3-%2-%1 %4 %5").arg(BUILD_DAY).arg(BUILD_MONTH).arg(BUILD_YEAR).arg(BUILD_TIME).arg(BUILD_TZ);
89
 
3579 avox 90
        QString bu;
1641 cbradney 91
        bu += "C";
92
        bu += "-";
93
#ifdef HAVE_CUPS
94
        bu += "C";
95
#else
96
        bu += "*";
97
#endif
98
        bu += "-";
99
        bu += "T";
100
        bu += "-";
101
#ifdef HAVE_FONTCONFIG
102
        bu += "F";
103
#else
104
        bu += "*";
105
#endif
3113 fschmid 106
        bu += "-";
107
#ifdef HAVE_CAIRO
108
        bu += "C";
9898 avox 109
        bu += cairo_version_string();
3113 fschmid 110
#else
9319 fschmid 111
        bu += "Q";
3113 fschmid 112
#endif
1641 cbradney 113
 
3587 avox 114
// Some more information if we are not on a 32bit little endian Unix machine
115
#if defined(Q_OS_WIN)
116
        bu += "-Windows";
117
#elif defined(Q_OS_MAC)
118
        bu += "-Mac/";
119
#  if defined(Q_WS_MACX)
120
        bu += "Aqua";
121
#  elif define(Q_WS_X11)
122
        bu += "X11";
123
#  else
124
        bu += "?";
125
#  endif
9898 avox 126
#elif defined(Q_OS_DARWIN)
127
        // dunno if anyone uses this...
128
        bu += "-Darwin";
129
#endif
10501 cbradney 130
        if (QSysInfo::WordSize != 32)
10493 fschmid 131
                bu += QString("-%1bit").arg(QSysInfo::WordSize);
132
#if Q_BYTE_ORDER == Q_BIG_ENDIAN
10501 cbradney 133
        if (QSysInfo::ByteOrder==QSysInfo::BigEndian)
3587 avox 134
                bu += "-Big";
10493 fschmid 135
#endif
2840 craig 136
        QString gsver(getGSVersion());
137
        if (!gsver.isNull())
3583 cbradney 138
                gsver = tr("Using Ghostscript version %1").arg(gsver);
2840 craig 139
        else
3583 cbradney 140
                gsver = tr("No Ghostscript version available");
9770 fschmid 141
        buildID->setText( tr("<p align=\"center\"><b>%1 %2</b></p><p align=\"center\">%3<br>%4 %5<br>%6</p>").arg( tr("Scribus Version")).arg(version).arg(built).arg( tr("Build ID:")).arg(bu).arg(gsver));
9755 fschmid 142
        tabLayout1->addWidget( buildID, 0, Qt::AlignHCenter );
9338 fschmid 143
        tabWidget2->addTab( tab, tr( "&About" ) );
10493 fschmid 144
        tab_2 = new QWidget( tabWidget2 );
9338 fschmid 145
        tabLayout = new QHBoxLayout( tab_2 );
1641 cbradney 146
        tabLayout->setSpacing( 6 );
147
        tabLayout->setMargin( 10 );
10108 cbradney 148
        textView1 = new ScTextBrowser( tab_2 );
10493 fschmid 149
        textView1->setText(QString::fromUtf8("<table><tr><td><b>" + tr("Development Team:").toUtf8() + "</b></td><td> </td></tr>" +
12013 mrdocs 150
                        "<tr><td>Franz Schmid</td><td>Franz.Schmid@altmuehlnet.de</td></tr>" +
151
                        "<tr><td>Peter Linnell</td><td>mrdocs@scribus.info</td></tr>" +
152
                        "<tr><td>Craig Bradney</td><td>cbradney@zip.com.au</td></tr>" +
153
                        "<tr><td>Petr Vaněk</td><td>petr@yarpen.cz</td></tr>" +
154
                        "<tr><td>Riku Leino</td><td>riku@scribus.info</td></tr>" +
155
                        "<tr><td>Craig Ringer</td><td>craig@postnewspapers.com.au</td></tr>" +
156
                        "<tr><td>Andreas Vox</td><td>avox@arcor.de</td></tr>" +
157
                        "<tr><td>Jean Ghali</td><td>jghali@libertysurf.fr</td></tr>" +
158
                        "<tr><td>Oleksandr Moskalenko</td><td>malex@tagancha.org</td></tr>" +
159
                        "<tr><td>Christoph Schäfer</td><td>christoph-schaefer@gmx.de</td></tr>" +
12206 herm 160
                        "<tr><td>Hermann Kraus</td><td>herm@scribus.info</td></tr>" +
12013 mrdocs 161
                        "<tr><td> </td><td> </td></tr>" +
4363 mrdocs 162
 
12013 mrdocs 163
                        "<tr><td><b>" + tr("Contributions from:").toUtf8()  + "</b></td><td></td></tr>" +
164
                        "<tr><td>Niyam Bhushan</td><td></td></tr>" +
165
                        "<tr><td>Martin Costabel</td><td></td></tr>" +
166
                        "<tr><td>Steve Callcott</td><td>stotte@firstwish.co.uk</td></tr>" +
167
                        "<tr><td>Frank Everdij</td><td>f.everdij@citg.tudelft.nl</td></tr>" +
168
                        "<tr><td>S. Hakim Hamdani</td><td>hakimoto@eroteme.org</td></tr>" +
169
                        "<tr><td>Maciej Hański</td><td>m.hanski@gmx.at</td></tr>" +
170
                        "<tr><td>Paul F. Johnson</td><td>paul@all-the-johnsons.co.uk</td></tr>" +
171
                        "<tr><td>Marti Maria</td><td></td></tr>" +
172
                        "<tr><td>Alexandre Prokoudine</td><td>alexandre.prokoudine@gmail.com</td></tr>"
173
                        "<tr><td>Alessandro Rimoldi</td><td>http://ideale.ch/contact</td></tr>" +
174
                        "<tr><td>Alastair Robinson</td><td>blackfive@fakenhamweb.co.uk</td></tr>" +
175
                        "<tr><td>Johannes Rüschel</td><td>jo.rueschel@gmx.de</td></tr>" +
176
                        "<tr><td>Jean-Jacques Sarton</td><td>jj.sarton@t-online.de</td></tr>" +
177
                        "<tr><td>Christian Töpp</td><td>mr-ct@gmx.de</td></tr>" +
178
                        "<tr><td>Eirik Øverby</td><td>ltning@anduin.net</td></tr>" +
179
                        "<tr><td>Gora Mohanty </td><td>gora@srijan.in</td></tr>" +
180
                        "<tr><td>Kevin Young</td><td>k.young@youngscomputing.com</td></tr>" +
181
                        "<tr><td></td><td></td></tr>" +
2618 cbradney 182
 
12013 mrdocs 183
                        "<tr><td><b>" + tr("Mac OS&#174; X Aqua Port:").toUtf8()  + "</b></td><td> </td></tr>" +
184
                        "<tr><td>Andreas Vox</td><td>avox@arcor.de</td></tr>" +
185
                        "<tr><td> </td><td> </td></tr>" +
2916 mrdocs 186
 
12013 mrdocs 187
                        "<tr><td><b>" + tr("OS/2&#174;/eComStation&#8482; Port:").toUtf8()  + "</b></td><td> </td></tr>" +
188
                        "<tr><td>Paul Smedley</td><td>paul@smedley.info</td></tr>" +
189
                        "<tr><td> </td><td> </td></tr>" +
7661 cbradney 190
 
12013 mrdocs 191
                        "<tr><td><b>" + tr("Windows&#174; Port:").toUtf8()  + "</b></td><td> </td></tr>" +
192
                        "<tr><td>Jean Ghali</td><td>jghali@libertysurf.fr</td></tr>" +
193
                        "<tr><td> </td><td> </td></tr>" +
2916 mrdocs 194
 
12013 mrdocs 195
                        "<tr><td><b>" + tr("Official Documentation:").toUtf8()  + "</b></td><td></td></tr>" +
196
                        "<tr><td>Peter Linnell</td><td>mrdocs@scribus.info</td></tr>" +
197
                        "<tr><td>Craig Bradney</td><td>cbradney@zip.com.au</td></tr>" +
198
                        "<tr><td>Frédéric Dubuy</td><td>effediwhy@gmail.com</td></tr>" +
199
                        "<tr><td>Johannes Rüschel</td><td>jo.rueschel@gmx.de</td></tr>"
200
                        +"<tr><td>Volker Ribbert</td><td>volkerius@h3c.de</td></tr>" +
201
                        "<tr><td>Louis Desjardins</td><td>louisdesjardins@videotron.ca</td></tr>" +
202
                        "<tr><td> </td><td> </td></tr>" +
203
                        "<tr><td><b>" + tr("Other Documentation:").toUtf8()  + "</b></td><td></td></tr>" +
204
                        "<tr><td>Yves Ceccone</td><td>yves@yeccoe.org</td></tr>" +
205
                        "<tr><td>Holger Reibold</td><td>http://www.bomots.de/scribus/</td></tr>" +
206
                        "<tr><td>Thomas Zastrow</td><td>webmaster@thomas-zastrow.de</td></tr>" +
207
                        "<tr><td> </td><td> </td></tr>" +
208
                        "<tr><td><b>" + tr("Splash Screen:").toUtf8()  + "</b></td><td></td></tr>" +
209
                        "<tr><td>Andy Fitzsimon</td><td>andrew@fitzsimon.com.au</td></tr>" +
210
                        "<tr><td> </td><td> </td></tr>" +
211
                        "<tr><td><b>" + tr("Tango Project Icons:").toUtf8()  + "</b></td><td></td></tr>" +
212
                        "<tr><td>Andreas Nilsson</td><td>nisses.mail@home.se</td></tr>" +
213
                        "<tr><td>Jakub Steiner</td><td>jimmac@ximian.com</td></tr>"  +
214
                        "<tr><td>Antoine Cailliau</td><td>antoinecailliau@gmail.com</td></tr>"  +
215
                        "<tr><td> </td><td> </td></tr>" + "</table>"));
1641 cbradney 216
        tabLayout->addWidget( textView1 );
9338 fschmid 217
        tabWidget2->addTab( tab_2, tr( "A&uthors" ) );
10493 fschmid 218
        tab_3 = new QWidget( tabWidget2 );
9338 fschmid 219
        tabLayout_2 = new QHBoxLayout( tab_3 );
1641 cbradney 220
        tabLayout_2->setSpacing( 6 );
221
        tabLayout_2->setMargin( 10 );
10108 cbradney 222
        textView2 = new ScTextBrowser( tab_3);
2011 cbradney 223
        LanguageManager langmgr;
224
        langmgr.init(false);
12013 mrdocs 225
textView2->setText(QString::fromUtf8( "<table><tr><td><b><i>" + tr("Official Translations and Translators:").toUtf8() + "</i></b></td><td></td></tr>" +
226
                "<tr><td><b>" + langmgr.getLangFromAbbrev("af").toLocal8Bit()  + "</b></td><td></td></tr>" +
227
                "<tr><td>Kobus Wolvaardt</td><td>kobuswolf@diewereld.co.za</td></tr>" +
228
                "<tr><td> </td><td> </td></tr>" +
229
                "<tr><td><b>" +
230
                langmgr.getLangFromAbbrev("ar").toLocal8Bit()  + "</b></td><td> </td></tr>" +
231
                "<tr><td>حاتم المسلم</td><td>dr.hatim@hotmail.com</td></tr>" +
232
                "<tr><td> </td><td> </td></tr>" +
233
                "<tr><td><b>" +langmgr.getLangFromAbbrev("eu").toLocal8Bit()  + "</b></td><td> </td></tr>" +
234
                "<tr><td>Iñaki Larrañaga Murgoitio</td><td>dooteo@euskalgnu.org</td></tr>" +
235
                "<tr><td> </td><td> </td></tr>" +
236
                "<tr><td><b>" + langmgr.getLangFromAbbrev("br").toLocal8Bit()  + "</b></td><td> </td></tr>" +
237
                "<tr><td>Alan Monfort</td><td>alan.monfort@free.fr</td></tr>" +
238
                "<tr><td> </td><td> </td></tr>" +
239
                "<tr><td><b>" + langmgr.getLangFromAbbrev("ca").toLocal8Bit()  + "</b></td><td> </td></tr>" +
240
                "<tr><td>Xavier Sala Pujolar</td><td>utrescu@xaviersala.net</td></tr>" +
241
                "<tr><td> </td><td> </td></tr>" +
242
                "<tr><td><b>" + langmgr.getLangFromAbbrev("zh_TW").toLocal8Bit()  + "</b></td><td> </td></tr>" +
243
                "<tr><td>dneif</td><td>dnextstep@gmail.com</td></tr>" +
244
                "<tr><td>Gilbert Su</td><td>gilbert_su@yahoo.com.tw</td></tr>" +
245
                "<tr><td> </td><td> </td></tr>" +
246
                "<tr><td><b>" + langmgr.getLangFromAbbrev("cs").toLocal8Bit()  + "</b></td><td></td></tr>" +
247
                "<tr><td>Vlastimil Ott</td><td>vlastimil@e-ott.info</td></tr>" +
248
                "<tr><td>Petr Vaněk</td><td>petr@yarpen.cz</td></tr>" +
249
                "<tr><td> </td><td> </td></tr>" +
250
                "<tr><td><b>" + langmgr.getLangFromAbbrev("da").toLocal8Bit()  + "</b></td><td></td></tr>" +
251
                "<tr><td>Morten Langlo</td><td>mlanglo@mail.dk</td></tr>" +
252
                "<tr><td> </td><td> </td></tr>" +
253
                "<tr><td><b>" + langmgr.getLangFromAbbrev("nl").toLocal8Bit()  + "</b></td><td></td></tr>" +
254
                "<tr><td>Foppe Benedictus</td><td>foppe.benedictus@gmail.coml</td></tr>" +
255
                "<tr><td>Erik Collou</td><td>collou@gmx.net</td></tr>" +
256
                "<tr><td> </td><td> </td></tr>" +
257
                "<tr><td><b>" +
258
                langmgr.getLangFromAbbrev("en_AU").toLocal8Bit()  + "</b></td><td></td></tr>" +
259
                "<tr><td>Craig Bradney</td><td>cbradney@zip.com.au</td></tr>" +
260
                "<tr><td> </td><td> </td></tr>" +
261
                "<tr><td><b>" +
262
                langmgr.getLangFromAbbrev("en_GB").toLocal8Bit()  + "</b></td><td></td></tr>" +
263
                "<tr><td>Craig Bradney</td><td>cbradney@zip.com.au</td></tr>" +
264
                "<tr><td> </td><td> </td></tr>" +
265
                "<tr><td><b>" + langmgr.getLangFromAbbrev("eo").toLocal8Bit()  + "</b></td><td> </td></tr>" +
266
                "<tr><td>Pier Luigi Cinquantini</td><td>plcinquantini@katamail.com</td></tr>" +
267
                "<tr><td> </td><td> </td></tr>" +
268
                "<tr><td><b>" + langmgr.getLangFromAbbrev("et").toLocal8Bit()  + "</b></td><td> </td></tr>" +
269
                "<tr><td>Marek Laane</td><td>bald@starman.ee</td></tr>" +
270
                "<tr><td>Hasso Tepper</td><td>hasso@estpak.ee</td></tr>" +
271
                "<tr><td> </td><td> </td></tr>" +
272
                "<tr><td><b>" + langmgr.getLangFromAbbrev("fi").toLocal8Bit()  + "</b></td><td></td></tr>" +
273
                "<tr><td>Riku Leino</td><td>riku@scribus.info</td></tr>" +
274
                "<tr><td> </td><td> </td></tr>" +
275
                "<tr><td><b>" + langmgr.getLangFromAbbrev("fr").toLocal8Bit()  + "</b></td><td> </td>" +
276
                "<tr><td>Nicolas Boos</td><td>nicolas.boos@wanadoo.fr</td></tr>" +
277
                "<tr><td>Louis Desjardins</td><td>louis_desjardins@mardigrafe.com</td></tr>" +
278
                "<tr><td>Frédéric Dubuy</td><td>effediwhy@gmail.com</td></tr>" +
279
                "<tr><td> </td><td> </td></tr>" +
280
                "<tr><td><b>" + langmgr.getLangFromAbbrev("de").toLocal8Bit()  + "</b></td><td> </td></tr>" +
281
                "<tr><td>Johannes Rüschel</td><td>jo.rueschel@gmx.de</td></tr>" +
282
                "<tr><td>Franz Schmid</td><td>Franz.Schmid@altmuehlnet.de</td></tr>" +
283
                "<tr><td>Christoph Schäfer</td><td>christoph-schaefer@gmx.de</td></tr>" +
284
                "<tr><td> </td><td> </td></tr>" +
285
                "<tr><td><b>" + langmgr.getLangFromAbbrev("de_CH").toLocal8Bit()  + "</b></td><td> </td></tr>" +
286
                "<tr><td>Christoph Schäfer</td><td>christoph-schaefer@gmx.de</td></tr>" +
287
                "<tr><td> </td><td> </td></tr>" +
288
                "<tr><td><b>" + langmgr.getLangFromAbbrev("de_ol").toLocal8Bit()  + "</b></td><td> </td></tr>" +
289
                "<tr><td>Johannes Rüschel</td><td>jo.rueschel@gmx.de</td></tr>" +
290
                "<tr><td>Christoph Schäfer</td><td>christoph-schaefer@gmx.de</td></tr>" +
291
                "<tr><td> </td><td> </td></tr>" +
292
                "<tr><td><b>" + langmgr.getLangFromAbbrev("ga").toLocal8Bit()  + "</b></td><td> </td></tr>" +
293
                "<tr><td>Xose Calvo</td><td>xosecalvo@galizaweb.net</td></tr>" +
294
                "<tr><td>Manuel Anxo Rei</td><td>manxopar@avogaciagalega.org</td></tr>" +
295
                "<tr><td> </td><td> </td></tr>" +
296
                "<tr><td><b>" + langmgr.getLangFromAbbrev("el").toLocal8Bit()  + "</b></td><td> </td></tr>" +
297
                "<tr><td>Τούσης Μανώλης </br> Toussis Manolis</td><td>manolis@koppermind.homelinux.org</td></tr>" +
298
                "<tr><td> </td><td> </td></tr>" +
299
                "<tr><td><b>" + langmgr.getLangFromAbbrev("hu").toLocal8Bit()  + "</b></td><td> </td></tr>" +
300
                "<tr><td>Csaba Zakarias</td><td>csaba.zakarias@gmail.com</td></tr>" +
301
                "<tr><td> </td><td> </td></tr>" +
302
                "<tr><td><b>" + langmgr.getLangFromAbbrev("it").toLocal8Bit()  + "</b></td><td> </td></tr>" +
303
                "<tr><td>Pier Luigi Cinquantini</td><td>plcinquantini@katamail.com</td></tr>" +
304
                "<tr><td> </td><td> </td></tr>" +
305
                "<tr><td><b>" + langmgr.getLangFromAbbrev("ja").toLocal8Bit()  + "</b></td><td> </td></tr>" +
306
                "<tr><td>Shushi Kurose</td><td>md81@bird.email.ne.jp</td></tr>" +
307
                "<tr><td> </td><td> </td></tr>" +
308
                "<tr><td><b>" + langmgr.getLangFromAbbrev("ko").toLocal8Bit()  + "</b></td><td> </td></tr>" +
309
                "<tr><td>Kitae Kim</td><td>neeum@yahoo.com</td></tr>" +
310
                "<tr><td> </td><td> </td></tr>" +
311
                "<tr><td><b>" + langmgr.getLangFromAbbrev("nb").toUtf8()  + "</b></td><td></td></tr>" +
312
                "<tr><td>Axel Bojer</td><td>axelb@skolelinux.no</td></tr>" +
313
                "<tr><td>Klaus Ade Johnstad</td><td>klaus@inout.no</td></tr>" +
314
                "<tr><td> </td><td> </td></tr>" +
315
                "<tr><td><b>" + langmgr.getLangFromAbbrev("pl").toLocal8Bit()  + "</b></td><td> </td></tr>" +
316
                "<tr><td>Maciej Hański</td><td>m.hanski@gmx.at</td></tr>" +
317
                "<tr><td> </td><td> </td></tr>" +
318
                "<tr><td><b>" + langmgr.getLangFromAbbrev("pt").toLocal8Bit()  + "</b></td><td> </td></tr>" +
319
                "<tr><td>Fausto Guilherme</td><td>faustoguilherme@gmail.com</td></tr>" +
320
                "<tr><td> </td><td> </td></tr>" +
321
                "<tr><td><b>" + langmgr.getLangFromAbbrev("pt_BR").toLocal8Bit()  + "</b></td><td> </td></tr>" +
322
                "<tr><td>Ludi Maciel</td><td>iludi@uol.com.br</td></tr>" +
323
                "<tr><td>Frederico Gon&#231;alves</td><td></td></tr>" +
324
                "<tr><td> </td><td> </td></tr>" +
325
                "<tr><td><b>" + langmgr.getLangFromAbbrev("ru").toLocal8Bit()  + "</b></td><td></td></tr>" +
326
                "<tr><td>Александр Прокудин </td><td>alexandre.prokoudine@gmail.com</td></tr>" +
327
                "<tr><td> </td><td> </td></tr>" +
328
                "<tr><td><b>" + langmgr.getLangFromAbbrev("sr").toLocal8Bit()  + "</b></td><td></td></tr>" +
329
                "<tr><td>Bojan Božovi&#263;</td><td>bole89@infosky.net</td></tr>" +
330
                "<tr><td> </td><td> </td></tr>" +
331
                "<tr><td><b>" + langmgr.getLangFromAbbrev("sk").toLocal8Bit()  + "</b></td><td></td></tr>" +
332
                "<tr><td>Zdenko Podobn&yacute;</td><td>zdposter@gmail.com</td></tr>" +
333
                "<tr><td> </td><td> </td></tr>" +
334
                "<tr><td><b>" + langmgr.getLangFromAbbrev("sl").toLocal8Bit()  + "</b></td><td></td></tr>" +
335
                "<tr><td>Boštjan Špetič</td><td>igzebedze@kiberpipa.org</td></tr>" +
336
                "<tr><td>Peter Čuhalev</td><td>skatey@slocartoon.net</td></tr>" +
337
                "<tr><td> </td><td> </td></tr>" +
338
                "<tr><td><b>" + langmgr.getLangFromAbbrev("es_ES").toLocal8Bit()  + "</b></td><td> </td></tr>" +
339
                "<tr><td>Franz Rogar</td><td>franzrogar@gmail.com</td></tr>" +
340
                "<tr><td> </td><td> </td></tr>" +
341
                "<tr><td><b>" + langmgr.getLangFromAbbrev("sv").toLocal8Bit()  + "</b></td><td></td></tr>" +
342
                "<tr><td>Göran Bondeson</td><td>goran@bondeson.net</td></tr>" +
343
                "<tr><td> </td><td> </td></tr>" +
344
                "<tr><td><b>" + langmgr.getLangFromAbbrev("th_TH").toLocal8Bit()  + "</b></td><td></td></tr>" +
345
                "<tr><td>Sira Nokyoungthong</td><td>Sira Nokyoungthong</td></tr>" +
346
                "<tr><td> </td><td> </td></tr>" +
347
                "<tr><td><b>" + langmgr.getLangFromAbbrev("tr").toLocal8Bit()  + "</b></td><td> </td></tr>" +
348
                "<tr><td>Barış Atasoy</td><td>batasoy@pozitifpc.com</td></tr>" +
349
                "<tr><td> </td><td> </td></tr>" +
350
                "<tr><td><b>" + langmgr.getLangFromAbbrev("uk").toLocal8Bit()  + "</b></td><td> </td></tr>" +
351
                "<tr><td>Oleksandr Moskalenko</td><td>malex@tagancha.org</td></tr>" +
352
                "<tr><td> </td><td> </td></tr>" +
353
                "<tr><td><b>" + langmgr.getLangFromAbbrev("cy").toLocal8Bit()  + "</b></td><td></td></tr>" +
354
                "<tr><td>Kevin Donnelly</td><td>kevin@dotmon.com</td></tr>" +
355
                "<tr><td> </td><td> </td></tr>" +
356
                "</table>" +
357
                "<table><tr><td><b><i>" + tr("Previous Translation Contributors:").toLocal8Bit() + "</i></b></td><td></td></tr>" +
358
                "<tr><td><b>" + langmgr.getLangFromAbbrev("eu").toLocal8Bit() + "</b></td><td></td></tr>" +
359
                "<tr><td>Pablo Saratxaga</td><td>pablo@mandrakesoft.com</td></tr>" +
360
                "<tr><td> </td><td> </td></tr>" +
361
                "<tr><td><b>" + langmgr.getLangFromAbbrev("pt_BR").toLocal8Bit()  + "</b></td><td></td></tr>" +
362
                "<tr><td>Celio Santos</td><td>celio@electronic.srv.br</td></tr>" +
363
                "<tr><td>Cezar de Souza Marson Nido</td><td>cesar@electronic.srv.br</td></tr>" +
364
                "<tr><td> </td><td> </td></tr>" +
365
                "<tr><td><b>" + langmgr.getLangFromAbbrev("bg").toLocal8Bit()  + "</b></td><td> </td></tr>" +
366
                "<tr><td>Vasko Tomanov</td><td>vasko@web.bg</td></tr>" +
367
                "<tr><td> </td><td> </td></tr>" +
368
                "<tr><td><b>" + langmgr.getLangFromAbbrev("nl").toUtf8()  + "</b></td><td></td></tr>" +
369
                "<tr><td>Wilbert Berendsen</td><td>wbsoft@xs4all.nl</td></tr>" +
370
                "<tr><td> </td><td> </td></tr>" +
371
                "<tr><td><b>" + langmgr.getLangFromAbbrev("en_GB").toLocal8Bit()  + "</b></td><td></td></tr>" +
372
                "<tr><td>Paul F. Johnson</td><td>paul@all-the-johnsons.co.uk</td></tr>" +
373
                "<tr><td> </td><td> </td></tr>" +
374
                "<tr><td><b>" + langmgr.getLangFromAbbrev("fr").toLocal8Bit()  + "</b></td><td> </td>" +
375
                "<tr><td>Michel Briand</td><td>michelbriand@free.fr</td></tr>" +
376
                "<tr><td>Yves Ceccone</td><td>yves@yeccoe.org</td></tr>" +
377
                "<tr><td> </td><td> </td></tr>" +
378
                "<tr><td><b>" + langmgr.getLangFromAbbrev("es").toLocal8Bit()  + "</b></td><td> </td></tr>" +
379
                "<tr><td>Josep Febrer</td><td>josep@linuxmail.org</td></tr>" +
380
                "<tr><td> </td><td> </td></tr>" +
381
                "<tr><td><b>" + langmgr.getLangFromAbbrev("hu").toLocal8Bit()  + "</b></td><td> </td></tr>" +
382
                "<tr><td>Giovanni Biczó</td><td>gbiczo@freestart.hu</td></tr>" +
383
                "<tr><td>Bence Nagy</td><td>scribus@tipogral.hu</td></tr>" +
384
                "<tr><td>Zoltán Böszörményi</td><td>zboszor@freemail.hu</td></tr>" +
385
                "<tr><td> </td><td> </td></tr>" +
386
                "<tr><td><b>" + langmgr.getLangFromAbbrev("lt").toLocal8Bit()  + "</b></td><td> </td></tr>" +
387
                "<tr><td>Aivaras Kirejevas</td><td>kiras@mail.lt</td></tr>" +
388
                "<tr><td> </td><td> </td></tr>" +
389
                "<tr><td><b>" + langmgr.getLangFromAbbrev("nb").toLocal8Bit()  + "</b></td><td></td></tr>" +
390
                "<tr><td>Johannes Wilm</td><td>j@indymedia.no</td></tr>" +
391
                "<tr><td> </td><td> </td></tr>" +
392
                "<tr><td><b>" + langmgr.getLangFromAbbrev("tr").toLocal8Bit()  + "</b></td><td> </td></tr>" +
393
                "<tr><td>Erkan Kaplan</td><td>Selamsana@uni.de</td></tr>" +
394
                "<tr><td> </td><td> </td></tr>" +
395
                "<tr><td><b>" + langmgr.getLangFromAbbrev("uk").toLocal8Bit()  + "</b></td><td> </td></tr>" +
396
                "<tr><td>Sergiy Kudryk</td><td>kudryk@yahoo.com</td></tr>" +
397
                "<tr><td> </td><td> </td></tr>" +
398
                "</table>"));
399
tabLayout_2->addWidget( textView2 );
9338 fschmid 400
        tabWidget2->addTab( tab_3, tr( "&Translations" ) );
1641 cbradney 401
 
402
        // online tab (03/04/2004 petr vanek)
10493 fschmid 403
        tab_4 = new QWidget( tabWidget2 );
10108 cbradney 404
        textView4 = new ScTextBrowser( tab_4 );
1641 cbradney 405
        textView4->setText(QString::fromUtf8(
10493 fschmid 406
                "<table><tr><td><b>" + tr("Homepage").toUtf8() + "</b></td><td></td></tr>" +
1641 cbradney 407
                "<tr><td colspan=\"2\"><p><a href=\"http://www.scribus.net\">http://www.scribus.net</a></p></td></tr>" +
10493 fschmid 408
                "<tr><td><b>" + tr("Online Reference").toUtf8() + "</b></td><td></td></tr>" +
1641 cbradney 409
                "<tr><td colspan=\"2\"><p><a href=\"http://docs.scribus.net\">http://docs.scribus.net</a></p></td></tr>" +
10493 fschmid 410
                "<tr><td><b>" + tr("Wiki").toUtf8() + "</b></td><td></td></tr>" +
2626 cbradney 411
                "<tr><td colspan=\"2\"><p><a href=\"http://wiki.scribus.net\">http://wiki.scribus.net</a></p></td></tr>" +
10493 fschmid 412
                "<tr><td><b>" + tr("Bugs and Feature Requests").toUtf8() + "</b></td><td></td></tr>" +
1641 cbradney 413
                "<tr><td colspan=\"2\"><p><a href=\"http://bugs.scribus.net\">http://bugs.scribus.net</a></p></td></tr>" +
11820 mrdocs 414
                "<tr><td><b>" + tr("Developer Blog").toUtf8() + "</b></td><td></td></tr>" +
11834 mrdocs 415
                "<tr><td colspan=\"2\"><p><a href=\"http://rants.scribus.net\">http://rants.scribus.net</a></p></td></tr>" +
10493 fschmid 416
                "<tr><td><b>" + tr("Mailing List").toUtf8() + "</b></td><td></td></tr>" +
12013 mrdocs 417
                "<tr><td colspan=\"2\"><p><a href=\"http://lists.scribus.info/\">http://lists.scribus.info/</a></p></td></tr>" +
5220 mrdocs 418
                "</table>"));
9338 fschmid 419
        tabLayout_4 = new QHBoxLayout( tab_4 );
1641 cbradney 420
        tabLayout_4->setSpacing( 6 );
421
        tabLayout_4->setMargin( 10 );
422
        tabLayout_4->addWidget( textView4 );
9338 fschmid 423
        tabWidget2->addTab( tab_4, tr( "&Online" ) );
5923 cbradney 424
        // Update tab
10493 fschmid 425
        tab_5 = new QWidget( tabWidget2 );
426
        tabWidget2->addTab( tab_5, tr( "&Updates" ) );
9338 fschmid 427
        updateLayout = new QVBoxLayout( tab_5 );
5923 cbradney 428
        updateLayout->setSpacing( 6 );
429
        updateLayout->setMargin( 10 );
10926 cbradney 430
        checkForUpdateButton = new QPushButton( tr( "Check for Updates" ), tab_5 );
10108 cbradney 431
        textView5 = new ScTextBrowser( tab_5);
5923 cbradney 432
        updateLayout->addWidget( checkForUpdateButton );
433
        updateLayout->addWidget( textView5 );
11800 cbradney 434
 
435
        // Licence tab
436
        tab_Licence = new QWidget( tabWidget2 );
437
        tabWidget2->addTab( tab_Licence, tr( "&Licence" ) );
438
        licenceLayout = new QVBoxLayout( tab_Licence );
439
        licenceLayout->setSpacing( 6 );
440
        licenceLayout->setMargin( 10 );
441
        textViewLicence = new ScTextBrowser( tab_Licence);
442
        licenceLayout->addWidget( textViewLicence );
443
 
444
        QFile licenceFile(ScPaths::instance().docDir() + "/COPYING");
445
        if (!licenceFile.open(QIODevice::ReadOnly | QIODevice::Text))
446
                textViewLicence->setText( tr("Unable to open licence file. Please check your install directory or the Scribus website for licencing information.") );
447
        else
448
        {
449
                QTextStream inTS(&licenceFile);
450
                QString licenceText = inTS.readAll();
451
                textViewLicence->setText(licenceText);
452
        }
453
 
454
        //Add tab widget to about window
1641 cbradney 455
        aboutLayout->addWidget( tabWidget2 );
7368 subik 456
 
9338 fschmid 457
        layout2 = new QHBoxLayout;
1641 cbradney 458
        layout2->setSpacing( 6 );
459
        layout2->setMargin( 0 );
460
        QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
461
        layout2->addItem( spacer );
10493 fschmid 462
        okButton = new QPushButton( tr( "&Close" ), this );
1641 cbradney 463
        okButton->setDefault( true );
464
        layout2->addWidget( okButton );
465
        aboutLayout->addLayout( layout2 );
466
        setMaximumSize(sizeHint());
467
 
4363 mrdocs 468
 
1641 cbradney 469
//tooltips
5220 mrdocs 470
 
10397 cbradney 471
        buildID->setToolTip( "<qt>" + tr( "This panel shows the version, build date and compiled in library support in Scribus.")+"<br>"
9319 fschmid 472
                                       + tr("The C-C-T-F equates to C=littlecms C=CUPS T=TIFF support F=Fontconfig support.Last Letter is the renderer C=cairo or Q=Qt")+"<br>"
473
                                       + tr("Missing library support is indicated by a *. This also indicates the version of Ghostscript which Scribus has detected.")+"<br>"
474
                                       + tr("The Windows version does not use fontconfig or CUPS libraries." ) + "</qt>" );
10397 cbradney 475
        checkForUpdateButton->setToolTip( "<qt>" + tr( "Check for updates to Scribus. No data from your machine will be transferred off it." ) + "</qt>" );
5220 mrdocs 476
        // signals and slots connections
477
        connect( okButton, SIGNAL( clicked() ), this, SLOT( accept() ) );
5923 cbradney 478
        connect( checkForUpdateButton, SIGNAL( clicked() ), this, SLOT( runUpdateCheck() ) );
5273 mrdocs 479
}
5923 cbradney 480
 
10913 jghali 481
void About::showEvent (QShowEvent * event)
482
{
483
        if (m_mode == About::CheckUpdates && m_firstShow)
484
                tabWidget2->setCurrentIndex(4);
485
        QDialog::showEvent(event);
486
}
487
 
488
void About::setVisible (bool visible)
489
{
490
        QDialog::setVisible(visible);
491
        if (m_firstShow  && (m_mode == About::CheckUpdates) && visible)
492
        {
493
                m_firstShow = false;
494
                runUpdateCheck();
495
        }
496
}
497
 
5923 cbradney 498
void About::runUpdateCheck()
499
{
10926 cbradney 500
        textView5->clear();
5924 cbradney 501
        UpgradeCheckerGUI uc(textView5);
10926 cbradney 502
        disconnect( checkForUpdateButton, SIGNAL( clicked() ), this, SLOT( runUpdateCheck() ) );
503
        connect(checkForUpdateButton, SIGNAL( clicked() ), &uc, SLOT( abort() ));
504
        checkForUpdateButton->setText( tr("Abort Update Check") );
505
        uc.fetch();
506
        checkForUpdateButton->setText( tr("Check for Updates") );
507
        connect( checkForUpdateButton, SIGNAL( clicked() ), this, SLOT( runUpdateCheck() ) );
5923 cbradney 508
}