bool KServiceType::inherits(const QString &servTypeName) const { if(name() == servTypeName) return true; QString st = parentServiceType(); while(!st.isEmpty()) { KServiceType::Ptr ptr = KServiceType::serviceType(st); if(!ptr) return false; // error if(ptr->name() == servTypeName) return true; st = ptr->parentServiceType(); } return false; }
void KBuildServiceTypeFactory::addEntry(const KSycocaEntry::Ptr& newEntry) { KSycocaFactory::addEntry(newEntry); KServiceType::Ptr serviceType = KServiceType::Ptr::staticCast( newEntry ); const QMap<QString,QVariant::Type>& pd = serviceType->propertyDefs(); QMap<QString,QVariant::Type>::ConstIterator pit = pd.begin(); for( ; pit != pd.end(); ++pit ) { const QString property = pit.key(); QMap<QString, int>::iterator dictit = m_propertyTypeDict.find(property); if (dictit == m_propertyTypeDict.end()) m_propertyTypeDict.insert(property, pit.value()); else if (*dictit != static_cast<int>(pit.value())) kWarning(7021) << "Property '"<< property << "' is defined multiple times ("<< serviceType->name() <<")"; } }