void DrillDownView::currentChanged(const QModelIndex ¤t, const QModelIndex &previous) { if ((current.isValid() && previous.isValid()) && (current.parent() == previous || previous.parent() == current)) { setUpdatesEnabled(false); setRootIndex(currentIndex().parent()); setCurrentIndex(currentIndex()); executeDelayedItemsLayout(); // Force the hiding/showing of scrollbars setVerticalScrollBarPolicy(verticalScrollBarPolicy()); newView = QPixmap::grabWidget(viewport()); setUpdatesEnabled(true); int length = qMax(oldView.width(), newView.width()); lastPosition = (previous.parent() == current) ? length : 0; animation.setFrameRange(0, length); animation.stop(); animation.setDirection(previous.parent() == current ? QTimeLine::Backward : QTimeLine::Forward); animation.start(); } else { QListView::currentChanged(current, previous); } }
/** Constructor */ FileBrowser::FileBrowser(QWidget* parent) : QTableView(parent) { Settings settings; libRoot = settings.value(LIB_ROOT_KEY, DEFAULT_LIB_ROOT).toString(); fsModel = new QFileSystemModel(this); fsModel->setFilter(QDir::AllEntries | QDir::AllDirs | QDir::NoDot); // Want .. setSelectionMode(QTableView::SingleSelection); setSelectionBehavior(QTableView::SelectRows); setShowGrid(false); setSortingEnabled(true); setModel(fsModel); horizontalHeader()->setSectionResizeMode(0, QHeaderView::Stretch); horizontalHeader()->setSectionResizeMode(3, QHeaderView::ResizeToContents); verticalHeader()->setVisible(false); setRootIndex(fsModel->setRootPath(libRoot)); connect(this, SIGNAL(activated(QModelIndex)), this, SLOT(handleDoubleClick(QModelIndex))); connect(selectionModel(), SIGNAL(currentChanged(QModelIndex,QModelIndex)), this, SLOT(handleSelection(QModelIndex,QModelIndex))); }
int QAbstractItemView::qt_metacall(QMetaObject::Call _c, int _id, void **_a) { _id = QAbstractScrollArea::qt_metacall(_c, _id, _a); if (_id < 0) return _id; if (_c == QMetaObject::InvokeMetaMethod) { switch (_id) { case 0: pressed((*reinterpret_cast< const QModelIndex(*)>(_a[1]))); break; case 1: clicked((*reinterpret_cast< const QModelIndex(*)>(_a[1]))); break; case 2: doubleClicked((*reinterpret_cast< const QModelIndex(*)>(_a[1]))); break; case 3: activated((*reinterpret_cast< const QModelIndex(*)>(_a[1]))); break; case 4: entered((*reinterpret_cast< const QModelIndex(*)>(_a[1]))); break; case 5: viewportEntered(); break; case 6: reset(); break; case 7: setRootIndex((*reinterpret_cast< const QModelIndex(*)>(_a[1]))); break; case 8: doItemsLayout(); break; case 9: selectAll(); break; case 10: edit((*reinterpret_cast< const QModelIndex(*)>(_a[1]))); break; case 11: clearSelection(); break; case 12: setCurrentIndex((*reinterpret_cast< const QModelIndex(*)>(_a[1]))); break; case 13: scrollToTop(); break; case 14: scrollToBottom(); break; case 15: update((*reinterpret_cast< const QModelIndex(*)>(_a[1]))); break; case 16: dataChanged((*reinterpret_cast< const QModelIndex(*)>(_a[1])),(*reinterpret_cast< const QModelIndex(*)>(_a[2]))); break; case 17: rowsInserted((*reinterpret_cast< const QModelIndex(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2])),(*reinterpret_cast< int(*)>(_a[3]))); break; case 18: rowsAboutToBeRemoved((*reinterpret_cast< const QModelIndex(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2])),(*reinterpret_cast< int(*)>(_a[3]))); break; case 19: selectionChanged((*reinterpret_cast< const QItemSelection(*)>(_a[1])),(*reinterpret_cast< const QItemSelection(*)>(_a[2]))); break; case 20: currentChanged((*reinterpret_cast< const QModelIndex(*)>(_a[1])),(*reinterpret_cast< const QModelIndex(*)>(_a[2]))); break; case 21: updateEditorData(); break; case 22: updateEditorGeometries(); break; case 23: updateGeometries(); break; case 24: verticalScrollbarAction((*reinterpret_cast< int(*)>(_a[1]))); break; case 25: horizontalScrollbarAction((*reinterpret_cast< int(*)>(_a[1]))); break; case 26: verticalScrollbarValueChanged((*reinterpret_cast< int(*)>(_a[1]))); break; case 27: horizontalScrollbarValueChanged((*reinterpret_cast< int(*)>(_a[1]))); break; case 28: closeEditor((*reinterpret_cast< QWidget*(*)>(_a[1])),(*reinterpret_cast< QAbstractItemDelegate::EndEditHint(*)>(_a[2]))); break; case 29: commitData((*reinterpret_cast< QWidget*(*)>(_a[1]))); break; case 30: editorDestroyed((*reinterpret_cast< QObject*(*)>(_a[1]))); break; case 31: d_func()->_q_columnsAboutToBeRemoved((*reinterpret_cast< const QModelIndex(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2])),(*reinterpret_cast< int(*)>(_a[3]))); break; case 32: d_func()->_q_columnsRemoved((*reinterpret_cast< const QModelIndex(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2])),(*reinterpret_cast< int(*)>(_a[3]))); break; case 33: d_func()->_q_rowsRemoved((*reinterpret_cast< const QModelIndex(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2])),(*reinterpret_cast< int(*)>(_a[3]))); break; case 34: d_func()->_q_modelDestroyed(); break; case 35: d_func()->_q_layoutChanged(); break; case 36: d_func()->_q_fetchMore(); break; } _id -= 37; } #ifndef QT_NO_PROPERTIES else if (_c == QMetaObject::ReadProperty) { void *_v = _a[0]; switch (_id) { case 0: *reinterpret_cast< bool*>(_v) = hasAutoScroll(); break; case 1: *reinterpret_cast< int*>(_v) = autoScrollMargin(); break; case 2: *reinterpret_cast<int*>(_v) = QFlag(editTriggers()); break; case 3: *reinterpret_cast< bool*>(_v) = tabKeyNavigation(); break; case 4: *reinterpret_cast< bool*>(_v) = showDropIndicator(); break; case 5: *reinterpret_cast< bool*>(_v) = dragEnabled(); break; case 6: *reinterpret_cast< bool*>(_v) = dragDropOverwriteMode(); break; case 7: *reinterpret_cast< DragDropMode*>(_v) = dragDropMode(); break; case 8: *reinterpret_cast< bool*>(_v) = alternatingRowColors(); break; case 9: *reinterpret_cast< SelectionMode*>(_v) = selectionMode(); break; case 10: *reinterpret_cast< SelectionBehavior*>(_v) = selectionBehavior(); break; case 11: *reinterpret_cast< QSize*>(_v) = iconSize(); break; case 12: *reinterpret_cast< Qt::TextElideMode*>(_v) = textElideMode(); break; case 13: *reinterpret_cast< ScrollMode*>(_v) = verticalScrollMode(); break; case 14: *reinterpret_cast< ScrollMode*>(_v) = horizontalScrollMode(); break; } _id -= 15; } else if (_c == QMetaObject::WriteProperty) { void *_v = _a[0]; switch (_id) { case 0: setAutoScroll(*reinterpret_cast< bool*>(_v)); break; case 1: setAutoScrollMargin(*reinterpret_cast< int*>(_v)); break; case 2: setEditTriggers(QFlag(*reinterpret_cast<int*>(_v))); break; case 3: setTabKeyNavigation(*reinterpret_cast< bool*>(_v)); break; case 4: setDropIndicatorShown(*reinterpret_cast< bool*>(_v)); break; case 5: setDragEnabled(*reinterpret_cast< bool*>(_v)); break; case 6: setDragDropOverwriteMode(*reinterpret_cast< bool*>(_v)); break; case 7: setDragDropMode(*reinterpret_cast< DragDropMode*>(_v)); break; case 8: setAlternatingRowColors(*reinterpret_cast< bool*>(_v)); break; case 9: setSelectionMode(*reinterpret_cast< SelectionMode*>(_v)); break; case 10: setSelectionBehavior(*reinterpret_cast< SelectionBehavior*>(_v)); break; case 11: setIconSize(*reinterpret_cast< QSize*>(_v)); break; case 12: setTextElideMode(*reinterpret_cast< Qt::TextElideMode*>(_v)); break; case 13: setVerticalScrollMode(*reinterpret_cast< ScrollMode*>(_v)); break; case 14: setHorizontalScrollMode(*reinterpret_cast< ScrollMode*>(_v)); break; } _id -= 15; } else if (_c == QMetaObject::ResetProperty) { _id -= 15; } else if (_c == QMetaObject::QueryPropertyDesignable) { _id -= 15; } else if (_c == QMetaObject::QueryPropertyScriptable) { _id -= 15; } else if (_c == QMetaObject::QueryPropertyStored) { _id -= 15; } else if (_c == QMetaObject::QueryPropertyEditable) { _id -= 15; } else if (_c == QMetaObject::QueryPropertyUser) { _id -= 15; } #endif // QT_NO_PROPERTIES return _id; }
void NavigableTreeView::mouseDoubleClickEvent (QMouseEvent* event) { setRootIndex(indexAt(event->pos())); QTreeView::mouseDoubleClickEvent(event); }
void DataSourceView::refreshModel() { // it has to be reset here because calling QFileSystemModel's reset // or begin/end alternatives results in "/" as a root path setRootIndex(m_proxy->mapFromSource(m_model->setRootPath(m_path))); }
void PropertyEditorView::reset() { setRootIndex(QModelIndex()); }
/** ***************************************************************************/ bool ProposalList::eventFilter(QObject*, QEvent *event) { if (model() == nullptr) return false; if (event->type() == QEvent::KeyPress) { QKeyEvent* keyEvent = static_cast<QKeyEvent*>(event); int key = keyEvent->key(); // Mods changed -> refresh if (key == Qt::Key_Control || key == Qt::Key_Shift || key == Qt::Key_Alt || key == Qt::Key_Meta) { update(currentIndex()); return true; } // Navigation if (key == Qt::Key_Down || (key == Qt::Key_Up && currentIndex().isValid()) /* No current -> command history */ || key == Qt::Key_PageDown || key == Qt::Key_PageUp) { keyPressEvent(keyEvent); return true; } // Selection if (key == Qt::Key_Return || key == Qt::Key_Enter) { // Ignore empty results if (!model()->hasChildren(rootIndex())) return true; // Select first if none is selected if (!currentIndex().isValid()) setCurrentIndex(model()->index(0, 0, rootIndex())); keyPressEvent(keyEvent); // emits activated // Do not accept since the inpuline needs //to store the request in history return false; } // Show actions if (key == Qt::Key_Tab) { // Skip if view is empty if (!model()->hasChildren(rootIndex())) return true; // If none is selected use the first QModelIndex midx; if (currentIndex().isValid()) midx = currentIndex(); else midx = model()->index(0, 0, rootIndex()); // If view is in a subtree... if (rootIndex().isValid()){ // Change to Toplevel setRootIndex(QModelIndex()); setCurrentIndex(midx.parent()); } else { // Change to children if there are any if (model()->hasChildren(midx)){ setRootIndex(midx); setCurrentIndex(QModelIndex()); } } updateGeometry(); return true; } } if (event->type() == QEvent::KeyRelease) { QKeyEvent* keyEvent = static_cast<QKeyEvent*>(event); int key = keyEvent->key(); // Display different subtexts according to the KeyboardModifiers if (key == Qt::Key_Control || key == Qt::Key_Shift || key == Qt::Key_Alt || key == Qt::Key_Meta) { update(currentIndex()); return true; } } return false; }
void EffectsListWidget::resetRoot() { setRootIndex(indexFromItem(invisibleRootItem())); }