/** Returns list of GradientStops corresponding content of tree widget. * \sa setGradientStops() */ QGradientStops GradientEditWidget::gradientStops() const { QGradientStops result(treeWidget->topLevelItemCount()); for (int i=0; i<result.size(); i++) { QTreeWidgetItem *item = treeWidget->topLevelItem(i); QGradientStop stop(item->text(0).toDouble(), item->backgroundColor(1)); result[i] = stop; } return result; }
void FeatureTreeWidget::assignColorFromSMVTreeWidget(QString featureName) { QTreeWidgetItem *item = getItemFromFeatureName(featureName); if (item!=0) { if (item->childCount()==0){ mainWindow->questionDialog->writeToLog("assignColor<1>"); Feature *f = getCorrespondingFeature(featureName); Color *c = static_cast<MyListWidgetItem*>(listWidget->selectedItems().at(0))->getBGColor(); if (item->backgroundColor(0).isValid()) mainWindow->removeColorAssignment(static_cast<MyTreeWidgetItem*>(item)); colorManager->setColorForFeature(f,c); //X zum Abwählen der Farbe setzen if (itemWidget(item, 1)) itemWidget(item, 1)->show(); else{ QToolButton *deleteButton = new QToolButton(this); deleteButton->setFont(QFont(QString("MS Shell Dlg 2"),9,10,false)); //deleteButton->setFixedSize(15,18); deleteButton->setFixedWidth(16); QIcon icon = QIcon(); icon.addPixmap(QPixmap(QString(":/images/cross.png")),QIcon::Normal,QIcon::On); deleteButton->setIcon(icon); deleteButton->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); setItemWidget(item,1,deleteButton); connect(deleteButton,SIGNAL(clicked()),this,SLOT(removeColorAssignment())); } //aktualisiere SmvTreeWidget und TextEdit mainWindow->updateSMVTreeTexture(f); redrawListWidget(); //wenn Farbe schon in FeatureTreeWidget vorhanden, setze diese auf weiß/transparent QList <QTreeWidgetItem*> *treeList = new QList <QTreeWidgetItem*>(); findBackGroundColor(c->color,root,treeList); if (treeList->isEmpty()==false) { for (int i = 0;i < treeList->size();i++){ static_cast<MyTreeWidgetItem*>(treeList->at(i))->setBackgroundInvalid(); // treeList->at(i)->background(0).setStyle(Qt::NoBrush); // treeList->at(i)->setBackgroundColor(0,QColor(0,0,0,0)); colorManager->deleteColorForFeature(getCorrespondingFeature(treeList->at(i)->text(0))); } } //setze Farbe im FeatureTreeWidget static_cast<MyTreeWidgetItem*>(item)->setBGColor(c); //item->setBackgroundColor(0,selected->color); } } }
void FeatureTreeWidget::dropEvent(QDropEvent *event) { //Darstellen des Drag-Bildes QByteArray itemData = event->mimeData()->data("application/x-dnditemdata"); QDataStream dataStream(&itemData, QIODevice::ReadOnly); QPixmap pixmap; QPoint offset; dataStream >> pixmap >> offset; QTreeWidgetItem *item = itemAt(event->pos().x(),event->pos().y()); //wenn auf ein TreeWidgetItem gedropt und dieses ein Blattknoten ist if (item!=0) { if (item->childCount()==0){ mainWindow->questionDialog->writeToLog("assignColor<1>"); Feature *f = getCorrespondingFeature(item->text(0)); //Color *c = new Color (selected->color.convertTo(QColor::Hsv)); Color *c = static_cast<MyListWidgetItem*>(listWidget->selectedItems().at(0))->getBGColor(); if (item->backgroundColor(0).isValid()) mainWindow->removeColorAssignment(static_cast<MyTreeWidgetItem*>(item)); colorManager->setColorForFeature(f,c); //X zum Abwählen der Farbe setzen if (itemWidget(item, 1)) itemWidget(item, 1)->show(); else{ QToolButton *deleteButton = new QToolButton(this); deleteButton->setFont(QFont(QString("MS Shell Dlg 2"),9,10,false)); //deleteButton->setFixedSize(15,18); deleteButton->setFixedWidth(16); QIcon icon = QIcon(); icon.addPixmap(QPixmap(QString(":/images/cross.png")),QIcon::Normal,QIcon::On); deleteButton->setIcon(icon); deleteButton->setToolButtonStyle(Qt::ToolButtonTextUnderIcon); setItemWidget(item,1,deleteButton); connect(deleteButton,SIGNAL(clicked()),this,SLOT(removeColorAssignment())); } //aktualisiere SmvTreeWidget und TextEdit mainWindow->updateSMVTreeTexture(f); redrawListWidget(); //wenn Farbe schon in FeatureTreeWidget vorhanden, setze diese auf weiß/transparent QList <QTreeWidgetItem*> *treeList = new QList <QTreeWidgetItem*>(); findBackGroundColor(c->color,root,treeList); if (treeList->isEmpty()==false) { for (int i = 0;i < treeList->size();i++){ static_cast<MyTreeWidgetItem*>(treeList->at(i))->setBackgroundInvalid(); // treeList->at(i)->background(0).setStyle(Qt::NoBrush); // treeList->at(i)->setBackgroundColor(0,QColor(0,0,0,0)); colorManager->deleteColorForFeature(getCorrespondingFeature(treeList->at(i)->text(0))); } } //setze Farbe im FeatureTreeWidget static_cast<MyTreeWidgetItem*>(item)->setBGColor(c); //item->setBackgroundColor(0,selected->color); } event->ignore(); } }