A configuration dialog. More...
#include <qxtconfigdialog.h>
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 |
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 with page icons on the left (QxtConfigDialog::West).
Definition at line 37 of file qxtconfigdialog.h.
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.
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] |
void QxtConfigDialog::accept | ( | ) | [virtual, slot] |
Reimplemented from QDialog.
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.
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.
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.
QWidget * QxtConfigDialog::currentPage | ( | ) | const |
Returns the current page.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Definition at line 508 of file qxtconfigdialog.cpp.
References page().
friend class QxtConfigDialogPrivate [friend] |
Definition at line 40 of file qxtconfigdialog.h.
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.
Sets the dialog buttonBox.
The default value is true.
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.