int PartsBinListView::setItemAux(ModelPart * modelPart, int position) { if (modelPart->modelPartShared() == NULL) return position; if (modelPart->itemType() == ModelPart::Unknown) { // don't want the empty root to appear in the view return position; } emit settingItem(); QString moduleID = modelPart->moduleID(); if (contains(moduleID)) { return position; } QListWidgetItem * lwi = new QListWidgetItem(modelPart->title()); if (modelPart->itemType() == ModelPart::Space) { lwi->setBackground(QBrush(SectionHeaderBackgroundColor)); lwi->setForeground(QBrush(SectionHeaderForegroundColor)); lwi->setData(Qt::UserRole, 0); lwi->setFlags(0); lwi->setText(" " + TranslatedCategoryNames.value(modelPart->instanceText(), modelPart->instanceText())); } else { loadImage(modelPart, lwi, moduleID); } if(position > -1 && position < count()) { insertItem(position, lwi); } else { addItem(lwi); position = this->count(); } return position; }
int PartsBinListView::setItemAux(ModelPart * modelPart, int position) { if (modelPart->modelPartShared() == NULL) return position; if (modelPart->itemType() == ModelPart::Unknown) { // don't want the empty root to appear in the view return position; } emit settingItem(); QString moduleID = modelPart->moduleID(); if(contains(moduleID)) { m_partHash[moduleID]->copy(modelPart); // copies into the cached modelPart, but I don't know why return position; } QListWidgetItem * lwi = new QListWidgetItem(modelPart->title()); if (modelPart->itemType() == ModelPart::Space) { lwi->setBackground(QBrush(SectionHeaderBackgroundColor)); lwi->setForeground(QBrush(SectionHeaderForegroundColor)); lwi->setData(Qt::UserRole, 0); lwi->setFlags(0); lwi->setText(" " + TranslatedCategoryNames.value(modelPart->instanceText(), modelPart->instanceText())); } else { ItemBase * itemBase = ItemBaseHash.value(moduleID); if (itemBase == NULL) { itemBase = PartFactory::createPart(modelPart, ViewLayer::ThroughHoleThroughTop_OneLayer, ViewLayer::IconView, ViewGeometry(), ItemBase::getNextID(), NULL, NULL, false); ItemBaseHash.insert(moduleID, itemBase); QString error; LayerAttributes layerAttributes; FSvgRenderer * renderer = itemBase->setUpImage(modelPart, ViewLayer::IconView, ViewLayer::Icon, itemBase->viewLayerSpec(), layerAttributes, error); if (renderer != NULL) { if (itemBase) { itemBase->setFilename(renderer->filename()); } itemBase->setSharedRendererEx(renderer); } } lwi->setData(Qt::UserRole, qVariantFromValue( itemBase ) ); QSize size(HtmlInfoView::STANDARD_ICON_IMG_WIDTH, HtmlInfoView::STANDARD_ICON_IMG_HEIGHT); QPixmap * pixmap = FSvgRenderer::getPixmap(itemBase->renderer(), size); lwi->setIcon(QIcon(*pixmap)); delete pixmap; lwi->setData(Qt::UserRole + 1, itemBase->renderer()->defaultSize()); m_partHash[moduleID] = modelPart; } if(position > -1 && position < count()) { insertItem(position, lwi); } else { addItem(lwi); position = this->count(); } return position; }