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

List:       kde-commits
Subject:    KDE/kdeutils/kcalc
From:       Evan Teran <eteran () alum ! rit ! edu>
Date:       2010-09-04 22:44:23
Message-ID: 20100904224423.1B84AAC884 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1171715 by teran:

change updateDisplay to use QFlags, this is a lot more verbose than "f(false, true)" and the like
also added some const's where appropriate and other related tweaks


 M  +59 -64    kcalc.cpp  
 M  +14 -2     kcalc.h  


--- trunk/KDE/kdeutils/kcalc/kcalc.cpp #1171714:1171715
@@ -77,7 +77,7 @@
         memory_num_(0.0), constants_(0), core()
 {
     /* central widget to contain all the elements */
-    QWidget *central = new QWidget(this);
+    QWidget *const central = new QWidget(this);
     central->setLayoutDirection(Qt::LeftToRight);
     setCentralWidget(central);
     KAcceleratorManager::setNoAccel(central);
@@ -120,7 +120,7 @@
 
     // additional menu setup
 
-    KCalcConstMenu *tmp_menu = new KCalcConstMenu(i18n("&Constants"), this);
+    KCalcConstMenu *const tmp_menu = new KCalcConstMenu(i18n("&Constants"), this);
     menuBar()->insertMenu((menuBar()->actions)()[2], tmp_menu);
     connect(tmp_menu, SIGNAL(triggeredConstant(const science_constant &)),
             this, SLOT(slotConstantToDisplay(const science_constant &)));
@@ -141,7 +141,7 @@
 
     setFixedSize(minimumSize());
 
-    updateDisplay(true);
+    updateDisplay(UPDATE_FROM_CORE);
 
     // misc settings
     KCalcSettings::EnumCalculatorMode::type calculatorMode = KCalcSettings::calculatorMode();
@@ -733,8 +733,7 @@
 
 void KCalculator::updateGeometry()
 {
-    KCalcButton *button;
-    QSize em = pbAND->fontMetrics().size(0, "M");
+    const QSize em = pbAND->fontMetrics().size(0, "M");
     int margin =
         QApplication::style()->pixelMetric(QStyle::PM_ButtonMargin, 0, 0);
     margin = qMax(qMin(margin / 2, 3), 3);
@@ -742,7 +741,7 @@
     // left pad
 
     foreach(QObject *obj, leftPad->children()) {
-        button = qobject_cast<KCalcButton*>(obj);
+        KCalcButton *const button = qobject_cast<KCalcButton*>(obj);
         if (button) {
             button->setFixedWidth(em.width()*4 + margin*2);
             button->installEventFilter(this);
@@ -752,7 +751,7 @@
     // right pad
 
     foreach(QObject *obj, rightPad->children()) {
-        button = qobject_cast<KCalcButton*>(obj);
+        KCalcButton *const button = qobject_cast<KCalcButton*>(obj);
         if (button) {
             button->setFixedWidth(em.width()*3 + margin*2);
             button->installEventFilter(this);
@@ -762,7 +761,7 @@
     // numeric pad
 
     foreach(QObject *obj, numericPad->children()) {
-        button = qobject_cast<KCalcButton*>(obj);
+        KCalcButton *const button = qobject_cast<KCalcButton*>(obj);
         if (button) {
             if (button != pb0) {   // let pb0 expand freely
                 button->setFixedWidth(em.width()*3 + margin*2);
@@ -776,7 +775,7 @@
 {
     calc_display->setAmount(const_chosen.value);
 
-    updateDisplay(false);
+    updateDisplay(0);
 }
 
 void KCalculator::slotBaseSelected(int base)
@@ -916,7 +915,7 @@
     calc_display->sendEvent(KCalcDisplay::EventReset);
 
     calc_display->setAmount(memory_num_);
-    updateDisplay(false);
+    updateDisplay(0);
 }
 
 void KCalculator::slotMemStoreclicked()
@@ -970,7 +969,7 @@
             }
     }
 
-    updateDisplay(true);
+    updateDisplay(UPDATE_FROM_CORE);
 }
 
 void KCalculator::slotPlusMinusclicked()
@@ -979,7 +978,7 @@
     // need the core to do this.
     if (!calc_display->sendEvent(KCalcDisplay::EventChangeSign)) {
         core.InvertSign(calc_display->getAmount());
-        updateDisplay(true);
+        updateDisplay(UPDATE_FROM_CORE);
     }
 }
 
@@ -1033,7 +1032,7 @@
             }
     }
 
-    updateDisplay(true);
+    updateDisplay(UPDATE_FROM_CORE);
 }
 
 void KCalculator::slotReciclicked()
@@ -1043,14 +1042,14 @@
                             CalcEngine::FUNC_BINOM);
     }  else {
         core.Reciprocal(calc_display->getAmount());
-        updateDisplay(true);
+        updateDisplay(UPDATE_FROM_CORE);
         return;
     }
     // temp. work-around
     KNumber tmp_num = calc_display->getAmount();
     calc_display->sendEvent(KCalcDisplay::EventReset);
     calc_display->setAmount(tmp_num);
