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);
}
Ejemplo n.º 2
0
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();
}
Ejemplo n.º 5
0
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 );
}