QDESIGNER_SHARED_EXPORT WidgetDataBaseItemList promotionCandidates(const QDesignerWidgetDataBaseInterface *db, const QString &baseClassName) { WidgetDataBaseItemList rc; // find existing promoted widgets deriving from base. const int count = db->count(); for (int i = 0; i < count; ++i) { QDesignerWidgetDataBaseItemInterface *item = db->item(i); if (item->isPromoted() && item->extends() == baseClassName) { rc.push_back(item); } } return rc; }
QDesignerWidgetDataBaseItemInterface *QDesignerPromotionDialog::databaseItemAt(const QItemSelection &selected, unsigned &flags) const { flags = 0; const QModelIndexList indexes = selected.indexes(); if (indexes.empty()) return 0; bool referenced; QDesignerWidgetDataBaseItemInterface *dbItem = m_model->databaseItemAt(indexes.front(), &referenced); if (dbItem) { if (referenced) flags |= Referenced; // In choose mode, can we promote to the class? if (m_mode == ModeEditChooseClass && dbItem && dbItem->isPromoted() && dbItem->extends() == m_promotableWidgetClassName) flags |= CanPromote; } return dbItem; }