-    updateDisplay(false);
+    updateDisplay(0);
 
 }
 
@@ -1090,7 +1089,7 @@
             }
     }
 
-    updateDisplay(true);
+    updateDisplay(UPDATE_FROM_CORE);
 }
 
 void KCalculator::slotFactorialclicked()
@@ -1101,7 +1100,7 @@
     QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
     core.Factorial(calc_display->getAmount());
     QApplication::restoreOverrideCursor();
-    updateDisplay(true);
+    updateDisplay(UPDATE_FROM_CORE);
 }
 
 void KCalculator::slotLogclicked()
@@ -1111,7 +1110,7 @@
     else
         core.Exp10(calc_display->getAmount());
 
-    updateDisplay(true);
+    updateDisplay(UPDATE_FROM_CORE);
 }
 
 
@@ -1122,7 +1121,7 @@
     else
         core.SquareRoot(calc_display->getAmount());
 
-    updateDisplay(true);
+    updateDisplay(UPDATE_FROM_CORE);
 }
 
 
@@ -1133,7 +1132,7 @@
     else
         core.CubeRoot(calc_display->getAmount());
 
-    updateDisplay(true);
+    updateDisplay(UPDATE_FROM_CORE);
 }
 
 
@@ -1144,7 +1143,7 @@
     else
         core.Exp(calc_display->getAmount());
 
-    updateDisplay(true);
+    updateDisplay(UPDATE_FROM_CORE);
 }
 
 void KCalculator::slotPowerclicked()
@@ -1161,7 +1160,7 @@
     KNumber tmp_num = calc_display->getAmount();
     calc_display->sendEvent(KCalcDisplay::EventReset);
     calc_display->setAmount(tmp_num);
-    updateDisplay(false);
+    updateDisplay(0);
 }
 
 void KCalculator::slotMemClearclicked()
@@ -1182,7 +1181,7 @@
     core.Reset();
     calc_display->sendEvent(KCalcDisplay::EventReset);
 
-    updateDisplay(true);
+    updateDisplay(UPDATE_FROM_CORE);
 }
 
 void KCalculator::slotParenOpenclicked()
@@ -1190,14 +1189,14 @@
     core.ParenOpen(calc_display->getAmount());
 
     // What behavior, if e.g.: "12(6*6)"??
-    //updateDisplay(true);
+    //updateDisplay(UPDATE_FROM_CORE);
 }
 
 void KCalculator::slotParenCloseclicked()
 {
     core.ParenClose(calc_display->getAmount());
 
-    updateDisplay(true);
+    updateDisplay(UPDATE_FROM_CORE);
 }
 
 void KCalculator::slotANDclicked()
@@ -1205,7 +1204,7 @@
     core.enterOperation(calc_display->getAmount(),
                         CalcEngine::FUNC_AND);
 
-    updateDisplay(true);
+    updateDisplay(UPDATE_FROM_CORE);
 }
 
 void KCalculator::slotMultiplicationclicked()
@@ -1213,7 +1212,7 @@
     core.enterOperation(calc_display->getAmount(),
                         CalcEngine::FUNC_MULTIPLY);
 
-    updateDisplay(true);
+    updateDisplay(UPDATE_FROM_CORE);
 }
 
 void KCalculator::slotDivisionclicked()
@@ -1221,7 +1220,7 @@
     core.enterOperation(calc_display->getAmount(),
                         CalcEngine::FUNC_DIVIDE);
 
-    updateDisplay(true);
+    updateDisplay(UPDATE_FROM_CORE);
 }
 
 void KCalculator::slotORclicked()
@@ -1229,7 +1228,7 @@
     core.enterOperation(calc_display->getAmount(),
                         CalcEngine::FUNC_OR);
 
-    updateDisplay(true);
+    updateDisplay(UPDATE_FROM_CORE);
 }
 
 void KCalculator::slotXORclicked()
@@ -1237,7 +1236,7 @@
     core.enterOperation(calc_display->getAmount(),
                         CalcEngine::FUNC_XOR);
 
-    updateDisplay(true);
+    updateDisplay(UPDATE_FROM_CORE);
 }
 
 void KCalculator::slotPlusclicked()
@@ -1245,7 +1244,7 @@
     core.enterOperation(calc_display->getAmount(),
                         CalcEngine::FUNC_ADD);
 
-    updateDisplay(true);
+    updateDisplay(UPDATE_FROM_CORE);
 }
 
 void KCalculator::slotMinusclicked()
