Public Types | Public Slots | Signals | Public Member Functions | Protected Member Functions | Properties | Friends

QxtConfigDialog Class Reference
[QxtGui]

A configuration dialog. More...

#include <qxtconfigdialog.h>

Collaboration diagram for QxtConfigDialog:
Collaboration graph
[legend]

List of all members.

Public Types

enum  IconPosition { North, West, East }

Public Slots

void setCurrentIndex (int index)
void setCurrentPage (QWidget *page)
virtual void accept ()
virtual void reject ()

Signals

void currentIndexChanged (int index)

Public Member Functions

 QxtConfigDialog (QWidget *parent=0, Qt::WindowFlags flags=0)
 QxtConfigDialog (QxtConfigDialog::IconPosition position, QWidget *parent=0, Qt::WindowFlags flags=0)
virtual ~QxtConfigDialog ()
QDialogButtonBox * dialogButtonBox () const
void setDialogButtonBox (QDialogButtonBox *buttonBox)
bool hasHoverEffect () const
void setHoverEffect (bool enabled)
QxtConfigDialog::IconPosition iconPosition () const
void setIconPosition (QxtConfigDialog::IconPosition position)
QSize iconSize () const
void setIconSize (const QSize &size)
int addPage (QWidget *page, const QIcon &icon, const QString &title=QString())
int insertPage (int index, QWidget *page, const QIcon &icon, const QString &title=QString())
QWidget * takePage (int index)
int count () const
int currentIndex () const
QWidget * currentPage () const
int indexOf (QWidget *page) const
QWidget * page (int index) const
bool isPageEnabled (int index) const
void setPageEnabled (int index, bool enabled)
bool isPageHidden (int index) const
void setPageHidden (int index, bool hidden)
QIcon pageIcon (int index) const
void setPageIcon (int index, const QIcon &icon)
QString pageTitle (int index) const
void setPageTitle (int index, const QString &title)
QString pageToolTip (int index) const
void setPageToolTip (int index, const QString &tooltip)
QString pageWhatsThis (int index) const
void setPageWhatsThis (int index, const QString &whatsthis)

Protected Member Functions

QTableWidget * tableWidget () const
QStackedWidget * stackedWidget () const
virtual void cleanupPage (int index)
virtual void initializePage (int index)

Properties

int count
 This property holds the number of pages.
int currentIndex
 This property holds the index of current page.
bool hoverEffect
 This property holds whether a hover effect is shown for page icons.
QxtConfigDialog::IconPosition iconPosition
 This property holds the position of page icons.
QSize iconSize
 This property holds the size of page icons.

Friends

class QxtConfigDialogPrivate

Detailed Description

A configuration dialog.

QxtConfigDialog provides a convenient interface for building common configuration dialogs. QxtConfigDialog consists of a list of icons and a stack of pages.

Example usage:

    QxtConfigDialog dialog;
    dialog.addPage(new ConfigurationPage(&dialog), QIcon(":/images/config.png"), tr("Configuration"));
    dialog.addPage(new UpdatePage(&dialog), QIcon(":/images/update.png"), tr("Update"));
    dialog.addPage(new QueryPage(&dialog), QIcon(":/images/query.png"), tr("Query"));
    dialog.exec();
qxtconfigdialog.png

QxtConfigDialog with page icons on the left (QxtConfigDialog::West).

Definition at line 37 of file qxtconfigdialog.h.


Member Enumeration Documentation

Enumerator:
North 

The icons are located above the pages.

West 

The icons are located to the left of the pages.

East 

The icons are located to the right of the pages.

Definition at line 49 of file qxtconfigdialog.h.

{ North, West, East };

Constructor & Destructor Documentation

QxtConfigDialog::QxtConfigDialog ( QWidget *  parent = 0,
Qt::WindowFlags  flags = 0 
) [explicit]

Constructs a new QxtConfigDialog with parent and flags.

Definition at line 333 of file qxtconfigdialog.cpp.

References QXT_INIT_PRIVATE.

        : QDialog(parent, flags)
{
    QXT_INIT_PRIVATE(QxtConfigDialog);
    qxt_d().init();
}
QxtConfigDialog::QxtConfigDialog ( QxtConfigDialog::IconPosition  position,
QWidget *  parent = 0,
Qt::WindowFlags  flags = 0 
) [explicit]

Constructs a new QxtConfigDialog with icon position, parent and flags.

Definition at line 343 of file qxtconfigdialog.cpp.

References QXT_INIT_PRIVATE.

        : QDialog(parent, flags)
{
    QXT_INIT_PRIVATE(QxtConfigDialog);
    qxt_d().init(position);
}
QxtConfigDialog::~QxtConfigDialog (  ) [virtual]

Destructs the config dialog.

Definition at line 353 of file qxtconfigdialog.cpp.

{}

Member Function Documentation

