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
00103 mSkipBackupDBItem = new KConfigSkeleton::ItemStringList( currentGroup(), QString::fromLatin1( "SkipBackupDB" ), mSkipBackupDB, defaultSkipBackupDB );
00104 mSkipBackupDBItem->setLabel( i18n("Which databases not to backup.") );
00105 addItem( mSkipBackupDBItem, QString::fromLatin1( "SkipBackupDB" ) );
00106 QStringList defaultSkipRestoreDB;
00107 defaultSkipRestoreDB.append( QString::fromUtf8( "[AvGo]" ) );
00108
00109 mSkipRestoreDBItem = new KConfigSkeleton::ItemStringList( currentGroup(), QString::fromLatin1( "SkipRestoreDB" ), mSkipRestoreDB, defaultSkipRestoreDB );
00110 mSkipRestoreDBItem->setLabel( i18n("SkipRestoreDB") );
00111 addItem( mSkipRestoreDBItem, QString::fromLatin1( "SkipRestoreDB" ) );
00112 mRunConduitsWithBackupItem = new KConfigSkeleton::ItemBool( currentGroup(), QString::fromLatin1( "RunConduitsWithBackup" ), mRunConduitsWithBackup, false );
00113 mRunConduitsWithBackupItem->setLabel( i18n("RunConduitsWithBackup") );
00114 addItem( mRunConduitsWithBackupItem, QString::fromLatin1( "RunConduitsWithBackup" ) );
00115 mDeviceDBsItem = new KConfigSkeleton::ItemStringList( currentGroup(), QString::fromLatin1( "DeviceDBs" ), mDeviceDBs );
00116 mDeviceDBsItem->setLabel( i18n("DeviceDBs") );
00117 addItem( mDeviceDBsItem, QString::fromLatin1( "DeviceDBs" ) );
00118 mAddedDBsItem = new KConfigSkeleton::ItemStringList( currentGroup(), QString::fromLatin1( "AddedDBs" ), mAddedDBs );
00119 mAddedDBsItem->setLabel( i18n("AddedDBs") );
00120 addItem( mAddedDBsItem, QString::fromLatin1( "AddedDBs" ) );
00121 mScreenlockSecureItem = new KConfigSkeleton::ItemBool( currentGroup(), QString::fromLatin1( "ScreenlockSecure" ), mScreenlockSecure, true );
00122 mScreenlockSecureItem->setLabel( i18n("Prevent HotSync when screen locked") );
00123 mScreenlockSecureItem->setWhatsThis( i18n("Turning this option on prevents syncing\n"
00124 " when the screen is locked. This is a security measure\n"
00125 " to prevent people from stealing your data through physical\n"
00126 " access to a Pilot device link to your machine.\n"
00127 " It doesn't work with screensavers other than KDE, though,\n"
00128 " so you will need to turn it off for other environments.") );
00129 addItem( mScreenlockSecureItem, QString::fromLatin1( "ScreenlockSecure" ) );
00130
00131 setCurrentGroup( QString::fromLatin1( "Conduit Names" ) );
00132
00133 QStringList defaultInstalledConduits;
00134 defaultInstalledConduits.append( QString::fromUtf8( "abbrowser_conduit" ) );
00135 defaultInstalledConduits.append( QString::fromUtf8( "internal_fileinstall" ) );
00136 defaultInstalledConduits.append( QString::fromUtf8( "knotes-conduit" ) );
00137 defaultInstalledConduits.append( QString::fromUtf8( "vcal-conduit" ) );
00138 defaultInstalledConduits.append( QString::fromUtf8( "todo-conduit" ) );
00139 defaultInstalledConduits.append( QString::fromUtf8( "mal_conduit" ) );
00140 defaultInstalledConduits.append( QString::fromUtf8( "sysinfo_conduit" ) );
00141
00142 mInstalledConduitsItem = new KConfigSkeleton::ItemStringList( currentGroup(), QString::fromLatin1( "InstalledConduits" ), mInstalledConduits, defaultInstalledConduits );
00143 mInstalledConduitsItem->setLabel( i18n("InstalledConduits") );
00144 addItem( mInstalledConduitsItem, QString::fromLatin1( "InstalledConduits" ) );
00145
00146 setCurrentGroup( QString::fromLatin1( "Internal Editors" ) );
00147
00148 mAppBlockChangedDatabasesItem = new KConfigSkeleton::ItemStringList( currentGroup(), QString::fromLatin1( "AppBlock Changed" ), mAppBlockChangedDatabases );
00149 mAppBlockChangedDatabasesItem->setLabel( i18n("AppBlock Changed") );
00150 addItem( mAppBlockChangedDatabasesItem, QString::fromLatin1( "AppBlockChangedDatabases" ) );
00151 mDirtyDatabasesItem = new KConfigSkeleton::ItemStringList( currentGroup(), QString::fromLatin1( "Changed Databases" ), mDirtyDatabases );
00152 mDirtyDatabasesItem->setLabel( i18n("Changed Databases") );
00153 addItem( mDirtyDatabasesItem, QString::fromLatin1( "DirtyDatabases" ) );
00154 mFlagsChangedDatabasesItem = new KConfigSkeleton::ItemStringList( currentGroup(), QString::fromLatin1( "Flags Changed" ), mFlagsChangedDatabases );
00155 mFlagsChangedDatabasesItem->setLabel( i18n("Flags Changed") );
00156 addItem( mFlagsChangedDatabasesItem, QString::fromLatin1( "FlagsChangedDatabases" ) );
00157
00158 setCurrentGroup( QString::fromLatin1( "Address Widget" ) );
00159
00160 mAddressDisplayModeItem = new KConfigSkeleton::ItemUInt( currentGroup(), QString::fromLatin1( "AddressDisplay" ), mAddressDisplayMode, 0 );
00161 mAddressDisplayModeItem->setLabel( i18n("AddressDisplay") );
00162 addItem( mAddressDisplayModeItem, QString::fromLatin1( "AddressDisplayMode" ) );
00163 mUseKeyFieldItem = new KConfigSkeleton::ItemBool( currentGroup(), QString::fromLatin1( "UseKeyField" ), mUseKeyField, false );
00164 mUseKeyFieldItem->setLabel( i18n("UseKeyField") );
00165 addItem( mUseKeyFieldItem, QString::fromLatin1( "UseKeyField" ) );
00166 }
00167
00168 KPilotSettings::~KPilotSettings()
00169 {
00170 if ( mSelf == this )
00171 staticKPilotSettingsDeleter.setObject( mSelf, 0, false );
00172 }
00173