@@ -1253,7 +1252,7 @@
     core.enterOperation(calc_display->getAmount(),
                         CalcEngine::FUNC_SUBTRACT);
 
-    updateDisplay(true);
+    updateDisplay(UPDATE_FROM_CORE);
 }
 
 void KCalculator::slotLeftShiftclicked()
@@ -1261,7 +1260,7 @@
     core.enterOperation(calc_display->getAmount(),
                         CalcEngine::FUNC_LSH);
 
-    updateDisplay(true);
+    updateDisplay(UPDATE_FROM_CORE);
 }
 
 void KCalculator::slotRightShiftclicked()
@@ -1269,7 +1268,7 @@
     core.enterOperation(calc_display->getAmount(),
                         CalcEngine::FUNC_RSH);
 
-    updateDisplay(true);
+    updateDisplay(UPDATE_FROM_CORE);
 }
 
 void KCalculator::slotPeriodclicked()
@@ -1282,7 +1281,7 @@
     core.enterOperation(calc_display->getAmount(),
                         CalcEngine::FUNC_EQUAL);
 
-    updateDisplay(true, true);
+    updateDisplay(UPDATE_FROM_CORE | UPDATE_STORE_RESULT);
 }
 
 void KCalculator::slotEqualclicked()
@@ -1295,14 +1294,14 @@
     core.enterOperation(calc_display->getAmount(),
                         CalcEngine::FUNC_PERCENT);
 
-    updateDisplay(true);
+    updateDisplay(UPDATE_FROM_CORE);
 }
 
 void KCalculator::slotNegateclicked()
 {
     core.Complement(calc_display->getAmount());
 
-    updateDisplay(true);
+    updateDisplay(UPDATE_FROM_CORE);
 }
 
 void KCalculator::slotModclicked()
@@ -1314,7 +1313,7 @@
         core.enterOperation(calc_display->getAmount(),
                             CalcEngine::FUNC_MOD);
 
-    updateDisplay(true);
+    updateDisplay(UPDATE_FROM_CORE);
 }
 
 void KCalculator::slotStatNumclicked()
@@ -1326,7 +1325,7 @@
         core.StatSum(0);
     }
 
-    updateDisplay(true);
+    updateDisplay(UPDATE_FROM_CORE);
 }
 
 void KCalculator::slotStatMeanclicked()
@@ -1338,7 +1337,7 @@
         core.StatSumSquares(0);
     }
 
-    updateDisplay(true);
+    updateDisplay(UPDATE_FROM_CORE);
 }
 
 void KCalculator::slotStatStdDevclicked()
@@ -1352,7 +1351,7 @@
         core.StatStdSample(0);
     }
 
-    updateDisplay(true);
+    updateDisplay(UPDATE_FROM_CORE);
 }
 
 void KCalculator::slotStatMedianclicked()
@@ -1366,7 +1365,7 @@
         pbShift->setChecked(false);
     }
     // it seems two different modes should be implemented, but...?
-    updateDisplay(true);
+    updateDisplay(UPDATE_FROM_CORE);
 }
 
 void KCalculator::slotStatDataInputclicked()
@@ -1379,7 +1378,7 @@
         statusBar()->showMessage(i18n("Last stat item erased"), 3000);
     }
 
-    updateDisplay(true);
+    updateDisplay(UPDATE_FROM_CORE);
 }
 
 void KCalculator::slotStatClearDataclicked()
@@ -1389,7 +1388,7 @@
         statusBar()->showMessage(i18n("Stat mem cleared"), 3000);
     } else {
         pbShift->setChecked(false);
-        updateDisplay(false);
+        updateDisplay(0);
     }
 }
 
@@ -1411,7 +1410,7 @@
         calc_display->setAmount(calc_display->getAmount());
     }
 
-    updateDisplay(false);
+    updateDisplay(0);
 }
 
 void KCalculator::showSettings()
@@ -1694,9 +1693,8 @@
 // constant C1 to C6 is used.
 void KCalculator::changeButtonNames()
 {
-    KCalcConstButton *constbtn;
     foreach(QAbstractButton *btn, const_buttons_) {
-        constbtn = qobject_cast<KCalcConstButton*>(btn);
+        KCalcConstButton *const constbtn = qobject_cast<KCalcConstButton*>(btn);
         if (constbtn) constbtn->setLabelAndTooltip();
     }
 }
@@ -1705,7 +1703,7 @@
 {
     // note: sets display to *unsigned* value
     calc_display->setAmount(value);
-    updateDisplay(false);
+    updateDisplay(0);
 }
 
 void KCalculator::slotUpdateBitset(const KNumber &nr)
@@ -1734,11 +1732,10 @@
     updateGeometry();
 }
 