void QxtConfigDialog::accept (  ) [virtual, slot]

Reimplemented from QDialog.

Note:
The default implementation calls SLOT(accept()) of each page page provided that such slot exists.
See also:
reject()

Definition at line 767 of file qxtconfigdialog.cpp.

{
    Q_ASSERT(qxt_d().stack);
    for (int i = 0; i < qxt_d().stack->count(); ++i)
    {
        QMetaObject::invokeMethod(qxt_d().stack->widget(i), "accept");
    }
    QDialog::accept();
}
int QxtConfigDialog::addPage ( QWidget *  page,
const QIcon &  icon,
const QString &  title = QString() 
)

Adds a page with icon and title.

In case title is an empty string, QWidget::windowTitle is used.

Returns the index of added page.

Warning:
Adding and removing pages dynamically at run time might cause flicker.
See also:
insertPage()

Definition at line 457 of file qxtconfigdialog.cpp.

References insertPage().

{
    return insertPage(-1, page, icon, title);
}
void QxtConfigDialog::cleanupPage ( int  index ) [protected, virtual]

This virtual function is called to clean up previous page at index before switching to a new page.

Note:
The default implementation calls SLOT(cleanup()) of the corresponding page provided that such slot exists.
See also:
initializePage()

Definition at line 824 of file qxtconfigdialog.cpp.

Referenced by QxtConfigDialogPrivate::setCurrentIndex().

{
    Q_ASSERT(qxt_d().stack);
    QMetaObject::invokeMethod(qxt_d().stack->widget(index), "cleanup");
}
int QxtConfigDialog::count (  ) const
int QxtConfigDialog::currentIndex (  ) const
QxtConfigDialog::currentIndexChanged ( int  index ) [signal]

This signal is emitted whenever the current page index changes.

See also:
currentIndex()
QWidget * QxtConfigDialog::currentPage (  ) const

Returns the current page.

See also:
currentIndex(), setCurrentPage()

Definition at line 551 of file qxtconfigdialog.cpp.

{
    return qxt_d().stack->currentWidget();
}
QDialogButtonBox* QxtConfigDialog::dialogButtonBox (  ) const
bool QxtConfigDialog::hasHoverEffect (  ) const

Definition at line 404 of file qxtconfigdialog.cpp.

{
    return qxt_d().table->hasHoverEffect();
}
QxtConfigDialog::IconPosition QxtConfigDialog::iconPosition (  ) const
QSize QxtConfigDialog::iconSize (  ) const
int QxtConfigDialog::indexOf ( QWidget *  page ) const

Returns the index of page or -1 if the page is unknown.

Definition at line 569 of file qxtconfigdialog.cpp.

{
    return qxt_d().stack->indexOf(page);
}
void QxtConfigDialog::initializePage ( int  index ) [protected, virtual]

This virtual function is called to initialize page at index before switching to it.

Note:
The default implementation calls SLOT(initialize()) of the corresponding page provided that such slot exists.
See also:
cleanupPage()

Definition at line 839 of file qxtconfigdialog.cpp.

Referenced by QxtConfigDialogPrivate::setCurrentIndex().

{
    Q_ASSERT(qxt_d().stack);
    QMetaObject::invokeMethod(qxt_d().stack->widget(index), "initialize");
}
int QxtConfigDialog::insertPage ( int  index,
QWidget *  page,
const QIcon &  icon,
const QString &  title = QString() 
)

Inserts a page with icon and title.

In case title is an empty string, QWidget::windowTitle is used.

Returns the index of inserted page.

Warning:
Inserting and removing pages dynamically at run time might cause flicker.
See also:
addPage()

Definition at line 473 of file qxtconfigdialog.cpp.

References North.

Referenced by addPage().

{
    if (!page)
    {
        qWarning("QxtConfigDialog::insertPage(): Attempt to insert null page");
        return -1;
    }

    index = qxt_d().stack->insertWidget(index, page);
    const QString label = !title.isEmpty() ? title : page->windowTitle();
    if (label.isEmpty())
        qWarning("QxtConfigDialog::insertPage(): Inserting a page with an empty title");
    QTableWidgetItem* item = new QTableWidgetItem(icon, label);
    item->setToolTip(label);
    if (qxt_d().pos == QxtConfigDialog::North)
    {
        qxt_d().table->model()->insertColumn(index);
        qxt_d().table->setItem(0, index, item);
        qxt_d().table->resizeRowToContents(0);
    }
    else
    {
        qxt_d().table->model()->insertRow(index);
        qxt_d().table->setItem(index, 0, item);
        qxt_d().table->resizeColumnToContents(0);
    }
    qxt_d().table->updateGeometry();
    return index;
}
bool QxtConfigDialog::isPageEnabled ( int  index ) const

Returns true if the page at index is enabled; otherwise false.

