diff --git a/data_warehouse.cpp b/data_warehouse.cpp index bc4cb39..3ab12fa 100644 --- a/data_warehouse.cpp +++ b/data_warehouse.cpp @@ -1,5 +1,7 @@ #include "data_warehouse.h" +#include + #include DataWarehouse::DataWarehouse() @@ -27,7 +29,6 @@ void DataWarehouse::init(void) this->intelPlug = StartMode::MODE_PLUG; this->intelMode = false; - this->winFlag = QString("min"); this->maxInputNum = 35; return; @@ -35,10 +36,17 @@ void DataWarehouse::init(void) void DataWarehouse::getPlatForm(void) { - QString platform = QString(KDKGetPrjCodeName().c_str()); - if (platform == QString("V10SP1-Intel") || platform == QString("V10SP1-edu")) { + char *projectName = kdk_system_get_projectName(); + if (projectName == NULL) { + return; + } + + if (QString(projectName) == QString("V10SP1-Intel") || QString(projectName) == QString("V10SP1-edu")) { this->platform = QString("intel"); } + + free(projectName); + qDebug() << "Info : check run platform is " << this->platform; return; diff --git a/data_warehouse.h b/data_warehouse.h index 8ad5021..7692d94 100644 --- a/data_warehouse.h +++ b/data_warehouse.h @@ -2,8 +2,6 @@ #define __DATA_WAREHOUSE_H__ #include -#include -#include class DataWarehouse { @@ -27,10 +25,6 @@ public: /* intel 模式标识 , true ---> 平板 , false ---> 正常模式 */ bool intelMode; - /* 标识大窗口和小窗口 */ - /* max , min */ - QString winFlag; - /* 输入最大限度 */ int maxInputNum; diff --git a/debian/changelog b/debian/changelog index b123f8e..a8edd78 100644 --- a/debian/changelog +++ b/debian/changelog @@ -12,6 +12,14 @@ kylin-calculator (1.2.0.0) v101; urgency=medium * 其他改动影响域 : 无 -- huheng Wed, 08 Jun 2022 15:34:02 +0800 +kylin-calculator (1.1.0~rc17) v101; urgency=medium + + * BUG号 : 109779 【用户手册】用户手册首页传书、计算器的图标icon需替换为寻光主题图标 + * 需求号 : 无 + * 其他更改说明 : 无 + * 其他改动影响域 : 无 + -- huheng Thu, 09 Jun 2022 11:48:43 +0800 + kylin-calculator (1.1.0~rc16) v101; urgency=medium * BUG号 : 无 diff --git a/debian/control b/debian/control index fb08ae3..391b88f 100644 --- a/debian/control +++ b/debian/control @@ -5,21 +5,20 @@ Maintainer: Kylin Team Uploaders: caoliang , jiangdingyuan Build-Depends: debhelper-compat (= 12), - libgmp-dev, - libgsettings-qt-dev, - libgsl-dev, - libkf5windowsystem-dev, - libkysdk-base-dev, - libkysdk-kabase-dev, - libqt5x11extras5-dev, - libukui-common-dev, - libukui-log4qt-dev, - pkgconf, - qt5-qmake, qtbase5-dev, + qt5-qmake, qtchooser, qtscript5-dev, - qttools5-dev-tools + qttools5-dev-tools, + libkf5windowsystem-dev, + pkgconf, + libgsl-dev, + libqt5x11extras5-dev, + libgsettings-qt-dev, + libgmp-dev, + libkysdk-kabase-dev, + libkysdk-base-dev, + libkysdk-system-dev (>= 1.2.1.0) Standards-Version: 4.5.1 Rules-Requires-Root: no Homepage: https://github.com/ubuntukylin/kylin-calculator @@ -28,7 +27,7 @@ Vcs-Git: https://github.com/ubuntukylin/kylin-calculator.git Package: kylin-calculator Architecture: any -Depends: ${misc:Depends}, ${shlibs:Depends} +Depends: ${shlibs:Depends}, ${misc:Depends} Description: Calculator tool for UKUI Calculator is a lightweight calculator based on QT5 development, can provide scientific calculation diff --git a/image/intelScientific/0.svg b/image/intelScientific/0.svg index eb67cf2..f953bd0 100644 --- a/image/intelScientific/0.svg +++ b/image/intelScientific/0.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientific/1.svg b/image/intelScientific/1.svg index 859d92c..717592b 100644 --- a/image/intelScientific/1.svg +++ b/image/intelScientific/1.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientific/2.svg b/image/intelScientific/2.svg index 35af4f7..4e32fff 100644 --- a/image/intelScientific/2.svg +++ b/image/intelScientific/2.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientific/3.svg b/image/intelScientific/3.svg index dc1c748..cdbc3de 100644 --- a/image/intelScientific/3.svg +++ b/image/intelScientific/3.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientific/4.svg b/image/intelScientific/4.svg index 9674d2a..50baf6c 100644 --- a/image/intelScientific/4.svg +++ b/image/intelScientific/4.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientific/5.svg b/image/intelScientific/5.svg index 4b40cf9..5156ec4 100644 --- a/image/intelScientific/5.svg +++ b/image/intelScientific/5.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientific/6.svg b/image/intelScientific/6.svg index bddc784..15b99ce 100644 --- a/image/intelScientific/6.svg +++ b/image/intelScientific/6.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientific/7.svg b/image/intelScientific/7.svg index e60f2c6..90b2d77 100644 --- a/image/intelScientific/7.svg +++ b/image/intelScientific/7.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientific/8.svg b/image/intelScientific/8.svg index 0c12caa..78a1b4e 100644 --- a/image/intelScientific/8.svg +++ b/image/intelScientific/8.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientific/9.svg b/image/intelScientific/9.svg index 09d4d94..6749b60 100644 --- a/image/intelScientific/9.svg +++ b/image/intelScientific/9.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientific/btn2nd.svg b/image/intelScientific/btn2nd.svg index 1283026..13ccad7 100644 --- a/image/intelScientific/btn2nd.svg +++ b/image/intelScientific/btn2nd.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientific/btnAcos.svg b/image/intelScientific/btnAcos.svg index c9522f0..ad88fed 100644 --- a/image/intelScientific/btnAcos.svg +++ b/image/intelScientific/btnAcos.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientific/btnAdd.svg b/image/intelScientific/btnAdd.svg index 4be7caf..7a56973 100644 --- a/image/intelScientific/btnAdd.svg +++ b/image/intelScientific/btnAdd.svg @@ -1,4 +1,4 @@ - - + + diff --git a/image/intelScientific/btnAns.svg b/image/intelScientific/btnAns.svg index 4b759fb..48de11e 100644 --- a/image/intelScientific/btnAns.svg +++ b/image/intelScientific/btnAns.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientific/btnAsin.svg b/image/intelScientific/btnAsin.svg index 4300419..13ec2e5 100644 --- a/image/intelScientific/btnAsin.svg +++ b/image/intelScientific/btnAsin.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientific/btnAtan.svg b/image/intelScientific/btnAtan.svg index bc8a5da..fc54898 100644 --- a/image/intelScientific/btnAtan.svg +++ b/image/intelScientific/btnAtan.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientific/btnClear.svg b/image/intelScientific/btnClear.svg index 3432128..b0f1236 100644 --- a/image/intelScientific/btnClear.svg +++ b/image/intelScientific/btnClear.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientific/btnCos.svg b/image/intelScientific/btnCos.svg index 08ea755..c35aa6c 100644 --- a/image/intelScientific/btnCos.svg +++ b/image/intelScientific/btnCos.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientific/btnDeg.svg b/image/intelScientific/btnDeg.svg index 9498e7c..5176559 100644 --- a/image/intelScientific/btnDeg.svg +++ b/image/intelScientific/btnDeg.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientific/btnDelete.svg b/image/intelScientific/btnDelete.svg index 2ca91bd..df015eb 100644 --- a/image/intelScientific/btnDelete.svg +++ b/image/intelScientific/btnDelete.svg @@ -1,5 +1,5 @@ - + diff --git a/image/intelScientific/btnDiv.svg b/image/intelScientific/btnDiv.svg index 6ee8d62..83e7d19 100644 --- a/image/intelScientific/btnDiv.svg +++ b/image/intelScientific/btnDiv.svg @@ -1,5 +1,5 @@ - - - + + + diff --git a/image/intelScientific/btnE.svg b/image/intelScientific/btnE.svg index e5057f3..cd211c7 100644 --- a/image/intelScientific/btnE.svg +++ b/image/intelScientific/btnE.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientific/btnEqual.svg b/image/intelScientific/btnEqual.svg index 67adf58..b90e744 100644 --- a/image/intelScientific/btnEqual.svg +++ b/image/intelScientific/btnEqual.svg @@ -1,4 +1,4 @@ - - + + diff --git a/image/intelScientific/btnFac.svg b/image/intelScientific/btnFac.svg index ed7cc15..4f968b7 100644 --- a/image/intelScientific/btnFac.svg +++ b/image/intelScientific/btnFac.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientific/btnLbra.svg b/image/intelScientific/btnLbra.svg index 1561f98..f1ee9ed 100644 --- a/image/intelScientific/btnLbra.svg +++ b/image/intelScientific/btnLbra.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientific/btnLn.svg b/image/intelScientific/btnLn.svg index e2b9580..03d6864 100644 --- a/image/intelScientific/btnLn.svg +++ b/image/intelScientific/btnLn.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientific/btnLog.svg b/image/intelScientific/btnLog.svg index da44d1a..fe162dc 100644 --- a/image/intelScientific/btnLog.svg +++ b/image/intelScientific/btnLog.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientific/btnMulti.svg b/image/intelScientific/btnMulti.svg index a0f7ec0..fceb055 100644 --- a/image/intelScientific/btnMulti.svg +++ b/image/intelScientific/btnMulti.svg @@ -1,4 +1,4 @@ - - + + diff --git a/image/intelScientific/btnPer.svg b/image/intelScientific/btnPer.svg index b1f578f..bcba549 100644 --- a/image/intelScientific/btnPer.svg +++ b/image/intelScientific/btnPer.svg @@ -1,5 +1,5 @@ - - - + + + diff --git a/image/intelScientific/btnPi.svg b/image/intelScientific/btnPi.svg index 27058f1..d6fc36f 100644 --- a/image/intelScientific/btnPi.svg +++ b/image/intelScientific/btnPi.svg @@ -1,3 +1,6 @@ - + + + + diff --git a/image/intelScientific/btnPoint.svg b/image/intelScientific/btnPoint.svg index 69a1b2c..74a4177 100644 --- a/image/intelScientific/btnPoint.svg +++ b/image/intelScientific/btnPoint.svg @@ -1,3 +1,3 @@ - - + + diff --git a/image/intelScientific/btnRad.svg b/image/intelScientific/btnRad.svg index a7eb0c1..6a01b83 100644 --- a/image/intelScientific/btnRad.svg +++ b/image/intelScientific/btnRad.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientific/btnRbra.svg b/image/intelScientific/btnRbra.svg index 71c8127..de58cdb 100644 --- a/image/intelScientific/btnRbra.svg +++ b/image/intelScientific/btnRbra.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientific/btnReci.svg b/image/intelScientific/btnReci.svg index 62ea9e3..280a690 100644 --- a/image/intelScientific/btnReci.svg +++ b/image/intelScientific/btnReci.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientific/btnSin.svg b/image/intelScientific/btnSin.svg index 453a3b7..0d08873 100644 --- a/image/intelScientific/btnSin.svg +++ b/image/intelScientific/btnSin.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientific/btnSub.svg b/image/intelScientific/btnSub.svg index b26fd7d..f845fe9 100644 --- a/image/intelScientific/btnSub.svg +++ b/image/intelScientific/btnSub.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientific/btnTan.svg b/image/intelScientific/btnTan.svg index 13651f9..a2c3dbe 100644 --- a/image/intelScientific/btnTan.svg +++ b/image/intelScientific/btnTan.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientific/btnXPower2.svg b/image/intelScientific/btnXPower2.svg index 6596a46..21d39ac 100644 --- a/image/intelScientific/btnXPower2.svg +++ b/image/intelScientific/btnXPower2.svg @@ -1,4 +1,11 @@ - + + + + + + + + diff --git a/image/intelScientific/btnXPower3.svg b/image/intelScientific/btnXPower3.svg index 0fad1b1..2cbeb4f 100644 --- a/image/intelScientific/btnXPower3.svg +++ b/image/intelScientific/btnXPower3.svg @@ -1,4 +1,11 @@ - + + + + + + + + diff --git a/image/intelScientific/btnXSquare2.svg b/image/intelScientific/btnXSquare2.svg index 4338bd4..03e97ae 100644 --- a/image/intelScientific/btnXSquare2.svg +++ b/image/intelScientific/btnXSquare2.svg @@ -1,5 +1,5 @@ - - - + + + diff --git a/image/intelScientific/btnXSquare3.svg b/image/intelScientific/btnXSquare3.svg index 2001afa..a3ebf24 100644 --- a/image/intelScientific/btnXSquare3.svg +++ b/image/intelScientific/btnXSquare3.svg @@ -1,5 +1,5 @@ - - - + + + diff --git a/image/intelScientific/btnYPowerX.svg b/image/intelScientific/btnYPowerX.svg index 80aebdb..9a6fba2 100644 --- a/image/intelScientific/btnYPowerX.svg +++ b/image/intelScientific/btnYPowerX.svg @@ -1,4 +1,4 @@ - + diff --git a/image/intelScientific/btnYSquareX.svg b/image/intelScientific/btnYSquareX.svg index db8dce5..47be4d1 100644 --- a/image/intelScientific/btnYSquareX.svg +++ b/image/intelScientific/btnYSquareX.svg @@ -1,5 +1,5 @@ - - - + + + diff --git a/image/intelScientificDark/0.svg b/image/intelScientificDark/0.svg index 692d108..902ac3c 100644 --- a/image/intelScientificDark/0.svg +++ b/image/intelScientificDark/0.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientificDark/1.svg b/image/intelScientificDark/1.svg index e59dbec..9fcbf57 100644 --- a/image/intelScientificDark/1.svg +++ b/image/intelScientificDark/1.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientificDark/2.svg b/image/intelScientificDark/2.svg index 493fc3b..755474a 100644 --- a/image/intelScientificDark/2.svg +++ b/image/intelScientificDark/2.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientificDark/3.svg b/image/intelScientificDark/3.svg index 142dbd6..3c21719 100644 --- a/image/intelScientificDark/3.svg +++ b/image/intelScientificDark/3.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientificDark/4.svg b/image/intelScientificDark/4.svg index 0f126d7..113a32e 100644 --- a/image/intelScientificDark/4.svg +++ b/image/intelScientificDark/4.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientificDark/5.svg b/image/intelScientificDark/5.svg index 278dfb6..395a0e4 100644 --- a/image/intelScientificDark/5.svg +++ b/image/intelScientificDark/5.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientificDark/6.svg b/image/intelScientificDark/6.svg index b138efc..17d96f9 100644 --- a/image/intelScientificDark/6.svg +++ b/image/intelScientificDark/6.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientificDark/7.svg b/image/intelScientificDark/7.svg index 0880021..e3dc998 100644 --- a/image/intelScientificDark/7.svg +++ b/image/intelScientificDark/7.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientificDark/8.svg b/image/intelScientificDark/8.svg index bf600c6..bcb07ab 100644 --- a/image/intelScientificDark/8.svg +++ b/image/intelScientificDark/8.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientificDark/9.svg b/image/intelScientificDark/9.svg index 77dbf81..777d9e7 100644 --- a/image/intelScientificDark/9.svg +++ b/image/intelScientificDark/9.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientificDark/btn2nd.svg b/image/intelScientificDark/btn2nd.svg index 1f1156d..f858ffd 100644 --- a/image/intelScientificDark/btn2nd.svg +++ b/image/intelScientificDark/btn2nd.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientificDark/btnAcos.svg b/image/intelScientificDark/btnAcos.svg index b0a5661..353cc09 100644 --- a/image/intelScientificDark/btnAcos.svg +++ b/image/intelScientificDark/btnAcos.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientificDark/btnAdd.svg b/image/intelScientificDark/btnAdd.svg index c9b3dee..7a56973 100644 --- a/image/intelScientificDark/btnAdd.svg +++ b/image/intelScientificDark/btnAdd.svg @@ -1,4 +1,4 @@ - - + + diff --git a/image/intelScientificDark/btnAns.svg b/image/intelScientificDark/btnAns.svg index 9f09950..5a0c10c 100644 --- a/image/intelScientificDark/btnAns.svg +++ b/image/intelScientificDark/btnAns.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientificDark/btnAsin.svg b/image/intelScientificDark/btnAsin.svg index 9b71fec..4f04694 100644 --- a/image/intelScientificDark/btnAsin.svg +++ b/image/intelScientificDark/btnAsin.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientificDark/btnAtan.svg b/image/intelScientificDark/btnAtan.svg index 3813a81..42dc2bd 100644 --- a/image/intelScientificDark/btnAtan.svg +++ b/image/intelScientificDark/btnAtan.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientificDark/btnClear.svg b/image/intelScientificDark/btnClear.svg index 3432128..b0f1236 100644 --- a/image/intelScientificDark/btnClear.svg +++ b/image/intelScientificDark/btnClear.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientificDark/btnCos.svg b/image/intelScientificDark/btnCos.svg index 812f99b..3ac00a8 100644 --- a/image/intelScientificDark/btnCos.svg +++ b/image/intelScientificDark/btnCos.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientificDark/btnDeg.svg b/image/intelScientificDark/btnDeg.svg index 2812852..41c397e 100644 --- a/image/intelScientificDark/btnDeg.svg +++ b/image/intelScientificDark/btnDeg.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientificDark/btnDelete.svg b/image/intelScientificDark/btnDelete.svg index 2ca91bd..b6ff69a 100644 --- a/image/intelScientificDark/btnDelete.svg +++ b/image/intelScientificDark/btnDelete.svg @@ -1,5 +1,5 @@ - + diff --git a/image/intelScientificDark/btnDiv.svg b/image/intelScientificDark/btnDiv.svg index 9baa00d..220b68c 100644 --- a/image/intelScientificDark/btnDiv.svg +++ b/image/intelScientificDark/btnDiv.svg @@ -1,5 +1,5 @@ - - - + + + diff --git a/image/intelScientificDark/btnE.svg b/image/intelScientificDark/btnE.svg index 5094b38..59cb248 100644 --- a/image/intelScientificDark/btnE.svg +++ b/image/intelScientificDark/btnE.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientificDark/btnFac.svg b/image/intelScientificDark/btnFac.svg index 3e48f27..261618b 100644 --- a/image/intelScientificDark/btnFac.svg +++ b/image/intelScientificDark/btnFac.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientificDark/btnLbra.svg b/image/intelScientificDark/btnLbra.svg index c1e2e40..063aab3 100644 --- a/image/intelScientificDark/btnLbra.svg +++ b/image/intelScientificDark/btnLbra.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientificDark/btnLn.svg b/image/intelScientificDark/btnLn.svg index 6b334d7..3d12262 100644 --- a/image/intelScientificDark/btnLn.svg +++ b/image/intelScientificDark/btnLn.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientificDark/btnLog.svg b/image/intelScientificDark/btnLog.svg index 0f0ba5b..20fced9 100644 --- a/image/intelScientificDark/btnLog.svg +++ b/image/intelScientificDark/btnLog.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientificDark/btnMulti.svg b/image/intelScientificDark/btnMulti.svg index a0f7ec0..fceb055 100644 --- a/image/intelScientificDark/btnMulti.svg +++ b/image/intelScientificDark/btnMulti.svg @@ -1,4 +1,4 @@ - - + + diff --git a/image/intelScientificDark/btnPer.svg b/image/intelScientificDark/btnPer.svg index 02e20b2..bcba549 100644 --- a/image/intelScientificDark/btnPer.svg +++ b/image/intelScientificDark/btnPer.svg @@ -1,5 +1,5 @@ - - - + + + diff --git a/image/intelScientificDark/btnPi.svg b/image/intelScientificDark/btnPi.svg index b10658d..5ff707d 100644 --- a/image/intelScientificDark/btnPi.svg +++ b/image/intelScientificDark/btnPi.svg @@ -1,3 +1,6 @@ - + + + + diff --git a/image/intelScientificDark/btnPoint.svg b/image/intelScientificDark/btnPoint.svg index f8cf8c8..b5dfe22 100644 --- a/image/intelScientificDark/btnPoint.svg +++ b/image/intelScientificDark/btnPoint.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientificDark/btnRad.svg b/image/intelScientificDark/btnRad.svg index 8e22072..7aa7bf8 100644 --- a/image/intelScientificDark/btnRad.svg +++ b/image/intelScientificDark/btnRad.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientificDark/btnRbra.svg b/image/intelScientificDark/btnRbra.svg index 8c1359c..0e4c6ff 100644 --- a/image/intelScientificDark/btnRbra.svg +++ b/image/intelScientificDark/btnRbra.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientificDark/btnReci.svg b/image/intelScientificDark/btnReci.svg index f46757a..aec11fe 100644 --- a/image/intelScientificDark/btnReci.svg +++ b/image/intelScientificDark/btnReci.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientificDark/btnSin.svg b/image/intelScientificDark/btnSin.svg index 81dc7d8..3b78e2f 100644 --- a/image/intelScientificDark/btnSin.svg +++ b/image/intelScientificDark/btnSin.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientificDark/btnSub.svg b/image/intelScientificDark/btnSub.svg index 7fc267b..f845fe9 100644 --- a/image/intelScientificDark/btnSub.svg +++ b/image/intelScientificDark/btnSub.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientificDark/btnTan.svg b/image/intelScientificDark/btnTan.svg index 2618c94..9f07873 100644 --- a/image/intelScientificDark/btnTan.svg +++ b/image/intelScientificDark/btnTan.svg @@ -1,3 +1,3 @@ - + diff --git a/image/intelScientificDark/btnXPower2.svg b/image/intelScientificDark/btnXPower2.svg index 71e6e71..5a82c94 100644 --- a/image/intelScientificDark/btnXPower2.svg +++ b/image/intelScientificDark/btnXPower2.svg @@ -1,4 +1,11 @@ - - + + + + + + + + + diff --git a/image/intelScientificDark/btnXPower3.svg b/image/intelScientificDark/btnXPower3.svg index 82458d9..d96c869 100644 --- a/image/intelScientificDark/btnXPower3.svg +++ b/image/intelScientificDark/btnXPower3.svg @@ -1,4 +1,11 @@ - - + + + + + + + + + diff --git a/image/intelScientificDark/btnXSquare2.svg b/image/intelScientificDark/btnXSquare2.svg index 4a8fec9..73fb256 100644 --- a/image/intelScientificDark/btnXSquare2.svg +++ b/image/intelScientificDark/btnXSquare2.svg @@ -1,5 +1,5 @@ - - - + + + diff --git a/image/intelScientificDark/btnXSquare3.svg b/image/intelScientificDark/btnXSquare3.svg index c84d7e0..94e4d0d 100644 --- a/image/intelScientificDark/btnXSquare3.svg +++ b/image/intelScientificDark/btnXSquare3.svg @@ -1,5 +1,5 @@ - - - + + + diff --git a/image/intelScientificDark/btnYPowerX.svg b/image/intelScientificDark/btnYPowerX.svg index e3b0497..20b60d1 100644 --- a/image/intelScientificDark/btnYPowerX.svg +++ b/image/intelScientificDark/btnYPowerX.svg @@ -1,4 +1,4 @@ - - + + diff --git a/image/intelScientificDark/btnYSquareX.svg b/image/intelScientificDark/btnYSquareX.svg index 0976dfa..49184f3 100644 --- a/image/intelScientificDark/btnYSquareX.svg +++ b/image/intelScientificDark/btnYSquareX.svg @@ -1,5 +1,5 @@ - - - + + + diff --git a/kabase/Qt/log.hpp b/kabase/Qt/log.hpp new file mode 100644 index 0000000..a0ccd88 --- /dev/null +++ b/kabase/Qt/log.hpp @@ -0,0 +1,53 @@ +/* + * Log 类中实现了 Qt 的日志注册函数并且调用了 kysdk-log 库中的日志模块,调用方需要链接 Qt库 及 kysdk-log 库 + */ + +#ifndef LOG_HPP_ +#define LOG_HPP_ + +#include +#include +#include +#include + +namespace kabase +{ + +class Log +{ +public: + Log() = default; + ~Log() = default; + + static void logOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg) + { + QByteArray localMsg = msg.toLocal8Bit(); + const char *message = localMsg.constData(); + const char *file = context.file ? context.file : ""; + const char *function = context.function ? context.function : ""; + + switch (type) { + case QtDebugMsg: + klog_debug("%s (%s:%u,%s)\n", message, file, context.line, function); + break; + case QtInfoMsg: + klog_info("%s (%s:%u,%s)\n", message, file, context.line, function); + break; + case QtWarningMsg: + klog_warning("%s (%s:%u,%s)\n", message, file, context.line, function); + break; + case QtCriticalMsg: + klog_err("%s (%s:%u,%s)\n", message, file, context.line, function); + break; + case QtFatalMsg: + klog_emerg("%s (%s:%u,%s)\n", message, file, context.line, function); + break; + } + + return; + }; +}; + +} + +#endif \ No newline at end of file diff --git a/kabase/Qt/windowmanage.hpp b/kabase/Qt/windowmanage.hpp new file mode 100644 index 0000000..6894e24 --- /dev/null +++ b/kabase/Qt/windowmanage.hpp @@ -0,0 +1,88 @@ +#ifndef QT_WINDOWMANAGE_HPP_ +#define QT_WINDOWMANAGE_HPP_ + +/* + * windowmanage 类使用了 kysdk-waylandhelper 库,使用时需要链接 kysdk-waylandhelper 库 + */ + +#include + +#include +#include +#include +#include + +#include +#include + +namespace kabase +{ + +class WindowManage : public QObject +{ + Q_OBJECT +public: + WindowManage() = default; + ~WindowManage() = default; + + static void setScalingProperties(void) + { + #if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0)) + QApplication::setAttribute(Qt::AA_EnableHighDpiScaling); + QApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); + #endif + + #if (QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)) + QApplication::setHighDpiScaleFactorRoundingPolicy(Qt::HighDpiScaleFactorRoundingPolicy::PassThrough); + #endif + + return; + }; + + static void setMiddleOfScreen(QWidget *w) { + int sw = QGuiApplication::primaryScreen()->availableGeometry().width(); + int sh = QGuiApplication::primaryScreen()->availableGeometry().height(); + kdk::WindowManager::setGeometry(w->windowHandle(), QRect((sw - w->width()) / 2, (sh - w->height()) / 2, w->width(), w->height())); + + return; + }; + + static void removeHeader(QWidget *w) { + kdk::UkuiStyleHelper::self()->removeHeader(w); + + return; + }; + + /* id 的初始值必须为 0 */ + static void getWindowId(quint32 *id) { + connect(kdk::WindowManager::self(), &kdk::WindowManager::windowAdded, [=](const kdk::WindowId &windowId) { + if (getpid() == (int)kdk::WindowManager::getPid(windowId) && *id == 0) { + *id = windowId.toLongLong(); + } + }); + + return; + }; + + static void keepWindowAbove(const quint32 id) { + kdk::WindowManager::keepWindowAbove(id); + + return; + }; + + static void activateWindow(const quint32 id) { + kdk::WindowManager::activateWindow(id); + + return; + } +}; + +} + +/* + * wayland 下使用窗口置顶接口 desktop 文件需要注意以下两点 + * 1. 增加字段: X-KDE-Wayland-Interfaces=org_kde_plasma_window_management,org_kde_plasma_activation_feedback,org_kde_kwin_keystate,org_kde_kwin_fake_input,zkde_screencast_unstable_v1 + * 2. Exec字段需要为绝对路径并且不能携带参数 + */ + +#endif \ No newline at end of file diff --git a/kabase/buriedpoint.hpp b/kabase/buriedpoint.hpp new file mode 100644 index 0000000..1413571 --- /dev/null +++ b/kabase/buriedpoint.hpp @@ -0,0 +1,306 @@ +/* + * BuriedPoint 类使用了 kysdk-log 和 kysdk-diagnostics 库,调用方需要链接 kysdk-log 和 kysdk-diagnostics 库 + */ + +#ifndef BURIEDPOINT_HPP_ +#define BURIEDPOINT_HPP_ + +#include +#include +#include +#include + +#include +#include + +#include "utils.hpp" + +namespace kabase +{ + +class BuriedPoint +{ +public: + BuriedPoint() = default; + ~BuriedPoint() = default; + + /* 埋点类型 */ + enum BuriedPointType { + FunctionType = 0, /* 功能性打点 */ + PerformanceType, /* 性能型打点 */ + StabilityType, /* 稳定型打点 */ + TestType /* 测试预留 */ + }; + + /* 点位 */ + /* 规则说明 */ + /* 0x 00 0 000 + * | | | + * 应用标识 类型标识 点位 + */ + enum PT { + KylinIpmsgNicknameModify = 0x010001, /* 昵称修改 */ + KylinIpmsgOpenSaveDir = 0x010002, /* 打开文件保存目录(主界面入口) */ + KylinIpmsgMainSearch = 0x010003, /* 主界面搜索 */ + KylinIpmsgHistorySearch = 0x010004, /* 历史记录搜索 */ + KylinIpmsgSetTop = 0x010005, /* 设置置顶 */ + KylinIpmsgModifyFriendNotes = 0x010006, /* 修改好友备注 */ + KylinIpmsgViewInformation = 0x010007, /* 查看资料 */ + KylinIpmsgChangeDir = 0x010008, /* 更改目录 */ + KylinIpmsgCleanCache = 0x010009, /* 清空缓存 */ + KylinIpmsgClearChatRecord = 0x010010, /* 清空聊天记录 */ + KylinIpmsgClearSingleChatRecord = 0x010011, /* 清空单人聊天记录 */ + KylinIpmsgDeleteRecord = 0x010012, /* 删除记录 */ + KylinIpmsgBatchDelete = 0x010013, /* 批量删除 */ + KylinIpmsgSendMessage = 0x010014, /* 发送消息 */ + KylinIpmsgSendFiles = 0x010015, /* 发送文件 */ + KylinIpmsgSendDir = 0x010016, /* 发送目录 */ + KylinIpmsgSendScreenshot = 0x010017, /* 发送截屏 */ + KylinIpmsgResend = 0x010018, /* 重新发送 */ + KylinIpmsgCopy = 0x010019, /* 复制 */ + KylinIpmsgOpen = 0x010020, /* 打开 */ + KylinIpmsgOpenDir = 0x010021, /* 打开目录 */ + KylinIpmsgSaveAs = 0x010022, /* 另存为 */ + KylinIpmsgTray = 0x010023, /* 托盘 */ + + KylinFontViewInstallFont = 0x020001, /* 安装字体 */ + KylinFontViewUninstallFont = 0x020002, /* 卸载字体 */ + KylinFontViewSearchFont = 0x020003, /* 搜索字体 */ + KylinFontViewApplyFont = 0x020004, /* 应用字体 */ + KylinFontViewExportFont = 0x020005, /* 导出字体 */ + KylinFontViewCollectionFont = 0x020006, /* 收藏字体 */ + KylinFontViewCancelCollectionFont = 0x020007, /* 取消收藏字体 */ + KylinFontViewFontInformation = 0x020008, /* 字体信息 */ + KylinFontViewCopywritingChange = 0x020009, /* 文案更改 */ + KylinFontViewFontSizeChange = 0x020010, /* 预览字号调整 */ + + KylinCalaulatorStandardMode = 0x030001, /* 标准模式 */ + KylinCalaulatorScientificMode = 0x030002, /* 科学模式 */ + KylinCalaulatorRateMode = 0x030003, /* 汇率模式 */ + KylinCalaulatorProgrammerMode = 0x030004, /* 程序员模式 */ + + KylinWeatherCollection = 0x040001, /* 收藏 */ + KylinWeatherChangeCity = 0x040002, /* 切换城市 */ + KylinWeatherCitySearch = 0x040003, /* 城市搜索 */ + KylinWeatherFullScreen = 0x040004, /* 全屏 */ + + KylinPhotoViewerOpenPicture = 0x050001, /* 打开图片 */ + KylinPhotoViewerSwitchPicture = 0x050002, /* 切换图片 */ + KylinPhotoViewerFlip = 0x050003, /* 翻转 */ + KylinPhotoViewerRotate = 0x050004, /* 旋转 */ + KylinPhotoViewerAddPicture = 0x050005, /* 添加图片 */ + KylinPhotoViewerZoomInandOut = 0x050006, /* 放大缩小 */ + KylinPhotoViewerPictureDetails = 0x050007, /* 图片详情 */ + KylinPhotoViewerCutting = 0x050008, /* 裁剪 */ + KylinPhotoViewerCoyp = 0x050009, /* 复制 */ + KylinPhotoViewerPrint = 0x050010, /* 打印 */ + KylinPhotoViewerDelete = 0x050011, /* 删除 */ + KylinPhotoViewerSaveAs = 0x050012, /* 另存为 */ + KylinPhotoViewerRename = 0x050013, /* 重命名 */ + KylinPhotoViewerSetAsDesktopWallpaper = 0x050014, /* 设置为桌面壁纸 */ + KylinPhotoViewerShowInFolder = 0x050015, /* 在文件夹中显示 */ + KylinPhotoViewerPicturePreview = 0x050016, /* 图片预览 */ + KylinPhotoViewerCurrentPointZoom = 0x050017, /* 当前点缩放 */ + + KylinServiceSupportFileUpload = 0x060001, /* 文件上传 */ + KylinServiceSupportVideoape = 0x060002, /* 录像 */ + KylinServiceSupportFileCopy = 0x060003, /* 文件拷贝 */ + KylinServiceSupportJumpOfficicalWebsite = 0x060004, /* 跳转官网主页 */ + KylinServiceSupportJumpOnlineService = 0x060005, /* 跳转在线客服 */ + + KylinPrinterManuallyInstallPrinter = 0x070001, /* 手动安装打印机 */ + KylinPrinterSetResolution = 0x070002, /* 设置分辨率 */ + KylinPrinterSetPaperSize = 0x070003, /* 设置纸张大小 */ + KylinPrinterSetPaperType = 0x070004, /* 设置纸张类型 */ + KylinPrinterSetCationSource = 0x070005, /* 设置纸盒来源 */ + KylinPrinterSetDuplexPrint = 0x070006, /* 设置双面打印 */ + KylinPrinterSetInkType = 0x070007, /* 设置墨水类型 */ + KylinPrinterADDRemovePrinter = 0x070008, /* 添加删除打印机 */ + KylinPrinterSetShareStartup = 0x070009, /* 设置共享启动 */ + KylinPrintTestPage = 0x070010, /* 打印测试页 */ + KylinPrinterCancelPrintJob = 0x070011, /* 取消打印任务 */ + KylinPrinterDeletePrintJob = 0x070012, /* 删除打印任务 */ + KylinPrinterRePrint = 0x070013, /* 重新打印 */ + KylinPrinterManualyModifyDrive = 0x070014, /* 手动修改驱动 */ + KylinPrinterRename = 0x070015, /* 重命名 */ + + KylinRecorderRecording = 0x080001, /* 录音 */ + KylinRecorderPlayPause = 0x080002, /* 播放暂停 */ + KylinRecorderClip = 0x080003, /* 剪辑 */ + KylinRecorderSign = 0x080004, /* 标记 */ + KylinRecorderDelete = 0x080005, /* 删除 */ + KylinRecorderBluetoothRecord = 0x080006, /* 蓝牙录音 */ + KylinRecorderSaveAs = 0x080007, /* 另存为 */ + KylinRecorderOpenFileLocation = 0x080008, /* 打开文件位置 */ + KylinRecorderTopicSwitch = 0x080009, /* 主题切换 */ + + KylinCameraPreviewMonitor = 0x090001, /* 预览画面 */ + KylinCameraSingleShot = 0x090002, /* 单拍 */ + KylinCameraContinuousShot = 0x090003, /* 连拍 */ + KylinCameraDelay = 0x090004, /* 延时拍照 */ + KylinCameraVideotape = 0x090005, /* 录像 */ + KylinCameraCameraSelection = 0x090006, /* 摄像头选用 */ + KylinCameraResolutionSelection = 0x090007, /* 分辨率选用 */ + KylinCameraVideoFormatSelection = 0x090008, /* 视频格式选用 */ + KylinCameraPictureFormatSelection = 0x090009, /* 图片格式选用 */ + KylinCameraChangeSavePath = 0x090010, /* 更改存储路径 */ + KylinCameraThumbnail = 0x090011, /* 缩略图 */ + KylinCameraGridLine = 0x090012, /* 网格线 */ + KylinCameraMirrorFun = 0x090013, /* 镜像功能 */ + + KylinNotebookOrderList = 0x100001, /* 有序列表 */ + KylinNotebookUnorderList = 0x100002, /* 无序列表 */ + KylinNotebookBold = 0x100003, /* 加粗 */ + KylinNotebookItalics = 0x100004, /* 斜体 */ + KylinNotebookUnderline = 0x100005, /* 下划线 */ + KylinNotebookDeleteline = 0x100006, /* 删除线 */ + KylinNotebookFontSize = 0x100007, /* 字号 */ + KylinNotebookFontColor = 0x100008, /* 字体颜色 */ + KylinNotebookInsertPicture = 0x100009, /* 插入图片 */ + KylinNotebookInterfaceColor = 0x100010, /* 界面配色 */ + KylinNotebookDeleteCurrent = 0x100011, /* 删除当前 */ + KylinNotebookUiTop = 0x100012, /* UI 置顶 */ + KylinNotebookListMode = 0x100013, /* 列表模式 */ + KylinNotebookIconMode = 0x100014, /* 图标模式 */ + KylinNotebookNewNote = 0x100015, /* 新建便签 */ + KylinNotebookSearch = 0x100016, /* 搜索 */ + KylinNotebookDelete = 0x100017, /* 删除 */ + KylinNotebookModeChange = 0x100018, /* 模式切换 */ + + KylinOsManagerGarbageClean = 0x110001, /* 垃圾清理 */ + KylinOsManagerFileShredding = 0x110002, /* 文件粉碎 */ + + KylinGpuControllerBaseInfo = 0x120001, /* 基本信息 */ + KylinGpuControllerRunState = 0x120002, /* 运行状态 */ + KylinGpuControllerDriveInfo = 0x120003, /* 驱动信息 */ + KylinGpuControllerSwitch = 0x120003, /* 显卡切换 */ + + KylinNetworkCheckStartCheck = 0x130001, /* 开始检测 */ + + KylinGallerySwitchFolder = 0x140001, /* 切换目录 */ + KylinGalleryOpenViewer = 0x140002, /* 打开麒麟看图 */ + + KylinMobileAssistantAndroidConn = 0x150001, /* 安卓链接 */ + KylinMobileAssistantPcConn = 0x150002, /* PC链接 */ + KylinMobileAssistantUsbConn = 0x150003, /* Usb链接 */ + KylinMobileAssistantWifiConn = 0x150004, /* Wifi链接 */ + KylinMobileAssistantDeviceDiscovery = 0x150005, /* 设备发现 */ + KylinMobileAssistantDisconnect = 0x150006, /* 断开链接 */ + KylinMobileAssistantMobileScreen = 0x150007, /* 手机投屏 */ + KylinMobileAssistantPcScreen = 0x150008, /* PC 投屏 */ + KylinMobileAssistantPictureList = 0x150009, /* 图片列表 */ + KylinMobileAssistantVideoList = 0x150010, /* 视频列表 */ + KylinMobileAssistantAudioList = 0x150011, /* 音频列表 */ + KylinMobileAssistantDocList = 0x150012, /* 文档列表 */ + KylinMobileAssistantQQFileList = 0x150013, /* QQ 文件列表 */ + KylinMobileAssistantWechatFileList = 0x150014, /* 微信文件列表 */ + KylinMobileAssistantMobileStorage = 0x150015, /* 手机存储 */ + KylinMobileAssistantSwitchView = 0x150016, /* 切换视图 */ + KylinMobileAssistantRefreshList = 0x150017, /* 刷新列表 */ + KylinMobileAssistantUploadFile = 0x150018, /* 上传文件 */ + KylinMobileAssistantDownloadFile = 0x150019, /* 下载文件 */ + KylinMobileAssistantOpenFile = 0x150020, /* 打开文件 */ + + KylinScannerOneClickBeautification = 0x160001, /* 一键美化 */ + KylinScannerRectification = 0x160002, /* 自动纠偏 */ + KylinScannerTextRecognition = 0x160003, /* 文本识别 */ + KylinScannerCutting = 0x160004, /* 裁剪 */ + KylinScannerRotate = 0x160005, /* 旋转 */ + KylinScannerImage = 0x160006, /* 镜像 */ + KylinScannerAddWatermark = 0x160007, /* 加水印 */ + KylinScannerSendMail = 0x160008, /* 发送邮件 */ + KylinScannerSaveAs = 0x160009, /* 另存为 */ + KylinScannerSinglePageScan = 0x160010, /* 单页扫描 */ + KylinScannerMultiPageScan = 0x160011, /* 多页扫描 */ + + KylinCalendarMonthDetails = 0x170001, /* 查看月详情 */ + KylinCalendarMonthSwitch = 0x170002, /* 月切换 */ + KylinCalendarDoday = 0x170003, /* 定位到今天 */ + + TestFunPoint = 0x999999 /* 测试预留 */ + }; + + static bool functionBuriedPoint(AppName packageName, PT point) + { + static char *messageType = (char *)"FunctionType"; + char *appName = strdup(Utils::getAppName(packageName).c_str()); + + std::string hex; + std::stringstream ss; + + ss << std::hex << point; + ss >> hex; + + KBuriedPoint pt; + pt.key = "FunctionName"; + pt.value = hex.c_str(); + + if (kdk_buried_point(appName, messageType, &pt, 1)) { + free(appName); + klog_err("kabase: buried point fail !\n"); + return false; + } + + free(appName); + + return true; + }; + + static bool buriedPoint(AppName packageName, BuriedPointType buriedPointType, std::map data) + { + char *appName = strdup(Utils::getAppName(packageName).c_str()); + + char type[128]; + memset(type, '\0', sizeof(type)); + switch (buriedPointType) { + case BuriedPointType::FunctionType: + strcpy(type, "FunctionType"); + break; + case BuriedPointType::PerformanceType: + strcpy(type, "PerformanceType"); + break; + case BuriedPointType::StabilityType: + strcpy(type, "StabilityType"); + break; + default: + break; + } + + if (!strlen(type)) { + klog_err("kabase: buried point type is empty !\n"); + return false; + } + + int size = data.size(); + if (size == 0) { + klog_err("kabase: buried point data is empty !\n"); + return false; + } + + KBuriedPoint *pt = (KBuriedPoint *)malloc(sizeof(KBuriedPoint) * size); + { + int i; + std::map::iterator it; + for (i = 0, it = data.begin(); it != data.end() && i < size; it++, i++) { + pt[i].key = it->first.c_str(); + pt[i].value = it->second.c_str(); + } + } + + if (kdk_buried_point(appName, type, pt, size)) { + free(appName); + free(pt); + klog_err("kabase: buried point fail !\n"); + return false; + } + + free(appName); + free(pt); + + return true; + }; +}; + +} + +#endif \ No newline at end of file diff --git a/kabase/utils.hpp b/kabase/utils.hpp new file mode 100644 index 0000000..7cb5e48 --- /dev/null +++ b/kabase/utils.hpp @@ -0,0 +1,88 @@ +#ifndef UTILS_HPP_ +#define UTILS_HPP_ + +#include + +namespace kabase +{ + +/* 应用名 */ +enum AppName { + KylinIpmsg = 0, /* 传书 */ + KylinFontViewer, /* 字体管理器 */ + KylinCalculator, /* 麒麟计算器 */ + KylinGpuController, /* 显卡控制器 */ + KylinMusic, /* 音乐 */ + KylinWeather, /* 天气 */ + KylinPhotoViewer, /* 看图 */ + KylinServiceSupport, /* 服务与支持 */ + KylinPrinter, /* 麒麟打印 */ + KylinCalendar, /* 日历 */ + KylinRecorder, /* 录音 */ + KylinCamera, /* 摄像头 */ + KylinNotebook, /* 便签 */ + KylinOsManager, /* 麒麟管家 */ + KylinNetworkCheck, /* 网络检测工具 */ + KylinGallery, /* 相册 */ + KylinScanner, /* 扫描 */ + KylinMobileAssistant, /* 多端协同 */ + KylinTest /* 测试预留 */ +}; + +class Utils +{ +public: + Utils() = default; + ~Utils() = default; + + static std::string getAppName(AppName appName) + { + switch (appName) { + case AppName::KylinCalculator: + return "kylin-calaulator"; + case AppName::KylinCalendar: + return "kylin-calendar"; + case AppName::KylinCamera: + return "kylin-camera"; + case AppName::KylinFontViewer: + return "kylin-font-viewer"; + case AppName::KylinGpuController: + return "kylin-gpu-controller"; + case AppName::KylinIpmsg: + return "kylin-ipmsg"; + case AppName::KylinMusic: + return "kylin-music"; + case AppName::KylinPhotoViewer: + return "kylin-photo-viewer"; + case AppName::KylinPrinter: + return "kylin-printer"; + case AppName::KylinRecorder: + return "kylin-recorder"; + case AppName::KylinServiceSupport: + return "kylin-service-support"; + case AppName::KylinWeather: + return "kylin-weather"; + case AppName::KylinNotebook: + return "kylin-notebook"; + case AppName::KylinOsManager: + return "kylin-os-manager"; + case AppName::KylinNetworkCheck: + return "kylin-network-check-tools"; + case AppName::KylinGallery: + return "kylin-gallery"; + case AppName::KylinScanner: + return "kylin-scanner"; + case AppName::KylinMobileAssistant: + return "kylin-mobile-assistant"; + default: + return ""; + } + + /* 不应该被执行 */ + return ""; + }; +}; + +} + +#endif \ No newline at end of file diff --git a/kylin-calculator.desktop b/kylin-calculator.desktop index 47c91bf..d599b7f 100644 --- a/kylin-calculator.desktop +++ b/kylin-calculator.desktop @@ -9,3 +9,4 @@ Exec=/usr/bin/kylin-calculator %u Icon=kylin-calculator Type=Application Categories=Utility;Calculator; +X-KDE-Wayland-Interfaces=org_kde_plasma_window_management,org_kde_plasma_activation_feedback,org_kde_kwin_keystate,org_kde_kwin_fake_input,zkde_screencast_unstable_v1 diff --git a/kylin-calculator.pri b/kylin-calculator.pri index 26d8320..aba55e8 100644 --- a/kylin-calculator.pri +++ b/kylin-calculator.pri @@ -8,11 +8,10 @@ TARGET = kylin-calculator LIBS += -lpthread LIBS += -lX11 -LIBS += -lukui-com4c -lukui-com4cxx LIBS += -lgmp CONFIG += link_pkgconfig c++11 link_pkgconfig lrelease -PKGCONFIG += gsettings-qt gsl kysdk-kabase +PKGCONFIG += gsettings-qt gsl kysdk-alm kysdk-ukenv kysdk-log kysdk-diagnostics kysdk-waylandhelper kysdk-sysinfo message($$system(./translations/generate_translations_qm.sh)) @@ -24,6 +23,8 @@ INCLUDEPATH += \ $$PWD/calculate/BigFloat/ \ $$PWD/calculate/input/ \ $$PWD/calculate/cal/ \ + $$PWD/kabase \ + $$PWD/kabase/Qt \ SOURCES += \ $$PWD/calc_programmer/calc/calc.cpp \ diff --git a/logic_center.cpp b/logic_center.cpp index 85937bc..b28fcba 100644 --- a/logic_center.cpp +++ b/logic_center.cpp @@ -36,7 +36,6 @@ void LogicCenter::init(void) void LogicCenter::establishInterrupt(void) { connect(this->m_mainWin, &MainWindow::sigTranparencyChange, this, &LogicCenter::slotTranparencyChange); - connect(this->m_mainWin, &MainWindow::sigIntelModeChange, this, &LogicCenter::slotIntelModeChange); return; } @@ -47,18 +46,3 @@ void LogicCenter::slotTranparencyChange(void) return; } - -void LogicCenter::slotIntelModeChange(bool mode) -{ - if (mode == true) { - MainWindow::getInstance()->pTitleBar->m_min->hide(); - MainWindow::getInstance()->pTitleBar->m_max->hide(); - MainWindow::getInstance()->pTitleBar->m_close->hide(); - } else { - MainWindow::getInstance()->pTitleBar->m_min->show(); - MainWindow::getInstance()->pTitleBar->m_max->show(); - MainWindow::getInstance()->pTitleBar->m_close->show(); - } - - return; -} diff --git a/logic_center.h b/logic_center.h index e4cf2d3..c83f9a2 100644 --- a/logic_center.h +++ b/logic_center.h @@ -25,7 +25,6 @@ signals: public slots: void slotTranparencyChange(void); - void slotIntelModeChange(bool); }; #endif diff --git a/main.cpp b/main.cpp index 0c08169..1701c9b 100644 --- a/main.cpp +++ b/main.cpp @@ -5,9 +5,10 @@ #include #include #include -#include -#include -#include +#include + +#include "log.hpp" +#include "windowmanage.hpp" #include "mainwindow.h" #include "data_warehouse.h" @@ -15,9 +16,9 @@ int main(int argc, char *argv[]) { - qInstallMessageHandler(kdk::kabase::Log::logOutput); - kdk::kabase::WindowManagement::setScalingProperties(); - kdk::kabase::QtSingleApplication a(argc, argv); + qInstallMessageHandler(kabase::Log::logOutput); + kabase::WindowManage::setScalingProperties(); + kdk::QtSingleApplication a(argc, argv); a.setApplicationVersion("1.1.0"); a.setWindowIcon(QIcon::fromTheme("kylin-calculator")); if (a.isRunning()) { @@ -25,6 +26,7 @@ int main(int argc, char *argv[]) a.sendMessage("running , 4000"); return 0; } + /* 加载翻译文件 */ QString tranPath("/usr/share/kylin-calculator/translations/"); QString tranQtPath = QLibraryInfo::location(QLibraryInfo::TranslationsPath); @@ -45,14 +47,23 @@ int main(int argc, char *argv[]) LogicCenter::getInstance(); /* 添加窗管协议 */ - kdk::kabase::WindowManagement::setWindowMotifHint(MainWindow::getInstance()->winId()); + kabase::WindowManage::removeHeader(MainWindow::getInstance()); /* 移动到窗口中间 */ - QRect availableGeometry = qApp->primaryScreen()->availableGeometry(); - MainWindow::getInstance()->move(availableGeometry.width() / 2 - MainWindow::getInstance()->width() / 2, - availableGeometry.height() / 2 - MainWindow::getInstance()->height() / 2); + // QRect availableGeometry = qApp->primaryScreen()->availableGeometry(); + // MainWindow::getInstance()->move(availableGeometry.width() / 2 - MainWindow::getInstance()->width() / 2, + // availableGeometry.height() / 2 - MainWindow::getInstance()->height() / 2); a.setActivationWindow(MainWindow::getInstance()); + + /* wayland 下最小化拉起 */ + if (QGuiApplication::platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) { + QObject::connect(&a, &kdk::QtSingleApplication::messageReceived, [=]() { + kabase::WindowManage::activateWindow(MainWindow::getInstance()->getWinId()); + }); + } + MainWindow::getInstance()->show(); + kabase::WindowManage::setMiddleOfScreen(MainWindow::getInstance()); return a.exec(); } diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 725deb0..a6601af 100755 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -9,9 +9,10 @@ #include #include #include -#include -#include -#include +#include +#include +#include "buriedpoint.hpp" +#include "windowmanage.hpp" #include "mainwindow.h" #include "data_warehouse.h" @@ -29,16 +30,7 @@ MainWindow *MainWindow::getInstance() MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { - /* 初始化横竖屏的初值start */ - hLayoutFlag = PCMode; - if (DataWarehouse::getInstance()->platform == QString("intel")) { - hOrVMode = new HorizontalOrVerticalMode; - hLayoutFlag = hOrVMode->defaultModeCapture(); - connect(hOrVMode, &HorizontalOrVerticalMode::RotationSig, this, &MainWindow::slotIntelHVModeChanged); - } - /* 初始化横竖屏的初值end */ - - + kabase::WindowManage::getWindowId(&m_winId); InputProcess::inputFromButton(STANDARD); /* 初始化GSetting */ @@ -50,6 +42,19 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) /* 设置组件样式 */ setWidgetStyle(); + /* 初始化横竖屏的初值start */ + hLayoutFlag = PCMode; + if (DataWarehouse::getInstance()->platform == QString("intel")) { + hOrVMode = new HorizontalOrVerticalMode; + connect(hOrVMode, &HorizontalOrVerticalMode::RotationSig, this, &MainWindow::slotIntelModeChanged); + hLayoutFlag = hOrVMode->defaultModeCapture(); + setIntelModeChange(hLayoutFlag); + if (hLayoutFlag != deviceMode::PCMode) { + m_isPcModeStarted = false; + } + } + /* 初始化横竖屏的初值end */ + /* intel 菜单打开默认模式为 科学模式 , 发送信号 , 改变模式 */ if (DataWarehouse::getInstance()->platform == QString("intel") && DataWarehouse::getInstance()->intelPlug == DataWarehouse::StartMode::MODE_MAIN) { @@ -64,6 +69,12 @@ MainWindow::~MainWindow() delete hOrVMode; } + +quint32 MainWindow::getWinId() +{ + return m_winId; +} + void MainWindow::paintEvent(QPaintEvent *event) { Q_UNUSED(event); @@ -125,24 +136,22 @@ void MainWindow::initGsetting(void) /* 透明度 */ if (DataWarehouse::getInstance()->platform == QString("intel")) { - DataWarehouse::getInstance()->transparency = kdk::kabase::Gsettings::getSystemTransparency().toDouble() * 255; - connect(kdk::kabase::Gsettings::getPoint(), &kdk::kabase::Gsettings::systemFontSizeChange, this, [=]() { - DataWarehouse::getInstance()->transparency = - kdk::kabase::Gsettings::getSystemTransparency().toDouble() * 255; + DataWarehouse::getInstance()->transparency = kdk::GsettingMonitor::getSystemTransparency().toDouble() * 255; + connect(kdk::GsettingMonitor::getInstance(), &kdk::GsettingMonitor::systemFontSizeChange, this, [=]() { + DataWarehouse::getInstance()->transparency = kdk::GsettingMonitor::getSystemTransparency().toDouble() * 255; emit this->sigTranparencyChange(); }); } /* 主题 */ - QString themeStr = kdk::kabase::Gsettings::getSystemTheme().toString(); + QString themeStr = kdk::GsettingMonitor::getSystemTheme().toString(); if (themeStr == QString("ukui-dark") || themeStr == QString("ukui-black")) { WidgetStyle::themeColor = 1; } else { WidgetStyle::themeColor = 0; } - - connect(kdk::kabase::Gsettings::getPoint(), &kdk::kabase::Gsettings::systemThemeChange, this, [=]() { - QString themeStr = kdk::kabase::Gsettings::getSystemTheme().toString(); + connect(kdk::GsettingMonitor::getInstance(), &kdk::GsettingMonitor::systemThemeChange, this, [=]() { + QString themeStr = kdk::GsettingMonitor::getSystemTheme().toString(); if (themeStr == QString("ukui-dark") || themeStr == QString("ukui-black")) { WidgetStyle::themeColor = 1; changeDarkTheme(); @@ -151,25 +160,13 @@ void MainWindow::initGsetting(void) changeLightTheme(); } }); + return; } -void MainWindow::slotIntelHVModeChanged(bool sig) +void MainWindow::slotIntelModeChanged(bool sig) { hLayoutFlag = hOrVMode->defaultModeCapture(); - QString label = this->currentModel; - if (label == STANDARD) { //采用标准模式的布局 - setStandardUi(); - } else { //采用科学模式的布局 - setScientificUi(); - } -} - -void MainWindow::slotIntelModeChange(bool mode) -{ - DataWarehouse::getInstance()->intelMode = mode; - qInfo() << "Info : intel mode change ---> " << mode; - - emit this->sigIntelModeChange(mode); + setIntelModeChange(hLayoutFlag); return; } @@ -208,8 +205,6 @@ void MainWindow::setWidgetUi() /* 设置标题栏 */ setCommonUi(); - - this->resize(STANDARD_WINDOWW, STANDARD_WINDOWH); /* 标准计算界面布局 */ setStandardUi(); @@ -276,53 +271,14 @@ void MainWindow::setCommonUi() void MainWindow::setStandardUi() { m_hisNumMax = PC_HIS_NUM; - int width = QGuiApplication::primaryScreen()->size().width(); - int height = QGuiApplication::primaryScreen()->size().height(); if (DataWarehouse::getInstance()->platform == QString("intel")) { - this->setMinimumSize(INTEL_STANDARD_WINDOWW, INTEL_STANDARD_WINDOWH); - if (DataWarehouse::getInstance()->intelPlug == DataWarehouse::StartMode::MODE_PLUG - || DataWarehouse::getInstance()->intelPlug == DataWarehouse::StartMode::MODE_PLUG_AGAIN) { + if (hLayoutFlag == deviceMode::PCMode && this->windowState() == Qt::WindowNoState) { + this->setMinimumSize(INTEL_STANDARD_WINDOWW, INTEL_STANDARD_WINDOWH); this->resize(INTEL_STANDARD_WINDOWW, INTEL_STANDARD_WINDOWH); - width = INTEL_STANDARD_WINDOWW; - } else { - if (hLayoutFlag == PCMode) { // pc模式 - this->resize(INTEL_STANDARD_WINDOWW, INTEL_STANDARD_WINDOWH); - width = INTEL_STANDARD_WINDOWW; - emit this->sigIntelModeChange(false); - if (DataWarehouse::getInstance()->winFlag == QString("min")) { - this->resize(INTEL_STANDARD_WINDOWW, INTEL_STANDARD_WINDOWH); - } - } else if (hLayoutFlag == PADHorizontalMode) { //横屏模式 - m_hisNumMax = MAX_HIS_NUM; - this->resize(width, height); - emit this->sigIntelModeChange(true); - } else { //竖屏模式 - m_hisNumMax = MAX_HIS_NUM; - if (width > height) { - int temp = height; - height = width; - width = temp; - } - this->resize(width, height); - emit this->sigIntelModeChange(true); - } - // this->setMinimumSize(400,510); - if (DataWarehouse::getInstance()->winFlag == QString("min")) { - this->resize(400, 510); - } } } else { this->setFixedSize(STANDARD_WINDOWW, STANDARD_WINDOWH); - /* 主线版本暂时禁用最大化功能 */ - // this->setMinimumSize(STANDARD_WINDOWW,STANDARD_WINDOWH); - // if (DataWarehouse::getInstance()->winFlag == QString("min")) { - // this->resize(STANDARD_WINDOWW, STANDARD_WINDOWH); - //} } - // if(testIntelLayout){ - // this->setFixedSize(540 , 900); - // } - /* 设置当前模式 */ this->currentModel = STANDARD; @@ -358,48 +314,17 @@ void MainWindow::setStandardUi() this->lab_prepare = standardOutput->staLabPre; this->lab_now = standardOutput->staLabNow; - this->lab_now->setText("0"); - this->lab_prepare->setText(""); - - /* 获取历史记录 */ - int size = disHistory.size(); - QString historyText = ""; - int hisIndex = (size - m_hisNumMax >= 0) ? (size - m_hisNumMax) : 0; - for (int i = hisIndex; i < size; i++) { - historyText = historyText + disHistory.at(i); - } - - historyText.replace(SUB, "-"); - - // 去除末尾换行符 - historyText.chop(1); - this->lab_last->setText(historyText); - - /* 不同平台 标题栏 处理 */ - if (DataWarehouse::getInstance()->platform == QString("intel")) { - if (this->pTitleBar != nullptr) { - if (DataWarehouse::getInstance()->intelMode == true) { - /* 平板模式 */ - this->pTitleBar->m_min->hide(); - this->pTitleBar->m_max->hide(); - this->pTitleBar->m_close->hide(); - } else { - if (DataWarehouse::getInstance()->intelPlug != DataWarehouse::StartMode::MODE_MAIN) { - /* 小插件模式 */ - this->pTitleBar->m_min->hide(); - this->pTitleBar->m_max->hide(); - this->pTitleBar->m_close->hide(); - } else { - /* pc 模式 */ - this->pTitleBar->m_max->hide(); - } - } - } + if (DataWarehouse::getInstance()->intelPlug != DataWarehouse::StartMode::MODE_MAIN) { + /* 小插件模式 */ + this->pTitleBar->m_min->hide(); + this->pTitleBar->m_max->hide(); + this->pTitleBar->m_close->hide(); } /* 不同平台 按钮 风格处理 */ if (DataWarehouse::getInstance()->platform == QString("intel")) { - standardModel->createIntelStyle(width); + this->pTitleBar->m_max->hide(); + standardModel->createIntelStyle(); } /* 不同平台 采用相同的显示屏 */ @@ -411,16 +336,6 @@ void MainWindow::setStandardUi() standardOutput->show(); standardModel->show(); - /* 移动到屏幕中间 */ - // if (DataWarehouse::getInstance()->platform == QString("intel") - // && (DataWarehouse::getInstance()->intelPlug == DataWarehouse::StartMode::MODE_PLUG - // || DataWarehouse::getInstance()->intelPlug == DataWarehouse::StartMode::MODE_PLUG_AGAIN)) { - // return; - // } - // QRect availableGeometry = qApp->primaryScreen()->availableGeometry(); - // this->move(availableGeometry.width() / 2 - this->width() / 2, availableGeometry.height() / 2 - this->height() - // / 2); - return; } @@ -428,46 +343,15 @@ void MainWindow::setStandardUi() void MainWindow::setScientificUi() { m_hisNumMax = PC_HIS_NUM; - int width = QGuiApplication::primaryScreen()->size().width(); - int height = QGuiApplication::primaryScreen()->size().height(); if (DataWarehouse::getInstance()->platform == QString("intel")) { - if (DataWarehouse::getInstance()->intelPlug == DataWarehouse::StartMode::MODE_PLUG - || DataWarehouse::getInstance()->intelPlug == DataWarehouse::StartMode::MODE_PLUG_AGAIN) { + if (hLayoutFlag == deviceMode::PCMode && this->windowState() == Qt::WindowNoState) { + this->setMinimumSize(INTEL_SCIENTIFIC_WINDOWW, INTEL_SCIENTIFIC_WINDOWH); this->resize(INTEL_SCIENTIFIC_WINDOWW, INTEL_SCIENTIFIC_WINDOWH); - width = INTEL_SCIENTIFIC_WINDOWW; - } else { - if (hLayoutFlag == PCMode) { // pc模式 - this->resize(INTEL_SCIENTIFIC_WINDOWW, INTEL_SCIENTIFIC_WINDOWH); - emit this->sigIntelModeChange(false); - if (DataWarehouse::getInstance()->winFlag == QString("min")) { - this->resize(INTEL_SCIENTIFIC_WINDOWW, INTEL_SCIENTIFIC_WINDOWH); - } - width = INTEL_SCIENTIFIC_WINDOWW; - } else if (hLayoutFlag == PADHorizontalMode) { //横屏模式 - m_hisNumMax = MAX_HIS_NUM; - this->resize(width, height); - emit this->sigIntelModeChange(true); - } else { //竖屏模式 - m_hisNumMax = MAX_HIS_NUM; - if (width > height) { - int temp = height; - height = width; - width = temp; - } - this->resize(width, height); - emit this->sigIntelModeChange(true); - } - // this->setMinimumSize(1200,625); - if (DataWarehouse::getInstance()->winFlag == QString("min")) { - this->resize(1200, 625); - } } } else { this->setFixedSize(SCIENTIFIC_WINDOWW, SCIENTIFIC_WINDOWH); - // this->setMinimumSize(SCIENTIFIC_WINDOWW,SCIENTIFIC_WINDOWH); } - /* 设置当前模式 */ this->currentModel = SCIENTIFIC; @@ -528,46 +412,14 @@ void MainWindow::setScientificUi() this->lab_prepare = scientificOutput->sciLabPre; this->lab_now = scientificOutput->sciLabNow; - this->lab_now->setText("0"); - this->lab_prepare->setText(""); - - /* 显示历史记录 , 最多显示最后 5 条*/ - QString historyText = ""; - - int size = disHistory.size(); - int hisIndex = (size - m_hisNumMax >= 0) ? (size - m_hisNumMax) : 0; - - for (int i = hisIndex; i < size; i++) { - historyText = historyText + disHistory.at(i); - } - - historyText.replace(SUB, "-"); - /* 去除末尾换行符 */ - historyText.chop(1); - this->lab_last->setText(historyText); - - /* 不同平台标题栏处理 */ if (DataWarehouse::getInstance()->platform == QString("intel")) { - if (pTitleBar != nullptr) { - if (DataWarehouse::getInstance()->intelMode == true) { - /* 平板模式 */ - pTitleBar->m_min->hide(); - pTitleBar->m_max->hide(); - pTitleBar->m_close->hide(); - - } else { - /* pc 模式 */ - pTitleBar->m_min->show(); - pTitleBar->m_max->show(); - pTitleBar->m_close->show(); - } + scientificModel->createIntelStyle(); + if (hLayoutFlag == deviceMode::PCMode) { + // 窗口模式 + this->pTitleBar->m_max->show(); } } - if (DataWarehouse::getInstance()->platform == QString("intel")) { - scientificModel->createIntelStyle(width); - } - scientificModel->updateBtnSinDisplay(); scientificModel->updateBtnRadDisplay(); @@ -579,11 +431,6 @@ void MainWindow::setScientificUi() scientificOutput->show(); scientificModel->show(); - /* 移动到屏幕中间 */ - // QRect availableGeometry = qApp->primaryScreen()->availableGeometry(); - // this->move(availableGeometry.width() / 2 - this->width() / 2, availableGeometry.height() / 2 - this->height() - // / 2); - return; } @@ -593,10 +440,6 @@ void MainWindow::setToolUi() qInfo() << "Switch to exchange rate mode."; /* 固定窗口大小 */ this->setFixedSize(STANDARD_WINDOWW, STANDARD_WINDOWH); - // this->setMinimumSize(STANDARD_WINDOWW,STANDARD_WINDOWH); - // if (DataWarehouse::getInstance()->winFlag == QString("min")) { - // this->resize(STANDARD_WINDOWW,STANDARD_WINDOWH); - //} // 设置当前模式 this->currentModel = EXCHANGE_RATE; @@ -633,9 +476,6 @@ void MainWindow::setToolUi() this->lab_prepare = toolModelOutput->toolLabAft; this->lab_now = toolModelOutput->toolLabBef; - this->lab_now->setText("0"); - this->lab_prepare->setText(""); - toolModelOutput->setWidgetStyle(); toolModelOutput->unitListBef->setWidgetStyle(); toolModelOutput->unitListAft->setWidgetStyle(); @@ -646,10 +486,6 @@ void MainWindow::setToolUi() toolModelOutput->show(); toolModelButton->show(); - /* 移动到屏幕中间 */ - QRect availableGeometry = qApp->primaryScreen()->availableGeometry(); - this->move(availableGeometry.width() / 2 - this->width() / 2, availableGeometry.height() / 2 - this->height() / 2); - return; } @@ -682,11 +518,6 @@ void MainWindow::setProgrammerUi() m_prograModel->show(); mainLayout->addWidget(m_prograModel); - - // /* 移动到屏幕中间 */ - // QRect availableGeometry = qApp->primaryScreen()->availableGeometry(); - // this->move(availableGeometry.width() / 2 - this->width() / 2, availableGeometry.height() / 2 - this->height() - // / 2); } // 计算器界面切换布局 @@ -724,8 +555,8 @@ void MainWindow::keyPressEvent(QKeyEvent *event) { if (event->key() == Qt::Key_F1) { /* 用户手册 */ - kdk::kabase::UserManualManagement userManualTest; - if (!userManualTest.callUserManual("kylin-calculator")) { + kdk::UserManual userManual; + if (!userManual.callUserManual("kylin-calculator")) { qCritical() << "user manual call fail!"; } @@ -834,6 +665,7 @@ void MainWindow::changeDarkTheme() scientificModel->createIntelStyle(); scientificOutput->setWidgetStyle(false); } + this->update(); } else { pTitleBar->setWidgetStyle(); @@ -873,6 +705,7 @@ void MainWindow::changeLightTheme() scientificModel->createIntelStyle(); scientificOutput->setWidgetStyle(false); } + this->update(); } else { pTitleBar->setWidgetStyle(); @@ -982,7 +815,7 @@ void MainWindow::fontUpdate() { resetFontSize(this->currentModel, "48"); int width = lab_now->width(); - if (DataWarehouse::getInstance()->winFlag == QString("max")) { + if (this->windowState() == Qt::WindowMaximized) { //获取主屏幕分辨率 QRect screenRect = QApplication::desktop()->availableGeometry(); width = screenRect.width(); @@ -1168,14 +1001,14 @@ void MainWindow::changeModel(QString label) } // 埋点接口 - kdk::kabase::BuriedPoint buriedPoint; + kabase::BuriedPoint buriedPoint; if (label != this->currentModel) { if (label == PROGRAMMER) { if (DataWarehouse::getInstance()->platform != QString("intel")) { // 埋点 - if (buriedPoint.functionBuriedPoint(kdk::kabase::AppName::KylinCalculator, - kdk::kabase::BuriedPoint::PT::KylinCalaulatorProgrammerMode)) { + if (buriedPoint.functionBuriedPoint(kabase::AppName::KylinCalculator, + kabase::BuriedPoint::PT::KylinCalaulatorProgrammerMode)) { qCritical() << "Error : buried point fail !"; }; @@ -1210,32 +1043,26 @@ void MainWindow::changeModel(QString label) if (label == STANDARD) { if (DataWarehouse::getInstance()->platform != QString("intel")) { // 埋点 - if (buriedPoint.functionBuriedPoint(kdk::kabase::AppName::KylinCalculator, - kdk::kabase::BuriedPoint::PT::KylinCalaulatorStandardMode)) { + if (buriedPoint.functionBuriedPoint(kabase::AppName::KylinCalculator, + kabase::BuriedPoint::PT::KylinCalaulatorStandardMode)) { qCritical() << "Error : buried point fail !"; }; this->pTitleBar->setFuncLabel(pTitleBar->STANDARD_LABEL); - } else if (DataWarehouse::getInstance()->winFlag == QString("max") - && DataWarehouse::getInstance()->platform == QString("intel")) { - DataWarehouse::getInstance()->winFlag = QString("min"); - this->showNormal(); - this->pTitleBar->m_max->setIcon(QIcon::fromTheme("window-maximize-symbolic")); - this->resize(INTEL_STANDARD_WINDOWW, INTEL_STANDARD_WINDOWH); - QRect availableGeometry = QApplication::desktop()->availableGeometry(); - this->move((availableGeometry.width() - INTEL_STANDARD_WINDOWW) / 2, - (availableGeometry.height() - INTEL_STANDARD_WINDOWH) / 2); } calData += STANDARD; InputProcess::inputFromButton(STANDARD); setStandardUi(); + if (this->windowState() == Qt::WindowMaximized && hLayoutFlag == deviceMode::PCMode) { + m_isSwitchMode = true; + } } else if (label == SCIENTIFIC) { if (DataWarehouse::getInstance()->platform != QString("intel")) { // 埋点 - if (buriedPoint.functionBuriedPoint(kdk::kabase::AppName::KylinCalculator, - kdk::kabase::BuriedPoint::PT::KylinCalaulatorScientificMode)) { + if (buriedPoint.functionBuriedPoint(kabase::AppName::KylinCalculator, + kabase::BuriedPoint::PT::KylinCalaulatorScientificMode)) { qCritical() << "Error : buried point fail !"; }; @@ -1246,11 +1073,14 @@ void MainWindow::changeModel(QString label) InputProcess::inputFromButton(SCIENTIFIC); setScientificUi(); + if (this->windowState() == Qt::WindowMaximized && hLayoutFlag == deviceMode::PCMode) { + m_isSwitchMode = true; + } } else if (label == EXCHANGE_RATE) { if (DataWarehouse::getInstance()->platform != QString("intel")) { // 埋点 - if (buriedPoint.functionBuriedPoint(kdk::kabase::AppName::KylinCalculator, - kdk::kabase::BuriedPoint::PT::KylinCalaulatorRateMode)) { + if (buriedPoint.functionBuriedPoint(kabase::AppName::KylinCalculator, + kabase::BuriedPoint::PT::KylinCalaulatorRateMode)) { qCritical() << "Error : buried point fail !"; }; this->pTitleBar->setFuncLabel(pTitleBar->EXCHANGE_RATE_LABEL); @@ -1261,6 +1091,22 @@ void MainWindow::changeModel(QString label) setToolUi(); } + this->lab_now->setText("0"); + this->lab_prepare->setText(""); + /* 显示历史记录 , 最多显示最后 5 条*/ + QString historyText = ""; + + int size = disHistory.size(); + int hisIndex = (size - m_hisNumMax >= 0) ? (size - m_hisNumMax) : 0; + + for (int i = hisIndex; i < size; i++) { + historyText = historyText + disHistory.at(i); + } + + historyText.replace(SUB, "-"); + /* 去除末尾换行符 */ + historyText.chop(1); + this->lab_last->setText(historyText); } return; @@ -1416,7 +1262,8 @@ void MainWindow::stayTop() /* 使用KWindowSystem可以更加方便地控制窗口置顶 */ if (winFlags == NULL) { winFlags = windowFlags(); - KWindowSystem::setState(this->winId(), KWindowSystem::KeepAbove); + kabase::WindowManage::keepWindowAbove(m_winId); + // KWindowSystem::setState(this->winId(), KWindowSystem::KeepAbove); pTitleBar->m_pTopButton->setIcon(QIcon::fromTheme("ukui-fixed-symbolic")); pTitleBar->m_pTopButton->setFlat(false); @@ -1424,7 +1271,8 @@ void MainWindow::stayTop() // pTitleBar->m_pTopButton->setBackgroundRole(QPalette::Window); } else { winFlags = NULL; - KWindowSystem::clearState(this->winId(), KWindowSystem::KeepAbove); + kabase::WindowManage::keepWindowAbove(m_winId); + // KWindowSystem::clearState(this->winId(), KWindowSystem::KeepAbove); pTitleBar->m_pTopButton->setIcon(QIcon::fromTheme("ukui-unfixed-symbolic")); pTitleBar->m_pTopButton->setFlat(true); @@ -1448,7 +1296,7 @@ void MainWindow::mousePressEvent(QMouseEvent *event) QPoint pos = event->pos(); QPoint modeListPos = this->pTitleBar->m_modeList->pos(); - /* 当鼠标点击不在模式切换列表中时 , 隐藏模式切换列表 */ + /* 当鼠标点击不在模式切换列表中时 , 隐藏模式切STANDARD换列表 */ if (!(pos.x() > modeListPos.x() && pos.x() < modeListPos.x() + this->pTitleBar->m_modeList->width() && pos.y() > modeListPos.y() && pos.y() < modeListPos.y() + this->pTitleBar->m_modeList->height())) { this->pTitleBar->m_modeList->hide(); @@ -1458,3 +1306,80 @@ void MainWindow::mousePressEvent(QMouseEvent *event) return; } + +void MainWindow::changeEvent(QEvent *event) +{ + if (QEvent::WindowStateChange == event->type()) { + if (DataWarehouse::getInstance()->platform == QString("intel")) { + Qt::WindowStates state = this->windowState(); + qInfo() << "Window state change: " << state; + QString label = this->currentModel; + if (state == Qt::WindowNoState) { + // 窗口模式 + pTitleBar->setMaxBtnMode(true); + if (!m_isPcModeStarted) { + if (label == STANDARD) { + this->setMinimumSize(INTEL_STANDARD_WINDOWW, INTEL_STANDARD_WINDOWH); + this->resize(INTEL_STANDARD_WINDOWW, INTEL_STANDARD_WINDOWH); + } else { + this->setMinimumSize(INTEL_SCIENTIFIC_WINDOWW, INTEL_SCIENTIFIC_WINDOWH); + this->resize(INTEL_SCIENTIFIC_WINDOWW, INTEL_SCIENTIFIC_WINDOWH); + } + QRect availableGeometry = qApp->primaryScreen()->availableGeometry(); + this->move(availableGeometry.width() / 2 - MainWindow::getInstance()->width() / 2, + availableGeometry.height() / 2 - MainWindow::getInstance()->height() / 2); + m_isPcModeStarted = true; + } else if (m_isSwitchMode) { + if (label == STANDARD) { + this->setMinimumSize(INTEL_STANDARD_WINDOWW, INTEL_STANDARD_WINDOWH); + this->resize(INTEL_STANDARD_WINDOWW, INTEL_STANDARD_WINDOWH); + } else { + this->setMinimumSize(INTEL_SCIENTIFIC_WINDOWW, INTEL_SCIENTIFIC_WINDOWH); + // this->resize(INTEL_SCIENTIFIC_WINDOWW, INTEL_SCIENTIFIC_WINDOWH); + } + m_isSwitchMode = false; + } + } else if (state == Qt::WindowMaximized) { + // 最大化模式 + pTitleBar->setMaxBtnMode(false); + } + } + } +} + +void MainWindow::setIntelModeChange(deviceMode mode) +{ + if (DataWarehouse::getInstance()->intelPlug == DataWarehouse::StartMode::MODE_MAIN) { + QString label = this->currentModel; + if (mode != deviceMode::PCMode) { + qInfo() << "DeviceMode change..."; + this->pTitleBar->m_min->hide(); + this->pTitleBar->m_max->hide(); + this->pTitleBar->m_close->hide(); + this->setMinimumSize(0, 0); + } else { + qInfo() << "DeviceMode change PC"; + this->pTitleBar->m_min->show(); + this->pTitleBar->m_close->show(); + if (this->windowState() == Qt::WindowNoState) { + // 窗口模式 + pTitleBar->setMaxBtnMode(true); + QPoint oldPoint = this->pos(); + if (label == STANDARD) { + this->setMinimumSize(INTEL_STANDARD_WINDOWW, INTEL_STANDARD_WINDOWH); + this->resize(INTEL_STANDARD_WINDOWW, INTEL_STANDARD_WINDOWH); + } else { + this->setMinimumSize(INTEL_SCIENTIFIC_WINDOWW, INTEL_SCIENTIFIC_WINDOWH); + this->resize(INTEL_SCIENTIFIC_WINDOWW, INTEL_SCIENTIFIC_WINDOWH); + } + this->move(oldPoint.x(), oldPoint.y()); + } else if (this->windowState() == Qt::WindowMaximized) { + // 最大化模式 + pTitleBar->setMaxBtnMode(false); + } + if (label == SCIENTIFIC) { + this->pTitleBar->m_max->show(); + } + } + } +} \ No newline at end of file diff --git a/src/mainwindow.h b/src/mainwindow.h index c9fd54a..fb4a94a 100755 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -37,6 +37,7 @@ #include #include #include +#include #include "titlebar.h" #include "widgetstyle.h" @@ -61,6 +62,8 @@ public: TitleBar *pTitleBar; QString currentModel; /* 保存当前计算器模式 */ + quint32 getWinId(); + // 初始化组件 void setWidgetUi(); @@ -165,20 +168,24 @@ public slots: // 将剪切板内容粘贴到运算式中 void pasteToLabNow(); - /* intel 模式改变 */ - void slotIntelModeChange(bool); - /* 平板中的自动屏幕旋转on/off */ - void slotIntelHVModeChanged(bool); + void slotIntelModeChanged(bool); protected: void paintEvent(QPaintEvent *event); void mousePressEvent(QMouseEvent *event); + void changeEvent(QEvent *event); private: + void setIntelModeChange(deviceMode mode); + + quint32 m_winId = 0; + //平板中的横竖屏切换部分 deviceMode hLayoutFlag = PCMode; //默认横屏 HorizontalOrVerticalMode *hOrVMode = nullptr; //平板横竖屏Dbus的信号监听及接口调用 + bool m_isPcModeStarted = true; + bool m_isSwitchMode = false; int m_hisNumMax = PC_HIS_NUM; @@ -248,14 +255,10 @@ private: /* 记录计算历史记录,输入'='时触发 */ QVector disHistory; - // 重绘窗口 - // void paintEvent(QPaintEvent *event); - // 剪切板 QClipboard *clipboard = QApplication::clipboard(); signals: void sigTranparencyChange(void); - void sigIntelModeChange(bool); }; #endif // MAINWINDOW_H diff --git a/src/menumodule/menumodule.cpp b/src/menumodule/menumodule.cpp index 4326592..9736ff5 100755 --- a/src/menumodule/menumodule.cpp +++ b/src/menumodule/menumodule.cpp @@ -16,11 +16,11 @@ */ #include -#include -#include +#include #include "menumodule.h" #include "widgetstyle.h" +#include "windowmanage.hpp" menuModule::menuModule(QWidget *parent = nullptr) : QWidget(parent) { @@ -201,8 +201,8 @@ void menuModule::aboutAction() void menuModule::helpAction() { // 帮助点击事件处理 - kdk::kabase::UserManualManagement userManualTest; - if (!userManualTest.callUserManual("kylin-calculator")) { + kdk::UserManual userManual; + if (!userManual.callUserManual("kylin-calculator")) { qCritical() << "user manual call fail!"; } } @@ -211,7 +211,7 @@ void menuModule::initAbout() { aboutWindow = new QDialog(); - kdk::kabase::WindowManagement::setWindowMotifHint(aboutWindow->winId()); + kabase::WindowManage::removeHeader(aboutWindow); aboutWindow->setFixedSize(420, 360); aboutWindow->setMinimumHeight(324); diff --git a/src/scientificmodel.cpp b/src/scientificmodel.cpp index d678064..56a48de 100755 --- a/src/scientificmodel.cpp +++ b/src/scientificmodel.cpp @@ -468,11 +468,6 @@ void ScientificModel::createIntelModel() btnNum[i]->setIcon(QIcon(":/image/intelScientific/" + QString::number(i) + ".svg")); } - // btnDZero = new BasicButton(this); - // btnDZero->setText("00"); - // btnDZero->setIcon(QIcon(":/image/intelScientific/btnNum00.svg")); - // btnDZero->setIconSize(QSize(106, 62)); - btnClear = new BasicButton(this); btnPer = new BasicButton(this); btnDelete = new BasicButton(this); @@ -632,6 +627,8 @@ void ScientificModel::createIntelModel() btnExp->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); btnLn->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); + changeBtnIconSize(); + // 将科学计算器按钮进行网格布局 QGridLayout *btnSciLayout = new QGridLayout(this); btnSciLayout->addWidget(btnInd, 0, 0, 1, 1); @@ -706,7 +703,7 @@ void ScientificModel::createIntelModel() connect(btnRad, &BasicButton::clicked, this, &ScientificModel::changeBtnRadDisplay); } -void ScientificModel::createIntelStyle(int width) +void ScientificModel::createIntelStyle() { QString btnStyle; QString btnOpStyle; @@ -903,15 +900,13 @@ void ScientificModel::createIntelStyle(int width) btnPi->setStyleSheet(btnOpStyle); btnExp->setStyleSheet(btnOpStyle); btnLn->setStyleSheet(btnOpStyle); +} + +void ScientificModel::changeBtnIconSize() +{ + int iconWidth = 236 / 2.3; + int iconHeight = 112 / 2.3; - int iconWidth = 0; - int iconHeight = 0; - if (width != -1) { - iconWidth = ((width - 16) / 8) - 5; - } else { - iconWidth = 125; - } - iconHeight = 80; for (int i = 0; i < 10; i++) { if (i == 0) { btnNum[i]->setIconSize(QSize(iconWidth * 2, iconHeight)); diff --git a/src/scientificmodel.h b/src/scientificmodel.h index 8ca6526..fa9af2d 100755 --- a/src/scientificmodel.h +++ b/src/scientificmodel.h @@ -33,6 +33,7 @@ #include "basicbutton.h" #include "widgetstyle.h" #include "data_warehouse.h" +#include "HorizontalOrVerticalMode.h" #include "../common/picturetowhite.h" class ScientificOutput : public QWidget @@ -139,7 +140,8 @@ public: /* intel stand model ui */ void createIntelModel(void); - void createIntelStyle(int width = -1); + void createIntelStyle(); + void changeBtnIconSize(); // 切换三角函数和反三角函数显示 void changeBtnSinDisplay(); diff --git a/src/standardmodel.cpp b/src/standardmodel.cpp index 11cb0f7..15116d1 100755 --- a/src/standardmodel.cpp +++ b/src/standardmodel.cpp @@ -198,6 +198,8 @@ void StandardModel::createIntelModel(void) btnPer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); btnPoint->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); + changeBtnIconSize(); + /* 将按钮进行网格布局 */ QGridLayout *btnLayout = new QGridLayout(); btnLayout->addWidget(btnClear, 0, 0, 1, 1); @@ -222,7 +224,7 @@ void StandardModel::createIntelModel(void) this->setLayout(btnLayout); } -void StandardModel::createIntelStyle(int width) +void StandardModel::createIntelStyle() { qDebug() << "change intel stand mode ui style..."; @@ -370,16 +372,14 @@ void StandardModel::createIntelStyle(int width) btnEqual->setStyleSheet(intelPlugRight); this->setStyleSheet("border-radius:32px;"); } + return; +} - int iconWidth = 0; - int iconHeight = 0; - if (width != -1) { - iconWidth = ((width - 8) / 4) - 5; - } else { - iconWidth = 95; - } +void StandardModel::changeBtnIconSize() +{ + int iconWidth = 100; + int iconHeight = 80; - iconHeight = 80; for (int i = 0; i < 10; i++) { if (i == 0) { btnNum[i]->setIconSize(QSize(iconWidth * 2, iconHeight)); @@ -396,7 +396,6 @@ void StandardModel::createIntelStyle(int width) btnEqual->setIconSize(QSize(iconWidth, iconHeight)); btnPer->setIconSize(QSize(iconWidth, iconHeight)); btnPoint->setIconSize(QSize(iconWidth, iconHeight)); - return; } // 初始化组件 diff --git a/src/standardmodel.h b/src/standardmodel.h index ed937b3..fc99093 100755 --- a/src/standardmodel.h +++ b/src/standardmodel.h @@ -31,6 +31,7 @@ #include "basicbutton.h" #include "widgetstyle.h" +#include "HorizontalOrVerticalMode.h" #include "../common/picturetowhite.h" class StandardOutput : public QWidget @@ -85,7 +86,9 @@ public: /* intel stand model ui */ void createIntelModel(void); - void createIntelStyle(int width = -1); + void createIntelStyle(); + void changeBtnIconSize(); + public slots: // 键盘响应事件 void keyPressEvent(QKeyEvent *event); diff --git a/src/titlebar.cpp b/src/titlebar.cpp index 89c9687..f6ff624 100755 --- a/src/titlebar.cpp +++ b/src/titlebar.cpp @@ -55,9 +55,13 @@ void TitleBar::createInterUi() this->STANDARD_LABEL = tr("standard"); this->SCIENTIFIC_LABEL = tr("scientific"); - this->m_Icon = new QLabel(this); - this->m_Icon->setFixedSize(QSize(25, 25)); - this->m_Icon->setPixmap(QIcon::fromTheme("kylin-calculator").pixmap(QSize(SPECIAL_ICON_W, SPECIAL_ICON_H))); + this->m_Icon = new QPushButton(this); + this->m_Icon->setIconSize(QSize(SPECIAL_ICON_W, SPECIAL_ICON_H)); + this->m_Icon->setIcon(QIcon::fromTheme("kylin-calculator")); + QString iconStyle = "QPushButton{border:0px;border-radius:4px;background:transparent;}" + "QPushButton:Hover{border:0px;border-radius:4px;background:transparent;}" + "QPushButton:Pressed{border:0px;border-radius:4px;background:transparent;}"; + m_Icon->setStyleSheet(iconStyle); this->m_mode = new QPushButton(this); this->m_mode->setFixedSize(68, 35); @@ -72,13 +76,18 @@ void TitleBar::createInterUi() this->m_modeIcon->setScaledContents(true); this->m_modeIcon->setPixmap(icon); + this->m_vlayout = new QVBoxLayout(); + this->m_vlayout->setMargin(0); + this->m_vlayout->addSpacing(8); + this->m_vlayout->addWidget(this->m_Icon); + this->m_hlayout1 = new QHBoxLayout(); this->m_hlayout1->setMargin(0); - this->m_hlayout1->addStretch(0); + this->m_hlayout1->addStretch(); this->m_hlayout1->addWidget(this->m_modeText); - this->m_hlayout1->addStretch(0); + this->m_hlayout1->addSpacing(2); this->m_hlayout1->addWidget(this->m_modeIcon); - this->m_hlayout1->addStretch(0); + this->m_hlayout1->addStretch(); this->m_mode->setLayout(this->m_hlayout1); this->m_mode->setFlat(true); @@ -116,7 +125,7 @@ void TitleBar::createInterUi() this->hlayout->setContentsMargins(0, 4, 0, 4); this->hlayout->addSpacing(16); - this->hlayout->addWidget(this->m_Icon); + this->hlayout->addLayout(this->m_vlayout); this->hlayout->addSpacing(4); this->hlayout->addWidget(this->m_mode); @@ -312,7 +321,7 @@ void TitleBar::setWidgetUi() // 设置图片 m_pIconBtn->setIconSize(QSize(SPECIAL_ICON_W, SPECIAL_ICON_H)); m_pIconBtn->setIcon(QIcon::fromTheme("kylin-calculator")); - m_pTopButton->setIcon(QIcon::fromTheme("ukui-unfixed")); + m_pTopButton->setIcon(QIcon::fromTheme("ukui-unfixed-symbolic")); m_pTopButton->setIconSize(QSize(STANDARD_ICON_W, STANDARD_ICON_H)); m_pTopButton->setProperty("isWindowButton", 0x1); m_pTopButton->setProperty("useIconHighlightEffect", 0x2); @@ -390,6 +399,38 @@ void TitleBar::setWidgetStyle() } } +void TitleBar::setMaxBtnMode(bool isShowMax) +{ + if (isShowMax) { + if (WidgetStyle::themeColor == WidgetStyle::ThemeColor::LIGHT) { + this->m_max->setIcon(QIcon(":/image/intelScientific/max.svg")); + this->m_max->setIconSize(QSize(TITLE_BTN_W, TITLE_BTN_H)); + } else { + this->m_max->setIcon(QIcon(":/image/intelScientificDark/max.svg")); + this->m_max->setIconSize(QSize(TITLE_BTN_W, TITLE_BTN_H)); + } + this->m_max->setToolTip(tr("Maximize")); + } else { + if (WidgetStyle::themeColor == WidgetStyle::ThemeColor::LIGHT) { + this->m_max->setIcon(QIcon(":/image/intelScientific/restore.svg")); + this->m_max->setIconSize(QSize(TITLE_BTN_W, TITLE_BTN_H)); + } else { + this->m_max->setIcon(QIcon(":/image/intelScientificDark/restore.svg")); + this->m_max->setIconSize(QSize(TITLE_BTN_W, TITLE_BTN_H)); + } + this->m_max->setToolTip(tr("Restore")); + } +} + +void TitleBar::mouseDoubleClickEvent(QMouseEvent *event) +{ + if (DataWarehouse::getInstance()->platform == QString("intel")) { + if (!this->m_max->isHidden()) { + this->m_max->clicked(); + } + } +} + void TitleBar::onClicked() { QPushButton *pButton = qobject_cast(sender()); @@ -406,56 +447,10 @@ void TitleBar::onClicked() m_min->update(); m_close->update(); } else if (pButton == this->m_max) { - if (DataWarehouse::getInstance()->winFlag == QString("min")) { - DataWarehouse::getInstance()->winFlag = QString("max"); - } else if (DataWarehouse::getInstance()->winFlag == QString("max")) { - DataWarehouse::getInstance()->winFlag = QString("min"); - } - - if (DataWarehouse::getInstance()->winFlag == QString("min")) { - pWindow->showNormal(); - if (WidgetStyle::themeColor == WidgetStyle::ThemeColor::LIGHT) { - this->m_max->setIcon(QIcon(":/image/intelScientific/max.svg")); - this->m_max->setIconSize(QSize(TITLE_BTN_W, TITLE_BTN_H)); - } else { - this->m_max->setIcon(QIcon(":/image/intelScientificDark/max.svg")); - this->m_max->setIconSize(QSize(TITLE_BTN_W, TITLE_BTN_H)); - } - } else { + if (pWindow->windowState() == Qt::WindowNoState) { pWindow->showMaximized(); - if (WidgetStyle::themeColor == WidgetStyle::ThemeColor::LIGHT) { - this->m_max->setIcon(QIcon(":/image/intelScientific/restore.svg")); - this->m_max->setIconSize(QSize(TITLE_BTN_W, TITLE_BTN_H)); - } else { - this->m_max->setIcon(QIcon(":/image/intelScientificDark/restore.svg")); - this->m_max->setIconSize(QSize(TITLE_BTN_W, TITLE_BTN_H)); - } - } - emit sigFontUpdate(); - } else if (pButton == m_pMaximizeButton) { - if (DataWarehouse::getInstance()->winFlag == QString("min")) { - DataWarehouse::getInstance()->winFlag = QString("max"); - } else if (DataWarehouse::getInstance()->winFlag == QString("max")) { - DataWarehouse::getInstance()->winFlag = QString("min"); - } - - if (DataWarehouse::getInstance()->winFlag == QString("min")) { + } else if (pWindow->windowState() == Qt::WindowMaximized) { pWindow->showNormal(); - if (m_pFuncLabel->text() == STANDARD_LABEL) { - pWindow->resize(STANDARD_WINDOWW, STANDARD_WINDOWH); - pWindow->move(m_start.x(), m_start.y()); - - } else if (m_pFuncLabel->text() == SCIENTIFIC_LABEL) { - pWindow->resize(SCIENTIFIC_WINDOWW, SCIENTIFIC_WINDOWH); - pWindow->move(m_start.x(), m_start.y()); - - } else if (m_pFuncLabel->text() == EXCHANGE_RATE_LABEL) { - pWindow->resize(STANDARD_WINDOWW, STANDARD_WINDOWH); - pWindow->move(m_start.x(), m_start.y()); - } - } else { - m_start = pWindow->pos(); - pWindow->showMaximized(); } emit sigFontUpdate(); } else if (pButton == this->m_close) { diff --git a/src/titlebar.h b/src/titlebar.h index 2a8a9ee..bfd960f 100755 --- a/src/titlebar.h +++ b/src/titlebar.h @@ -29,9 +29,12 @@ public: // 设置组件样式 void setWidgetStyle(); - QPushButton *m_pIconBtn; // 左上角应用图标 - QLabel *m_pFuncLabel; // 界面标识 - QPushButton *m_pTopButton; // 界面置顶按钮 + // 设置最大化按钮状态 + void setMaxBtnMode(bool isShowMax); + + QPushButton *m_pIconBtn; // 左上角应用图标 + QLabel *m_pFuncLabel; // 界面标识 + QPushButton *m_pTopButton; // 界面置顶按钮 menuModule *menuBar; QPushButton *m_pMinimizeButton; // 最小化按钮 QPushButton *m_pMaximizeButton; // 最大化按钮 @@ -43,19 +46,20 @@ public: QString EXCHANGE_RATE_LABEL; QString PROGRAMMER_LABEL; -/* snow revised it in 2021-07-17 10:18 */ + /* snow revised it in 2021-07-17 10:18 */ public: void createInterUi(void); void createInterStyle(void); void changeModeIcon(void); - QLabel *m_Icon; + QPushButton *m_Icon; QPushButton *m_mode; QLabel *m_modeText; QLabel *m_modeIcon; QHBoxLayout *m_hlayout1; IntelModeList *m_modeList; QHBoxLayout *hlayout; + QVBoxLayout *m_vlayout; QPushButton *m_min; QPushButton *m_max; @@ -72,14 +76,14 @@ signals: protected: - + void mouseDoubleClickEvent(QMouseEvent *event); private slots: // 进行置顶、最小化、关闭操作 void onClicked(); private: - QPoint m_start; //最大化之前窗口位置 + QPoint m_start; //最大化之前窗口位置 }; #endif // TITLE_BAR diff --git a/translations/kylin-calculator_zh_CN.qm b/translations/kylin-calculator_zh_CN.qm index 309cc80..a290215 100644 Binary files a/translations/kylin-calculator_zh_CN.qm and b/translations/kylin-calculator_zh_CN.qm differ diff --git a/translations/kylin-calculator_zh_CN.ts b/translations/kylin-calculator_zh_CN.ts index b0b590b..8057f2e 100644 --- a/translations/kylin-calculator_zh_CN.ts +++ b/translations/kylin-calculator_zh_CN.ts @@ -61,27 +61,27 @@ FuncList - + Calculator 计算器 - + standard 标准 - + scientific 科学 - + Unit converter 换算器 - + exchange rate 汇率 @@ -89,12 +89,12 @@ IntelModeList - + standard 标准 - + scientific 科学 @@ -102,57 +102,57 @@ MainWindow - + Calculator 计算器 - - - + + + standard 标准 - + calculator 计算器 - + Copy 复制 - + Paste 粘贴 - + input too long 输入过长 - - - + + + scientific 科学 - + exchange rate 汇率 - - + + Error! 错误! - + Input error! 输入错误! @@ -169,13 +169,13 @@ ProgramModel - - + + Input error! 输入错误! - + ShowBinary 显示二进制 @@ -184,7 +184,7 @@ 显示二进制 - + HideBinary 隐藏二进制 @@ -196,12 +196,12 @@ 功能列表 - + Standard 计算器—标准 - + Scientific 计算器—科学 @@ -210,15 +210,15 @@ 标准 - - - + + + standard 标准 - - + + scientific 科学 @@ -227,32 +227,41 @@ 科学 - + Exchange Rate 计算器—汇率 - + Programmer 计算器—程序员 - + StayTop 置顶 - + + Restore + 还原 + + + + Minimize 最小化 - + + + Maximize 最大化 - + + Close 关闭 @@ -264,15 +273,15 @@ 显示二进制 - - - + + + ShowBinary 显示二进制 - - + + HideBinary 隐藏二进制 @@ -280,22 +289,22 @@ ToolModelOutput - + Rate update 汇率更新 - + Chinese Yuan 人民币 - + US Dollar 美元 - + Error! 错误! @@ -303,12 +312,12 @@ UnitListWidget - + currency 货币 - + cancel 取消 @@ -326,25 +335,25 @@ - + Standard 标准 - + Scientific 科学 - + Exchange Rate 汇率 - + Programmer 程序员 @@ -355,50 +364,50 @@ - + Help 帮助 - + About 关于 - + Quit 退出 - + Auto 自动 - + Light 浅色 - + Dark 深色 - + Version: 版本号: - + Calculator is a lightweight calculator based on Qt5, which provides standard calculation, scientific calculation and exchange rate conversion. 计算器是一款基于qt5开发的轻量级计算器,提供标准计算,科学计算和汇率换算。 - - + + Service & Support: 服务与支持团队: @@ -407,7 +416,7 @@ 支持:support@kylinos.cn - + Calculator 计算器