00001
00002
00003
00004 #include "kcalc_settings.h"
00005
00006 #include <kglobal.h>
00007 #include <QtCore/QFile>
00008
00009 class KCalcSettingsHelper
00010 {
00011 public:
00012 KCalcSettingsHelper() : q(0) {}
00013 ~KCalcSettingsHelper() { delete q; }
00014 KCalcSettings *q;
00015 };
00016 K_GLOBAL_STATIC(KCalcSettingsHelper, s_globalKCalcSettings)
00017 KCalcSettings *KCalcSettings::self()
00018 {
00019 if (!s_globalKCalcSettings->q) {
00020 new KCalcSettings;
00021 s_globalKCalcSettings->q->readConfig();
00022 }
00023
00024 return s_globalKCalcSettings->q;
00025 }
00026
00027 KCalcSettings::KCalcSettings( )
00028 : KConfigSkeleton( QLatin1String( "kcalcrc" ) )
00029 {
00030 Q_ASSERT(!s_globalKCalcSettings->q);
00031 s_globalKCalcSettings->q = this;
00032 setCurrentGroup( QLatin1String( "Colors" ) );
00033
00034 KConfigSkeleton::ItemColor *itemForeColor;
00035 itemForeColor = new KConfigSkeleton::ItemColor( currentGroup(), QLatin1String( "ForeColor" ), mForeColor, QColor( "#000000" ) );
00036 addItem( itemForeColor, QLatin1String( "ForeColor" ) );
00037 KConfigSkeleton::ItemColor *itemBackColor;
00038 itemBackColor = new KConfigSkeleton::ItemColor( currentGroup(), QLatin1String( "BackColor" ), mBackColor, QColor( "#BDFFB4" ) );
00039 addItem( itemBackColor, QLatin1String( "BackColor" ) );
00040 QColor defaultButtonColor = kapp->palette().color(QPalette::Active, QPalette::Background);
00041 KConfigSkeleton::ItemColor *itemNumberButtonsColor;
00042 itemNumberButtonsColor = new KConfigSkeleton::ItemColor( currentGroup(), QLatin1String( "NumberButtonsColor" ), mNumberButtonsColor, defaultButtonColor );
00043 addItem( itemNumberButtonsColor, QLatin1String( "NumberButtonsColor" ) );
00044 KConfigSkeleton::ItemColor *itemFunctionButtonsColor;
00045 itemFunctionButtonsColor = new KConfigSkeleton::ItemColor( currentGroup(), QLatin1String( "FunctionButtonsColor" ), mFunctionButtonsColor, defaultButtonColor );
00046 addItem( itemFunctionButtonsColor, QLatin1String( "FunctionButtonsColor" ) );
00047 KConfigSkeleton::ItemColor *itemStatButtonsColor;
00048 itemStatButtonsColor = new KConfigSkeleton::ItemColor( currentGroup(), QLatin1String( "StatButtonsColor" ), mStatButtonsColor, defaultButtonColor );
00049 addItem( itemStatButtonsColor, QLatin1String( "StatButtonsColor" ) );
00050 KConfigSkeleton::ItemColor *itemHexButtonsColor;
00051 itemHexButtonsColor = new KConfigSkeleton::ItemColor( currentGroup(), QLatin1String( "HexButtonsColor" ), mHexButtonsColor, defaultButtonColor );
00052 addItem( itemHexButtonsColor, QLatin1String( "HexButtonsColor" ) );
00053 KConfigSkeleton::ItemColor *itemMemoryButtonsColor;
00054 itemMemoryButtonsColor = new KConfigSkeleton::ItemColor( currentGroup(), QLatin1String( "MemoryButtonsColor" ), mMemoryButtonsColor, defaultButtonColor );
00055 addItem( itemMemoryButtonsColor, QLatin1String( "MemoryButtonsColor" ) );
00056 KConfigSkeleton::ItemColor *itemOperationButtonsColor;
00057 itemOperationButtonsColor = new KConfigSkeleton::ItemColor( currentGroup(), QLatin1String( "OperationButtonsColor" ), mOperationButtonsColor, defaultButtonColor );
00058 addItem( itemOperationButtonsColor, QLatin1String( "OperationButtonsColor" ) );
00059
00060 setCurrentGroup( QLatin1String( "Font" ) );
00061
00062 KConfigSkeleton::ItemFont *itemFont;
00063 itemFont = new KConfigSkeleton::ItemFont( currentGroup(), QLatin1String( "Font" ), mFont, QFont(KGlobalSettings::generalFont().family(), 14, QFont::Bold) );
00064 addItem( itemFont, QLatin1String( "Font" ) );
00065
00066 setCurrentGroup( QLatin1String( "Precision" ) );
00067
00068 KConfigSkeleton::ItemUInt *itemPrecision;
00069 itemPrecision = new KConfigSkeleton::ItemUInt( currentGroup(), QLatin1String( "precision" ), mPrecision, 12 );
00070 itemPrecision->setMinValue(8);
00071 itemPrecision->setMaxValue(200);
00072 addItem( itemPrecision, QLatin1String( "Precision" ) );
00073 KConfigSkeleton::ItemUInt *itemFixedPrecision;
00074 itemFixedPrecision = new KConfigSkeleton::ItemUInt( currentGroup(), QLatin1String( "fixedprecision" ), mFixedPrecision, 2 );
00075 addItem( itemFixedPrecision, QLatin1String( "FixedPrecision" ) );
00076 KConfigSkeleton::ItemBool *itemFixed;
00077 itemFixed = new KConfigSkeleton::ItemBool( currentGroup(), QLatin1String( "fixed" ), mFixed, false );
00078 addItem( itemFixed, QLatin1String( "Fixed" ) );
00079
00080 setCurrentGroup( QLatin1String( "General" ) );
00081
00082 KConfigSkeleton::ItemBool *itemBeep;
00083 itemBeep = new KConfigSkeleton::ItemBool( currentGroup(), QLatin1String( "beep" ), mBeep, true );
00084 addItem( itemBeep, QLatin1String( "Beep" ) );
00085 KConfigSkeleton::ItemBool *itemCaptionResult;
00086 itemCaptionResult = new KConfigSkeleton::ItemBool( currentGroup(), QLatin1String( "captionresult" ), mCaptionResult, false );
00087 addItem( itemCaptionResult, QLatin1String( "CaptionResult" ) );
00088 KConfigSkeleton::ItemBool *itemGroupDigits;
00089 itemGroupDigits = new KConfigSkeleton::ItemBool( currentGroup(), QLatin1String( "groupdigits" ), mGroupDigits, true );
00090 addItem( itemGroupDigits, QLatin1String( "GroupDigits" ) );
00091 KConfigSkeleton::ItemBool *itemShowStat;
00092 itemShowStat = new KConfigSkeleton::ItemBool( currentGroup(), QLatin1String( "ShowStat" ), mShowStat, false );
00093 addItem( itemShowStat, QLatin1String( "ShowStat" ) );
00094 KConfigSkeleton::ItemBool *itemShowScientific;
00095 itemShowScientific = new KConfigSkeleton::ItemBool( currentGroup(), QLatin1String( "ShowScientific" ), mShowScientific, false );
00096 addItem( itemShowScientific, QLatin1String( "ShowScientific" ) );
00097 KConfigSkeleton::ItemBool *itemShowLogic;
00098 itemShowLogic = new KConfigSkeleton::ItemBool( currentGroup(), QLatin1String( "ShowLogic" ), mShowLogic, false );
00099 addItem( itemShowLogic, QLatin1String( "ShowLogic" ) );
00100 KConfigSkeleton::ItemBool *itemShowConstants;
00101 itemShowConstants = new KConfigSkeleton::ItemBool( currentGroup(), QLatin1String( "ShowConstants" ), mShowConstants, false );
00102 addItem( itemShowConstants, QLatin1String( "ShowConstants" ) );
00103
00104 setCurrentGroup( QLatin1String( "UserConstants" ) );
00105
00106 KConfigSkeleton::ItemString *itemNameConstant[6];
00107 itemNameConstant[0] = new KConfigSkeleton::ItemString( currentGroup(), QLatin1String( "nameConstant0" ), mNameConstant[0], QLatin1String( "C1" ) );
00108 addItem( itemNameConstant[0], QLatin1String( "nameConstant0" ) );
00109 itemNameConstant[1] = new KConfigSkeleton::ItemString( currentGroup(), QLatin1String( "nameConstant1" ), mNameConstant[1], QLatin1String( "C2" ) );
00110 addItem( itemNameConstant[1], QLatin1String( "nameConstant1" ) );
00111 itemNameConstant[2] = new KConfigSkeleton::ItemString( currentGroup(), QLatin1String( "nameConstant2" ), mNameConstant[2], QLatin1String( "C3" ) );
00112 addItem( itemNameConstant[2], QLatin1String( "nameConstant2" ) );
00113 itemNameConstant[3] = new KConfigSkeleton::ItemString( currentGroup(), QLatin1String( "nameConstant3" ), mNameConstant[3], QLatin1String( "C4" ) );
00114 addItem( itemNameConstant[3], QLatin1String( "nameConstant3" ) );
00115 itemNameConstant[4] = new KConfigSkeleton::ItemString( currentGroup(), QLatin1String( "nameConstant4" ), mNameConstant[4], QLatin1String( "C5" ) );
00116 addItem( itemNameConstant[4], QLatin1String( "nameConstant4" ) );
00117 itemNameConstant[5] = new KConfigSkeleton::ItemString( currentGroup(), QLatin1String( "nameConstant5" ), mNameConstant[5], QLatin1String( "C6" ) );
00118 addItem( itemNameConstant[5], QLatin1String( "nameConstant5" ) );
00119 KConfigSkeleton::ItemString *itemValueConstant[6];
00120 itemValueConstant[0] = new KConfigSkeleton::ItemString( currentGroup(), QLatin1String( "valueConstant0" ), mValueConstant[0], QLatin1String( "0" ) );
00121 addItem( itemValueConstant[0], QLatin1String( "valueConstant0" ) );
00122 itemValueConstant[1] = new KConfigSkeleton::ItemString( currentGroup(), QLatin1String( "valueConstant1" ), mValueConstant[1], QLatin1String( "0" ) );
00123 addItem( itemValueConstant[1], QLatin1String( "valueConstant1" ) );
00124 itemValueConstant[2] = new KConfigSkeleton::ItemString( currentGroup(), QLatin1String( "valueConstant2" ), mValueConstant[2], QLatin1String( "0" ) );
00125 addItem( itemValueConstant[2], QLatin1String( "valueConstant2" ) );
00126 itemValueConstant[3] = new KConfigSkeleton::ItemString( currentGroup(), QLatin1String( "valueConstant3" ), mValueConstant[3], QLatin1String( "0" ) );
00127 addItem( itemValueConstant[3], QLatin1String( "valueConstant3" ) );
00128 itemValueConstant[4] = new KConfigSkeleton::ItemString( currentGroup(), QLatin1String( "valueConstant4" ), mValueConstant[4], QLatin1String( "0" ) );
00129 addItem( itemValueConstant[4], QLatin1String( "valueConstant4" ) );
00130 itemValueConstant[5] = new KConfigSkeleton::ItemString( currentGroup(), QLatin1String( "valueConstant5" ), mValueConstant[5], QLatin1String( "0" ) );
00131 addItem( itemValueConstant[5], QLatin1String( "valueConstant5" ) );
00132 }
00133
00134 KCalcSettings::~KCalcSettings()
00135 {
00136 }
00137