foreach (Plugin *plugin, plugins) { // Create the item corresponding to the current plugin QStandardItem *pluginItem = new QStandardItem((plugin->status() == Plugin::Loaded)?LoadedIcon:NotLoadedIcon, plugin->name()); // Only selectable plugins and plugins that are of the right type are // checkable PluginInfo *pluginInfo = plugin->info(); if (pluginInfo) { pluginItem->setCheckable(pluginInfo->isSelectable()); if (pluginItem->isCheckable()) { // Retrieve the loading state of the plugin pluginItem->setCheckState((Plugin::load(plugin->name()))? Qt::Checked: Qt::Unchecked); // We are dealing with a selectable plugin, so add it to our // list of selectable plugins mSelectablePluginItems << pluginItem; } else { // We are dealing with an unselectable plugin, so add it to our // list of unselectable plugins mUnselectablePluginItems << pluginItem; } // Add the plugin to the right category or the Miscellaneous // category, if we don't know about its category QStandardItem *category = mPluginCategories.value(pluginInfo->category()); if (!category) category = mPluginCategories.value(MiscellaneousCategory); category->appendRow(pluginItem); } else { // We are not actually dealing with a plugin, so add it to the // Miscellaneous category mUnselectablePluginItems << pluginItem; mPluginCategories.value(MiscellaneousCategory)->appendRow(pluginItem); } }
void tst_QStandardItem::getSetFlags() { QStandardItem item; item.setEnabled(true); QVERIFY(item.isEnabled()); QVERIFY(item.flags() & Qt::ItemIsEnabled); item.setEditable(true); QVERIFY(item.isEditable()); QVERIFY(item.flags() & Qt::ItemIsEditable); item.setSelectable(true); QVERIFY(item.isSelectable()); QVERIFY(item.flags() & Qt::ItemIsSelectable); item.setCheckable(true); QVERIFY(item.isCheckable()); QCOMPARE(item.checkState(), Qt::Unchecked); QVERIFY(item.flags() & Qt::ItemIsUserCheckable); item.setTristate(true); QVERIFY(item.isTristate()); QVERIFY(item.flags() & Qt::ItemIsTristate); #ifndef QT_NO_DRAGANDDROP item.setDragEnabled(true); QVERIFY(item.isDragEnabled()); QVERIFY(item.flags() & Qt::ItemIsDragEnabled); item.setDropEnabled(true); QVERIFY(item.isDropEnabled()); QVERIFY(item.flags() & Qt::ItemIsDropEnabled); #endif QVERIFY(item.isEnabled()); item.setEnabled(false); QVERIFY(!item.isEnabled()); QVERIFY(!(item.flags() & Qt::ItemIsEnabled)); QVERIFY(item.isEditable()); item.setEditable(false); QVERIFY(!item.isEditable()); QVERIFY(!(item.flags() & Qt::ItemIsEditable)); QVERIFY(item.isSelectable()); item.setSelectable(false); QVERIFY(!item.isSelectable()); QVERIFY(!(item.flags() & Qt::ItemIsSelectable)); QVERIFY(item.isCheckable()); item.setCheckable(false); QVERIFY(!item.isCheckable()); QVERIFY(!(item.flags() & Qt::ItemIsUserCheckable)); QVERIFY(item.isTristate()); item.setTristate(false); QVERIFY(!item.isTristate()); QVERIFY(!(item.flags() & Qt::ItemIsTristate)); #ifndef QT_NO_DRAGANDDROP QVERIFY(item.isDragEnabled()); item.setDragEnabled(false); QVERIFY(!item.isDragEnabled()); QVERIFY(!(item.flags() & Qt::ItemIsDragEnabled)); QVERIFY(item.isDropEnabled()); item.setDropEnabled(false); QVERIFY(!item.isDropEnabled()); QVERIFY(!(item.flags() & Qt::ItemIsDropEnabled)); #endif item.setCheckable(false); item.setCheckState(Qt::Checked); item.setCheckable(true); QCOMPARE(item.checkState(), Qt::Checked); }