Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package deepin-calculator for 
openSUSE:Factory checked in at 2022-04-22 21:53:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/deepin-calculator (Old)
 and      /work/SRC/openSUSE:Factory/.deepin-calculator.new.1538 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "deepin-calculator"

Fri Apr 22 21:53:39 2022 rev:5 rq:971772 version:5.7.20

Changes:
--------
--- /work/SRC/openSUSE:Factory/deepin-calculator/deepin-calculator.changes      
2022-01-31 22:56:52.337763213 +0100
+++ 
/work/SRC/openSUSE:Factory/.deepin-calculator.new.1538/deepin-calculator.changes
    2022-04-22 21:54:26.926819295 +0200
@@ -1,0 +2,8 @@
+Thu Apr 21 06:24:23 UTC 2022 - Hillwood Yang <hillw...@opensuse.org>
+
+- Update version to 5.10.20
+  * Update documents
+  * Fix bugs
+  * Add test-prj-running.sh 
+
+-------------------------------------------------------------------

Old:
----
  deepin-calculator-5.7.12.tar.gz

New:
----
  deepin-calculator-5.7.20.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ deepin-calculator.spec ++++++
--- /var/tmp/diff_new_pack.41kRmO/_old  2022-04-22 21:54:27.422819861 +0200
+++ /var/tmp/diff_new_pack.41kRmO/_new  2022-04-22 21:54:27.426819865 +0200
@@ -16,7 +16,7 @@
 #
 
 Name:           deepin-calculator
-Version:        5.7.12
+Version:        5.7.20
 Release:        0
 Summary:        The Deepin Calculator Application
 License:        GPL-3.0-or-later

