tdeio/tdeio
kuserprofile.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __kuserprofile_h__
00021 #define __kuserprofile_h__
00022
00023 #include <tqmap.h>
00024 #include <tqstring.h>
00025 #include <tqptrlist.h>
00026 #include <tqvaluelist.h>
00027
00028 #include <kservice.h>
00029
00040 class TDEIO_EXPORT KServiceOffer
00041 {
00042 public:
00046 KServiceOffer();
00047
00052 KServiceOffer( const KServiceOffer& );
00053
00062 KServiceOffer( KService::Ptr _service,
00063 int _pref, bool _default );
00064
00069 bool operator< ( const KServiceOffer& ) const;
00075 bool allowAsDefault() const { return m_bAllowAsDefault; }
00081 int preference() const { return m_iPreference; }
00087 KService::Ptr service() const { return m_pService; }
00093 bool isValid() const { return m_iPreference >= 0; }
00094
00095 private:
00096 int m_iPreference;
00097 bool m_bAllowAsDefault;
00098 KService::Ptr m_pService;
00099 private:
00100 class KServiceOfferPrivate;
00101 };
00102
00117 class TDEIO_EXPORT KServiceTypeProfile
00118 {
00119 public:
00120 typedef TQValueList<KServiceOffer> OfferList;
00121
00122 ~KServiceTypeProfile();
00123
00131 int preference( const TQString& _service ) const;
00132
00139 bool allowAsDefault( const TQString& _service ) const;
00140
00146 OfferList offers() const;
00147
00157 static KService::Ptr preferredService( const TQString & serviceType, const TQString & genericServiceType );
00158
00167 static KServiceTypeProfile* serviceTypeProfile( const TQString& servicetype, const TQString & genericServiceType = TQString::null );
00168
00188 static OfferList offers( const TQString& servicetype, const TQString& genericServiceType = TQString::null );
00189
00194 static const TQPtrList<KServiceTypeProfile>& serviceTypeProfiles() { return *s_lstProfiles; }
00195
00199 static void clear();
00200
00207 static void setConfigurationMode() { s_configurationMode = true; }
00208
00215 static void unsetConfigurationMode() { s_configurationMode = false; }
00216
00220 static bool configurationMode() { return s_configurationMode; }
00221
00222 protected:
00231 KServiceTypeProfile( const TQString& serviceType,
00232 const TQString& genericServiceType = TQString::null );
00233
00242 void addService( const TQString& _service, int _preference = 1, bool _allow_as_default = true );
00243
00244 private:
00248 struct Service
00249 {
00253 int m_iPreference;
00257 bool m_bAllowAsDefault;
00258 };
00259
00263 TQMap<TQString,Service> m_mapServices;
00264
00268 TQString m_strServiceType;
00269
00273 TQString m_strGenericServiceType;
00274
00275 static void initStatic();
00276 static TQPtrList<KServiceTypeProfile>* s_lstProfiles;
00277 static bool s_configurationMode;
00278 private:
00279 class KServiceTypeProfilePrivate* d;
00280 };
00281
00282 #endif