See also:
setPageEnabled(), QWidget::isEnabled()

Definition at line 587 of file qxtconfigdialog.cpp.

References page().

{
    const QWidget* widget = page(index);
    return widget && widget->isEnabled();
}
bool QxtConfigDialog::isPageHidden ( int  index ) const

Returns true if the page at index is hidden; otherwise false.

See also:
setPageHidden(), QWidget::isVisible()

Definition at line 622 of file qxtconfigdialog.cpp.

References North.

{
    if (qxt_d().pos == QxtConfigDialog::North)
        return qxt_d().table->isColumnHidden(index);
    return qxt_d().table->isRowHidden(index);
}
QWidget * QxtConfigDialog::page ( int  index ) const

Returns the page at index or 0 if the index is out of range.

Definition at line 577 of file qxtconfigdialog.cpp.

Referenced by isPageEnabled(), setPageEnabled(), and takePage().

{
    return qxt_d().stack->widget(index);
}
QIcon QxtConfigDialog::pageIcon ( int  index ) const

Returns the icon of page at index.

See also:
setPageIcon()

Definition at line 648 of file qxtconfigdialog.cpp.

{
    const QTableWidgetItem* item = qxt_d().item(index);
    return (item ? item->icon() : QIcon());
}
QString QxtConfigDialog::pageTitle ( int  index ) const

Returns the title of page at index.

See also:
setPageTitle()

Definition at line 677 of file qxtconfigdialog.cpp.

{
    const QTableWidgetItem* item = qxt_d().item(index);
    return (item ? item->text() : QString());
}
QString QxtConfigDialog::pageToolTip ( int  index ) const

Returns the tooltip of page at index.

See also:
setPageToolTip()

Definition at line 706 of file qxtconfigdialog.cpp.

{
    const QTableWidgetItem* item = qxt_d().item(index);
    return (item ? item->toolTip() : QString());
}
QString QxtConfigDialog::pageWhatsThis ( int  index ) const

Returns the what's this of page at index.

See also:
setPageWhatsThis()

Definition at line 735 of file qxtconfigdialog.cpp.

{
    const QTableWidgetItem* item = qxt_d().item(index);
    return (item ? item->whatsThis() : QString());
}
void QxtConfigDialog::reject (  ) [virtual, slot]

Reimplemented from QDialog.

Note:
The default implementation calls SLOT(reject()) of each page provided that such slot exists.
See also:
accept()

Definition at line 785 of file qxtconfigdialog.cpp.

{
    Q_ASSERT(qxt_d().stack);
    for (int i = 0; i < qxt_d().stack->count(); ++i)
    {
        QMetaObject::invokeMethod(qxt_d().stack->widget(i), "reject");
    }
    QDialog::reject();
}
void QxtConfigDialog::setCurrentIndex ( int  index ) [slot]

Definition at line 541 of file qxtconfigdialog.cpp.

{
    qxt_d().setCurrentIndex(index);
}
void QxtConfigDialog::setCurrentPage ( QWidget *  page ) [slot]

Sets the current page.

See also:
currentPage(), currentIndex()

Definition at line 561 of file qxtconfigdialog.cpp.

{
    qxt_d().setCurrentIndex(qxt_d().stack->indexOf(page));
}
void QxtConfigDialog::setDialogButtonBox ( QDialogButtonBox *  buttonBox )
void QxtConfigDialog::setHoverEffect ( bool  enabled )

Definition at line 409 of file qxtconfigdialog.cpp.

{
    qxt_d().table->setHoverEffect(enabled);
}
void QxtConfigDialog::setIconPosition ( QxtConfigDialog::IconPosition  position )

Definition at line 423 of file qxtconfigdialog.cpp.

{
    if (qxt_d().pos != position)
    {
        qxt_d().pos = position;
        qxt_d().relayout();
    }
}
void QxtConfigDialog::setIconSize ( const QSize &  size )

Definition at line 441 of file qxtconfigdialog.cpp.

{
    qxt_d().table->setIconSize(size);
}
void QxtConfigDialog::setPageEnabled ( int  index,
bool  enabled 
)

Sets the page at index enabled. The corresponding page icon is also enabled.

See also:
isPageEnabled(), QWidget::setEnabled()

Definition at line 599 of file qxtconfigdialog.cpp.

References page().

{
    QWidget* page = qxt_d().stack->widget(index);
    QTableWidgetItem* item = qxt_d().item(index);
    if (page && item)
    {
        page->setEnabled(enabled);
        if (enabled)
            item->setFlags(item->flags() | Qt::ItemIsEnabled);
        else
            item->setFlags(item->flags() & ~Qt::ItemIsEnabled);
    }
    else
    {
        qWarning("QxtConfigDialog::setPageEnabled(): Unknown index");
    }
}
void QxtConfigDialog::setPageHidden ( int  index,
bool  hidden 
)

