40 kServiceFactoryInstance->instanceCreated(
this);
41 m_offerListOffset = 0;
43 m_relNameDictOffset = 0;
44 m_menuIdDictOffset = 0;
46 QDataStream* str = stream();
55 m_relNameDictOffset = i;
57 m_offerListOffset = i;
59 m_menuIdDictOffset = i;
61 const int saveOffset = str->device()->pos();
63 m_nameDict =
new KSycocaDict(str, m_nameDictOffset);
65 m_relNameDict =
new KSycocaDict(str, m_relNameDictOffset);
67 m_menuIdDict =
new KSycocaDict(str, m_menuIdDictOffset);
68 str->device()->seek(saveOffset);
74 if (kServiceFactoryInstance.exists())
75 kServiceFactoryInstance->instanceDestroyed(
this);
83 return kServiceFactoryInstance->
self();
100 if (newService && (newService->
name() != _name)) {
147 if (newService && (newService->
entryPath() != _name)) {
167 if (newService && (newService->
menuId() != _menuId)) {
181 newEntry =
new KService(*str, offset);
184 kError(7011) <<
"KServiceFactory: unexpected object entry in KSycoca database (type=" << int(type) <<
")";
188 kError(7011) <<
"KServiceFactory: corrupt object in KSycoca database!";
199 KSycocaEntry::List::const_iterator it = list.begin();
200 const KSycocaEntry::List::const_iterator end = list.end();
201 for( ; it != end; ++it ) {
211 QList<KServiceOffer> list;
214 QDataStream* str =
stream();
217 qint32 aServiceTypeOffset, aServiceOffset, initialPreference, mimeTypeInheritanceLevel;
220 (*str) >> aServiceTypeOffset;
221 if ( aServiceTypeOffset ) {
222 (*str) >> aServiceOffset;
223 (*str) >> initialPreference;
224 (*str) >> mimeTypeInheritanceLevel;
225 if ( aServiceTypeOffset == serviceTypeOffset ) {
227 const int savedPos = str->device()->pos();
235 str->device()->seek( savedPos );
250 QDataStream* str =
stream();
253 qint32 aServiceTypeOffset, aServiceOffset, initialPreference, mimeTypeInheritanceLevel;
255 (*str) >> aServiceTypeOffset;
256 if ( aServiceTypeOffset )
258 (*str) >> aServiceOffset;
259 (*str) >> initialPreference;
260 (*str) >> mimeTypeInheritanceLevel;
261 if ( aServiceTypeOffset == serviceTypeOffset )
264 const int savedPos = str->device()->pos();
270 str->device()->seek( savedPos );
283 QDataStream* str =
stream();
284 const int savedPos = str->device()->pos();
289 qint32 aServiceTypeOffset, aServiceOffset, initialPreference, mimeTypeInheritanceLevel;
292 (*str) >> aServiceTypeOffset;
293 if ( aServiceTypeOffset ) {
294 (*str) >> aServiceOffset;
295 (*str) >> initialPreference;
296 (*str) >> mimeTypeInheritanceLevel;
297 if ( aServiceTypeOffset == serviceTypeOffset )
299 if( aServiceOffset == testedServiceOffset )
308 str->device()->seek( savedPos );