QWidget *CommandLineAboutPage::createPage(QWidget *parent) { QWidget *w = new QWidget(parent); QVBoxLayout *layout = new QVBoxLayout(w); layout->setSpacing(0); layout->setMargin(0); QTreeWidget *tree = new QTreeWidget(w); tree->setColumnCount(2); layout->addWidget(tree); QFont bold; bold.setBold(true); const QString &defaultValue = tkTr(Trans::Constants::UNDEFINED); QList<QTreeWidgetItem *> defined, undefined; for(int i=0; i< Core::ICommandLine::MaxParam; ++i) { const QString &name = CoreImpl::instance()->commandLine()->paramName(i); const QString &value = CoreImpl::instance()->commandLine()->value(i, defaultValue).toString(); if (!name.isEmpty()) { QTreeWidgetItem *item = new QTreeWidgetItem(QStringList() << name << value); if (value != defaultValue) { item->setFont(0, bold); defined << item; } else { item->setForeground(0, QBrush(QColor("lightgray"))); item->setForeground(1, QBrush(QColor("lightgray"))); undefined << item; } } } tree->addTopLevelItems(defined); tree->sortItems(0, Qt::AscendingOrder); tree->addTopLevelItems(undefined); tree->resizeColumnToContents(0); tree->resizeColumnToContents(1); return w; }
void ImporterWizard::load(ObjImporter::SceneInfo& si) { QTreeWidget* t = m_ui->tree; t->clear(); QList<QTreeWidgetItem*> items; m_objects = new QTreeWidgetItem(t, QStringList() << "Objects"); m_models = new QTreeWidgetItem(t, QStringList() << "Models"); m_animations = new QTreeWidgetItem(t, QStringList() << "Animations"); m_cameras = new QTreeWidgetItem(t, QStringList() << "Cameras"); m_lights = new QTreeWidgetItem(t, QStringList() << "Lights"); m_materials = new QTreeWidgetItem(t, QStringList() << "Materials"); m_textures = new QTreeWidgetItem(t, QStringList() << "Textures"); items << m_objects << m_models << m_animations << m_cameras << m_lights << m_materials << m_textures; t->addTopLevelItems(items); QMap<QString, QString>::const_iterator it; for (it = si.objects.begin(); it != si.objects.end(); ++it) { newItem(m_objects, it); newItem(m_models, it); } for (it = si.animations.begin(); it != si.animations.end(); ++it) { QTreeWidgetItem* x = newItem(m_animations, it); x->setCheckState(0, Qt::Unchecked); x->setDisabled(true); } for (it = si.cameras.begin(); it != si.cameras.end(); ++it) { QTreeWidgetItem* x = newItem(m_animations, it); x->setCheckState(0, Qt::Unchecked); x->setDisabled(true); } for (it = si.lights.begin(); it != si.lights.end(); ++it) { QTreeWidgetItem* x = newItem(m_lights, it); x->setCheckState(0, Qt::Unchecked); x->setDisabled(true); } for (it = si.materials.begin(); it != si.materials.end(); ++it) { newItem(m_materials, it); } for (it = si.textures.begin(); it != si.textures.end(); ++it) { newItem(m_textures, it); } foreach (QTreeWidgetItem* i, items) { i->setFirstColumnSpanned(true); i->setExpanded(true); if (i->childCount() == 0) i->setDisabled(true); }
void tst_treeviewfind::wrapping() { // set up tree // search for FOO in // * HEADER1 // * FOO1 // * HEADER2 // * A // * HEADER3 // * FOO2 QTreeWidget *tree = new QTreeWidget; tree->setColumnCount(1); QList<QTreeWidgetItem *> toplevelitems; QTreeWidgetItem *item; item = new QTreeWidgetItem((QTreeWidget *)0, QStringList() << QLatin1String("HEADER1")); item->addChild(new QTreeWidgetItem((QTreeWidget *)0, QStringList() << QLatin1String("FOO1"))); toplevelitems << item; item = new QTreeWidgetItem((QTreeWidget *)0, QStringList() << QLatin1String("HEADER2")); item->addChild(new QTreeWidgetItem((QTreeWidget *)0, QStringList() << QLatin1String("A"))); toplevelitems << item; item = new QTreeWidgetItem((QTreeWidget *)0, QStringList() << QLatin1String("HEADER3")); item->addChild(new QTreeWidgetItem((QTreeWidget *)0, QStringList() << QLatin1String("FOO2"))); toplevelitems << item; tree->addTopLevelItems(toplevelitems); // set up Core::ItemViewFind *findSupport = new Core::ItemViewFind(tree); tree->setCurrentItem(toplevelitems.at(2)->child(0)); QCOMPARE(tree->currentItem()->text(0), QString::fromLatin1("FOO2")); // forward findSupport->findStep(QLatin1String("FOO"), 0); QCOMPARE(tree->currentItem(), toplevelitems.at(0)->child(0)); // backward tree->setCurrentItem(toplevelitems.at(0)->child(0)); QCOMPARE(tree->currentItem()->text(0), QString::fromLatin1("FOO1")); findSupport->findStep(QLatin1String("FOO"), Core::FindBackward); QCOMPARE(tree->currentItem(), toplevelitems.at(2)->child(0)); // clean up delete findSupport; delete tree; }
void tst_treeviewfind::columns() { // set up tree // search for FOO in // * HEADER1 | HEADER1 // * FOO1 | A // * HEADER2 | FOOHEADER2 // * FOO2 | FOO3 // * HEADER3 | HEADER2 // * A | FOO4 QTreeWidget *tree = new QTreeWidget; tree->setColumnCount(2); QList<QTreeWidgetItem *> toplevelitems; QTreeWidgetItem *item; item = new QTreeWidgetItem((QTreeWidget *)0, QStringList() << QLatin1String("HEADER1") << QLatin1String("HEADER1")); item->addChild(new QTreeWidgetItem((QTreeWidget *)0, QStringList() << QLatin1String("FOO1") << QLatin1String("A"))); toplevelitems << item; item = new QTreeWidgetItem((QTreeWidget *)0, QStringList() << QLatin1String("HEADER2") << QLatin1String("FOOHEADER2")); item->addChild(new QTreeWidgetItem((QTreeWidget *)0, QStringList() << QLatin1String("FOO2") << QLatin1String("FOO3"))); toplevelitems << item; item = new QTreeWidgetItem((QTreeWidget *)0, QStringList() << QLatin1String("HEADER3") << QLatin1String("HEADER3")); item->addChild(new QTreeWidgetItem((QTreeWidget *)0, QStringList() << QLatin1String("A") << QLatin1String("FOO4"))); toplevelitems << item; tree->addTopLevelItems(toplevelitems); // set up Core::ItemViewFind *findSupport = new Core::ItemViewFind(tree); tree->setCurrentItem(toplevelitems.at(0)); QCOMPARE(tree->currentItem()->text(0), QString::fromLatin1("HEADER1")); // find in first column findSupport->findStep(QLatin1String("FOO"), 0); QCOMPARE(tree->currentItem(), toplevelitems.at(0)->child(0)); // find in second column of node with children findSupport->findStep(QLatin1String("FOO"), 0); QCOMPARE(tree->currentItem(), toplevelitems.at(1)); // again find in first column findSupport->findStep(QLatin1String("FOO"), 0); QCOMPARE(tree->currentItem(), toplevelitems.at(1)->child(0)); // don't stay in item if multiple columns match, and find in second column findSupport->findStep(QLatin1String("FOO"), 0); QCOMPARE(tree->currentItem(), toplevelitems.at(2)->child(0)); // wrap findSupport->findStep(QLatin1String("FOO"), 0); QCOMPARE(tree->currentItem(), toplevelitems.at(0)->child(0)); // backwards tree->setCurrentItem(toplevelitems.at(2)->child(0)); QCOMPARE(tree->currentItem()->text(0), QString::fromLatin1("A")); findSupport->findStep(QLatin1String("FOO"), Core::FindBackward); QCOMPARE(tree->currentItem(), toplevelitems.at(1)->child(0)); findSupport->findStep(QLatin1String("FOO"), Core::FindBackward); QCOMPARE(tree->currentItem(), toplevelitems.at(1)); findSupport->findStep(QLatin1String("FOO"), Core::FindBackward); QCOMPARE(tree->currentItem(), toplevelitems.at(0)->child(0)); findSupport->findStep(QLatin1String("FOO"), Core::FindBackward); QCOMPARE(tree->currentItem(), toplevelitems.at(2)->child(0)); // clean up delete findSupport; delete tree; }
bool GetSessionItemBase<T>::execute(PlugInArgList* pInArgList, PlugInArgList* pOutArgList) { StepResource pStep("Execute Wizard Item", "app", "{234E6866-C61D-4ca8-9152-8CA3DCEFC3C0}"); pStep->addProperty("Item", getName()); mpStep = pStep.get(); if (pInArgList == NULL || pOutArgList == NULL) { reportError("Invalid arguments.", "{0012BA62-EE8E-451e-B725-26D7335436AC}"); return false; } if (extractInputArgs(pInArgList) == false) { reportError("Unable to extract input arguments.", "{365B8383-651C-421f-87D4-01238F4E3398}"); return false; } // Create the dialog. QDialog dialog(Service<DesktopServices>()->getMainWidget()); // Tree view containing available session items. QStringList columnNames; columnNames << "Name" << "Type"; QTreeWidget* pTree = new QTreeWidget(&dialog); pTree->setColumnCount(columnNames.count()); pTree->setHeaderLabels(columnNames); std::auto_ptr<QTreeWidgetItem> pRoot(new QTreeWidgetItem); pRoot->setFlags(Qt::NoItemFlags); pRoot->setText(GetSessionItemBase<T>::NameColumn, "No items available"); pRoot->setData(GetSessionItemBase<T>::NameColumn, GetSessionItemBase<T>::SessionItemRole, QVariant::fromValue<void*>(NULL)); populateTreeWidgetItem(pRoot.get()); if (pRoot->childCount() > 0) { pTree->addTopLevelItems(pRoot->takeChildren()); } else { pTree->addTopLevelItem(pRoot.release()); } pTree->expandAll(); pTree->resizeColumnToContents(0); // Buttons. QFrame* pLine = new QFrame(&dialog); pLine->setFrameStyle(QFrame::HLine | QFrame::Sunken); QDialogButtonBox* pButtonBox = new QDialogButtonBox( QDialogButtonBox::Ok | QDialogButtonBox::Cancel, Qt::Horizontal, &dialog); // Layout. QVBoxLayout* pLayout = new QVBoxLayout(&dialog); pLayout->setMargin(10); pLayout->setSpacing(10); pLayout->addWidget(pTree); pLayout->addWidget(pLine); pLayout->addWidget(pButtonBox); dialog.setWindowTitle(QString::fromStdString(mDialogCaption)); dialog.resize(400, 400); // Connections. VERIFY(QObject::connect(pButtonBox, SIGNAL(accepted()), &dialog, SLOT(accept()))); VERIFY(QObject::connect(pButtonBox, SIGNAL(rejected()), &dialog, SLOT(reject()))); if (dialog.exec() != QDialog::Accepted) { reportError("User cancelled.", "{27E33A95-0DFB-486b-ABAE-BFC849418201}"); return false; } QTreeWidgetItem* pItem = pTree->currentItem(); if (pItem == NULL) { reportError("No item selected.", "{27B21666-19BB-4932-BF08-A81E340F1A54}"); return false; } QVariant value = pItem->data(GetSessionItemBase<T>::NameColumn, GetSessionItemBase<T>::SessionItemRole); SessionItem* pSessionItem = reinterpret_cast<SessionItem*>(value.value<void*>()); mpSessionItem = dynamic_cast<T*>(pSessionItem); if (mpSessionItem == NULL) { reportError("Wrong item type selected.", "{E6D3E131-4E71-4989-9D34-BC9A1157AB8E}"); return false; } if (populateOutputArgs(pOutArgList) == false) { reportError("Unable to populate the output argument list.", "{C3AB6771-50C4-4091-BA39-3D44C82C93A8}"); return false; } reportComplete(); return true; }