[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    branches/KDE/4.2/kdeutils/kcalc
From:       David Johnson <david () usermode ! org>
Date:       2009-01-31 21:09:45
Message-ID: 1233436185.646657.520.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 919387 by brandybuck:

backport fix for 181875


 M  +23 -9     kcalc.cpp  
 M  +6 -5      kcalc.h  
 M  +8 -0      kcalc.kcfg  
 M  +1 -3      kcalc_settings.kcfgc  


--- branches/KDE/4.2/kdeutils/kcalc/kcalc.cpp #919386:919387
@@ -134,8 +134,6 @@
 	calc_display->changeSettings();
 	setPrecision();
 
-	resetBase(); // switch to decimal
-
 	updateGeometry();
 
 	setFixedSize(minimumSize());
@@ -159,6 +157,9 @@
 	actionBitsetshow->setChecked(KCalcSettings::showBitset());
 	slotBitsetshow(KCalcSettings::showBitset());
 
+        setAngle();
+        setBase();
+
 	// connections
 
 	connect(KGlobalSettings::self(), SIGNAL(kdisplayPaletteChanged()),
@@ -837,6 +838,7 @@
 			btn->setEnabled(true);
 		}
 	}
+        KCalcSettings::setBaseMode(base);
 }
 
 void KCalculator::keyPressEvent(QKeyEvent *e)
@@ -880,6 +882,7 @@
 	default: // we shouldn't ever end up here
 		_angle_mode = RadMode;
 	}
+        KCalcSettings::setAngleMode(_angle_mode);
 }
 
 void KCalculator::slotEEclicked(void)
@@ -1608,10 +1611,8 @@
 		foreach (QAbstractButton* btn, AngleChooseGroup->buttons()) {
 			btn->show();
 		}
-		statusBar()->changeItem(" DEG ", AngleField);
 		statusBar()->setItemFixed(AngleField, -1);
-		calc_display->setStatusText(AngleField, "Deg");
-		degRadio->setChecked(true);
+		setAngle();
 	}
 	else
 	{
@@ -1640,13 +1641,12 @@
 		foreach (QAbstractButton* btn, logicButtons) {
 			btn->show();
 		}
-		statusBar()->changeItem(" HEX ", BaseField);
 		statusBar()->setItemFixed(BaseField, -1);
-		calc_display->setStatusText(BaseField, "Hex");
+                setBase();
+
 		foreach (QAbstractButton *btn, BaseChooseGroup->buttons()) {
 			btn->show();
 		}
-		resetBase();
 		for (int i=10; i<16; i++)
 			(NumButtonGroup->button(i))->show();
 	}
@@ -1661,7 +1661,7 @@
 			btn->hide();
 		}
 		// Hide Hex-Buttons, but first switch back to decimal
-		resetBase();
+		decRadio->animateClick(0);
 		foreach (QAbstractButton *btn, BaseChooseGroup->buttons()) {
 			btn->hide();
 		}
@@ -1854,6 +1854,20 @@
 	updateDisplay(false);
 }
 
+void KCalculator::setAngle()
+{
+    QAbstractButton *btn;
+    btn = AngleChooseGroup->button(KCalcSettings::angleMode());
+    if (btn) btn->animateClick(0);
+}
+
+void KCalculator::setBase()
+{
+    QAbstractButton *btn;
+    btn = BaseChooseGroup->button(KCalcSettings::baseMode());
+    if (btn) btn->animateClick(0);
+}
+
 bool KCalculator::eventFilter(QObject *o, QEvent *e)
 {
 	switch(e->type())
--- branches/KDE/4.2/kdeutils/kcalc/kcalc.h #919386:919387
@@ -117,7 +117,8 @@
     void keyPressEvent(QKeyEvent *e);
     void keyReleaseEvent(QKeyEvent *e);
     void setPrecision();
-    void resetBase(void) { decRadio->animateClick(); }
+    void setAngle();
+    void setBase();
 
     void updateDisplay(bool get_amount_from_core = false,
                        bool store_result_in_history = false);
@@ -207,10 +208,10 @@
         GradMode
     };
     enum BaseMode {
-        HexMode = 0,
-        DecMode,
-        OctMode,
-        BinMode
+        BinMode = 2,
+        OctMode = 8,
+        DecMode = 10,
+        HexMode = 16
     };
 
 private:
--- branches/KDE/4.2/kdeutils/kcalc/kcalc.kcfg #919386:919387
@@ -112,6 +112,14 @@
       <label>Whether to show constant buttons.</label>
       <default>false</default>
     </entry>
+    <entry name="AngleMode" type="UInt">
+      <label>Degrees, radians or grads</label>
+      <default>0</default>
+    </entry>
+    <entry name="BaseMode" type="UInt">
+      <label>Numeric base</label>
+      <default>10</default>
+    </entry>
   </group>
   <group name="UserConstants">
 	<entry name="nameConstant$(ConstIndex)" type="String" key="nameConstant$(ConstIndex)">
--- branches/KDE/4.2/kdeutils/kcalc/kcalc_settings.kcfgc #919386:919387
@@ -2,6 +2,4 @@
 File=kcalc.kcfg
 ClassName=KCalcSettings
 Singleton=true
-Mutators=ShowBitset,ShowStat,ShowScientific,ShowLogic,ShowConstants,nameConstant,valueConstant
-# Inherits=KConfigSkeleton
-# MemberVariables=public
+Mutators=true
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic