00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
#ifndef _KABOUTDIALOG_H_
00031
#define _KABOUTDIALOG_H_
00032
00033
#include <kdialogbase.h>
00034
#include <qstring.h>
00035
00036
class QFrame;
00037
class QLabel;
00038
class QVBoxLayout;
00039
class QTabWidget;
00040
class KURLLabel;
00041
class KAboutContainer;
00042
class KAboutContainerBase;
00043
00044
class KAboutWidgetPrivate;
00045
00046
class KAboutContainerPrivate;
00050 class KAboutContainer :
public QFrame
00051 {
00052 Q_OBJECT
00053
00054
public:
00055
KAboutContainer(
QWidget *parent=0,
const char *name=0,
00056
int margin=0,
int spacing=0,
00057
int childAlignment = AlignCenter,
00058
int innerAlignment = AlignCenter );
00059
00060
void addWidget(
QWidget *widget );
00061
void addPerson(
const QString &name,
const QString &email,
00062
const QString &url,
const QString &task,
00063
bool showHeader =
false,
bool showframe =
false,
00064
bool showBold =
false );
00065
void addTitle(
const QString &title,
int alignment=AlignLeft,
00066
bool showframe =
false,
bool showBold =
false );
00067
void addImage(
const QString &fileName,
int alignment=AlignLeft );
00068
00069
virtual QSize sizeHint(
void )
const;
00070
virtual QSize minimumSizeHint(
void )
const;
00071
00072
protected:
00073
virtual void childEvent(
QChildEvent *e );
00074
00075 signals:
00076
void urlClick(
const QString &url );
00077
void mailClick(
const QString &name,
const QString &address );
00078
00079
00080
private:
00081
QVBoxLayout *mVbox;
00082
int mAlignment;
00083 KAboutContainerPrivate *d;
00084 };
00085
00086
class KAboutContributorPrivate;
00087
00092 class KAboutContributor :
public QFrame
00093 {
00094 Q_OBJECT
00095
00096
public:
00097
KAboutContributor(
QWidget *parent=0,
const char *name=0,
00098
const QString &username=QString::null,
00099
const QString &email=QString::null,
00100
const QString &url=QString::null,
00101
const QString &work=QString::null,
00102
bool showHeader=
false,
bool showFrame=
true,
00103
bool showBold=
false );
00104
00105
void setName(
const QString &text,
const QString &header=QString::null,
00106
bool update =
true );
00107
void setEmail(
const QString &text,
const QString &header=QString::null,
00108
bool update =
true );
00109
void setURL(
const QString &text,
const QString &header=QString::null,
00110
bool update =
true );
00111
void setWork(
const QString &text,
const QString &header=QString::null,
00112
bool update =
true );
00113
QString getName(
void )
const;
00114
QString getEmail(
void )
const;
00115
QString getURL(
void )
const;
00116
QString getWork(
void )
const;
00117
00118
virtual QSize sizeHint(
void )
const;
00119
00120
protected:
00121
virtual void fontChange(
const QFont &oldFont );
00122
00123
protected slots:
00124
void urlClickedSlot(
const QString& );
00125
void emailClickedSlot(
const QString& emailaddress );
00126
00127
private:
00128
void updateLayout(
void );
00129
00130 signals:
00131
void sendEmail(
const QString& name,
const QString& email);
00132
void openURL(
const QString& url);
00133
00134
private:
00135
QLabel *mLabel[4];
00136
QLabel *mText[4];
00137
bool mShowHeader;
00138
bool mShowBold;
00139
00140 KAboutContributorPrivate *d;
00141
00142
virtual void setName(
const char *_name) { QFrame::setName(_name); }
00143 };
00144
00150 class KAboutWidget :
public QWidget
00151 {
00152 Q_OBJECT
00153
00154
public:
00155
00159
KAboutWidget(
QWidget* parent=0,
const char* name=0 );
00160
00165
void adjust();
00166
00170
void setLogo(
const QPixmap&);
00174
void setAuthor(
const QString& name,
const QString& email,
00175
const QString& url,
const QString& work);
00179
void setMaintainer(
const QString& name,
const QString& email,
00180
const QString& url,
const QString& work);
00184
void addContributor(
const QString& name,
const QString& email,
00185
const QString& url,
const QString& work);
00189
void setVersion(
const QString& name);
00190
00191
protected slots:
00195
void sendEmailSlot(
const QString& name,
const QString& email);
00199
void openURLSlot(
const QString& url);
00200
00201 signals:
00205
void sendEmail(
const QString& name,
const QString& email);
00209
void openURL(
const QString& url);
00210
00211
protected:
00212
00216
void resizeEvent(
QResizeEvent*);
00220 QLabel *
version;
00224 QLabel *
cont;
00228 QLabel *
logo;
00232 KAboutContributor *
author;
00236 KAboutContributor *
maintainer;
00240 bool showMaintainer;
00244 QPtrList<KAboutContributor> contributors;
00245
00246
00247
private:
00248 KAboutWidgetPrivate *d;
00249 };
00250
00251
class KAboutDialogPrivate;
00283 class KAboutDialog :
public KDialogBase
00284 {
00285 Q_OBJECT
00286
00287
public:
00291 enum LayoutType
00292 {
00293 AbtPlain = 0x0001,
00294 AbtTabbed = 0x0002,
00295 AbtTitle = 0x0004,
00296 AbtImageLeft = 0x0008,
00297 AbtImageRight = 0x0010,
00298 AbtImageOnly = 0x0020,
00299 AbtProduct = 0x0040,
00300 AbtKDEStandard = AbtTabbed|AbtTitle|AbtImageLeft,
00301 AbtAppStandard = AbtTabbed|AbtTitle|AbtProduct,
00302 AbtImageAndTitle = AbtPlain|AbtTitle|AbtImageOnly
00303 };
00304
00305
public:
00314
KAboutDialog(
QWidget *parent=0,
const char *name=0,
bool modal=
true );
00315
00341
KAboutDialog(
int dialogLayout,
const QString &caption,
int buttonMask,
00342 ButtonCode defaultButton,
QWidget *parent=0,
00343
const char *name=0,
bool modal=
false,
bool separator =
false,
00344
const QString &user1 = QString::null,
00345
const QString &user2 = QString::null,
00346
const QString &user3 = QString::null );
00347
00355
void adjust();
00356
00364
virtual void show(
void );
00365
00374
virtual void show(
QWidget *centerParent );
00375
00382
void setTitle(
const QString &title );
00383
00391
void setImage(
const QString &fileName );
00392
00405
void setIcon(
const QString &fileName );
00406
00415
void setImageBackgroundColor(
const QColor &color );
00416
00424
void setImageFrame(
bool state );
00425
00437
void setProduct(
const QString &appName,
const QString &version,
00438
const QString &author,
const QString &year );
00439
00452
QFrame *
addTextPage(
const QString &title,
const QString &text,
00453
bool richText=
false,
int numLines=10 );
00454
00465
QFrame *
addLicensePage(
const QString &title,
const QString &text,
00466
int numLines=10 );
00467
00480
KAboutContainer *
addContainerPage(
const QString &title,
00481
int childAlignment = AlignCenter,
int innerAlignment = AlignCenter );
00482
00495
KAboutContainer *
addScrolledContainerPage(
const QString &title,
00496
int childAlignment = AlignCenter,
int innerAlignment = AlignCenter );
00497
00508
KAboutContainer *
addContainer(
int childAlignment,
int innerAlignment );
00509
00517
QFrame *
addPage(
const QString &title );
00518
00519
00524
void setLogo(
const QPixmap&);
00525
00530
void setAuthor(
const QString& name,
const QString& email,
00531
const QString& url,
const QString& work);
00532
00537
void setMaintainer(
const QString& name,
const QString& email,
00538
const QString& url,
const QString& work);
00539
00544
void addContributor(
const QString& name,
const QString& email,
00545
const QString& url,
const QString& work);
00546
00551
void setVersion(
const QString& name);
00552
00557
static void imageURL(
QWidget *parent,
const QString &caption,
00558
const QString &path,
const QColor &imageColor,
00559
const QString &url );
00560
00561 signals:
00568
void sendEmail(
const QString& name,
const QString& email);
00569
00573
void openURL(
const QString& url);
00574
00575
protected:
00579 KAboutWidget *
about;
00580
00584 KAboutContainerBase *
mContainerBase;
00585
00586
00587
protected slots:
00588
00592
void sendEmailSlot(
const QString& name,
const QString& email);
00593
00597
void openURLSlot(
const QString& url);
00598
00604
virtual void mouseTrackSlot(
int mode,
const QMouseEvent *e );
00605
00606
00607
protected:
00608
virtual void virtual_hook(
int id,
void* data );
00609
private:
00610 KAboutDialogPrivate *d;
00611 };
00612
00613
#endif // defined KABOUTDIALOG_H