++++++ deepin-calculator-5.7.12.tar.gz -> deepin-calculator-5.7.20.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/deepin-calculator-5.7.12/rpm/deepin-calculator.spec 
new/deepin-calculator-5.7.20/rpm/deepin-calculator.spec
--- old/deepin-calculator-5.7.12/rpm/deepin-calculator.spec     1970-01-01 
01:00:00.000000000 +0100
+++ new/deepin-calculator-5.7.20/rpm/deepin-calculator.spec     2022-03-28 
05:28:14.000000000 +0200
@@ -0,0 +1,84 @@
+%define pkgrelease  1
+%if 0%{?openeuler}
+%define specrelease %{pkgrelease}
+%else
+## allow specrelease to have configurable %%{?dist} tag in other distribution
+%define specrelease %{pkgrelease}%{?dist}
+%endif
+
+Name:           deepin-calculator
+Version:        5.7.1.1
+Release:        %{specrelease}
+Summary:        An easy to use calculator for ordinary users
+License:        GPLv3+
+URL:            https://github.com/linuxdeepin/%{name}
+Source0:        %{url}/archive/%{version}/%{name}-%{version}.tar.gz
+
+BuildRequires: gcc-c++
+BuildRequires: cmake3
+BuildRequires: qt5-linguist
+BuildRequires: qt5-devel
+
+BuildRequires: pkgconfig(dtkcore)
+BuildRequires: pkgconfig(dtkwidget)
+BuildRequires: pkgconfig(dtkgui)
+BuildRequires: pkgconfig(dframeworkdbus)
+
+
+# BuildRequires: pkgconfig(Qt5Widgets)
+# BuildRequires: pkgconfig(Qt5Core)
+# BuildRequires: pkgconfig(Qt5Gui)
+# BuildRequires: pkgconfig(Qt5DBus)
+# BuildRequires: pkgconfig(Qt5Xml)
+# BuildRequires: pkgconfig(Qt5Svg)
+BuildRequires: gtest-devel
+BuildRequires: gmock-devel
+
+Requires:      qt5-qtbase
+Requires:      qt5-qtbase-gui
+Requires:      qt5-qtsvg
+
+Requires:      dde-qt-dbus-factory
+Requires:      dtkcore
+Requires:      dtkgui
+Requires:      dtkwidget
+
+%description
+%{summary}.
+
+%prep
+%autosetup
+
+%build
+# help find (and prefer) qt5 utilities, e.g. qmake, lrelease
+export PATH=%{_qt5_bindir}:$PATH
+# cmake_minimum_required version is too high
+sed -i "s|^cmake_minimum_required.*|cmake_minimum_required(VERSION 3.0)|" 
$(find . -name "CMakeLists.txt")
+mkdir build
+pushd build
+%cmake ../ -DCMAKE_BUILD_TYPE=Release \-DAPP_VERSION=%{version} 
-DVERSION=%{version}
+
+%make_build
+popd
+
+%install
+# pushd build
+# %make_install
+# popd
+%make_install -C build INSTALL_ROOT="%buildroot"
+
+%files
+%doc README.md
+%license LICENSE
+%{_bindir}/%{name}
+%{_datadir}/%{name}/translations/*.qm
+%{_datadir}/icons/hicolor/scalable/apps/%{name}.svg
+%{_datadir}/applications/%{name}.desktop
+%{_datadir}/deepin-manual/manual-assets/application/deepin-calculator/calculator/*
+
+%changelog
+* Mon Apr 19 2021 zhangdingwen <zhangding...@uniontech.com> - 5.7.1.1-1
+- init spec for euler
+
+* Thu Aug 13 2020 guoqinglan <guoqing...@uniontech.com> - 5.5.27-1
+- Update to 5.5.27
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/deepin-calculator-5.7.12/src/assets/deepin-calculator/calculator/en_US/calculator.md
 
new/deepin-calculator-5.7.20/src/assets/deepin-calculator/calculator/en_US/calculator.md
--- 
old/deepin-calculator-5.7.12/src/assets/deepin-calculator/calculator/en_US/calculator.md
    2021-10-12 07:44:53.000000000 +0200
+++ 
new/deepin-calculator-5.7.20/src/assets/deepin-calculator/calculator/en_US/calculator.md
    2022-03-28 05:28:14.000000000 +0200
@@ -4,7 +4,7 @@
 
 Calculator is a simple and easy-to-use desktop calculator. It supports 
standard mode, scientific mode and programmer mode, with keyboard input 
perfectly matched, as well as symbolic fault-tolerant computing and calculation 
result linkage.
 
-## Operations
+## Modes
 
 Click ![icon_menu](../common/icon_menu.svg) > **Mode** to:
 
@@ -74,6 +74,11 @@
 | A~F       | Letters | They are only activated in hexadecimal.                
      |
 | <<, >>      | Movement   operators | Click them to move left or right. |
 
+## Functions
+
+### Use thousands / ten-thousands separator 
+
+Calculator supports thousands / ten-thousands separator. When the expression 
is in thousands, you can right-click the current expression area and select 
**Use ten-thousands separator**. When the expression is ten thousands, 
right-click the current expression area and select **Use thousands separator**.
 
 
 
@@ -105,7 +110,7 @@
 
 When the calculation result is more than 16 digits / 32 digits respectively, 
it will be displayed in scientific notation, that is, taking the first 16 
digits / 32 digits multiplied by 10 to the power of plus or minus n.
 
-  - When the calculation result is positive and greater than 16 digits / 32 
digits, it is displayed in the following format: number + numbers of 15 digits 
/ 31 digits after the decimal point+E+number.
+  - When the calculation result is an integer and greater than 16 digits / 32 
digits, it is displayed in the following format: number + numbers of 15 digits 
/ 31 digits after the decimal point+E+number.
 
   - When the calculation result is decimal and greater than 16 digits / 32 
digits, it is displayed in the following format: number + numbers of 15 digits 
/ 31 digits after the decimal point+E-number.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/deepin-calculator-5.7.12/src/assets/deepin-calculator/calculator/zh_CN/calculator.md
 
new/deepin-calculator-5.7.20/src/assets/deepin-calculator/calculator/zh_CN/calculator.md
--- 
old/deepin-calculator-5.7.12/src/assets/deepin-calculator/calculator/zh_CN/calculator.md
    2021-10-12 07:44:53.000000000 +0200
+++ 
new/deepin-calculator-5.7.20/src/assets/deepin-calculator/calculator/zh_CN/calculator.md
    2022-03-28 05:28:14.000000000 +0200
@@ -4,7 +4,7 @@
 
 
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
 
-## ????????????
+## ????????????
 
 ??????????????????????????? ![icon_menu](../common/icon_menu.svg) > 
**??????**???????????????
 
@@ -33,6 +33,8 @@
 | .                          | ?????????   | ????????????????????????          
                                   |
 | ()                         | ??????     | 
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????<br>??????????????????????????????????????????????????????????????????????????????????????????
 |
 | =                          | ??????     | ???????????????????????????        
                                   |
+
+
 ### ????????????
 
 ![0|scientific](fig/scientific_mode.png)
@@ -75,6 +77,12 @@
 | A~F       |  ??????| ??????16?????????????????????                 |
 | <<???>>      | ??????????????? | ????????????????????????????????? |
 
+## ????????????
+
+### ???/???????????????
+
+????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
 
**??????????????????**???????????????????????????????????????????????????????????????????????????
 **??????????????????**???
+
 
 
 ### ????????????
@@ -95,6 +103,10 @@
 - ?????????????????????????????? **Backspace** ??????????????????????????????
 - 
?????????????????????????????????????????????????????????????????????????????? 
**A~F** ??????????????????????????????
 
+
+
+
+
 ### ?????????
 
 + ???????????????????????????????????? =???????????????????????????????????? 
**Enter** 
??????????????????????????????????????????????????????????????????????????????????????????????????????
@@ -105,10 +117,10 @@
 
 ### ???????????????
 
-????????????????????????????????????????????????????????????16??????32??????????????????????????????????????????????????????16???/32?????????10?????????n?????????
+????????????????????????????????????????????????????????????16??????32??????????????????????????????????????????????????????
 16 ???/ 32 ????????? 10 ????????? n ?????????
 
-+ 
?????????????????????????????????16???/32?????????????????????+????????????15???/31???+E+?????????
-+ 
?????????????????????????????????16???/32?????????????????????+????????????15???/31???+E-?????????
++ ????????????????????????????????? 16 ???/ 32 
?????????????????????+???????????? 15 ???/ 31 ??? + E + ?????????
++ ????????????????????????????????? 16 ???/ 32 
?????????????????????+???????????? 15 ???/ 31 ??? + E - ?????????
 
 ![0|scientific_notation](fig/scientific_notation.png)
 
@@ -118,11 +130,11 @@
 
 - 
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
 
-  ??????????????????????????? 10 + 20 = 30??? ?????????????????? 30 
???????????? + ?????????????????????9???????????????????????????????????? 30 + 
9?????? **Enter** ??????????????????????????????????????????39???
+  ??????????????????????????? 10 + 20 = 30??? ?????????????????? 30 
???????????? + ????????????????????? 9???????????????????????????????????? 30 + 
9?????? **Enter** ??????????????????????????????????????????39???
 
 - 
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
 
-  ???????????????????????? 10 + 20 = 30 ??? 30 + 9 = 39 
?????????????????????????????????????????????????????? + ???????????? x 
??????????????? 10 x 20 = 200 ??? ???????????????????????????????????? 200 + 9 
= 209????????????????????????????????????9?????????????????????
+  ???????????????????????? 10 + 20 = 30 ??? 30 + 9 = 39 
?????????????????????????????????????????????????????? + ???????????? x 
??????????????? 10 x 20 = 200 ??? ???????????????????????????????????? 200 + 9 
= 209???????????????????????????????????? 9 ?????????????????????
 
 - 
????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/deepin-calculator-5.7.12/src/assets/deepin-calculator/calculator/zh_HK/calculator.md
 
new/deepin-calculator-5.7.20/src/assets/deepin-calculator/calculator/zh_HK/calculator.md
--- 
old/deepin-calculator-5.7.12/src/assets/deepin-calculator/calculator/zh_HK/calculator.md
    2021-10-12 07:44:53.000000000 +0200
+++ 
new/deepin-calculator-5.7.20/src/assets/deepin-calculator/calculator/zh_HK/calculator.md
    2022-03-28 05:28:14.000000000 +0200
@@ -4,7 +4,8 @@
 
 
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
 
-## ????????????
+## ????????????
+
 ??????????????????????????? ![icon_menu](../common/icon_menu.svg) > 
**??????**???????????????
 
 - ?????? 
**??????**?????????????????????????????????????????????????????????????????????
@@ -13,6 +14,7 @@
 
 
 
+
 ### ????????????
 
 ![0|standard](fig/standard mode.png)
@@ -74,6 +76,11 @@
 | A~F       |  ??????| ??????16?????????????????????                 |
 | <<???>>      | ??????????????? | ????????????????????????????????? |
 
+## ????????????
+
+### ???/???????????????
+
+????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
 
**??????????????????**???????????????????????????????????????????????????????????????????????????
 **??????????????????**???
 
 
 ### ??????????????????
@@ -102,10 +109,10 @@
 
 ### ???????????????
 
-????????????????????????????????????????????????????????????16??????32??????????????????????????????????????????????????????16???/32?????????10?????????n?????????
+????????????????????????????????????????????????????????????16??????32??????????????????????????????????????????????????????
 16 ???/ 32 ????????? 10 ?????????n?????????
 
-- 
?????????????????????????????????16???/32?????????????????????+????????????15???/31???+E+?????????
-- 
?????????????????????????????????16???/32?????????????????????+????????????15???/31???+E-?????????
+- ????????????????????????????????? 16 ???/ 32 
?????????????????????+???????????? 15 ???/ 31 ??? + E + ?????????
+- ????????????????????????????????? 16 ???/ 32 
?????????????????????+???????????? 15 ???/ 31 ??? + E - ?????????
 
 ![0|scientific_notation](fig/scientific_notation.png)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/deepin-calculator-5.7.12/src/assets/deepin-calculator/calculator/zh_TW/calculator.md
 
new/deepin-calculator-5.7.20/src/assets/deepin-calculator/calculator/zh_TW/calculator.md
--- 
old/deepin-calculator-5.7.12/src/assets/deepin-calculator/calculator/zh_TW/calculator.md
    2021-10-12 07:44:53.000000000 +0200
+++ 
new/deepin-calculator-5.7.20/src/assets/deepin-calculator/calculator/zh_TW/calculator.md
    2022-03-28 05:28:14.000000000 +0200
@@ -4,7 +4,7 @@
 
 
?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
 
-## ????????????
+## ????????????
 ??????????????????????????? ![icon_menu](../common/icon_menu.svg) > 
**??????**???????????????
    - ?????? 
**??????**?????????????????????????????????????????????????????????????????????
    - ?????? 
**??????**?????????????????????????????????????????????????????????????????????????????????
@@ -80,7 +80,11 @@
 | A~F                                                          | ??????     | 
??????16????????????????????????                            |
 | <<???>>                                                       | 
??????????????? | ?????????????????????????????????                            |
 
+## ????????????
+
+### ???/???????????????
 
+????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
 
**??????????????????**???????????????????????????????????????????????????????????????????????????
 **??????????????????**???
 
 ### ??????????????????
 
@@ -113,7 +117,7 @@
 
 
????????????????????????????????????????????????????????????16??????32??????????????????????????????????????????????????????16???/32?????????10?????????n?????????
 
-   + 
?????????????????????????????????16???/32?????????????????????+????????????15???/31???+E+?????????
+   + 
?????????????????????????????????16???/32?????????????????????+????????????15???/31???+E+?????????
    + 
?????????????????????????????????16???/32?????????????????????+????????????15???/31???+E-?????????
 
 ![0|scientific-notation](fig/scientific_notation.png)
@@ -161,8 +165,8 @@
 3. ????????????????????????????????????
 
 
-### ??????
+### ??????
 
 1. ??????????????????????????? ![icon_menu](../common/icon_menu.svg)???
-2. ?????? **??????**???
+2. ?????? **??????**???
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/deepin-calculator-5.7.12/src/control/basickeypad.cpp 
new/deepin-calculator-5.7.20/src/control/basickeypad.cpp
--- old/deepin-calculator-5.7.12/src/control/basickeypad.cpp    2021-10-12 
07:44:53.000000000 +0200
+++ new/deepin-calculator-5.7.20/src/control/basickeypad.cpp    2022-03-28 
05:28:14.000000000 +0200
@@ -50,7 +50,7 @@
     {"3", Key_3, 4, 6, 1, 3},         {"", Key_Plus, 4, 9, 1, 3},
 
     {"0", Key_0, 5, 0, 1, 3},         {".", Key_Point, 5, 3, 1, 3},
-    {"()", Key_Brackets, 5, 6, 1, 3}, {"=", Key_Equals, 5, 9, 1, 3}
+    {"(  )", Key_Brackets, 5, 6, 1, 3}, {"=", Key_Equals, 5, 9, 1, 3}
 };
 
 /**
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/deepin-calculator-5.7.12/src/dsettings.cpp 
new/deepin-calculator-5.7.20/src/dsettings.cpp
--- old/deepin-calculator-5.7.12/src/dsettings.cpp      2021-10-12 
07:44:53.000000000 +0200
+++ new/deepin-calculator-5.7.20/src/dsettings.cpp      2022-03-28 
05:28:14.000000000 +0200
@@ -49,12 +49,28 @@
     : QObject(parent),
       m_settings(new 
QSettings(QDir(Utils::getConfigDir()).filePath("config.config"), 
QSettings::IniFormat, this))
 {
-    initConfig();;
+    initConfig();
+    loadConfig();
 }
 
 DSettingsAlt::~DSettingsAlt()
 {
 //    delete m_settings;
+    //saveConfig();
+}
+
+void DSettingsAlt::loadConfig()
+{
+    m_standardSeparate = m_settings->value("standardSeparate", 3).toInt();  
//??????3???
+    m_scientificSeparate = m_settings->value("scientificSeparate", 3).toInt();
+    m_programmerSeparate = m_settings->value("programmerSeparate", 3).toInt();
+}
+
+void DSettingsAlt::saveConfig()
+{
+    m_settings->setValue("standardSeparate", m_standardSeparate);
+    m_settings->setValue("scientificSeparate", m_scientificSeparate);
+    m_settings->setValue("programmerSeparate", m_programmerSeparate);
 }
 
 void DSettingsAlt::initConfig()
@@ -107,3 +123,101 @@
     delete INSTANCE;
     INSTANCE = nullptr;
 }
+
+/**
+ * @brief DSettingsAlt::getSeparate
+ * @return 
???????????????????????????????????????????????????????????????????????????
+ */
+int DSettingsAlt::getSeparate()
+{
+    int separate = 3;   //??????????????????
+    switch (m_settings->value("mode", 0).toInt()) {
+    case 0: separate = getStandardSeparate();
+        break;
+    case 1: separate = getScientificSeparate();
+        break;
+    case 2: separate = getProgrammerSeparate();
+        break;
+    }
+
+    //??????????????????1?????????3?????????????????????????????????
+    if (separate < 1) {
+        separate = 3;
+    }
+    return separate;
+}
+
+/**
+ * @brief DSettingsAlt::setSeparate
+ * ???????????????????????????????????????????????????????????????????????????
+ * @param separate  ????????????
+ */
+void DSettingsAlt::setSeparate(int separate)
+{
+    switch (m_settings->value("mode", 0).toInt()) {
+    case 0: setStandardSeparate(separate);
+        break;
+    case 1: setScientificSeparate(separate);
+        break;
+    case 2: setProgrammerSeparate(separate);
+        break;
+    }
+
+    saveConfig();
+}
+
+/**
+ * @brief getStandardSeparate
+ * ?????????????????????????????????
+ * @return ???????????????????????????
+ */
+int DSettingsAlt::getStandardSeparate()
+{
+    return m_standardSeparate;
+}
+
+/**
+ * @brief setStandardSeparate
+ * ?????????????????????????????????
+ */
+void DSettingsAlt::setStandardSeparate(int separate)
+{
+    this->m_standardSeparate = separate;
+}
+
+/**
+ * @brief getScientificSeparate
+ * ?????????????????????????????????
+ * @return
+ */
+int DSettingsAlt::getScientificSeparate()
+{
+    return m_scientificSeparate;
+}
+
+/**
+ * @brief setScientificSeparate
+ * ?????????????????????????????????
+ */
+void DSettingsAlt::setScientificSeparate(int separate)
+{
+    this->m_scientificSeparate = separate;
+}
+
+/**
+ * @brief getProgrammerSeparate
+ * @return ??????????????????????????????
+ */
+int DSettingsAlt::getProgrammerSeparate()
+{
+    return m_programmerSeparate;
+}
+
+/**
+ * @brief setProgrammerSeparate
+ * ????????????????????????????????????
+ */
+void DSettingsAlt::setProgrammerSeparate(int separate)
+{
+    this->m_programmerSeparate = separate;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/deepin-calculator-5.7.12/src/dsettings.h 
new/deepin-calculator-5.7.20/src/dsettings.h
--- old/deepin-calculator-5.7.12/src/dsettings.h        2021-10-12 
07:44:53.000000000 +0200
+++ new/deepin-calculator-5.7.20/src/dsettings.h        2022-03-28 
05:28:14.000000000 +0200
@@ -36,11 +36,26 @@
     void setOption(const QString &key, const QVariant &value);
     static void deleteInstance();
 
+    int getSeparate();  
//????????????????????????????????????????????????????????????????????????
+    void setSeparate(int separate); 
//?????????????????????????????????????????????????????????????????????????????????
+    int getStandardSeparate(); //?????????????????????????????????
+    void setStandardSeparate(int separate); //?????????????????????????????????
+    int getScientificSeparate(); //?????????????????????????????????
+    void setScientificSeparate(int separate); 
//?????????????????????????????????
+    int getProgrammerSeparate(); //????????????????????????????????????
+    void setProgrammerSeparate(int separate); 
//????????????????????????????????????
+
 private:
     void initConfig();
+    void loadConfig();
+    void saveConfig();
 
 private:
     QSettings *m_settings;
+
+    int m_standardSeparate = 3;   //???????????????????????????
+    int m_scientificSeparate = 3; //???????????????????????????
+    int m_programmerSeparate = 3; //??????????????????????????????
 };
 
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/deepin-calculator-5.7.12/src/main.cpp 
new/deepin-calculator-5.7.20/src/main.cpp
--- old/deepin-calculator-5.7.12/src/main.cpp   2021-10-12 07:44:53.000000000 
+0200
+++ new/deepin-calculator-5.7.20/src/main.cpp   2022-03-28 05:28:14.000000000 
+0200
@@ -147,5 +147,7 @@
     // Register debus service.
     dbus.registerObject("/com/deepin/calculator", &window, 
QDBusConnection::ExportScriptableSlots);
     window.show();
