kontact
profilemanager.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef KONTACT_PROFILEMANAGER_H
00026 #define KONTACT_PROFILEMANAGER_H
00027
00028 #include <tqmap.h>
00029 #include <tqobject.h>
00030 #include <tqstring.h>
00031
00032 template <class T> class TQValueList;
00033
00034 namespace TDEIO {
00035 class Job;
00036 }
00037
00038 namespace Kontact {
00039
00040 class Profile
00041 {
00042 friend class ProfileManager;
00043 public:
00044 Profile();
00045
00046 explicit Profile( const TQString& id, bool isLocal = false );
00047
00048 TQString id() const;
00049
00050 TQString name() const;
00051
00052 TQString description() const;
00053
00054 bool isNull() const;
00055
00056 void setName( const TQString& name );
00057
00058 void setDescription( const TQString& description );
00059
00060 bool operator==( const Kontact::Profile& other ) const;
00061
00062 TQString saveLocation() const;
00063
00064 private:
00065
00066 enum SetLocalMode {
00067 DoNotCopyProfileFiles,
00068 CopyProfileFiles
00069 };
00070 void setLocal( SetLocalMode mode );
00071 bool isLocal() const;
00072 void setOriginalLocation( const TQString& path );
00073 void setId( const TQString& id );
00074
00075 private:
00076
00077 static void copyConfigFiles( const TQString& source, const TQString& dest );
00078
00079 TQString localSaveLocation() const;
00080
00081 private:
00082 TQString m_id;
00083 TQString m_name;
00084 TQString m_description;
00085 bool m_local;
00086 TQString m_originalLocation;
00087 };
00088
00089 class ProfileManager : public TQObject
00090 {
00091 Q_OBJECT
00092
00093 public:
00094 enum ImportError {
00095 SuccessfulImport=0,
00096 NoValidProfile
00097 };
00098
00099 enum ExportError {
00100 SuccessfulExport=0,
00101 DirectoryDoesNotExist,
00102 DirectoryNotWritable
00103 };
00104
00105 static ProfileManager* self();
00106
00107 ~ProfileManager();
00108
00109 Kontact::Profile profileById( const TQString& id ) const;
00110
00111 bool addProfile( const Kontact::Profile& profile, bool syncConfig = true );
00112
00113 void removeProfile( const Kontact::Profile& profile );
00114
00115 void removeProfile( const TQString& id );
00116
00117 void updateProfile( const Kontact::Profile& profile );
00118
00119 void loadProfile( const TQString& id );
00120
00121 void saveToProfile( const TQString& id );
00122
00123 TQValueList<Kontact::Profile> profiles() const;
00124
00125 ExportError exportProfileToDirectory( const TQString& id, const TQString& path );
00126
00127 ImportError importProfileFromDirectory( const TQString& path );
00128
00129 TQString generateNewId() const;
00130
00131 signals:
00132 void profileAdded( const TQString& id );
00133
00134 void profileRemoved( const TQString& id );
00135
00136 void profileUpdated( const TQString& id );
00137
00138 void profileLoaded( const TQString& id );
00139
00140 void saveToProfileRequested( const TQString& id );
00141
00142 void profileImportFinished( ImportError status );
00143
00144 private:
00145 static ProfileManager* m_self;
00146
00147 static Kontact::Profile readFromConfiguration( const TQString& configFile, bool isLocal );
00148
00149 explicit ProfileManager( TQObject* parent = 0 );
00150
00151 void readConfig();
00152
00153 void writeConfig() const;
00154
00155 void writeProfileConfig( const Kontact::Profile& profile ) const;
00156
00157 private:
00158 TQMap<TQString, Kontact::Profile> m_profiles;
00159 };
00160
00161 }
00162
00163 #endif // KONTACT_PROFILEMANAGER_H
|