20 #ifndef TDEFILEMETAINFO_H
21 #define TDEFILEMETAINFO_H
25 #define m_unit outouftheway_m_unit
28 #include <tqvariant.h>
55 friend class KFileMetaInfoProvider;
72 Cummulative = Cumulative,
156 return m_supportedKeys;
165 const TQString& name()
const
177 const TQString& translatedName()
const
179 return m_translatedName;
189 const ItemInfo * itemInfo(
const TQString& key )
const;
196 uint attributes()
const
205 bool supportsVariableKeys()
const
207 return m_variableItemInfo;
219 return m_variableItemInfo;
226 GroupInfo(
const TQString& name,
const TQString& translatedName);
230 const TQString& translatedKey,
231 TQVariant::Type type);
234 void addVariableInfo( TQVariant::Type type, uint attr );
237 TQString m_translatedName;
238 TQStringList m_supportedKeys;
241 TQDict<ItemInfo> m_itemDict;
265 const TQString& prefix()
const
276 const TQString& suffix()
const
287 TQVariant::Type type()
const
296 const TQString& key()
const
312 TQString string(
const TQVariant& value,
bool mangle =
true )
const;
319 bool isVariableItem()
const
322 return key().isNull();
331 const TQString& translatedKey()
const
333 return m_translatedKey;
341 uint attributes()
const
368 ItemInfo(
const TQString& key,
const TQString& translatedKey,
369 TQVariant::Type type)
370 : m_key(key), m_translatedKey(translatedKey),
372 m_attr(0), m_unit(NoUnit), m_hint(NoHint),
373 m_prefix(TQString::null), m_suffix(TQString::null)
377 TQString m_translatedKey;
378 TQVariant::Type m_type;
400 TQValidator * createValidator(
const TQString& group,
const TQString& key,
401 TQObject *parent = 0,
const char *name = 0)
const;
409 TQStringList supportedGroups()
const;
417 TQStringList translatedGroups()
const;
425 TQStringList preferredGroups()
const
427 return m_preferredGroups;
444 const GroupInfo * groupInfo(
const TQString& group )
const;
456 TQStringList supportedKeys()
const;
463 TQStringList preferredKeys()
const
465 return m_preferredKeys;
469 GroupInfo * addGroupInfo(
const TQString& name,
470 const TQString& translatedName);
472 TQString m_translatedName;
473 TQStringList m_supportedKeys;
476 TQDict<ItemInfo> m_itemDict;
483 TQDict<GroupInfo> m_groups;
485 TQStringList m_preferredKeys;
486 TQStringList m_preferredGroups;
511 const TQString& key,
const TQVariant& value);
541 TQString key()
const;
549 TQString translatedKey()
const;
556 const TQVariant& value()
const;
566 TQString string(
bool mangle =
true )
const;
574 bool setValue(
const TQVariant& value );
581 TQVariant::Type type()
const;
592 bool isEditable()
const;
602 bool isRemoved()
const;
612 bool isModified()
const;
620 TQString prefix()
const;
628 TQString suffix()
const;
651 uint attributes()
const;
661 bool isValid()
const;
663 TDEIO_EXPORT
friend TQDataStream& operator >>(TQDataStream& s,
KFileMetaInfoItem& );
665 TDEIO_EXPORT
friend TQDataStream& operator <<(TQDataStream& s,
const KFileMetaInfoItem& );
689 TDEIO_EXPORT
friend TQDataStream& operator <<(TQDataStream& s,
const KFileMetaInfoGroup& );
734 bool isValid()
const;
742 bool isEmpty()
const;
752 bool isModified()
const;
759 {
return item( key ); }
784 const TQVariant value(
const TQString& key )
const
800 TQStringList supportedKeys()
const;
808 bool supportsVariableKeys()
const;
815 bool contains(
const TQString& key )
const;
822 TQStringList keys()
const;
829 TQStringList preferredKeys()
const;
861 bool removeItem(
const TQString& key);
868 TQStringList removedItems();
875 TQString name()
const;
884 TQString translatedName()
const;
891 uint attributes()
const;
980 const TQString& mimeType = TQString::null,
981 uint what = Fastest);
991 const TQString& mimeType = TQString::null,
992 uint what = Fastest);
1028 TQStringList groups()
const;
1035 TQStringList supportedGroups()
const;
1042 TQStringList preferredGroups()
const;
1049 TQStringList preferredKeys()
const;
1056 TQStringList supportedKeys()
const;
1063 TQStringList editableGroups()
const;
1091 const TQString& preferredGroup = TQString::null,
1092 bool createGroup =
true );
1123 bool addGroup(
const TQString& name );
1134 bool removeGroup(
const TQString& name );
1141 TQStringList removedGroups();
1150 bool applyChanges();
1159 bool applyChanges(
const TQString& path);
1167 bool contains(
const TQString& key )
const;
1175 bool containsGroup(
const TQString& key )
const;
1183 const TQVariant value(
const TQString& key )
const
1185 return item(key).value();
1195 bool isValid()
const;
1203 bool isEmpty()
const;
1210 TQString mimeType()
const;
1217 TQString path()
const;
1226 TDEIO_EXPORT
friend TQDataStream& operator >>(TQDataStream& s,
KFileMetaInfo& );
1227 TDEIO_EXPORT
friend TQDataStream& operator <<(TQDataStream& s,
const KFileMetaInfo& );
1246 const TQString& key );
1248 void init(
const KURL& url,
1249 const TQString& mimeType = TQString::null,
1250 uint what = Fastest);
1413 const TQStringList& args );
1462 virtual TQValidator* createValidator(
const TQString& mimeType,
1463 const TQString& group,
1464 const TQString& key,
1466 const char* name)
const
1468 Q_UNUSED(mimeType); Q_UNUSED(group);Q_UNUSED(key);
1469 Q_UNUSED(parent);Q_UNUSED(name);
1507 const TQString& key,
const TQString& translatedKey)
const;
1536 const TQString& key,
1537 const TQString& translatedKey,
1538 TQVariant::Type type);
1617 TQStringList m_preferredKeys;
1618 TQStringList m_preferredGroups;
1628 virtual void virtual_hook(
int id,
void* data );
1630 class KFilePluginPrivate;
1631 KFilePluginPrivate *d;
1646 class TDEIO_EXPORT KFileMetaInfoProvider:
private QObject
1652 virtual ~KFileMetaInfoProvider();
1654 static KFileMetaInfoProvider *
self();
1667 KFilePlugin * plugin(
const TQString& mimeType,
const TQString& protocol );
1670 const KFileMimeTypeInfo * mimeTypeInfo(
const TQString& mimeType,
const TQString& protocol );
1672 TQStringList preferredKeys(
const TQString& mimeType )
const;
1673 TQStringList preferredGroups(
const TQString& mimeType )
const;
1676 TQStringList supportedMimeTypes()
const;
1679 KFileMetaInfoProvider();
1686 struct CachedPluginInfo
1688 CachedPluginInfo() : plugin( 0 ), mimeTypeInfo( 0 ), ownsPlugin( false ) {}
1690 : plugin( p ), mimeTypeInfo( i ), ownsPlugin( owns ) {}
1692 ~CachedPluginInfo() {
1693 if ( ownsPlugin )
delete plugin;
1694 delete mimeTypeInfo;
1708 TQDict<CachedPluginInfo> m_plugins;
1714 TQDict<KFileMimeTypeInfo> m_pendingMimetypeInfos;
1717 static KFileMetaInfoProvider * s_self;
1719 KFilePlugin* loadPlugin(
const TQString& mimeType,
const TQString& protocol );
1720 KFilePlugin* loadAndRegisterPlugin(
const TQString& mimeType,
const TQString& protocol );
1723 class KFileMetaInfoProviderPrivate;
1724 KFileMetaInfoProviderPrivate *d;
1728 TDEIO_EXPORT TQDataStream& operator <<(TQDataStream& s,
const KFileMetaInfoItem& );
1734 TDEIO_EXPORT TQDataStream& operator <<(TQDataStream& s,
const KFileMetaInfo& );
1735 TDEIO_EXPORT TQDataStream& operator >>(TQDataStream& s,
KFileMetaInfo& );
1738 #endif // TDEFILEMETAINFO_H