QgsLocatorOptionsWidget::QgsLocatorOptionsWidget( QgsLocatorWidget *locator, QWidget *parent ) : QTreeView( parent ) , mLocatorWidget( locator ) , mLocator( locator->locator() ) { mModel = new QgsLocatorFiltersModel( mLocator, this ); setModel( mModel ); header()->setStretchLastSection( false ); header()->setSectionResizeMode( QgsLocatorFiltersModel::Name, QHeaderView::Stretch ); setEditTriggers( QAbstractItemView::AllEditTriggers ); setAlternatingRowColors( true ); setSelectionMode( QAbstractItemView::NoSelection ); // add the config button for ( int row = 0; row < mModel->rowCount(); ++row ) { QModelIndex index = mModel->index( row, QgsLocatorFiltersModel::Config ); QWidget *bt = mModel->configButton( index, this ); if ( bt ) { setIndexWidget( index, bt ); } } }
void ItemDelegate::previousItemLoader(const QModelIndex &index) { ItemWidget *w = m_cache[index.row()]; if (w != NULL) { ItemWidget *w2 = ItemFactory::instance()->previousItemLoader(index, w); if (w2 != NULL) setIndexWidget(index, w2); } }
ItemWidget *ItemDelegate::cache(const QModelIndex &index) { int n = index.row(); ItemWidget *w = m_cache[n]; if (w == NULL) { w = ConfigurationManager::instance()->itemFactory()->createItem(index, m_view->viewport()); setIndexWidget(index, w); } return w; }
ItemWidget *ItemDelegate::cache(const QModelIndex &index) { int n = index.row(); ItemWidget *w = m_cache[n]; if (w != NULL) return w; w = ItemFactory::instance()->createItem(index, m_parent); setIndexWidget(index, w); return w; }
bool ItemDelegate::otherItemLoader(const QModelIndex &index, bool next) { ItemWidget *w = m_cache[index.row()]; if (w != NULL) { ItemWidget *w2 = ConfigurationManager::instance()->itemFactory()->otherItemLoader(index, w, next); if (w2 != NULL) { setIndexWidget(index, w2); return true; } } return false; }
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 ); }
void AirportTableView::__updateButtons(int _start, int _end) { const AirportTableModel* apModel = qobject_cast< const AirportTableModel* >(model()); Q_ASSERT(apModel); if (_start == -1) _start = 0; if (_end == -1) _end = apModel->rowCount(); for (int i = _start; i < _end; ++i) { AirportDetailsButton* dButton = new AirportDetailsButton(apModel->getAirports()[i]); connect(dButton, SIGNAL(clicked(const Airport*)), AirportDetailsWindow::getSingletonPtr(), SLOT(show(const Airport*))); setIndexWidget(apModel->index(i, AirportTableModel::Button), dButton); } }
void QgsLayerTreeView::modelRowsInserted( const QModelIndex& index, int start, int end ) { QgsLayerTreeNode* parentNode = layerTreeModel()->index2node( index ); if ( !parentNode ) return; // Embedded widgets - replace placeholders in the model by actual widgets if ( layerTreeModel()->testFlag( QgsLayerTreeModel::UseEmbeddedWidgets ) && QgsLayerTree::isLayer( parentNode ) ) { QgsLayerTreeLayer* nodeLayer = QgsLayerTree::toLayer( parentNode ); if ( QgsMapLayer* layer = nodeLayer->layer() ) { int widgetsCount = layer->customProperty( "embeddedWidgets/count", 0 ).toInt(); QList<QgsLayerTreeModelLegendNode*> legendNodes = layerTreeModel()->layerLegendNodes( nodeLayer ); for ( int i = 0; i < widgetsCount; ++i ) { QString providerId = layer->customProperty( QString( "embeddedWidgets/%1/id" ).arg( i ) ).toString(); if ( QgsLayerTreeEmbeddedWidgetProvider* provider = QgsLayerTreeEmbeddedWidgetRegistry::instance()->provider( providerId ) ) { QModelIndex index = layerTreeModel()->legendNode2index( legendNodes[i] ); setIndexWidget( index, provider->createWidget( layer, i ) ); } } } } if ( QgsLayerTree::isLayer( parentNode ) ) { // if ShowLegendAsTree flag is enabled in model, we may need to expand some legend nodes QStringList expandedNodeKeys = parentNode->customProperty( "expandedLegendNodes" ).toStringList(); if ( expandedNodeKeys.isEmpty() ) return; Q_FOREACH ( QgsLayerTreeModelLegendNode* legendNode, layerTreeModel()->layerLegendNodes( QgsLayerTree::toLayer( parentNode ) ) ) { QString ruleKey = legendNode->data( QgsLayerTreeModelLegendNode::RuleKeyRole ).toString(); if ( expandedNodeKeys.contains( ruleKey ) ) setExpanded( layerTreeModel()->legendNode2index( legendNode ), true ); } return; }
void cMaterialItemView::rowsInserted(const QModelIndex &parent, int start, int end) { for (int r = start; r <= end; r++) { cMaterialWidget *widget = new cMaterialWidget(this); widget->setAutoFillBackground(true); setIndexWidget(model()->index(r, 0, parent), widget); } QAbstractItemView::rowsInserted(parent, start, end); // updateGeometries(); updateScrollBar(); updateGeometries(); setCurrentIndex(model()->index(start, 0)); scrollTo(model()->index(start, 0)); model()->fetchMore(QModelIndex()); viewport()->update(); }
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); }