#include <qxtcrumbview.h>

Public Slots | |
| virtual void | reset () |
| void | back () |
| void | enterTree (const QModelIndex &index) |
Public Member Functions | |
| QxtCrumbView (QWidget *parent=0) | |
| virtual void | setModel (QAbstractItemModel *model) |
| virtual QModelIndex | indexAt (const QPoint &point) const |
| virtual void | scrollTo (const QModelIndex &index, ScrollHint hint=EnsureVisible) |
| virtual QRect | visualRect (const QModelIndex &index) const |
| void | setItemDelegate (QAbstractItemDelegate *delegate) |
| QListView * | listView () const |
Protected Member Functions | |
| virtual int | horizontalOffset () const |
| virtual int | verticalOffset () const |
| virtual bool | isIndexHidden (const QModelIndex &index) const |
| virtual QModelIndex | moveCursor (CursorAction action, Qt::KeyboardModifiers mods) |
| virtual void | setSelection (const QRect &rect, QItemSelectionModel::SelectionFlags flags) |
| virtual QRegion | visualRegionForSelection (const QItemSelection &selection) const |
Friends | |
| class | QxtCrumbViewPrivate |
Definition at line 35 of file qxtcrumbview.h.
| QxtCrumbView::QxtCrumbView | ( | QWidget * | parent = 0 ) |
Definition at line 166 of file qxtcrumbview.cpp.
References back(), enterTree(), and QXT_INIT_PRIVATE.
: QAbstractItemView(parent) {
QXT_INIT_PRIVATE(QxtCrumbView);
setAutoFillBackground(false);
setBackgroundRole(QPalette::Window);
viewport()->setAutoFillBackground(false);
viewport()->setBackgroundRole(QPalette::Window);
setFrameStyle(QFrame::NoFrame);
QVBoxLayout* layout = new QVBoxLayout(this);
qxt_d().buttonLayout = new QHBoxLayout;
qxt_d().buttonLayout->setSpacing(0);
qxt_d().buttonLayout->addStretch(1);
QToolButton* backButton = new QToolButton(this);
backButton->setIcon(style()->standardPixmap(QStyle::SP_FileDialogBack));
backButton->setAutoRaise(true);
backButton->setFocusPolicy(Qt::NoFocus);
qxt_d().buttonLayout->addWidget(backButton);
layout->addLayout(qxt_d().buttonLayout, 0);
qxt_d().view = new QxtCrumbViewList(this);
layout->addWidget(qxt_d().view, 1);
qxt_d().addCrumb(QModelIndex());
QObject::connect(qxt_d().view, SIGNAL(activated(QModelIndex)), this, SLOT(enterTree(QModelIndex)));
QObject::connect(backButton, SIGNAL(clicked()), this, SLOT(back()));
}
| void QxtCrumbView::back | ( | ) | [slot] |
Definition at line 273 of file qxtcrumbview.cpp.
Referenced by QxtCrumbView().
{
if(qxt_d().crumbs.count() <= 1) return;
qxt_d().buttons.last()->deleteLater();
qxt_d().buttons.removeLast();
qxt_d().crumbs.removeLast();
qxt_d().view->setRootIndex(qxt_d().crumbs.last());
}
| void QxtCrumbView::enterTree | ( | const QModelIndex & | index ) | [slot] |
Definition at line 248 of file qxtcrumbview.cpp.
Referenced by QxtCrumbViewPrivate::buttonPressed(), and QxtCrumbView().
{
if(!model() || !model()->hasChildren(index)) return;
if(index == qxt_d().view->rootIndex()) {
// do nothing but reload the view
} else if(index.parent() != qxt_d().view->rootIndex()) {
foreach(QxtCrumbViewButton* b, qxt_d().buttons) b->deleteLater();
qxt_d().crumbs.clear();
qxt_d().buttons.clear();
qxt_d().addCrumb(QModelIndex());
QList<QModelIndex> chain;
QModelIndex pos = index;
while(pos.isValid()) {
chain.append(pos);
pos = pos.parent();
}
while(!chain.isEmpty()) {
qxt_d().addCrumb(chain.last());
chain.removeLast();
}
} else {
qxt_d().addCrumb(index);
}
qxt_d().view->setRootIndex(index);
}
| int QxtCrumbView::horizontalOffset | ( | ) | const [protected, virtual] |
Definition at line 206 of file qxtcrumbview.cpp.
{
return qxt_d().view->horizontalOffset();
}
| QModelIndex QxtCrumbView::indexAt | ( | const QPoint & | point ) | const [virtual] |
Definition at line 214 of file qxtcrumbview.cpp.
{
return qxt_d().view->indexAt(qxt_d().view->mapFromParent(point));
}
| bool QxtCrumbView::isIndexHidden | ( | const QModelIndex & | index ) | const [protected, virtual] |
Definition at line 218 of file qxtcrumbview.cpp.
{
return qxt_d().view->isIndexHidden(index);
}
| QListView * QxtCrumbView::listView | ( | ) | const |
Definition at line 287 of file qxtcrumbview.cpp.
{
return qxt_d().view;
}
| QModelIndex QxtCrumbView::moveCursor | ( | CursorAction | action, |
| Qt::KeyboardModifiers | mods | ||
| ) | [protected, virtual] |
Definition at line 222 of file qxtcrumbview.cpp.
{
return qxt_d().view->moveCursor(action, mods);
}
| void QxtCrumbView::reset | ( | ) | [virtual, slot] |
Definition at line 198 of file qxtcrumbview.cpp.
{
QAbstractItemView::reset();
qDeleteAll(qxt_d().buttons);
qxt_d().crumbs.clear();
qxt_d().buttons.clear();
qxt_d().addCrumb(QModelIndex());
}
| void QxtCrumbView::scrollTo | ( | const QModelIndex & | index, |
| ScrollHint | hint = EnsureVisible |
||
| ) | [virtual] |
Definition at line 226 of file qxtcrumbview.cpp.
{
if(index.parent() != qxt_d().view->rootIndex()) {
// set the breadcrumbs and the view's root index correctly
}
qxt_d().view->scrollTo(index, hint);
}
| void QxtCrumbView::setItemDelegate | ( | QAbstractItemDelegate * | delegate ) |
Definition at line 281 of file qxtcrumbview.cpp.
{
QAbstractItemView::setItemDelegate(delegate);
delete qxt_d().view->itemDelegate();
qxt_d().view->setItemDelegate(new QxtCrumbViewDelegate(itemDelegate(), this));
}
| void QxtCrumbView::setModel | ( | QAbstractItemModel * | model ) | [virtual] |
Definition at line 191 of file qxtcrumbview.cpp.
{
qxt_d().view->setModel(model);
QAbstractItemView::setModel(model);
delete qxt_d().view->itemDelegate();
qxt_d().view->setItemDelegate(new QxtCrumbViewDelegate(itemDelegate(), this));
}
| void QxtCrumbView::setSelection | ( | const QRect & | rect, |
| QItemSelectionModel::SelectionFlags | flags | ||
| ) | [protected, virtual] |
Definition at line 233 of file qxtcrumbview.cpp.
{
QPoint tl = qxt_d().view->mapFromParent(rect.topLeft());
qxt_d().view->setSelection(QRect(tl, rect.size()), flags);
}
| int QxtCrumbView::verticalOffset | ( | ) | const [protected, virtual] |
Definition at line 210 of file qxtcrumbview.cpp.
{
return qxt_d().view->verticalOffset();
}
| QRect QxtCrumbView::visualRect | ( | const QModelIndex & | index ) | const [virtual] |
Definition at line 238 of file qxtcrumbview.cpp.
{
QRect rect = qxt_d().view->visualRect(index);
return QRect(qxt_d().view->mapToParent(rect.topLeft()), rect.size());
}
| QRegion QxtCrumbView::visualRegionForSelection | ( | const QItemSelection & | selection ) | const [protected, virtual] |
Definition at line 243 of file qxtcrumbview.cpp.
{
QRegion region = qxt_d().view->visualRegionForSelection(selection);
return region.translated(qxt_d().view->pos());
}
friend class QxtCrumbViewPrivate [friend] |
Definition at line 64 of file qxtcrumbview.h.
1.7.2