void VtkVisPipelineView::addColorTable() { VtkVisPipelineItem* item ( static_cast<VtkVisPipelineItem*>(static_cast<VtkVisPipeline*>(this->model())-> getItem(this->selectionModel()->currentIndex())) ); const QString array_name = item->GetActiveAttribute(); QSettings settings; QString filename = QFileDialog::getOpenFileName(this, "Select color table", settings.value("lastOpenedLutFileDirectory"). toString(), "Color table files (*.xml);;"); QFileInfo fi(filename); if (fi.suffix().toLower() == "xml") { VtkVisPointSetItem* pointSetItem = dynamic_cast<VtkVisPointSetItem*>(item); if (pointSetItem) { VtkAlgorithmProperties* props = pointSetItem->getVtkProperties(); if (props) { props->SetLookUpTable(array_name, filename); item->SetActiveAttribute(array_name); emit requestViewUpdate(); } } else QMessageBox::warning(NULL, "Color lookup table could not be applied.", "Color lookup tables can only be applied to VtkVisPointSetItem."); QDir dir = QDir(filename); settings.setValue("lastOpenedLutFileDirectory", dir.absolutePath()); } }