-void KCalculator::updateDisplay(bool get_amount_from_core,
-                                bool store_result_in_history)
+void KCalculator::updateDisplay(UpdateFlags flags)
 {
-    if (get_amount_from_core) {
-        calc_display->updateFromCore(core, store_result_in_history);
+    if(flags & UPDATE_FROM_CORE) {
+        calc_display->updateFromCore(core, (flags & UPDATE_STORE_RESULT) != 0);
     } else {
         calc_display->update();
     }
@@ -1797,21 +1794,20 @@
 
 void KCalculator::setFonts()
 {
-    KCalcButton *button;
     foreach(QObject *obj, leftPad->children()) {
-        button = qobject_cast<KCalcButton*>(obj);
+        KCalcButton *const button = qobject_cast<KCalcButton*>(obj);
         if (button) {
             button->setFont(KCalcSettings::buttonFont());
         }
     }
     foreach(QObject *obj, numericPad->children()) {
-        button = qobject_cast<KCalcButton*>(obj);
+        KCalcButton *const button = qobject_cast<KCalcButton*>(obj);
         if (button) {
             button->setFont(KCalcSettings::buttonFont());
         }
     }
     foreach(QObject *obj, rightPad->children()) {
-        button = qobject_cast<KCalcButton*>(obj);
+        KCalcButton *const button = qobject_cast<KCalcButton*>(obj);
         if (button) {
             button->setFont(KCalcSettings::buttonFont());
         }
@@ -1822,20 +1818,18 @@
 void KCalculator::setPrecision()
 {
     KNumber:: setDefaultFloatPrecision(KCalcSettings::precision());
-    updateDisplay(false);
+    updateDisplay(0);
 }
 
 void KCalculator::setAngle()
 {
-    QAbstractButton *btn;
-    btn = angle_choose_group_->button(KCalcSettings::angleMode());
+    QAbstractButton *const btn = angle_choose_group_->button(KCalcSettings::angleMode());
     if (btn) btn->animateClick(0);
 }
 
 void KCalculator::setBase()
 {
-    QAbstractButton *btn;
-    btn = base_choose_group_->button(KCalcSettings::baseMode());
+    QAbstractButton *const btn = base_choose_group_->button(KCalcSettings::baseMode());
     if (btn) btn->animateClick(0);
 }
 
@@ -1843,7 +1837,7 @@
 {
     switch (e->type()) {
     case QEvent::DragEnter: {
-        QDragEnterEvent *ev = (QDragEnterEvent *)e;
+        QDragEnterEvent *const ev = reinterpret_cast<QDragEnterEvent *>(e);
         ev->setAccepted(KColorMimeData::canDecode(ev->mimeData()));
         return true;
     }
@@ -1851,11 +1845,12 @@
         return true;
     }
     case QEvent::Drop: {
-        KCalcButton* calcButton = qobject_cast<KCalcButton *>(o);
+        KCalcButton *const calcButton = qobject_cast<KCalcButton *>(o);
         if (!calcButton)
             return false;
 
-        QDropEvent *ev = (QDropEvent *)e;
+        QDropEvent *const ev = reinterpret_cast<QDropEvent *>(e);
+
         QColor c = KColorMimeData::fromMimeData(ev->mimeData());
         if (c.isValid()) {
             QString cn = c.name();
--- trunk/KDE/kdeutils/kcalc/kcalc.h #1171714:1171715
@@ -60,6 +60,8 @@
 #include "ui_constants.h"
 #include "ui_colors.h"
 
+#include <QFlags>
+
 #include <kxmlguiwindow.h>
 
 class  General: public QWidget, public Ui::General
@@ -108,6 +110,14 @@
     void switchMode(ButtonModeFlags, bool);
     void switchShowAccels(bool);
 
+public:
+    enum UpdateFlag {
+        UPDATE_FROM_CORE    = 1,
+        UPDATE_STORE_RESULT = 2
+    };
+    
+    Q_DECLARE_FLAGS(UpdateFlags, UpdateFlag)
+
 private:
     virtual bool eventFilter(QObject *o, QEvent *e);
     void updateGeometry();
@@ -120,8 +130,8 @@
     void setAngle();
     void setBase();
 
-    void updateDisplay(bool get_amount_from_core = false,
-                       bool store_result_in_history = false);
+    void updateDisplay(UpdateFlags flags);/*bool get_amount_from_core = false,
+                       bool store_result_in_history = false);*/
     // button sets
     void showStatButtons(bool toggled);
     void showScienceButtons(bool toggled);
@@ -255,4 +265,6 @@
     CalcEngine core;
 };
 
+Q_DECLARE_OPERATORS_FOR_FLAGS(KCalculator::UpdateFlags)
+
 #endif  // KCALC_H_
[prev in list] [next in list] [prev in thread] [next in thread] 

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