+    window.switchModeBack();
+
     return app.exec();
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/deepin-calculator-5.7.12/src/mainwindow.cpp 
new/deepin-calculator-5.7.20/src/mainwindow.cpp
--- old/deepin-calculator-5.7.12/src/mainwindow.cpp     2021-10-12 
07:44:53.000000000 +0200
+++ new/deepin-calculator-5.7.20/src/mainwindow.cpp     2022-03-28 
05:28:14.000000000 +0200
@@ -90,6 +90,27 @@
 {
 }
 
+void MainWindow::switchModeBack()
+{
+    int mode = m_settings->getOption("mode").toInt();
+    switch(mode){
+    case 0:
+        switchToScientificMode();
+        switchToSimpleMode();
+        break;
+    case 1:
+        switchToSimpleMode();
+        switchToScientificMode();
+        break;
+    case 2:
+        switchToSimpleMode();
+        switchToProgrammerMode();
+        break;
+    default:
+        switchToScientificMode();
+        switchToSimpleMode();
+    }
+}
 void MainWindow::initTheme()
 {
     int type = DGuiApplicationHelper::instance()->themeType();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/deepin-calculator-5.7.12/src/mainwindow.h 
new/deepin-calculator-5.7.20/src/mainwindow.h
--- old/deepin-calculator-5.7.12/src/mainwindow.h       2021-10-12 
07:44:53.000000000 +0200
+++ new/deepin-calculator-5.7.20/src/mainwindow.h       2022-03-28 
05:28:14.000000000 +0200
@@ -43,6 +43,9 @@
     explicit MainWindow(QWidget *parent = nullptr);
     ~MainWindow();
 
+    //switch to another mode and switch back
+    void switchModeBack();
+
 protected:
     void keyPressEvent(QKeyEvent *event);
     void moveEvent(QMoveEvent *event);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/deepin-calculator-5.7.12/src/utils.cpp 
new/deepin-calculator-5.7.20/src/utils.cpp
--- old/deepin-calculator-5.7.12/src/utils.cpp  2021-10-12 07:44:53.000000000 
+0200
+++ new/deepin-calculator-5.7.20/src/utils.cpp  2022-03-28 05:28:14.000000000 
+0200
@@ -19,6 +19,7 @@
 
 
 #include "utils.h"
+#include "dsettings.h"
 
 #include <QRegularExpression>
 #include <QStandardPaths>
@@ -69,6 +70,8 @@
  */
 QString Utils::formatThousandsSeparators(const QString &str)
 {
+    int separate = DSettingsAlt::instance()->getSeparate(); 
//??????????????????
+
     QString result = str;
     int startPos = result.indexOf(QRegularExpression("[0-9]"));
     if (startPos >= 0) {
@@ -80,7 +83,7 @@
                 endPos = result.length();
         }
 
-        for (int i = endPos - 3; i >= startPos + 1; i -= 3) {
+        for (int i = endPos - separate; i >= startPos + 1; i -= separate) {
             result.insert(i, ",");
         }
     }
@@ -146,6 +149,8 @@
 
 QString Utils::formatThousandsSeparatorsPro(const QString &str, const int Base)
 {
+
+
     QString result = str;
     int startPos = result.indexOf(QRegularExpression("[0-9]"));
     int startPosHex = result.indexOf(QRegularExpression("[A-F0-9]"));
@@ -162,7 +167,8 @@
     case 10:
         if (startPos >= 0) {
             int endPos  = result.length();
-            for (int i = endPos - 3; i >= startPos + 1; i -= 3) {
+            int separate = DSettingsAlt::instance()->getSeparate(); 
//??????????????????
+            for (int i = endPos - separate; i >= startPos + 1; i -= separate) {
                 result.insert(i, ",");
             }
         }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/deepin-calculator-5.7.12/src/views/memorywidget.cpp 
new/deepin-calculator-5.7.20/src/views/memorywidget.cpp
--- old/deepin-calculator-5.7.12/src/views/memorywidget.cpp     2021-10-12 
07:44:53.000000000 +0200
+++ new/deepin-calculator-5.7.20/src/views/memorywidget.cpp     2022-03-28 
05:28:14.000000000 +0200
@@ -467,6 +467,24 @@
     }
 }
 
+
+
+/**
+ * @brief MemoryWidget::resetLabelBySeparator
+ * ????????????????????????????????????
+ */
+void MemoryWidget::resetLabelBySeparator()
+{
+    if (m_memorypublic->isEmpty())
+        return;
+    QString text;
+    for (int i = 0; i < m_listwidget->count(); i++) {
+        auto wgt = static_cast<MemoryItemWidget 
*>(m_listwidget->itemWidget(m_listwidget->item(i)));
+        text = Utils::formatThousandsSeparators(wgt->textLabel().remove(","));
+        wgt->setTextLabel(text);
+    }
+}
+
 void MemoryWidget::initConnect()
 {
     connect(m_memorypublic, &MemoryPublic::generateDataSig, this, 
&MemoryWidget::generateData);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/deepin-calculator-5.7.12/src/views/memorywidget.h 
new/deepin-calculator-5.7.20/src/views/memorywidget.h
--- old/deepin-calculator-5.7.12/src/views/memorywidget.h       2021-10-12 
07:44:53.000000000 +0200
+++ new/deepin-calculator-5.7.20/src/views/memorywidget.h       2022-03-28 
05:28:14.000000000 +0200
@@ -61,6 +61,7 @@
     MemoryListWidget *getMemoryWidget();
     QString programmerResult(const Quantity answer);
     void resetAllLabelByBase();
+    void resetLabelBySeparator();
 
 public slots:
     void setThemeType(int type);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/deepin-calculator-5.7.12/src/views/programmeritemwidget.cpp 
new/deepin-calculator-5.7.20/src/views/programmeritemwidget.cpp
--- old/deepin-calculator-5.7.12/src/views/programmeritemwidget.cpp     
2021-10-12 07:44:53.000000000 +0200
+++ new/deepin-calculator-5.7.20/src/views/programmeritemwidget.cpp     
2022-03-28 05:28:14.000000000 +0200
@@ -204,6 +204,12 @@
 
 bool ProgrammerItemWidget::eventFilter(QObject *obj, QEvent *event)
 {
+    //bug 101004
+    if(QEvent::Show == event->type()){
+        m_ishover=false;
+        m_isfocus=false;
+        m_ispress=false;
+    }
     if (event->type() == QEvent::MouseMove) {
         if (!m_ispress) {
             m_ishover = true;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/deepin-calculator-5.7.12/src/views/simplelistmodel.cpp 
new/deepin-calculator-5.7.20/src/views/simplelistmodel.cpp
--- old/deepin-calculator-5.7.12/src/views/simplelistmodel.cpp  2021-10-12 
07:44:53.000000000 +0200
+++ new/deepin-calculator-5.7.20/src/views/simplelistmodel.cpp  2022-03-28 
05:28:14.000000000 +0200
@@ -429,3 +429,21 @@
 {
     radixChanged(Settings::instance()->programmerBase, 
Settings::instance()->programmerBase);
 }
+
+/**
+ * @brief SimpleListModel::updataOfSeparate
+ * ?????????????????????????????????????????????
+ */
+void SimpleListModel::updataOfSeparate()
+{
+    for (int i = 0; i < m_expressionList.count(); ++i) {
+        QString expression = m_expressionList.at(i);    //???????????????
+        expression.replace(",", "");   //?????????????????????
+        QString newExp = Utils::reformatSeparators(expression); 
//?????????????????????
+        //????????????
+        beginInsertRows(QModelIndex(), 0, 0);
+        m_expressionList[i] = newExp;
+        endInsertRows();
+    }
+}
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/deepin-calculator-5.7.12/src/views/simplelistmodel.h 
new/deepin-calculator-5.7.20/src/views/simplelistmodel.h
--- old/deepin-calculator-5.7.12/src/views/simplelistmodel.h    2021-10-12 
07:44:53.000000000 +0200
+++ new/deepin-calculator-5.7.20/src/views/simplelistmodel.h    2022-03-28 
05:28:14.000000000 +0200
@@ -57,6 +57,8 @@
     QString formatExpression(const int &probase, const QString &text);
     void answerOutOfRange(Quantity ans);
     void expOutofRange();
+    //????????????????????????
+    void updataOfSeparate();
 
 signals:
     void hisbtnhidden();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/deepin-calculator-5.7.12/src/widgets/basicmodule.cpp 
new/deepin-calculator-5.7.20/src/widgets/basicmodule.cpp
--- old/deepin-calculator-5.7.12/src/widgets/basicmodule.cpp    2021-10-12 
07:44:53.000000000 +0200
+++ new/deepin-calculator-5.7.20/src/widgets/basicmodule.cpp    2022-03-28 
05:28:14.000000000 +0200
@@ -686,6 +686,7 @@
 {
     if (m_keypadLayout->currentIndex() == 0) {
         m_keypadLayout->setCurrentIndex(1);
+        m_memorylistwidget->resetLabelBySeparator();
         MemoryButton *btn2 = static_cast<MemoryButton 
*>(m_memoryKeypad->button(MemoryKeypad::Key_Mplus));
         btn2->setbuttongray(true);
         btn2->setEnabled(false);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/deepin-calculator-5.7.12/src/widgets/expressionbar.cpp 
new/deepin-calculator-5.7.20/src/widgets/expressionbar.cpp
--- old/deepin-calculator-5.7.12/src/widgets/expressionbar.cpp  2021-10-12 
07:44:53.000000000 +0200
+++ new/deepin-calculator-5.7.20/src/widgets/expressionbar.cpp  2022-03-28 
05:28:14.000000000 +0200
@@ -1145,6 +1145,7 @@
     connect(m_inputEdit, &InputEdit::undo, this, &ExpressionBar::Undo);
     connect(m_inputEdit, &InputEdit::redo, this, &ExpressionBar::Redo);
     connect(m_inputEdit, &InputEdit::setResult, this, 
&ExpressionBar::setResultFalse);
+    connect(m_inputEdit, &InputEdit::separateChange, this, 
&ExpressionBar::onSeparateChange);
 }
 
 /**
@@ -1544,3 +1545,12 @@
 {
     return m_inputEdit;
 }
+
+/**
+ * @brief ExpressionBar::separateChange
+ * ??????????????????????????????
+ */
+void ExpressionBar::onSeparateChange()
+{
+   m_listModel->updataOfSeparate();
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/deepin-calculator-5.7.12/src/widgets/expressionbar.h 
new/deepin-calculator-5.7.20/src/widgets/expressionbar.h
--- old/deepin-calculator-5.7.12/src/widgets/expressionbar.h    2021-10-12 
07:44:53.000000000 +0200
+++ new/deepin-calculator-5.7.20/src/widgets/expressionbar.h    2022-03-28 
05:28:14.000000000 +0200
@@ -114,6 +114,7 @@
 private slots:
     void handleTextChanged(const QString &text);
     void revisionResults(const QModelIndex &index);
+    void onSeparateChange();//??????????????????????????????
 
 private:
     bool cursorPosAtEnd();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/deepin-calculator-5.7.12/src/widgets/inputedit.cpp 
new/deepin-calculator-5.7.20/src/widgets/inputedit.cpp
--- old/deepin-calculator-5.7.12/src/widgets/inputedit.cpp      2021-10-12 
07:44:53.000000000 +0200
+++ new/deepin-calculator-5.7.20/src/widgets/inputedit.cpp      2022-03-28 
05:28:14.000000000 +0200
@@ -22,6 +22,7 @@
 #include "../../3rdparty/core/settings.h"
 #include "../../3rdparty/math/floatconfig.h"
 #include "../utils.h"
+#include "../dsettings.h"
 
 #include <QApplication>
 #include <QClipboard>
@@ -68,6 +69,9 @@
     connect(this, &QLineEdit::textChanged, this, 
&InputEdit::isExpressionEmpty);
     connect(this, &QLineEdit::textChanged, this, &InputEdit::getCurrentAns);
 
+    connect(this, &InputEdit::swietThreeSeparate, this, 
&InputEdit::onSwietThreeSeparateClicked);
+    connect(this, &InputEdit::swietFourSeparate, this, 
&InputEdit::onswietFourSeparateClicked);
+
     m_funclist = {"and",  "not", "xor", "nand", "nor", "mod", "or",
                   "shl", "shr", "sal", "sar", "rol", "ror", "rcl", "rcr"
                  };
@@ -287,6 +291,8 @@
     m_paste = new QAction(tr("Paste"), this);
     m_delete = new QAction(tr("Delete"), this);
     m_select = new QAction(tr("Select All"), this);
+    m_threeSeparate = new QAction(tr("Use thousands separator"), this);
+    m_fourSeparate = new QAction(tr("Use ten-thousands separator"), this);
 
     connect(m_undo, &QAction::triggered, this, &InputEdit::undo);
     connect(m_redo, &QAction::triggered, this, &InputEdit::redo);
@@ -295,6 +301,8 @@
     connect(m_paste, &QAction::triggered, this, &InputEdit::paste);
     connect(m_delete, &QAction::triggered, this, &InputEdit::deleteText);
     connect(m_select, &QAction::triggered, this, &InputEdit::selectAllText);
+    connect(m_threeSeparate, &QAction::triggered, this, 
&InputEdit::swietThreeSeparate);
+    connect(m_fourSeparate, &QAction::triggered, this, 
&InputEdit::swietFourSeparate);
 
     m_undo->setEnabled(false);
     m_redo->setEnabled(false);
@@ -857,6 +865,28 @@
     menu->addAction(m_paste);
     menu->addAction(m_delete);
     menu->addSeparator();
+
+    int separate = 3;
+    switch (DSettingsAlt::instance()->getOption("mode").toInt()) {
+        case 0: separate = DSettingsAlt::instance()->getStandardSeparate();
+        break;
+    case 1: separate = DSettingsAlt::instance()->getScientificSeparate();
+        break;
+    case 2:
+        if (Settings::instance()->programmerBase == 10) {
+            separate = DSettingsAlt::instance()->getProgrammerSeparate();
+        } else {
+            separate = -1;
+        }
+        break;
+    }
+
+    if (separate == 3) {
+        menu->addAction(m_fourSeparate);
+    } else if (separate == 4) {
+        menu->addAction(m_threeSeparate);
+    }
+
     menu->addAction(m_select);
 
     if (QApplication::clipboard()->text().isEmpty())
@@ -899,6 +929,28 @@
     menu->addAction(m_paste);
     menu->addAction(m_delete);
     menu->addSeparator();
+
+    int separate = 3;
+    switch (DSettingsAlt::instance()->getOption("mode").toInt()) {
+        case 0: separate = DSettingsAlt::instance()->getStandardSeparate();
+        break;
+    case 1: separate = DSettingsAlt::instance()->getScientificSeparate();
+        break;
+    case 2:
+        if (Settings::instance()->programmerBase == 10) {
+            separate = DSettingsAlt::instance()->getProgrammerSeparate();
+        } else {
+            separate = -1;
+        }
+        break;
+    }
+
+    if (separate == 3) {
+        menu->addAction(m_fourSeparate);
+    } else if (separate == 4) {
+        menu->addAction(m_threeSeparate);
+    }
+
     menu->addAction(m_select);
 
     if (QApplication::clipboard()->text().isEmpty())
@@ -1261,3 +1313,26 @@
     }
 }
 
+/**
+ * @brief onSwietThreeSeparateClicked
+ * ????????????????????????????????????
+ */
+void InputEdit::onSwietThreeSeparateClicked()
+{
+    DSettingsAlt::instance()->setSeparate(3);
+    handleTextChanged(m_oldText);   //??????input????????????
+    emit separateChange();  //??????????????????
+}
+
+/**
+ * @brief onswietFourSeparateClicked
+ * ????????????????????????????????????
+ */
+void InputEdit::onswietFourSeparateClicked()
+{
+    DSettingsAlt::instance()->setSeparate(4);
+    handleTextChanged(m_oldText);   //??????input????????????
+    emit separateChange();  //??????????????????
+}
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/deepin-calculator-5.7.12/src/widgets/inputedit.h 
new/deepin-calculator-5.7.20/src/widgets/inputedit.h
--- old/deepin-calculator-5.7.12/src/widgets/inputedit.h        2021-10-12 
07:44:53.000000000 +0200
+++ new/deepin-calculator-5.7.20/src/widgets/inputedit.h        2022-03-28 
05:28:14.000000000 +0200
@@ -74,6 +74,8 @@
     void handleTextChanged(const QString &text);
     void radixChanged(int baseori, int basedest);
     QString scanAndExec(int baseori, int basedest);
+    void onSwietThreeSeparateClicked();
+    void onswietFourSeparateClicked();
 
 Q_SIGNALS:
     void keyPress(QKeyEvent *);
@@ -89,6 +91,9 @@
     void emptyExpression(bool b);
     void cursorPositionNumberChanged(QString num);
     void prolistAns(QPair<bool, Quantity> pair);
+    void swietThreeSeparate();  //??????????????????
+    void swietFourSeparate();  //??????????????????
+    void separateChange();
 
 protected:
     void keyPressEvent(QKeyEvent *);
@@ -127,6 +132,8 @@
     QAction *m_paste;
     QAction *m_delete;
     QAction *m_select;
+    QAction *m_threeSeparate;  //???????????????
+    QAction *m_fourSeparate;  //???????????????
 
     Quantity m_memoryans; //?????????????????????
     Evaluator *m_evaluator;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/deepin-calculator-5.7.12/src/widgets/memhiswidget.cpp 
new/deepin-calculator-5.7.20/src/widgets/memhiswidget.cpp
--- old/deepin-calculator-5.7.12/src/widgets/memhiswidget.cpp   2021-10-12 
07:44:53.000000000 +0200
+++ new/deepin-calculator-5.7.20/src/widgets/memhiswidget.cpp   2022-03-28 
05:28:14.000000000 +0200
@@ -119,6 +119,7 @@
         if (!m_buttonBox->button(1)->hasFocus() && QApplication::focusWidget() 
!= nullptr)
             this->setFocus();
         m_clearButton->showtooltip(false); //?????????????????????tooltip
+        m_listModel->updataOfSeparate();
         m_stackWidget->setCurrentWidget(m_listView);
         m_clearButton->setHidden(!m_isshowH);
 
@@ -389,3 +390,9 @@
 {
     return m_memoryWidget;
 }
+
+
+SimpleListModel* MemHisWidget::getSimpleListModel()
+{
+    return m_listModel;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/deepin-calculator-5.7.12/src/widgets/memhiswidget.h 
new/deepin-calculator-5.7.20/src/widgets/memhiswidget.h
--- old/deepin-calculator-5.7.12/src/widgets/memhiswidget.h     2021-10-12 
07:44:53.000000000 +0200
+++ new/deepin-calculator-5.7.20/src/widgets/memhiswidget.h     2022-03-28 
05:28:14.000000000 +0200
@@ -61,6 +61,7 @@
     void resetFocus();
     void historyfilled();
     MemoryWidget *getMemoryWiget();
+    SimpleListModel* getSimpleListModel();
 
     void mouseMoveEvent(QMouseEvent *e);
     void keyPressEvent(QKeyEvent *e);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/deepin-calculator-5.7.12/src/widgets/proexpressionbar.cpp 
new/deepin-calculator-5.7.20/src/widgets/proexpressionbar.cpp
--- old/deepin-calculator-5.7.12/src/widgets/proexpressionbar.cpp       
2021-10-12 07:44:53.000000000 +0200
+++ new/deepin-calculator-5.7.20/src/widgets/proexpressionbar.cpp       
2022-03-28 05:28:14.000000000 +0200
@@ -1159,6 +1159,7 @@
     connect(m_inputEdit, &InputEdit::undo, this, &ProExpressionBar::Undo);
     connect(m_inputEdit, &InputEdit::redo, this, &ProExpressionBar::Redo);
     connect(m_inputEdit, &InputEdit::setResult, this, 
&ProExpressionBar::setResultFalse);
+    connect(m_inputEdit, &InputEdit::separateChange, this, 
&ProExpressionBar::onSeparateChange);
 }
 
 void ProExpressionBar::replaceSelection(QString text)
@@ -1523,3 +1524,12 @@
     m_isAllClear = false;
     m_isContinue = true;
 }
+
+/**
+ * @brief ProExpressionBar::separateChange
+ * ??????????????????????????????
+ */
+void ProExpressionBar::onSeparateChange()
+{
+   m_listModel->updataOfSeparate();
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/deepin-calculator-5.7.12/src/widgets/proexpressionbar.h 
new/deepin-calculator-5.7.20/src/widgets/proexpressionbar.h
--- old/deepin-calculator-5.7.12/src/widgets/proexpressionbar.h 2021-10-12 
07:44:53.000000000 +0200
+++ new/deepin-calculator-5.7.20/src/widgets/proexpressionbar.h 2022-03-28 
05:28:14.000000000 +0200
@@ -88,6 +88,7 @@
     bool isNumberOutOfRange(const QString &text);
     void selectedPartDelete(const QRegExp &rx);
     bool curposInNumber(int curpos);
+    void onSeparateChange();//???????????????????????????
 
 private slots:
     void handleTextChanged();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/deepin-calculator-5.7.12/src/widgets/scientificmodule.cpp 
new/deepin-calculator-5.7.20/src/widgets/scientificmodule.cpp
--- old/deepin-calculator-5.7.12/src/widgets/scientificmodule.cpp       
2021-10-12 07:44:53.000000000 +0200
+++ new/deepin-calculator-5.7.20/src/widgets/scientificmodule.cpp       
2022-03-28 05:28:14.000000000 +0200
@@ -1013,6 +1013,8 @@
 void scientificModule::showMemHisWidget()
 {
     m_stackWidget->setCurrentWidget(m_memhiswidget);
+    m_memhiswidget->getSimpleListModel()->updataOfSeparate();
+    m_memhiswidget->getMemoryWiget()->resetLabelBySeparator();
     if (static_cast<MemoryButton 
*>(m_memhiskeypad->button(MemHisKeypad::Key_MHlist))->hasFocus()) {
         //?????????????????????focus???membuttonboxbutton
         if (!m_memhiswidget->findChild<IconButton *>()->isHidden())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/deepin-calculator-5.7.12/src/widgets/sciexpressionbar.cpp 
new/deepin-calculator-5.7.20/src/widgets/sciexpressionbar.cpp
--- old/deepin-calculator-5.7.12/src/widgets/sciexpressionbar.cpp       
2021-10-12 07:44:53.000000000 +0200
+++ new/deepin-calculator-5.7.20/src/widgets/sciexpressionbar.cpp       
2022-03-28 05:28:14.000000000 +0200
@@ -1206,6 +1206,7 @@
     connect(m_inputEdit, &InputEdit::undo, this, &SciExpressionBar::Undo);
     connect(m_inputEdit, &InputEdit::redo, this, &SciExpressionBar::Redo);
     connect(m_inputEdit, &InputEdit::setResult, this, 
&SciExpressionBar::setResultFalse);
+    connect(m_inputEdit, &InputEdit::separateChange, this, 
&SciExpressionBar::onSeparateChange);
 }
 
 QString SciExpressionBar::symbolComplement(const QString exp)
@@ -1637,3 +1638,12 @@
 {
     return m_inputEdit;
 }
+
+/**
+ * @brief SciExpressionBar::separateChange
+ * ??????????????????????????????
+ */
+void SciExpressionBar::onSeparateChange()
+{
+   m_listModel->updataOfSeparate();
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/deepin-calculator-5.7.12/src/widgets/sciexpressionbar.h 
new/deepin-calculator-5.7.20/src/widgets/sciexpressionbar.h
--- old/deepin-calculator-5.7.12/src/widgets/sciexpressionbar.h 2021-10-12 
07:44:53.000000000 +0200
+++ new/deepin-calculator-5.7.20/src/widgets/sciexpressionbar.h 2022-03-28 
05:28:14.000000000 +0200
@@ -108,7 +108,7 @@
      * ????????????
      */
     void pointCheckAfterDelete();
-
+    void onSeparateChange();//???????????????????????????
 
 private:
     bool cursorPosAtEnd();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/deepin-calculator-5.7.12/tests/CMakeLists.txt 
new/deepin-calculator-5.7.20/tests/CMakeLists.txt
--- old/deepin-calculator-5.7.12/tests/CMakeLists.txt   2021-10-12 
07:44:53.000000000 +0200
+++ new/deepin-calculator-5.7.20/tests/CMakeLists.txt   2022-03-28 
05:28:14.000000000 +0200
@@ -175,7 +175,7 @@
 add_dependencies(test ${PROJECT_NAME_TEST})
 
 # ????????????gocv?????????????????????
-set(CMAKE_CXX_FLAGS "-g -fprofile-arcs -ftest-coverage")
+#set(CMAKE_CXX_FLAGS "-g -fprofile-arcs -ftest-coverage")
 set(CMAKE_SAFETYTEST "${CMAKE_SAFETYTEST_ARG}")
 if(CMAKE_SAFETYTEST STREQUAL "")
     set(CMAKE_SAFETYTEST "CMAKE_SAFETYTEST_ARG_OFF")
@@ -186,3 +186,9 @@
   set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -fsanitize=undefined,address -O2")
   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -fsanitize=undefined,address -O2")
 endif()
+
+#?????????????????????
+if(CMAKE_COVERAGE_ARG STREQUAL "CMAKE_COVERAGE_ARG_ON")
+  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -Wall -fprofile-arcs -ftest-coverage")
+  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -Wall -fprofile-arcs 
-ftest-coverage")
+endif()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/deepin-calculator-5.7.12/tests/test-prj-running.sh 
new/deepin-calculator-5.7.20/tests/test-prj-running.sh
--- old/deepin-calculator-5.7.12/tests/test-prj-running.sh      1970-01-01 
01:00:00.000000000 +0100
+++ new/deepin-calculator-5.7.20/tests/test-prj-running.sh      2022-03-28 
05:28:14.000000000 +0200
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+builddir=build
+reportdir=build-ut
+rm -r $builddir
+rm -r ../$builddir
+rm -r $reportdir
+rm -r ../$reportdir
+mkdir ../$builddir
+mkdir ../$reportdir
+cd ../$builddir
+#??????
+cmake -DCMAKE_BUILD_TYPE=Debug 
-DCMAKE_SAFETYTEST_ARG="CMAKE_SAFETYTEST_ARG_ON" ..
+make -j8
+#??????asan?????????ut??????xml??????
+./tests/deepin-calculator-test 
--gtest_output=xml:./report/report_deepin-calculator.xml
+
+workdir=$(cd ../$(dirname $0)/$builddir; pwd)
+
+mkdir -p report
+#??????????????????????????????html??????
+lcov -d $workdir -c -o ./coverage.info
+
+lcov --extract ./coverage.info '*/src/*' -o ./coverage.info
+
+lcov --remove ./coverage.info '*/tests/*' -o ./coverage.info
+
+genhtml -o ./html ./coverage.info
+
+mv ./html/index.html ./html/cov_deepin-calculator.html
+#???asan???ut????????????????????????????????????????????????
+cp -r html ../$reportdir/
+cp -r report ../$reportdir/
+cp -r asan*.log* ../$reportdir/asan_deepin-calculator.log
+
+exit 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/deepin-calculator-5.7.12/translations/deepin-calculator.ts 
new/deepin-calculator-5.7.20/translations/deepin-calculator.ts
--- old/deepin-calculator-5.7.12/translations/deepin-calculator.ts      
2021-10-12 07:44:53.000000000 +0200
+++ new/deepin-calculator-5.7.20/translations/deepin-calculator.ts      
2022-03-28 05:28:14.000000000 +0200
@@ -28,6 +28,14 @@
         <translation>Select All</translation>
     </message>
     <message>
+        <source>Use thousands separator</source>
+        <translation>Use thousands separator</translation>
+    </message>
+    <message>
+        <source>Use ten-thousands separator</source>
+        <translation>Use ten-thousands separator</translation>
+    </message>
+    <message>
         <source>Undo</source>
         <translation>Undo</translation>
     </message>
@@ -242,4 +250,4 @@
         <translation>Delete</translation>
     </message>
 </context>
-</TS>
\ No newline at end of file
+</TS>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/deepin-calculator-5.7.12/translations/deepin-calculator_pl.ts 
new/deepin-calculator-5.7.20/translations/deepin-calculator_pl.ts
--- old/deepin-calculator-5.7.12/translations/deepin-calculator_pl.ts   
2021-10-12 07:44:53.000000000 +0200
+++ new/deepin-calculator-5.7.20/translations/deepin-calculator_pl.ts   
2022-03-28 05:28:14.000000000 +0200
@@ -28,6 +28,14 @@
         <translation>Zaznacz wszystko</translation>
     </message>
     <message>
+        <source>Use thousands separator</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <source>Use ten-thousands separator</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
         <source>Undo</source>
         <translation>Cofnij</translation>
     </message>
@@ -72,7 +80,7 @@
     </message>
     <message>
         <source>Programmer</source>
-        <translation>Programista</translation>
+        <translation>Programisty</translation>
     </message>
 </context>
 <context>
@@ -144,7 +152,7 @@
     <name>ProExpressionBar</name>
     <message>
         <source>Expression error</source>
-        <translation>Nieprawid??owe wyra??enie</translation>
+        <translation>B????d wyra??enia</translation>
     </message>
 </context>
 <context>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/deepin-calculator-5.7.12/translations/deepin-calculator_ug.ts 
new/deepin-calculator-5.7.20/translations/deepin-calculator_ug.ts
--- old/deepin-calculator-5.7.12/translations/deepin-calculator_ug.ts   
2021-10-12 07:44:53.000000000 +0200
+++ new/deepin-calculator-5.7.20/translations/deepin-calculator_ug.ts   
2022-03-28 05:28:14.000000000 +0200
@@ -28,6 +28,14 @@
         <translation>?????????????? ????????????</translation>
     </message>
     <message>
+        <source>Use thousands separator</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
+        <source>Use ten-thousands separator</source>
+        <translation type="unfinished"/>
+    </message>
+    <message>
         <source>Undo</source>
         <translation>???????????????? ????????????????</translation>
     </message>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/deepin-calculator-5.7.12/translations/deepin-calculator_zh_CN.ts 
new/deepin-calculator-5.7.20/translations/deepin-calculator_zh_CN.ts
--- old/deepin-calculator-5.7.12/translations/deepin-calculator_zh_CN.ts        
2021-10-12 07:44:53.000000000 +0200
+++ new/deepin-calculator-5.7.20/translations/deepin-calculator_zh_CN.ts        
2022-03-28 05:28:14.000000000 +0200
@@ -28,6 +28,14 @@
         <translation>??????</translation>
     </message>
     <message>
+        <source>Use thousands separator</source>
+        <translation>??????????????????</translation>
+    </message>
+    <message>
+        <source>Use ten-thousands separator</source>
+        <translation>??????????????????</translation>
+    </message>
+    <message>
         <source>Undo</source>
         <translation>??????</translation>
     </message>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/deepin-calculator-5.7.12/translations/deepin-calculator_zh_HK.ts 
new/deepin-calculator-5.7.20/translations/deepin-calculator_zh_HK.ts
--- old/deepin-calculator-5.7.12/translations/deepin-calculator_zh_HK.ts        
2021-10-12 07:44:53.000000000 +0200
+++ new/deepin-calculator-5.7.20/translations/deepin-calculator_zh_HK.ts        
2022-03-28 05:28:14.000000000 +0200
@@ -28,6 +28,14 @@
         <translation>??????</translation>
     </message>
     <message>
+        <source>Use thousands separator</source>
+        <translation>??????????????????</translation>
+    </message>
+    <message>
+        <source>Use ten-thousands separator</source>
+        <translation>??????????????????</translation>
+    </message>
+    <message>
         <source>Undo</source>
         <translation>??????</translation>
     </message>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/deepin-calculator-5.7.12/translations/deepin-calculator_zh_TW.ts 
new/deepin-calculator-5.7.20/translations/deepin-calculator_zh_TW.ts
--- old/deepin-calculator-5.7.12/translations/deepin-calculator_zh_TW.ts        
2021-10-12 07:44:53.000000000 +0200
+++ new/deepin-calculator-5.7.20/translations/deepin-calculator_zh_TW.ts        
2022-03-28 05:28:14.000000000 +0200
@@ -28,6 +28,14 @@
         <translation>??????</translation>
     </message>
     <message>
+        <source>Use thousands separator</source>
+        <translation>??????????????????</translation>
+    </message>
+    <message>
+        <source>Use ten-thousands separator</source>
+        <translation>??????????????????</translation>
+    </message>
+    <message>
         <source>Undo</source>
         <translation>??????</translation>
     </message>

Reply via email to