void SmartList::drawRow(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const { if(index == hoveredRow_ && indexWidget(hoveredRow_)) indexWidget(index)->setVisible(true); else if(indexWidget(index)) indexWidget(index)->setVisible(false); QTreeView::drawRow(painter, option, index); }
bool TileStampView::event(QEvent *event) { if (event->type() == QEvent::ShortcutOverride) { if (static_cast<QKeyEvent *>(event)->key() == Qt::Key_Tab) { if (indexWidget(currentIndex())) { event->accept(); return true; } } } return QTreeView::event(event); }
SmartList::SmartList(QWidget *parent) : QTreeView(parent) { verticalScrollBar()->hide(); connect(this, &QAbstractItemView::entered, [this](const QModelIndex & index) { auto widget = indexWidget(index); if (!widget) { ComBar* bar = new ComBar(); setIndexWidget(index, bar); connect(bar, &ComBar::btnVideoClicked, this, [=](){ emit btnVideoClicked(); }); } else if (index.isValid()) indexWidget(index)->setVisible(true); if(hoveredRow_.isValid() and indexWidget(hoveredRow_)) indexWidget(hoveredRow_)->setVisible(false); hoveredRow_ = index; }); setVerticalScrollMode(ScrollPerPixel); }
void cMaterialItemView::dataChanged( const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles) { Q_UNUSED(bottomRight); Q_UNUSED(roles); QString settings = model()->data(topLeft).toString(); cMaterialWidget *widget = (cMaterialWidget *)indexWidget(topLeft); if (widget) { int materialId = model()->data(topLeft, Qt::UserRole).toInt(); widget->AssignMaterial(settings, materialId); } viewport()->update(); }
void QgsAttributeTableView::mouseMoveEvent( QMouseEvent *event ) { QModelIndex index = indexAt( event->pos() ); if ( index.data( QgsAttributeTableFilterModel::TypeRole ) == QgsAttributeTableFilterModel::ColumnTypeActionButton ) { Q_ASSERT( index.isValid() ); if ( !indexWidget( index ) ) setIndexWidget( index, createActionWidget( mFilterModel->data( index, QgsAttributeTableModel::FeatureIdRole ).toLongLong() ) ); } setSelectionMode( QAbstractItemView::NoSelection ); QTableView::mouseMoveEvent( event ); setSelectionMode( QAbstractItemView::ExtendedSelection ); }
void QgsLocatorOptionsWidget::dataChanged( const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles ) { for ( int row = topLeft.row(); row < bottomRight.row(); ++row ) { QModelIndex index = mModel->index( row, QgsLocatorFiltersModel::Config ); if ( !indexWidget( index ) ) { QWidget *bt = mModel->configButton( index, this ); if ( bt ) { setIndexWidget( index, bt ); } } } QTreeView::dataChanged( topLeft, bottomRight, roles ); }