Sets the page at index hidden. The corresponding page icon is also hidden.

See also:
isPageHidden(), QWidget::setVisible()

Definition at line 635 of file qxtconfigdialog.cpp.

References North.

{
    if (qxt_d().pos == QxtConfigDialog::North)
        qxt_d().table->setColumnHidden(index, hidden);
    else
        qxt_d().table->setRowHidden(index, hidden);
}
void QxtConfigDialog::setPageIcon ( int  index,
const QIcon &  icon 
)

Sets the icon of page at index.

See also:
pageIcon()

Definition at line 659 of file qxtconfigdialog.cpp.

{
    QTableWidgetItem* item = qxt_d().item(index);
    if (item)
    {
        item->setIcon(icon);
    }
    else
    {
        qWarning("QxtConfigDialog::setPageIcon(): Unknown index");
    }
}
void QxtConfigDialog::setPageTitle ( int  index,
const QString &  title 
)

Sets the title of page at index.

See also:
pageTitle()

Definition at line 688 of file qxtconfigdialog.cpp.

{
    QTableWidgetItem* item = qxt_d().item(index);
    if (item)
    {
        item->setText(title);
    }
    else
    {
        qWarning("QxtConfigDialog::setPageTitle(): Unknown index");
    }
}
void QxtConfigDialog::setPageToolTip ( int  index,
const QString &  tooltip 
)

Sets the tooltip of page at index.

See also:
pageToolTip()

Definition at line 717 of file qxtconfigdialog.cpp.

{
    QTableWidgetItem* item = qxt_d().item(index);
    if (item)
    {
        item->setToolTip(tooltip);
    }
    else
    {
        qWarning("QxtConfigDialog::setPageToolTip(): Unknown index");
    }
}
void QxtConfigDialog::setPageWhatsThis ( int  index,
const QString &  whatsthis 
)

Sets the whatsthis of page at index.

See also:
pageWhatsThis()

Definition at line 746 of file qxtconfigdialog.cpp.

{
    QTableWidgetItem* item = qxt_d().item(index);
    if (item)
    {
        item->setWhatsThis(whatsthis);
    }
    else
    {
        qWarning("QxtConfigDialog::setPageWhatsThis(): Unknown index");
    }
}
QStackedWidget * QxtConfigDialog::stackedWidget (  ) const [protected]

Returns the internal stacked widget used for stacking pages.

See also:
tableWidget()

Definition at line 810 of file qxtconfigdialog.cpp.

{
    return qxt_d().stack;
}
QTableWidget * QxtConfigDialog::tableWidget (  ) const [protected]

Returns the internal table widget used for showing page icons.

See also:
stackedWidget()

Definition at line 800 of file qxtconfigdialog.cpp.

{
    return qxt_d().table;
}
QWidget * QxtConfigDialog::takePage ( int  index )

Removes the page at index and returns it.

Note:
Does not delete the page widget.

Definition at line 508 of file qxtconfigdialog.cpp.

References page().

{
    if (QWidget* page = qxt_d().stack->widget(index))
    {
        qxt_d().stack->removeWidget(page);
        delete qxt_d().item(index);
        return page;
    }
    else
    {
        qWarning("QxtConfigDialog::removePage(): Unknown index");
        return 0;
    }
}

Friends And Related Function Documentation

friend class QxtConfigDialogPrivate [friend]

Definition at line 40 of file qxtconfigdialog.h.


Property Documentation

int QxtConfigDialog::count [read]

This property holds the number of pages.

Definition at line 40 of file qxtconfigdialog.h.

int QxtConfigDialog::currentIndex [read, write]

This property holds the index of current page.

Definition at line 42 of file qxtconfigdialog.h.

QxtConfigDialog::hoverEffect [read, write]

This property holds whether a hover effect is shown for page icons.

Returns the dialog button box.

The default buttons are QDialogButtonBox::Ok and QDialogButtonBox::Cancel.

Note:
QDialogButtonBox is available in Qt 4.2 or newer.
See also:
setDialogButtonBox()

Sets the dialog buttonBox.

See also:
dialogButtonBox()

The default value is true.

Note:
Hovered (but not selected) icons are highlighted with lightened QPalette::Highlight (whereas selected icons are highlighted with QPalette::Highlight). In case lightened QPalette::Highlight ends up same as QPalette::Base, QPalette::AlternateBase is used as a fallback color for the hover effect. This usually happens when QPalette::Highlight already is a light color (eg. light gray).

Definition at line 43 of file qxtconfigdialog.h.

QxtConfigDialog::IconPosition QxtConfigDialog::iconPosition [read, write]

This property holds the position of page icons.

Definition at line 44 of file qxtconfigdialog.h.

QSize QxtConfigDialog::iconSize [read, write]

This property holds the size of page icons.

Definition at line 45 of file qxtconfigdialog.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines