00001
00002
00003
00004 #include "akregatorconfig.h"
00005
00006 #include <kstaticdeleter.h>
00007
00008 using namespace Akregator;
00009
00010 Settings *Settings::mSelf = 0;
00011 static KStaticDeleter<Settings> staticSettingsDeleter;
00012
00013 Settings *Settings::self()
00014 {
00015 if ( !mSelf ) {
00016 staticSettingsDeleter.setObject( mSelf, new Settings() );
00017 mSelf->readConfig();
00018 }
00019
00020 return mSelf;
00021 }
00022
00023 Settings::Settings( )
00024 : KConfigSkeleton( QString::fromLatin1( "akregatorrc" ) )
00025 {
00026 mSelf = this;
00027 setCurrentGroup( QString::fromLatin1( "View" ) );
00028
00029 KConfigSkeleton::ItemBool *itemShowQuickFilter;
00030 itemShowQuickFilter = new KConfigSkeleton::ItemBool( currentGroup(), QString::fromLatin1( "Show Quick Filter" ), mShowQuickFilter, true );
00031 addItem( itemShowQuickFilter, QString::fromLatin1( "ShowQuickFilter" ) );
00032 KConfigSkeleton::ItemInt *itemStatusFilter;
00033 itemStatusFilter = new KConfigSkeleton::ItemInt( currentGroup(), QString::fromLatin1( "Status Filter" ), mStatusFilter, 0 );
00034 addItem( itemStatusFilter, QString::fromLatin1( "StatusFilter" ) );
00035 KConfigSkeleton::ItemString *itemTextFilter;
00036 itemTextFilter = new KConfigSkeleton::ItemString( currentGroup(), QString::fromLatin1( "Text Filter" ), mTextFilter );
00037 addItem( itemTextFilter, QString::fromLatin1( "TextFilter" ) );
00038 KConfigSkeleton::ItemInt *itemViewMode;
00039 itemViewMode = new KConfigSkeleton::ItemInt( currentGroup(), QString::fromLatin1( "View Mode" ), mViewMode, 0 );
00040 addItem( itemViewMode, QString::fromLatin1( "ViewMode" ) );
00041 QValueList<int> defaultSplitter1Sizes;
00042 defaultSplitter1Sizes.append( 225 );
00043 defaultSplitter1Sizes.append( 650 );
00044
00045 KConfigSkeleton::ItemIntList *itemSplitter1Sizes;
00046 itemSplitter1Sizes = new KConfigSkeleton::ItemIntList( currentGroup(), QString::fromLatin1( "Splitter 1 Sizes" ), mSplitter1Sizes, defaultSplitter1Sizes );
00047 addItem( itemSplitter1Sizes, QString::fromLatin1( "Splitter1Sizes" ) );
00048 QValueList<int> defaultSplitter2Sizes;
00049 defaultSplitter2Sizes.append( 50 );
00050 defaultSplitter2Sizes.append( 350 );
00051
00052 KConfigSkeleton::ItemIntList *itemSplitter2Sizes;
00053 itemSplitter2Sizes = new KConfigSkeleton::ItemIntList( currentGroup(), QString::fromLatin1( "Splitter 2 Sizes" ), mSplitter2Sizes, defaultSplitter2Sizes );
00054 addItem( itemSplitter2Sizes, QString::fromLatin1( "Splitter2Sizes" ) );
00055
00056 setCurrentGroup( QString::fromLatin1( "Appearance" ) );
00057
00058 KConfigSkeleton::ItemString *itemStandardFont;
00059 itemStandardFont = new KConfigSkeleton::ItemString( currentGroup(), QString::fromLatin1( "Standard Font" ), mStandardFont );
00060 addItem( itemStandardFont, QString::fromLatin1( "StandardFont" ) );
00061 KConfigSkeleton::ItemString *itemFixedFont;
00062 itemFixedFont = new KConfigSkeleton::ItemString( currentGroup(), QString::fromLatin1( "Fixed Font" ), mFixedFont );
00063 addItem( itemFixedFont, QString::fromLatin1( "FixedFont" ) );
00064 KConfigSkeleton::ItemString *itemSerifFont;
00065 itemSerifFont = new KConfigSkeleton::ItemString( currentGroup(), QString::fromLatin1( "Serif Font" ), mSerifFont );
00066 addItem( itemSerifFont, QString::fromLatin1( "SerifFont" ) );
00067 KConfigSkeleton::ItemString *itemSansSerifFont;
00068 itemSansSerifFont = new KConfigSkeleton::ItemString( currentGroup(), QString::fromLatin1( "Sans Serif Font" ), mSansSerifFont );
00069 addItem( itemSansSerifFont, QString::fromLatin1( "SansSerifFont" ) );
00070
00071 setCurrentGroup( QString::fromLatin1( "HTML Settings" ) );
00072
00073 KConfigSkeleton::ItemStringList *itemFonts;
00074 itemFonts = new KConfigSkeleton::ItemStringList( currentGroup(), QString::fromLatin1( "Fonts" ), mFonts );
00075 addItem( itemFonts, QString::fromLatin1( "Fonts" ) );
00076 KConfigSkeleton::ItemInt *itemMediumFontSize;
00077 itemMediumFontSize = new KConfigSkeleton::ItemInt( currentGroup(), QString::fromLatin1( "MediumFontSize" ), mMediumFontSize, 12 );
00078 addItem( itemMediumFontSize, QString::fromLatin1( "MediumFontSize" ) );
00079 KConfigSkeleton::ItemInt *itemMinimumFontSize;
00080 itemMinimumFontSize = new KConfigSkeleton::ItemInt( currentGroup(), QString::fromLatin1( "MinimumFontSize" ), mMinimumFontSize, 8 );
00081 addItem( itemMinimumFontSize, QString::fromLatin1( "MinimumFontSize" ) );
00082 KConfigSkeleton::ItemBool *itemUnderlineLinks;
00083 itemUnderlineLinks = new KConfigSkeleton::ItemBool( currentGroup(), QString::fromLatin1( "UnderlineLinks" ), mUnderlineLinks );
00084 addItem( itemUnderlineLinks, QString::fromLatin1( "UnderlineLinks" ) );
00085
00086 setCurrentGroup( QString::fromLatin1( "Archive" ) );
00087
00088 QValueList<KConfigSkeleton::ItemEnum::Choice> valuesArchiveMode;
00089 {
00090 KConfigSkeleton::ItemEnum::Choice choice;
00091 choice.name = QString::fromLatin1( "keepAllArticles" );
00092 valuesArchiveMode.append( choice );
00093 }
00094 {
00095 KConfigSkeleton::ItemEnum::Choice choice;
00096 choice.name = QString::fromLatin1( "limitArticleNumber" );
00097 valuesArchiveMode.append( choice );
00098 }
00099 {
00100 KConfigSkeleton::ItemEnum::Choice choice;
00101 choice.name = QString::fromLatin1( "limitArticleAge" );
00102 valuesArchiveMode.append( choice );
00103 }
00104 {
00105 KConfigSkeleton::ItemEnum::Choice choice;
00106 choice.name = QString::fromLatin1( "disableArchiving" );
00107 valuesArchiveMode.append( choice );
00108 }
00109 KConfigSkeleton::ItemEnum *itemArchiveMode;
00110 itemArchiveMode = new KConfigSkeleton::ItemEnum( currentGroup(), QString::fromLatin1( "ArchiveMode" ), mArchiveMode, valuesArchiveMode, EnumArchiveMode::keepAllArticles );
00111 addItem( itemArchiveMode, QString::fromLatin1( "ArchiveMode" ) );
00112 KConfigSkeleton::ItemInt *itemMaxArticleAge;
00113 itemMaxArticleAge = new KConfigSkeleton::ItemInt( currentGroup(), QString::fromLatin1( "Max Article Age" ), mMaxArticleAge, 60 );
00114 addItem( itemMaxArticleAge, QString::fromLatin1( "MaxArticleAge" ) );
00115 KConfigSkeleton::ItemInt *itemMaxArticleNumber;
00116 itemMaxArticleNumber = new KConfigSkeleton::ItemInt( currentGroup(), QString::fromLatin1( "Max Article Number" ), mMaxArticleNumber, 1000 );
00117 addItem( itemMaxArticleNumber, QString::fromLatin1( "MaxArticleNumber" ) );
00118 KConfigSkeleton::ItemBool *itemDoNotExpireImportantArticles;
00119 itemDoNotExpireImportantArticles = new KConfigSkeleton::ItemBool( currentGroup(), QString::fromLatin1( "Do Not Expire Important Articles" ), mDoNotExpireImportantArticles, true );
00120 addItem( itemDoNotExpireImportantArticles, QString::fromLatin1( "DoNotExpireImportantArticles" ) );
00121
00122 setCurrentGroup( QString::fromLatin1( "Network" ) );
00123
00124 KConfigSkeleton::ItemInt *itemConcurrentFetches;
00125 itemConcurrentFetches = new KConfigSkeleton::ItemInt( currentGroup(), QString::fromLatin1( "Concurrent Fetches" ), mConcurrentFetches, 6 );
00126 addItem( itemConcurrentFetches, QString::fromLatin1( "ConcurrentFetches" ) );
00127 KConfigSkeleton::ItemBool *itemUseHTMLCache;
00128 itemUseHTMLCache = new KConfigSkeleton::ItemBool( currentGroup(), QString::fromLatin1( "Use HTML Cache" ), mUseHTMLCache, true );
00129 addItem( itemUseHTMLCache, QString::fromLatin1( "UseHTMLCache" ) );
00130
00131 setCurrentGroup( QString::fromLatin1( "General" ) );
00132
00133 KConfigSkeleton::ItemBool *itemFetchOnStartup;
00134 itemFetchOnStartup = new KConfigSkeleton::ItemBool( currentGroup(), QString::fromLatin1( "Fetch On Startup" ), mFetchOnStartup, false );
00135 addItem( itemFetchOnStartup, QString::fromLatin1( "FetchOnStartup" ) );
00136 KConfigSkeleton::ItemBool *itemMarkAllFeedsReadOnStartup;
00137 itemMarkAllFeedsReadOnStartup = new KConfigSkeleton::ItemBool( currentGroup(), QString::fromLatin1( "Mark All Feeds Read On Startup" ), mMarkAllFeedsReadOnStartup, false );
00138 addItem( itemMarkAllFeedsReadOnStartup, QString::fromLatin1( "MarkAllFeedsReadOnStartup" ) );
00139 KConfigSkeleton::ItemBool *itemUseIntervalFetch;
00140 itemUseIntervalFetch = new KConfigSkeleton::ItemBool( currentGroup(), QString::fromLatin1( "Use Interval Fetch" ), mUseIntervalFetch, true );
00141 addItem( itemUseIntervalFetch, QString::fromLatin1( "UseIntervalFetch" ) );
00142 KConfigSkeleton::ItemInt *itemAutoFetchInterval;
00143 itemAutoFetchInterval = new KConfigSkeleton::ItemInt( currentGroup(), QString::fromLatin1( "Auto Fetch Interval" ), mAutoFetchInterval, 30 );
00144 addItem( itemAutoFetchInterval, QString::fromLatin1( "AutoFetchInterval" ) );
00145 KConfigSkeleton::ItemBool *itemUseNotifications;
00146 itemUseNotifications = new KConfigSkeleton::ItemBool( currentGroup(), QString::fromLatin1( "Use Notifications" ), mUseNotifications, false );
00147 addItem( itemUseNotifications, QString::fromLatin1( "UseNotifications" ) );
00148 KConfigSkeleton::ItemBool *itemShowTrayIcon;
00149 itemShowTrayIcon = new KConfigSkeleton::ItemBool( currentGroup(), QString::fromLatin1( "Show Tray Icon" ), mShowTrayIcon, true );
00150 addItem( itemShowTrayIcon, QString::fromLatin1( "ShowTrayIcon" ) );
00151
00152 setCurrentGroup( QString::fromLatin1( "Browser" ) );
00153
00154 KConfigSkeleton::ItemBool *itemCloseButtonOnTabs;
00155 itemCloseButtonOnTabs = new KConfigSkeleton::ItemBool( currentGroup(), QString::fromLatin1( "Close Button On Tabs" ), mCloseButtonOnTabs, false );
00156 addItem( itemCloseButtonOnTabs, QString::fromLatin1( "CloseButtonOnTabs" ) );
00157 KConfigSkeleton::ItemBool *itemExternalBrowserUseKdeDefault;
00158 itemExternalBrowserUseKdeDefault = new KConfigSkeleton::ItemBool( currentGroup(), QString::fromLatin1( "External Browser Use Kde Default" ), mExternalBrowserUseKdeDefault, true );
00159 addItem( itemExternalBrowserUseKdeDefault, QString::fromLatin1( "ExternalBrowserUseKdeDefault" ) );
00160 KConfigSkeleton::ItemBool *itemExternalBrowserUseCustomCommand;
00161 itemExternalBrowserUseCustomCommand = new KConfigSkeleton::ItemBool( currentGroup(), QString::fromLatin1( "External Browser Use Custom Command" ), mExternalBrowserUseCustomCommand, false );
00162 addItem( itemExternalBrowserUseCustomCommand, QString::fromLatin1( "ExternalBrowserUseCustomCommand" ) );
00163 KConfigSkeleton::ItemString *itemExternalBrowserCustomCommand;
00164 itemExternalBrowserCustomCommand = new KConfigSkeleton::ItemString( currentGroup(), QString::fromLatin1( "External Browser Custom Command" ), mExternalBrowserCustomCommand, QString::fromLatin1( "firefox %u" ) );
00165 addItem( itemExternalBrowserCustomCommand, QString::fromLatin1( "ExternalBrowserCustomCommand" ) );
00166 QValueList<KConfigSkeleton::ItemEnum::Choice> valuesLMBBehaviour;
00167 {
00168 KConfigSkeleton::ItemEnum::Choice choice;
00169 choice.name = QString::fromLatin1( "OpenInInternalBrowser" );
00170 valuesLMBBehaviour.append( choice );
00171 }
00172 {
00173 KConfigSkeleton::ItemEnum::Choice choice;
00174 choice.name = QString::fromLatin1( "OpenInBackground" );
00175 valuesLMBBehaviour.append( choice );
00176 }
00177 {
00178 KConfigSkeleton::ItemEnum::Choice choice;
00179 choice.name = QString::fromLatin1( "OpenInExternalBrowser" );
00180 valuesLMBBehaviour.append( choice );
00181 }
00182 KConfigSkeleton::ItemEnum *itemLMBBehaviour;
00183 itemLMBBehaviour = new KConfigSkeleton::ItemEnum( currentGroup(), QString::fromLatin1( "LMB Behaviour" ), mLMBBehaviour, valuesLMBBehaviour, EnumLMBBehaviour::OpenInInternalBrowser );
00184 addItem( itemLMBBehaviour, QString::fromLatin1( "LMBBehaviour" ) );
00185 QValueList<KConfigSkeleton::ItemEnum::Choice> valuesMMBBehaviour;
00186 {
00187 KConfigSkeleton::ItemEnum::Choice choice;
00188 choice.name = QString::fromLatin1( "OpenInInternalBrowser" );
00189 valuesMMBBehaviour.append( choice );
00190 }
00191 {
00192 KConfigSkeleton::ItemEnum::Choice choice;
00193 choice.name = QString::fromLatin1( "OpenInBackground" );
00194 valuesMMBBehaviour.append( choice );
00195 }
00196 {
00197 KConfigSkeleton::ItemEnum::Choice choice;
00198 choice.name = QString::fromLatin1( "OpenInExternalBrowser" );
00199 valuesMMBBehaviour.append( choice );
00200 }
00201 KConfigSkeleton::ItemEnum *itemMMBBehaviour;
00202 itemMMBBehaviour = new KConfigSkeleton::ItemEnum( currentGroup(), QString::fromLatin1( "MMB Behaviour" ), mMMBBehaviour, valuesMMBBehaviour, EnumMMBBehaviour::OpenInExternalBrowser );
00203 addItem( itemMMBBehaviour, QString::fromLatin1( "MMBBehaviour" ) );
00204
00205 setCurrentGroup( QString::fromLatin1( "Viewer Columns" ) );
00206
00207 KConfigSkeleton::ItemInt *itemTitleWidth;
00208 itemTitleWidth = new KConfigSkeleton::ItemInt( currentGroup(), QString::fromLatin1( "Title Width" ), mTitleWidth, -1 );
00209 addItem( itemTitleWidth, QString::fromLatin1( "TitleWidth" ) );
00210 KConfigSkeleton::ItemInt *itemFeedWidth;
00211 itemFeedWidth = new KConfigSkeleton::ItemInt( currentGroup(), QString::fromLatin1( "Feed Width" ), mFeedWidth, -1 );
00212 addItem( itemFeedWidth, QString::fromLatin1( "FeedWidth" ) );
00213 KConfigSkeleton::ItemInt *itemDateWidth;
00214 itemDateWidth = new KConfigSkeleton::ItemInt( currentGroup(), QString::fromLatin1( "Date Width" ), mDateWidth, -1 );
00215 addItem( itemDateWidth, QString::fromLatin1( "DateWidth" ) );
00216 KConfigSkeleton::ItemInt *itemSortColumn;
00217 itemSortColumn = new KConfigSkeleton::ItemInt( currentGroup(), QString::fromLatin1( "Sort Column" ), mSortColumn, 2 );
00218 addItem( itemSortColumn, QString::fromLatin1( "SortColumn" ) );
00219 KConfigSkeleton::ItemBool *itemSortAscending;
00220 itemSortAscending = new KConfigSkeleton::ItemBool( currentGroup(), QString::fromLatin1( "Sort Ascending" ), mSortAscending, false );
00221 addItem( itemSortAscending, QString::fromLatin1( "SortAscending" ) );
00222
00223 setCurrentGroup( QString::fromLatin1( "Advanced" ) );
00224
00225 KConfigSkeleton::ItemString *itemArchiveBackend;
00226 itemArchiveBackend = new KConfigSkeleton::ItemString( currentGroup(), QString::fromLatin1( "Archive Backend" ), mArchiveBackend, QString::fromLatin1( "metakit" ) );
00227 addItem( itemArchiveBackend, QString::fromLatin1( "ArchiveBackend" ) );
00228 KConfigSkeleton::ItemBool *itemUseMarkReadDelay;
00229 itemUseMarkReadDelay = new KConfigSkeleton::ItemBool( currentGroup(), QString::fromLatin1( "Delay Mark Read" ), mUseMarkReadDelay, true );
00230 addItem( itemUseMarkReadDelay, QString::fromLatin1( "UseMarkReadDelay" ) );
00231 KConfigSkeleton::ItemInt *itemMarkReadDelay;
00232 itemMarkReadDelay = new KConfigSkeleton::ItemInt( currentGroup(), QString::fromLatin1( "Mark Read Delay" ), mMarkReadDelay, 0 );
00233 addItem( itemMarkReadDelay, QString::fromLatin1( "MarkReadDelay" ) );
00234 KConfigSkeleton::ItemBool *itemResetQuickFilterOnNodeChange;
00235 itemResetQuickFilterOnNodeChange = new KConfigSkeleton::ItemBool( currentGroup(), QString::fromLatin1( "Reset Quick Filter On Node Change" ), mResetQuickFilterOnNodeChange, true );
00236 addItem( itemResetQuickFilterOnNodeChange, QString::fromLatin1( "ResetQuickFilterOnNodeChange" ) );
00237 KConfigSkeleton::ItemBool *itemShowTaggingGUI;
00238 itemShowTaggingGUI = new KConfigSkeleton::ItemBool( currentGroup(), QString::fromLatin1( "Show Tagging GUI" ), mShowTaggingGUI, false );
00239 addItem( itemShowTaggingGUI, QString::fromLatin1( "ShowTaggingGUI" ) );
00240 }
00241
00242 Settings::~Settings()
00243 {
00244 if ( mSelf == this )
00245 staticSettingsDeleter.setObject( mSelf, 0, false );
00246 }
00247