KSycocaEntry::List KBuildMimeTypeFactory::allEntries() const { assert (KSycoca::self()->isBuilding()); KSycocaEntry::List lst; KSycocaEntryDict::Iterator itmime = m_entryDict->begin(); const KSycocaEntryDict::Iterator endmime = m_entryDict->end(); for( ; itmime != endmime ; ++itmime ) lst.append( *itmime ); return lst; }
KSycocaEntry *KBuildSycoca::createEntry(const TQString &file, bool addToFactory) { TQ_UINT32 timeStamp = g_ctimeInfo->ctime(file); if (!timeStamp) { timeStamp = TDEGlobal::dirs()->calcResourceHash( g_resource, file, true); } KSycocaEntry* entry = 0; if (g_allEntries) { assert(g_ctimeDict); TQ_UINT32 *timeP = (*g_ctimeDict)[file]; TQ_UINT32 oldTimestamp = timeP ? *timeP : 0; if (timeStamp && (timeStamp == oldTimestamp)) { // Re-use old entry if (g_factory == g_bsgf) // Strip .directory from service-group entries { entry = g_entryDict->find(file.left(file.length()-10)); } else if (g_factory == g_bsf) { entry = g_entryDict->find(file); } else { entry = g_entryDict->find(file); } // remove from g_ctimeDict; if g_ctimeDict is not empty // after all files have been processed, it means // some files were removed since last time g_ctimeDict->remove( file ); } else if (oldTimestamp) { g_changed = true; kdDebug(7021) << "modified: " << file << endl; } else { g_changed = true; kdDebug(7021) << "new: " << file << endl; } } g_ctimeInfo->addCTime(file, timeStamp ); if (!entry) { // Create a new entry entry = g_factory->createEntry( file, g_resource ); } if ( entry && entry->isValid() ) { if (addToFactory) g_factory->addEntry( entry, g_resource ); else g_tempStorage.append(entry); return entry; } return 0; }