void AddFixture::fillTree(const QString& selectManufacturer, const QString& selectModel) { QTreeWidgetItem* parent; QTreeWidgetItem* child; QString manuf; QString model; /* Clear the tree of any previous data */ m_tree->clear(); /* Add all known fixture definitions to the tree */ QStringListIterator it(m_fixtureDefCache.manufacturers()); while (it.hasNext() == true) { manuf = it.next(); parent = new QTreeWidgetItem(m_tree); parent->setText(KColumnName, manuf); QStringListIterator modit(m_fixtureDefCache.models(manuf)); while (modit.hasNext() == true) { model = modit.next(); child = new QTreeWidgetItem(parent); child->setText(KColumnName, model); if (manuf == selectManufacturer && model == selectModel) { parent->setExpanded(true); m_tree->setCurrentItem(child); } } } /* Create a parent and a child for generic dimmer device */ parent = new QTreeWidgetItem(m_tree); parent->setText(KColumnName, KXMLFixtureGeneric); child = new QTreeWidgetItem(parent); child->setText(KColumnName, KXMLFixtureGeneric); /* Select generic dimmer by default */ if (selectManufacturer == KXMLFixtureGeneric && selectModel == KXMLFixtureGeneric) { parent->setExpanded(true); m_tree->setCurrentItem(child); } }
void AddFixture::fillTree(const QString& selectManufacturer, const QString& selectModel) { QTreeWidgetItem* parent = NULL; QTreeWidgetItem* child; QString manuf; QString model; QList<QVariant> expanded; QSettings settings; QVariant var = settings.value(SETTINGS_EXPANDED); if (var.isValid() == true) { expanded = var.toList(); } /* Clear the tree of any previous data */ m_tree->clear(); QString filter = m_searchEdit->text().toLower(); /* Add all known fixture definitions to the tree */ QStringListIterator it(m_doc->fixtureDefCache()->manufacturers()); while (it.hasNext() == true) { bool manufAdded = false; manuf = it.next(); if (manuf == KXMLFixtureGeneric) continue; QStringListIterator modit(m_doc->fixtureDefCache()->models(manuf)); while (modit.hasNext() == true) { model = modit.next(); if (filter.isEmpty() == false && manuf.toLower().contains(filter) == false && model.toLower().contains(filter) == false) continue; if (manufAdded == false) { parent = new QTreeWidgetItem(m_tree); parent->setText(KColumnName, manuf); manufAdded = true; } child = new QTreeWidgetItem(parent); child->setText(KColumnName, model); if (manuf == selectManufacturer && model == selectModel) { parent->setExpanded(true); m_tree->setCurrentItem(child); } else if(expanded.indexOf(manuf) != -1) { parent->setExpanded(true); } m_fxiCount++; } } /* Sort the tree A-Z BEFORE appending a generic entries */ m_tree->sortItems(0, Qt::AscendingOrder); /* Create a parent for the generic devices */ parent = new QTreeWidgetItem(m_tree); parent->setText(KColumnName, KXMLFixtureGeneric); QStringListIterator modit(m_doc->fixtureDefCache()->models(KXMLFixtureGeneric)); while (modit.hasNext() == true) { model = modit.next(); child = new QTreeWidgetItem(parent); child->setText(KColumnName, model); if (selectManufacturer == KXMLFixtureGeneric && model == selectModel) { parent->setExpanded(true); m_tree->setCurrentItem(child); } else if(expanded.indexOf(manuf) != -1) { parent->setExpanded(true); } m_fxiCount++; } /* Create a child for generic dimmer device */ child = new QTreeWidgetItem(parent); child->setText(KColumnName, KXMLFixtureGeneric); parent->sortChildren(0, Qt::AscendingOrder); /* Select generic dimmer by default */ if (selectManufacturer == KXMLFixtureGeneric && selectModel == KXMLFixtureGeneric) { parent->setExpanded(true); m_tree->setCurrentItem(child); } }