An extended QItemDelegate with additional signals and optional decoration. More...
#include <qxtitemdelegate.h>
Public Types | |
enum | Role { ProgressValueRole = Qt::UserRole + 328, ProgressMinimumRole, ProgressMaximumRole } |
Signals | |
void | editingStarted (const QModelIndex &index) |
void | editingFinished (const QModelIndex &index) |
Public Member Functions | |
QxtItemDelegate (QObject *parent=0) | |
virtual | ~QxtItemDelegate () |
Qxt::DecorationStyle | decorationStyle () const |
void | setDecorationStyle (Qxt::DecorationStyle style) |
Qt::TextElideMode | elideMode () const |
void | setElideMode (Qt::TextElideMode mode) |
QString | progressTextFormat () const |
void | setProgressTextFormat (const QString &format) |
bool | isProgressTextVisible () const |
void | setProgressTextVisible (bool visible) |
virtual QWidget * | createEditor (QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const |
virtual void | setModelData (QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const |
virtual void | paint (QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const |
virtual QSize | sizeHint (const QStyleOptionViewItem &option, const QModelIndex &index) const |
Properties | |
Qxt::DecorationStyle | decorationStyle |
This property holds the top level index decoration style. | |
Qt::TextElideMode | elideMode |
This property holds the text elide mode. | |
QString | progressTextFormat |
This property holds the format of optional progress text. | |
bool | progressTextVisible |
This property holds whether progress text is visible. | |
Friends | |
class | QxtItemDelegatePrivate |
An extended QItemDelegate with additional signals and optional decoration.
QxtItemDelegate provides signals for starting and finishing of editing and an optional decoration for top level indices in a QTreeView.
QxtItemDelegate can also draw a progress bar for indices providing appropriate progress data. Just like QProgressBar, QxtItemDelegate can show a busy indicator. If minimum and maximum both are set to 0, a busy indicator is shown instead of a percentage of steps.
Definition at line 35 of file qxtitemdelegate.h.
This enum defines custom roles used by QxtItemDelegate.
Definition at line 48 of file qxtitemdelegate.h.
{ ProgressValueRole = Qt::UserRole + 328, ProgressMinimumRole, ProgressMaximumRole };
QxtItemDelegate::QxtItemDelegate | ( | QObject * | parent = 0 ) |
[explicit] |
Constructs a new QxtItemDelegate with parent.
Definition at line 271 of file qxtitemdelegate.cpp.
References QXT_INIT_PRIVATE.
: QItemDelegate(parent) { QXT_INIT_PRIVATE(QxtItemDelegate); connect(this, SIGNAL(closeEditor(QWidget*)), &qxt_d(), SLOT(closeEditor(QWidget*))); }
QxtItemDelegate::~QxtItemDelegate | ( | ) | [virtual] |
QWidget * QxtItemDelegate::createEditor | ( | QWidget * | parent, |
const QStyleOptionViewItem & | option, | ||
const QModelIndex & | index | ||
) | const [virtual] |
Definition at line 377 of file qxtitemdelegate.cpp.
References editingStarted().
{ QWidget* editor = QItemDelegate::createEditor(parent, option, index); qxt_d().setCurrentEditor(editor, index); emit const_cast<QxtItemDelegate*>(this)->editingStarted(index); return editor; }
Qxt::DecorationStyle QxtItemDelegate::decorationStyle | ( | ) | const |
QxtItemDelegate::editingFinished | ( | const QModelIndex & | index ) | [signal] |
This signal is emitted after the editing of index has been finished.
Referenced by setModelData().
QxtItemDelegate::editingStarted | ( | const QModelIndex & | index ) | [signal] |
This signal is emitted after the editing of index has been started.
Referenced by createEditor().
Qt::TextElideMode QxtItemDelegate::elideMode | ( | ) | const |
bool QxtItemDelegate::isProgressTextVisible | ( | ) | const |
Definition at line 364 of file qxtitemdelegate.cpp.
{
return qxt_d().textVisible;
}
void QxtItemDelegate::paint | ( | QPainter * | painter, |
const QStyleOptionViewItem & | option, | ||
const QModelIndex & | index | ||
) | const [virtual] |
Definition at line 398 of file qxtitemdelegate.cpp.
References Qxt::Buttonlike, Qxt::Menulike, Qxt::NoDecoration, and ProgressValueRole.
{ const QAbstractItemModel* model = index.model(); const QTreeView* tree = qobject_cast<QTreeView*>(parent()); const bool topLevel = !index.parent().isValid(); if (tree && model && topLevel && qxt_d().style != Qxt::NoDecoration) { QStyleOptionViewItem opt; opt.QStyleOption::operator=(option); opt.showDecorationSelected = false; QModelIndex valid = model->index(index.row(), 0); QModelIndex sibling = valid; while (sibling.isValid()) { opt.rect |= tree->visualRect(sibling); sibling = sibling.sibling(sibling.row(), sibling.column() + 1); } switch (qxt_d().style) { case Qxt::Buttonlike: qxt_d().paintButton(painter, opt, valid, tree); break; case Qxt::Menulike: qxt_d().paintMenu(painter, opt, valid, tree); break; default: qWarning("QxtItemDelegate::paint() unknown decoration style"); QItemDelegate::paint(painter, opt, valid); break; } } else { QItemDelegate::paint(painter, option, index); const QVariant data = index.data(ProgressValueRole); if (data.isValid() && data.canConvert(QVariant::Int)) qxt_d().paintProgress(painter, option, index); } }
QString QxtItemDelegate::progressTextFormat | ( | ) | const |
void QxtItemDelegate::setDecorationStyle | ( | Qxt::DecorationStyle | style ) |
Definition at line 303 of file qxtitemdelegate.cpp.
{ qxt_d().style = style; }
void QxtItemDelegate::setElideMode | ( | Qt::TextElideMode | mode ) |
Definition at line 324 of file qxtitemdelegate.cpp.
{ qxt_d().elide = mode; }
void QxtItemDelegate::setModelData | ( | QWidget * | editor, |
QAbstractItemModel * | model, | ||
const QModelIndex & | index | ||
) | const [virtual] |
Definition at line 388 of file qxtitemdelegate.cpp.
References editingFinished().
{ QItemDelegate::setModelData(editor, model, index); qxt_d().setCurrentEditor(0, QModelIndex()); emit const_cast<QxtItemDelegate*>(this)->editingFinished(index); }
void QxtItemDelegate::setProgressTextFormat | ( | const QString & | format ) |
Definition at line 348 of file qxtitemdelegate.cpp.
{ qxt_d().progressFormat = format; }
void QxtItemDelegate::setProgressTextVisible | ( | bool | visible ) |
Definition at line 369 of file qxtitemdelegate.cpp.
{ qxt_d().textVisible = visible; }
QSize QxtItemDelegate::sizeHint | ( | const QStyleOptionViewItem & | option, |
const QModelIndex & | index | ||
) | const [virtual] |
Definition at line 445 of file qxtitemdelegate.cpp.
References TOP_LEVEL_EXTENT.
{ // something slightly bigger for top level indices QSize size = QItemDelegate::sizeHint(option, index); if (!index.parent().isValid()) size += QSize(TOP_LEVEL_EXTENT, TOP_LEVEL_EXTENT); return size; }
friend class QxtItemDelegatePrivate [friend] |
Definition at line 38 of file qxtitemdelegate.h.
Qxt::DecorationStyle QxtItemDelegate::decorationStyle [read, write] |
This property holds the top level index decoration style.
Top level indices are decorated according to this property. The default value is Qxt::NoDecoration.
Definition at line 38 of file qxtitemdelegate.h.
Qt::TextElideMode QxtItemDelegate::elideMode [read, write] |
This property holds the text elide mode.
The text of a decorated top level index is elided according to this property. The default value is Qt::ElideMiddle.
Definition at line 40 of file qxtitemdelegate.h.
QString QxtItemDelegate::progressTextFormat [read, write] |
This property holds the format of optional progress text.
The progress text is formatted according to this property. The default value is "%1%".
Definition at line 41 of file qxtitemdelegate.h.
QxtItemDelegate::progressTextVisible [read, write] |
This property holds whether progress text is visible.
The default value is true.
Definition at line 42 of file qxtitemdelegate.h.