00001
00002
00003
00004 #include "kpilotSettings.h"
00005
00006 #include <klocale.h>
00007
00008 #include <kstaticdeleter.h>
00009
00010 KPilotSettings *KPilotSettings::mSelf = 0;
00011 static KStaticDeleter<KPilotSettings> staticKPilotSettingsDeleter;
00012
00013 KPilotSettings *KPilotSettings::self()
00014 {
00015 if ( !mSelf ) {
00016 staticKPilotSettingsDeleter.setObject( mSelf, new KPilotSettings() );
00017 mSelf->readConfig();
00018 }
00019
00020 return mSelf;
00021 }
00022
00023 KPilotSettings::KPilotSettings( )
00024 : KConfigSkeleton( QString::fromLatin1( "kpilotrc" ) )
00025 {
00026 mSelf = this;
00027 setCurrentGroup( QString::fromLatin1( "General" ) );
00028
00029 mDebugItem = new KConfigSkeleton::ItemUInt( currentGroup(), QString::fromLatin1( "Debug" ), mDebug, 0 );
00030 mDebugItem->setLabel( i18n("Debug") );
00031 addItem( mDebugItem, QString::fromLatin1( "Debug" ) );
00032 mConfigVersionItem = new KConfigSkeleton::ItemUInt( currentGroup(), QString::fromLatin1( "Configured" ), mConfigVersion, 0 );
00033 mConfigVersionItem->setLabel( i18n("Configured") );
00034 addItem( mConfigVersionItem, QString::fromLatin1( "ConfigVersion" ) );
00035 mLastSyncTimeItem = new KConfigSkeleton::ItemDateTime( currentGroup(), QString::fromLatin1( "LastSyncTime" ), mLastSyncTime, QDateTime() );
00036 mLastSyncTimeItem->setLabel( i18n("LastSyncTime") );
00037 addItem( mLastSyncTimeItem, QString::fromLatin1( "LastSyncTime" ) );
00038 mPilotDeviceItem = new KConfigSkeleton::ItemString( currentGroup(), QString::fromLatin1( "PilotDevice" ), mPilotDevice, QString::fromLatin1( "/dev/pilot" ) );
00039 mPilotDeviceItem->setLabel( i18n("PilotDevice") );
00040 addItem( mPilotDeviceItem, QString::fromLatin1( "PilotDevice" ) );
00041 mPilotSpeedItem = new KConfigSkeleton::ItemUInt( currentGroup(), QString::fromLatin1( "PilotSpeed" ), mPilotSpeed, 0 );
00042 mPilotSpeedItem->setLabel( i18n("PilotSpeed") );
00043 addItem( mPilotSpeedItem, QString::fromLatin1( "PilotSpeed" ) );
00044 mEncodingItem = new KConfigSkeleton::ItemString( currentGroup(), QString::fromLatin1( "Encoding" ), mEncoding );
00045 mEncodingItem->setLabel( i18n("Encoding") );
00046 addItem( mEncodingItem, QString::fromLatin1( "Encoding" ) );
00047 mUserNameItem = new KConfigSkeleton::ItemString( currentGroup(), QString::fromLatin1( "UserName" ), mUserName );
00048 mUserNameItem->setLabel( i18n("UserName") );
00049 addItem( mUserNameItem, QString::fromLatin1( "UserName" ) );
00050 QValueList<KConfigSkeleton::ItemEnum::Choice> valuesWorkarounds;
00051 {
00052 KConfigSkeleton::ItemEnum::Choice choice;
00053 choice.name = QString::fromLatin1( "eWorkaroundNone" );
00054 valuesWorkarounds.append( choice );
00055 }
00056 {
00057 KConfigSkeleton::ItemEnum::Choice choice;
00058 choice.name = QString::fromLatin1( "eWorkaroundUSB" );
00059 valuesWorkarounds.append( choice );
00060 }
00061 mWorkaroundsItem = new KConfigSkeleton::ItemEnum( currentGroup(), QString::fromLatin1( "Workarounds" ), mWorkarounds, valuesWorkarounds, eWorkaroundNone );
00062 mWorkaroundsItem->setLabel( i18n("Workarounds") );
00063 addItem( mWorkaroundsItem, QString::fromLatin1( "Workarounds" ) );
00064 mLogFileNameItem = new KConfigSkeleton::ItemString( currentGroup(), QString::fromLatin1( "LogFileName" ), mLogFileName, KGlobal::dirs()->saveLocation("data", "kpilot/").append("lastsync.log") );
00065 mLogFileNameItem->setLabel( i18n("LogFileName") );
00066 addItem( mLogFileNameItem, QString::fromLatin1( "LogFileName" ) );
00067 mStartDaemonAtLoginItem = new KConfigSkeleton::ItemBool( currentGroup(), QString::fromLatin1( "StartDaemonAtLogin" ), mStartDaemonAtLogin, false );
00068 mStartDaemonAtLoginItem->setLabel( i18n("StartDaemonAtLogin") );
00069 addItem( mStartDaemonAtLoginItem, QString::fromLatin1( "StartDaemonAtLogin" ) );
00070 mKillDaemonAtExitItem = new KConfigSkeleton::ItemBool( currentGroup(), QString::fromLatin1( "KillDaemonAtExit" ), mKillDaemonAtExit, false );
00071 mKillDaemonAtExitItem->setLabel( i18n("KillDaemonAtExit") );
00072 addItem( mKillDaemonAtExitItem, QString::fromLatin1( "KillDaemonAtExit" ) );
00073 mDockDaemonItem = new KConfigSkeleton::ItemBool( currentGroup(), QString::fromLatin1( "DockDaemon" ), mDockDaemon, true );
00074 mDockDaemonItem->setLabel( i18n("DockDaemon") );
00075 addItem( mDockDaemonItem, QString::fromLatin1( "DockDaemon" ) );
00076 mQuitAfterSyncItem = new KConfigSkeleton::ItemBool( currentGroup(), QString::fromLatin1( "QuitAfterSync" ), mQuitAfterSync, false );
00077 mQuitAfterSyncItem->setLabel( i18n("QuitAfterSync") );
00078 addItem( mQuitAfterSyncItem, QString::fromLatin1( "QuitAfterSync" ) );
00079 mSyncTypeItem = new KConfigSkeleton::ItemUInt( currentGroup(), QString::fromLatin1( "SyncType" ), mSyncType, 6 );
00080 mSyncTypeItem->setLabel( i18n("SyncType") );
00081 addItem( mSyncTypeItem, QString::fromLatin1( "SyncType" ) );
00082 mFullSyncOnPCChangeItem = new KConfigSkeleton::ItemBool( currentGroup(), QString::fromLatin1( "FullSyncOnPCChange" ), mFullSyncOnPCChange, true );
00083 mFullSyncOnPCChangeItem->setLabel( i18n("FullSyncOnPCChange") );
00084 addItem( mFullSyncOnPCChangeItem, QString::fromLatin1( "FullSyncOnPCChange" ) );
00085 mConflictResolutionItem = new KConfigSkeleton::ItemUInt( currentGroup(), QString::fromLatin1( "ConflictResolution" ), mConflictResolution, 0 );
00086 mConflictResolutionItem->setLabel( i18n("ConflictResolution") );
00087 addItem( mConflictResolutionItem, QString::fromLatin1( "ConflictResolution" ) );
00088 mInternalEditorsItem = new KConfigSkeleton::ItemBool( currentGroup(), QString::fromLatin1( "InternalEditorsWritable" ), mInternalEditors, true );
00089 mInternalEditorsItem->setLabel( i18n("InternalEditorsWritable") );
00090 addItem( mInternalEditorsItem, QString::fromLatin1( "InternalEditors" ) );
00091 mShowSecretsItem = new KConfigSkeleton::ItemBool( currentGroup(), QString::fromLatin1( "ShowSecrets" ), mShowSecrets, false );
00092 mShowSecretsItem->setLabel( i18n("ShowSecrets") );
00093 addItem( mShowSecretsItem, QString::fromLatin1( "ShowSecrets" ) );
00094 QStringList defaultSkipBackupDB;
00095 defaultSkipBackupDB.append( QString::fromUtf8( "[Arng]" ) );
00096 defaultSkipBackupDB.append( QString::fromUtf8( "[PmDB]" ) );
00097 defaultSkipBackupDB.append( QString::fromUtf8( "[lnch]" ) );
00098 defaultSkipBackupDB.append( QString::fromUtf8( "[a86k]" ) );
00099 defaultSkipBackupDB.append( QString::fromUtf8( "FATFS" ) );
00100 defaultSkipBackupDB.append( QString::fromUtf8( "ImgFile-Foto" ) );
00101 defaultSkipBackupDB.append( QString::fromUtf8( "Jpeg-Foto" ) );
00102 defaultSkipBackupDB.append( QString::fromUtf8( "WifiCoreLib" ) );
00103
00104 mSkipBackupDBItem = new KConfigSkeleton::ItemStringList( currentGroup(), QString::fromLatin1( "SkipBackupDB" ), mSkipBackupDB, defaultSkipBackupDB );
00105 mSkipBackupDBItem->setLabel( i18n("Which databases not to backup.") );
00106 addItem( mSkipBackupDBItem, QString::fromLatin1( "SkipBackupDB" ) );
00107 QStringList defaultSkipRestoreDB;
00108 defaultSkipRestoreDB.append( QString::fromUtf8( "[AvGo]" ) );
00109
00110 mSkipRestoreDBItem = new KConfigSkeleton::ItemStringList( currentGroup(), QString::fromLatin1( "SkipRestoreDB" ), mSkipRestoreDB, defaultSkipRestoreDB );
00111 mSkipRestoreDBItem->setLabel( i18n("SkipRestoreDB") );
00112 addItem( mSkipRestoreDBItem, QString::fromLatin1( "SkipRestoreDB" ) );
00113 mBackupFrequencyItem = new KConfigSkeleton::ItemUInt( currentGroup(), QString::fromLatin1( "BackupFrequency" ), mBackupFrequency, 0 );
00114 mBackupFrequencyItem->setLabel( i18n("BackupFrequency") );
00115 addItem( mBackupFrequencyItem, QString::fromLatin1( "BackupFrequency" ) );
00116 mRunConduitsWithBackupItem = new KConfigSkeleton::ItemBool( currentGroup(), QString::fromLatin1( "RunConduitsWithBackup" ), mRunConduitsWithBackup, false );
00117 mRunConduitsWithBackupItem->setLabel( i18n("RunConduitsWithBackup") );
00118 addItem( mRunConduitsWithBackupItem, QString::fromLatin1( "RunConduitsWithBackup" ) );
00119 mDeviceDBsItem = new KConfigSkeleton::ItemStringList( currentGroup(), QString::fromLatin1( "DeviceDBs" ), mDeviceDBs );
00120 mDeviceDBsItem->setLabel( i18n("DeviceDBs") );
00121 addItem( mDeviceDBsItem, QString::fromLatin1( "DeviceDBs" ) );
00122 mAddedDBsItem = new KConfigSkeleton::ItemStringList( currentGroup(), QString::fromLatin1( "AddedDBs" ), mAddedDBs );
00123 mAddedDBsItem->setLabel( i18n("AddedDBs") );
00124 addItem( mAddedDBsItem, QString::fromLatin1( "AddedDBs" ) );
00125 mScreenlockSecureItem = new KConfigSkeleton::ItemBool( currentGroup(), QString::fromLatin1( "ScreenlockSecure" ), mScreenlockSecure, true );
00126 mScreenlockSecureItem->setLabel( i18n("Prevent HotSync when screen locked") );
00127 mScreenlockSecureItem->setWhatsThis( i18n("Turning this option on prevents syncing\n"
00128 " when the screen is locked. This is a security measure\n"
00129 " to prevent people from stealing your data through physical\n"
00130 " access to a Pilot device link to your machine.\n"
00131 " It doesn't work with screensavers other than KDE, though,\n"
00132 " so you will need to turn it off for other environments.") );
00133 addItem( mScreenlockSecureItem, QString::fromLatin1( "ScreenlockSecure" ) );
00134
00135 setCurrentGroup( QString::fromLatin1( "Conduit Names" ) );
00136
00137 QStringList defaultInstalledConduits;
00138 defaultInstalledConduits.append( QString::fromUtf8( "abbrowser_conduit" ) );
00139 defaultInstalledConduits.append( QString::fromUtf8( "internal_fileinstall" ) );
00140 defaultInstalledConduits.append( QString::fromUtf8( "knotes-conduit" ) );
00141 defaultInstalledConduits.append( QString::fromUtf8( "vcal-conduit" ) );
00142 defaultInstalledConduits.append( QString::fromUtf8( "todo-conduit" ) );
00143 defaultInstalledConduits.append( QString::fromUtf8( "mal_conduit" ) );
00144 defaultInstalledConduits.append( QString::fromUtf8( "sysinfo_conduit" ) );
00145
00146 mInstalledConduitsItem = new KConfigSkeleton::ItemStringList( currentGroup(), QString::fromLatin1( "InstalledConduits" ), mInstalledConduits, defaultInstalledConduits );
00147 mInstalledConduitsItem->setLabel( i18n("InstalledConduits") );
00148 addItem( mInstalledConduitsItem, QString::fromLatin1( "InstalledConduits" ) );
00149
00150 setCurrentGroup( QString::fromLatin1( "Internal Editors" ) );
00151
00152 mAppBlockChangedDatabasesItem = new KConfigSkeleton::ItemStringList( currentGroup(), QString::fromLatin1( "AppBlock Changed" ), mAppBlockChangedDatabases );
00153 mAppBlockChangedDatabasesItem->setLabel( i18n("AppBlock Changed") );
00154 addItem( mAppBlockChangedDatabasesItem, QString::fromLatin1( "AppBlockChangedDatabases" ) );
00155 mDirtyDatabasesItem = new KConfigSkeleton::ItemStringList( currentGroup(), QString::fromLatin1( "Changed Databases" ), mDirtyDatabases );
00156 mDirtyDatabasesItem->setLabel( i18n("Changed Databases") );
00157 addItem( mDirtyDatabasesItem, QString::fromLatin1( "DirtyDatabases" ) );
00158 mFlagsChangedDatabasesItem = new KConfigSkeleton::ItemStringList( currentGroup(), QString::fromLatin1( "Flags Changed" ), mFlagsChangedDatabases );
00159 mFlagsChangedDatabasesItem->setLabel( i18n("Flags Changed") );
00160 addItem( mFlagsChangedDatabasesItem, QString::fromLatin1( "FlagsChangedDatabases" ) );
00161
00162 setCurrentGroup( QString::fromLatin1( "Address Widget" ) );
00163
00164 mAddressDisplayModeItem = new KConfigSkeleton::ItemUInt( currentGroup(), QString::fromLatin1( "AddressDisplay" ), mAddressDisplayMode, 0 );
00165 mAddressDisplayModeItem->setLabel( i18n("AddressDisplay") );
00166 addItem( mAddressDisplayModeItem, QString::fromLatin1( "AddressDisplayMode" ) );
00167 mUseKeyFieldItem = new KConfigSkeleton::ItemBool( currentGroup(), QString::fromLatin1( "UseKeyField" ), mUseKeyField, false );
00168 mUseKeyFieldItem->setLabel( i18n("UseKeyField") );
00169 addItem( mUseKeyFieldItem, QString::fromLatin1( "UseKeyField" ) );
00170 }
00171
00172 KPilotSettings::~KPilotSettings()
00173 {
00174 if ( mSelf == this )
00175 staticKPilotSettingsDeleter.setObject( mSelf, 0, false );
00176 }
00177