Public Member Functions | Public Attributes | Protected Member Functions

QxtCrumbViewButton Class Reference

List of all members.

Public Member Functions

 QxtCrumbViewButton (const QModelIndex &idx, QxtCrumbView *parent)
QSize sizeHint () const

Public Attributes

QModelIndex index

Protected Member Functions

void enterEvent (QEvent *event)
void leaveEvent (QEvent *event)
void paintEvent (QPaintEvent *event)

Detailed Description

Definition at line 98 of file qxtcrumbview.cpp.


Constructor & Destructor Documentation

QxtCrumbViewButton::QxtCrumbViewButton ( const QModelIndex &  idx,
QxtCrumbView parent 
) [inline]

Definition at line 100 of file qxtcrumbview.cpp.

                                                                     : QAbstractButton(parent), index(idx) {
        // initializers only
    }

Member Function Documentation

void QxtCrumbViewButton::enterEvent ( QEvent *  event ) [inline, protected]

Definition at line 118 of file qxtcrumbview.cpp.

                                   {
        Q_UNUSED(event);
        update();
    }
void QxtCrumbViewButton::leaveEvent ( QEvent *  event ) [inline, protected]

Definition at line 123 of file qxtcrumbview.cpp.

                                   {
        Q_UNUSED(event);
        update();
    }
void QxtCrumbViewButton::paintEvent ( QPaintEvent *  event ) [inline, protected]

Definition at line 128 of file qxtcrumbview.cpp.

References index.

                                        {
        Q_UNUSED(event);
        QStylePainter painter(this);
        QStyleOptionButton option;
        option.initFrom(this);
        if(rect().contains(mapFromGlobal(QCursor::pos()))) {
            painter.drawPrimitive(QStyle::PE_PanelButtonTool, option);
        }
        int border = painter.style()->pixelMetric(QStyle::PM_DefaultFrameWidth);
        option.rect = option.rect.adjusted(border, border, -border, -border);
        QAbstractItemDelegate* delegate = static_cast<QxtCrumbView*>(parent())->itemDelegate();
        QStyleOptionViewItem itemOption;
        itemOption.initFrom(this);
        itemOption.rect = option.rect;
        delegate->paint(&painter, itemOption, index);
        int arrow = 8;
        int pad = (height() - (2 * border) - arrow) / 2;
        QStyleOption arrowOption;
        arrowOption.initFrom(this);
        arrowOption.rect = QRect(width() - border - arrow, pad, arrow, arrow);
        painter.drawPrimitive(QStyle::PE_IndicatorArrowRight, arrowOption);
    }
QSize QxtCrumbViewButton::sizeHint (  ) const [inline]

Definition at line 106 of file qxtcrumbview.cpp.

References index.

                           {
        QStyleOptionViewItem itemOption;
        itemOption.initFrom(this);
        int border = style()->pixelMetric(QStyle::PM_DefaultFrameWidth) * 2;
        int arrow = 8;
        if(index.isValid())
            return static_cast<QxtCrumbView*>(parent())->itemDelegate()->sizeHint(itemOption, index) + QSize(border + arrow, border);
        else
            return QSize(border + arrow, border + arrow); 
    }

Member Data Documentation

Definition at line 104 of file qxtcrumbview.cpp.

Referenced by paintEvent(), and sizeHint().


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