Exemplo n.º 1
0
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);
	}
}
Exemplo n.º 2
-2
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);
    }
}