Source Code (Use browser search to find items of interest.)
Class Index
kdelibs'KAboutContainerBase (./kdelibs/kdeui/kaboutdialog.h:111)
class KAboutContainerBase : public QWidget
{
Q_OBJECT
public:
enum LayoutType
{
AbtPlain = 0x0001,
AbtTabbed = 0x0002,
AbtTitle = 0x0004,
AbtImageLeft = 0x0008,
AbtImageRight = 0x0010,
AbtImageOnly = 0x0020,
AbtProduct = 0x0040,
AbtKDEStandard = AbtTabbed|AbtTitle|AbtImageLeft,
AbtAppStandard = AbtTabbed|AbtTitle|AbtProduct,
AbtImageAndTitle = AbtPlain|AbtTitle|AbtImageOnly
};
public:
KAboutContainerBase( int layoutType, QWidget *parent = 0, char *name = 0 );
virtual void show( void );
virtual QSize sizeHint( void ) const;
void setTitle( const QString &title );
void setImage( const QString &fileName );
void setImageBackgroundColor( const QColor &color );
void setImageFrame( bool state );
void setProduct( const QString &appName, const QString &version,
const QString &author, const QString &year );
QFrame *addTextPage( const QString &title, const QString &text,
bool richText=false, int numLines=10 );
KAboutContainer *addContainerPage( const QString &title,
int childAlignment = AlignCenter, int innerAlignment = AlignCenter );
QFrame *addEmptyPage( const QString &title );
KAboutContainer *addContainer( int childAlignment, int innerAlignment );
public slots:
virtual void slotMouseTrack( int mode, const QMouseEvent *e );
virtual void slotUrlClick( const QString &url );
virtual void slotMailClick( const QString &name, const QString &address );
protected:
virtual void fontChange( const QFont &oldFont );
signals:
void mouseTrack( int mode, const QMouseEvent *e );
void urlClick( const QString &url );
void mailClick( const QString &name, const QString &address );
private:
QArray<QWidget*> mContainerList;
QVBoxLayout *mTopLayout;
KImageTrackLabel *mImageLabel;
QLabel *mTitleLabel;
QLabel *mIconLabel;
QLabel *mVersionLabel;
QLabel *mAuthorLabel;
QFrame *mImageFrame;
QTabWidget *mPageTab;
QFrame *mPlainSpace;
KAboutContainerBasePrivate *d;
};
kdelibs'KAboutContainerBase::KAboutContainerBase() (./kdelibs/kdeui/kaboutdialog.cpp:282)
KAboutContainerBase::KAboutContainerBase( int layoutType, QWidget *parent,
char *name )
: QWidget( parent, name ),
mImageLabel(0), mTitleLabel(0), mIconLabel(0),mVersionLabel(0),
mAuthorLabel(0), mImageFrame(0),mPageTab(0),mPlainSpace(0)
{
mTopLayout = new QVBoxLayout( this, 0, KDialog::spacingHint() );
if( mTopLayout == 0 ) { return; }
if( layoutType & AbtImageOnly )
{
layoutType &= ~(AbtImageLeft|AbtImageRight|AbtTabbed|AbtPlain);
}
if( layoutType & AbtImageLeft )
{
layoutType &= ~AbtImageRight;
}
if( layoutType & AbtTitle )
{
mTitleLabel = new QLabel( this, "title" );
mTitleLabel->setAlignment(AlignCenter);
mTopLayout->addWidget( mTitleLabel );
mTopLayout->addSpacing( KDialog::spacingHint() );
}
if( layoutType & AbtProduct )
{
QWidget *productArea = new QWidget( this, "area" );
mTopLayout->addWidget( productArea, 0, AlignLeft );
QHBoxLayout *hbox = new QHBoxLayout(productArea,0,KDialog::spacingHint());
if( hbox == 0 ) { return; }
mIconLabel = new QLabel( productArea );
hbox->addWidget( mIconLabel );
QVBoxLayout *vbox = new QVBoxLayout();
if( vbox == 0 ) { return; }
hbox->addLayout( vbox );
mVersionLabel = new QLabel( productArea, "version" );
mAuthorLabel = new QLabel( productArea, "author" );
vbox->addWidget( mVersionLabel );
vbox->addWidget( mAuthorLabel );
hbox->activate();
mTopLayout->addSpacing( KDialog::spacingHint() );
}
QHBoxLayout *hbox = new QHBoxLayout();
if( hbox == 0 ) { return; }
mTopLayout->addLayout( hbox, 10 );
if( layoutType & AbtImageLeft )
{
QVBoxLayout *vbox = new QVBoxLayout();
hbox->addLayout(vbox);
vbox->addSpacing(1);
mImageFrame = new QFrame( this );
setImageFrame( true );
vbox->addWidget( mImageFrame );
vbox->addSpacing(1);
vbox = new QVBoxLayout( mImageFrame, 1 );
mImageLabel = new KImageTrackLabel( mImageFrame );
connect( mImageLabel, SIGNAL(mouseTrack( int, const QMouseEvent * )),
SLOT( slotMouseTrack( int, const QMouseEvent * )) );
vbox->addStretch(10);
vbox->addWidget( mImageLabel );
vbox->addStretch(10);
vbox->activate();
}
if( layoutType & AbtTabbed )
{
mPageTab = new QTabWidget( this );
if( mPageTab == 0 ) { return; }
hbox->addWidget( mPageTab, 10 );
}
else if( layoutType & AbtImageOnly )
{
mImageFrame = new QFrame( this );
setImageFrame( true );
hbox->addWidget( mImageFrame, 10 );
QGridLayout *gbox = new QGridLayout(mImageFrame, 3, 3, 1, 0 );
gbox->setRowStretch( 0, 10 );
gbox->setRowStretch( 2, 10 );
gbox->setColStretch( 0, 10 );
gbox->setColStretch( 2, 10 );
mImageLabel = new KImageTrackLabel( mImageFrame );
connect( mImageLabel, SIGNAL(mouseTrack( int, const QMouseEvent * )),
SLOT( slotMouseTrack( int, const QMouseEvent * )) );
gbox->addWidget( mImageLabel, 1, 1 );
gbox->activate();
}
else
{
mPlainSpace = new QFrame( this );
if( mPlainSpace == 0 ) { return; }
hbox->addWidget( mPlainSpace, 10 );
}
if( layoutType & AbtImageRight )
{
QVBoxLayout *vbox = new QVBoxLayout();
hbox->addLayout(vbox);
vbox->addSpacing(1);
mImageFrame = new QFrame( this );
setImageFrame( true );
vbox->addWidget( mImageFrame );
vbox->addSpacing(1);
vbox = new QVBoxLayout( mImageFrame, 1 );
mImageLabel = new KImageTrackLabel( mImageFrame );
connect( mImageLabel, SIGNAL(mouseTrack( int, const QMouseEvent * )),
SLOT( slotMouseTrack( int, const QMouseEvent * )) );
vbox->addStretch(10);
vbox->addWidget( mImageLabel );
vbox->addStretch(10);
vbox->activate();
}
fontChange( font() );
}
kdelibs'KAboutContainerBase::show() (./kdelibs/kdeui/kaboutdialog.cpp:411)
void KAboutContainerBase::show( void )
{
QWidget::show();
// 2000-18-01 Espen Sand: The entire function will be removed
/*
if( mPageTab != 0 )
{
mPageTab->setMinimumSize( mPageTab->sizeHint() );
}
mTopLayout->activate(); // This must be done after everything else.
*/
}
kdelibs'KAboutContainerBase::sizeHint() (./kdelibs/kdeui/kaboutdialog.cpp:425)
QSize KAboutContainerBase::sizeHint( void ) const
{
return( minimumSize() );
}
kdelibs'KAboutContainerBase::fontChange() (./kdelibs/kdeui/kaboutdialog.cpp:431)
void KAboutContainerBase::fontChange( const QFont &/*oldFont*/ )
{
if( mTitleLabel != 0 )
{
QFont f( KGlobal::generalFont() );
f.setBold( true );
f.setPointSize( 14 ); // Perhaps changeable ?
mTitleLabel->setFont(f);
}
if( mVersionLabel != 0 )
{
QFont f( KGlobal::generalFont() );
f.setBold( true );
mVersionLabel->setFont(f);
mAuthorLabel->setFont(f);
mVersionLabel->parentWidget()->layout()->activate();
}
update();
}
kdelibs'KAboutContainerBase::addTextPage() (./kdelibs/kdeui/kaboutdialog.cpp:458)
QFrame *KAboutContainerBase::addTextPage( const QString &title,
const QString &text,
bool richText, int numLines )
{
QFrame *page = addEmptyPage( title );
if( page == 0 ) { return(0); }
if( numLines <= 0 ) { numLines = 10; }
QVBoxLayout *vbox = new QVBoxLayout( page, KDialog::spacingHint() );
if( richText == true )
{
KTextBrowser *browser = new KTextBrowser( page, "browser" );
browser->setHScrollBarMode( QScrollView::AlwaysOff );
browser->setText( text );
browser->setMinimumHeight( fontMetrics().lineSpacing()*numLines );
vbox->addWidget(browser);
connect(browser, SIGNAL(urlClick(const QString &)),
SLOT(slotUrlClick(const QString &)));
connect(browser, SIGNAL(mailClick(const QString &,const QString &)),
SLOT(slotMailClick(const QString &,const QString &)));
}
else
{
QMultiLineEdit *lineEdit = new QMultiLineEdit( page, "text" );
lineEdit->setReadOnly( true );
lineEdit->setText( text );
lineEdit->setMinimumWidth( lineEdit->maxLineWidth() + 20 );
lineEdit->setMinimumHeight( fontMetrics().lineSpacing()*numLines );
vbox->addWidget( lineEdit );
}
return( page );
}
kdelibs'KAboutContainerBase::addContainerPage() (./kdelibs/kdeui/kaboutdialog.cpp:495)
KAboutContainer *KAboutContainerBase::addContainerPage( const QString &title,
int childAlignment,
int innerAlignment )
{
if( mPageTab == 0 )
{
cout << "addPage: " << "Invalid layout" << endl;
return( 0 );
}
KAboutContainer *container = new KAboutContainer( mPageTab, "container",
KDialog::spacingHint(), KDialog::spacingHint(), childAlignment,
innerAlignment );
mPageTab->addTab( container, title );
if( mContainerList.resize( mContainerList.size() + 1) == true )
{
mContainerList[ mContainerList.size()-1 ]=container;
}
connect(container, SIGNAL(urlClick(const QString &)),
SLOT(slotUrlClick(const QString &)));
connect(container, SIGNAL(mailClick(const QString &,const QString &)),
SLOT(slotMailClick(const QString &,const QString &)));
return( container );
}
kdelibs'KAboutContainerBase::addEmptyPage() (./kdelibs/kdeui/kaboutdialog.cpp:524)
QFrame *KAboutContainerBase::addEmptyPage( const QString &title )
{
if( mPageTab == 0 )
{
cout << "addPage: " << "Invalid layout" << endl;
return( 0 );
}
QFrame *page = new QFrame( mPageTab, title.latin1() );
page->setFrameStyle( QFrame::NoFrame );
mPageTab->addTab( page, title );
return( page );
}
kdelibs'KAboutContainerBase::addContainer() (./kdelibs/kdeui/kaboutdialog.cpp:540)
KAboutContainer *KAboutContainerBase::addContainer( int childAlignment,
int innerAlignment )
{
KAboutContainer *container = new KAboutContainer( this, "container",
0, KDialog::spacingHint(), childAlignment, innerAlignment );
mTopLayout->addWidget( container, 0, childAlignment );
if( mContainerList.resize( mContainerList.size() + 1) == true )
{
mContainerList[ mContainerList.size()-1 ]=container;
}
connect(container, SIGNAL(urlClick(const QString &)),
SLOT(slotUrlClick(const QString &)));
connect(container, SIGNAL(mailClick(const QString &,const QString &)),
SLOT(slotMailClick(const QString &,const QString &)));
return( container );
}
kdelibs'KAboutContainerBase::setTitle() (./kdelibs/kdeui/kaboutdialog.cpp:562)
void KAboutContainerBase::setTitle( const QString &title )
{
if( mTitleLabel == 0 )
{
cout << "setTitle: " << "Invalid layout" << endl;
return;
}
mTitleLabel->setText(title);
}
kdelibs'KAboutContainerBase::setImage() (./kdelibs/kdeui/kaboutdialog.cpp:573)
void KAboutContainerBase::setImage( const QString &fileName )
{
if( mImageLabel == 0 )
{
cout << "setImage: " << "Invalid layout" << endl;
return;
}
if( fileName.isNull() )
{
return;
}
QImage logo( fileName );
if( logo.isNull() == false )
{
QPixmap pix;
pix = logo;
mImageLabel->setPixmap( pix );
}
mImageFrame->layout()->activate();
}
kdelibs'KAboutContainerBase::setImageBackgroundColor() (./kdelibs/kdeui/kaboutdialog.cpp:597)
void KAboutContainerBase::setImageBackgroundColor( const QColor &color )
{
if( mImageFrame != 0 )
{
mImageFrame->setBackgroundColor( color );
}
}
kdelibs'KAboutContainerBase::setImageFrame() (./kdelibs/kdeui/kaboutdialog.cpp:606)
void KAboutContainerBase::setImageFrame( bool state )
{
if( mImageFrame != 0 )
{
if( state == true )
{
mImageFrame->setFrameStyle( QFrame::Panel | QFrame::Plain );
mImageFrame->setLineWidth(1);
}
else
{
mImageFrame->setFrameStyle( QFrame::NoFrame );
mImageFrame->setLineWidth(0);
}
}
}
kdelibs'KAboutContainerBase::setProduct() (./kdelibs/kdeui/kaboutdialog.cpp:624)
void KAboutContainerBase::setProduct( const QString &appName,
const QString &version,
const QString &author,
const QString &year )
{
if( mIconLabel == 0 )
{
cout << "setProduct: " << "Invalid layout" << endl;
return;
}
mIconLabel->setPixmap( kapp->icon() );
QString msg1 = i18n("Version: %1 %2 (KDE %3)").arg(appName).arg(version).
arg(QString::fromLatin1(KDE_VERSION_STRING));
QString msg2 = i18n("%1 %2, %3").arg('©').arg(year).arg(author);
mVersionLabel->setText( msg1 );
mAuthorLabel->setText( msg2 );
mIconLabel->parentWidget()->layout()->activate();
}
kdelibs'KAboutContainerBase::slotMouseTrack() (./kdelibs/kdeui/kaboutdialog.cpp:647)
void KAboutContainerBase::slotMouseTrack( int mode, const QMouseEvent *e )
{
emit mouseTrack( mode, e );
}
kdelibs'KAboutContainerBase::slotUrlClick() (./kdelibs/kdeui/kaboutdialog.cpp:653)
void KAboutContainerBase::slotUrlClick( const QString &url )
{
emit urlClick( url );
}
kdelibs'KAboutContainerBase::slotMailClick() (./kdelibs/kdeui/kaboutdialog.cpp:658)
void KAboutContainerBase::slotMailClick( const QString &name,
const QString &address )
{
emit mailClick( name, address );
}