From 1b4f782534346e5360e05e78d9e3a1885b36a18f Mon Sep 17 00:00:00 2001
From: pei-jiankang <peijiankang@kylinos.cn>
Date: Mon, 28 Mar 2022 15:58:21 +0800
Subject: [PATCH] modify lunarcalendar display error

---
 plugin-calendar/CMakeLists.txt                |  3 +
 plugin-calendar/html/hlnew/hl2021.js          |  4 +-
 plugin-calendar/html/hlnew/hl2022.js          |  2 +-
 plugin-calendar/html/jiejiari.js              | 13 ++-
 .../lunarcalendarwidget/lunarcalendaritem.cpp | 95 +++++++++++--------
 .../lunarcalendarmonthitem.cpp                |  2 +-
 .../lunarcalendarwidget.cpp                   | 55 +++++++----
 .../lunarcalendaryearitem.cpp                 |  4 +-
 8 files changed, 109 insertions(+), 69 deletions(-)

diff --git a/plugin-calendar/CMakeLists.txt b/plugin-calendar/CMakeLists.txt
index f6cb668..bfe257a 100644
--- a/plugin-calendar/CMakeLists.txt
+++ b/plugin-calendar/CMakeLists.txt
@@ -48,4 +48,7 @@ link_libraries(glib-2.0.so)
 include(../cmake/UkuiPluginTranslationTs.cmake)
 ukui_plugin_translate_ts(${PLUGIN})
 
+install(DIRECTORY html/
+	       DESTINATION ${PACKAGE_DATA_DIR}/plugin-calendar/html)
+
 BUILD_UKUI_PLUGIN(${PLUGIN})
diff --git a/plugin-calendar/html/hlnew/hl2021.js b/plugin-calendar/html/hlnew/hl2021.js
index 3dc5a2e..86c62f3 100644
--- a/plugin-calendar/html/hlnew/hl2021.js
+++ b/plugin-calendar/html/hlnew/hl2021.js
@@ -1742,7 +1742,7 @@
 	},
 	"d1020": {
 		"y": "搬家.装修.开业.结婚.领证.开工.动土.出行.",
-		"j": "入宅.安床.订婚.安葬.上梁.破土.祈福.祭祀.kylin@UK:~入宅.安床.订婚.安葬.上梁.破土.祈福.祭祀..",
+		"j": "入宅.安床.订婚.安葬.上梁.破土.祈福.祭祀.",
 		"c": "生肖冲虎",
 		"s": "煞南",
 		"ch": "开",
@@ -2021,7 +2021,7 @@
 	},
 	"d1120": {
 		"y": "搬家.装修.结婚.领证.动土.订婚.入学.求嗣.",
-		"j": "开业.开工.安床.出行.安葬.上梁.开张.旅游.kylin@UK:~.",
+		"j": "开业.开工.安床.出行.安葬.上梁.开张.旅游.",
 		"c": "生肖冲鸡",
 		"s": "煞西",
 		"ch": "定",
diff --git a/plugin-calendar/html/hlnew/hl2022.js b/plugin-calendar/html/hlnew/hl2022.js
index 69d1f36..3d08118 100644
--- a/plugin-calendar/html/hlnew/hl2022.js
+++ b/plugin-calendar/html/hlnew/hl2022.js
@@ -76,7 +76,7 @@
 "j": "伐木."
 	},
 	"d0120": {
-"y": "搬家.装修.结婚.入宅.",
+"y": "搬家.装修.结婚.",
 "j": "入宅."
 	},
 	"d0121": {
diff --git a/plugin-calendar/html/jiejiari.js b/plugin-calendar/html/jiejiari.js
index 79a4b59..ca2569b 100644
--- a/plugin-calendar/html/jiejiari.js
+++ b/plugin-calendar/html/jiejiari.js
@@ -25,7 +25,16 @@
                 "d1001":"2","d1002":"2","d1003":"2","d1004":"2","d1005":"2","d1006":"2","d1007":"2","d1009":"1"
         },
 "worktime.y2022":{
-                "d0101":"2","d0102":"2",
-                "d0131":"2","d0201":"2","d0202":"2","d0203":"2","d0204":"2","d0205":"2"
+	        "d0101":"2","d0102":"2","d0103":"2","d0129":"1","d0130":"1","d0131":"2",
+	        "d0201":"2","d0202":"2","d0203":"2","d0204":"2","d0205":"2","d0206":"2",
+	        "d0402":"1","d0403":"2","d0404":"2","d0405":"2","d0424":"1","d0430":"2",
+	        "d0501":"2","d0502":"2","d0503":"2","d0504":"2","d0507":"1",
+	        "d0603":"2","d0604":"2","d0605":"2",
+	        "d0910":"2","d0911":"2","d0912":"2",
+	        "d1001":"2","d1002":"2","d1003":"2","d1004":"2","d1005":"2","d1006":"2","d1007":"2","d1008":"1","d1009":"1"
+	
+	        },
+"worktime.y2023":{
+                "d0101":"2","d0102":"2","d0103":"2"
         }
 }
diff --git a/plugin-calendar/lunarcalendarwidget/lunarcalendaritem.cpp b/plugin-calendar/lunarcalendarwidget/lunarcalendaritem.cpp
index 6df1d1f..ea34cd8 100644
--- a/plugin-calendar/lunarcalendarwidget/lunarcalendaritem.cpp
+++ b/plugin-calendar/lunarcalendarwidget/lunarcalendaritem.cpp
@@ -78,7 +78,7 @@ LunarCalendarItem::LunarCalendarItem(QWidget *parent) : QWidget(parent)
 
     currentBgColor = QColor(255, 255, 255);
     otherBgColor = QColor(240, 240, 240);
-    selectBgColor = QColor(55,143,250);
+    selectBgColor = QColor(55,144,250);
     hoverBgColor = QColor(204, 183, 180);
 }
 
@@ -239,28 +239,37 @@ void LunarCalendarItem::drawDay(QPainter *painter)
     font.setBold(true);
     painter->setFont(font);
 
+    QLocale locale = (QLocale::system().name() == "zh_CN" ? (QLocale::Chinese) : (QLocale::English));
     //代码复用率待优化
     if (showLunar) {
         QRect dayRect = QRect(0, 0, width, height / 1.7);
         painter->drawText(dayRect, Qt::AlignHCenter | Qt::AlignBottom, QString::number(date.day()));
         if (handleJsMap(date.toString("yyyy"),date.toString("MMdd")) == "2") {
             painter->setPen(Qt::NoPen);
-            painter->setBrush(QColor(244,78,80));
+	    if(locale == QLocale::Chinese){
+                painter->setBrush(QColor(244,78,80));
+	    }
             QRect dayRect1 = QRect(0, 0, width/3.5,height/3.5);
             painter->drawRoundedRect(dayRect1,1,1);
             font.setPixelSize(side / 5);
             painter->setFont(font);
             painter->setPen(Qt::white);
-            painter->drawText(dayRect1, Qt::AlignHCenter | Qt::AlignBottom,"休");
+            if(locale == QLocale::Chinese){
+	        painter->drawText(dayRect1, Qt::AlignHCenter | Qt::AlignBottom,"休");
+	    }
         } else if (handleJsMap(date.toString("yyyy"),date.toString("MMdd")) == "1") {
             painter->setPen(Qt::NoPen);
-            painter->setBrush(QColor(251,170,42));
+            if(locale == QLocale::Chinese){
+	        painter->setBrush(QColor(251,170,42));
+	    }
             QRect dayRect1 = QRect(0, 0, width/3.5,height/3.5);
             painter->drawRoundedRect(dayRect1,1,1);
             font.setPixelSize(side / 5);
             painter->setFont(font);
             painter->setPen(Qt::white);
-            painter->drawText(dayRect1, Qt::AlignHCenter | Qt::AlignBottom,"班");
+	    if(locale == QLocale::Chinese){
+                painter->drawText(dayRect1, Qt::AlignHCenter | Qt::AlignBottom,"班");
+	    }
         }
     }
     else {
@@ -300,6 +309,8 @@ void LunarCalendarItem::drawLunar(QPainter *painter)
     int day;
     QString strHoliday;
 
+    QLocale locale = (QLocale::system().name() == "zh_CN" ? (QLocale::Chinese) : (QLocale::English));
+    qDebug()<<"LunarCalendarItem语言模式:"<<locale;
     painter->save();
 
     if (!showLunar) {
@@ -324,44 +335,44 @@ void LunarCalendarItem::drawLunar(QPainter *painter)
 //        painter->drawText(lunarRect, Qt::AlignCenter, strHoliday);
     }
     else {
-
-    QStringList listDayName;
-    listDayName << "*" << "初一" << "初二" << "初三" << "初四" << "初五" << "初六" << "初七" << "初八" << "初九" << "初十"
-                << "十一" << "十二" << "十三" << "十四" << "十五" << "十六" << "十七" << "十八" << "十九" << "二十"
-                << "廿一" << "廿二" << "廿三" << "廿四" << "廿五" << "廿六" << "廿七" << "廿八" << "廿九" << "三十";
-
-    //判断当前农历文字是否节日,是节日且是当月则用农历节日颜色显示
-    bool exist = (!listDayName.contains(lunar) && dayType != DayType_MonthPre && dayType != DayType_MonthNext);
-
-    //根据当前类型选择对应的颜色
-    QColor color = currentLunarColor;
-    if (dayType == DayType_MonthPre || dayType == DayType_MonthNext) {
-        color = otherLunarColor;
-    }
-
-//    if (select) {
-//        color = selectTextColor;
-//    } /*else if (hover) {
-//        color = hoverTextColor;
-//    }*/ else if (exist) {
-//        color = lunarColor;
-//    }
-
-    if (exist) {
-           color = lunarColor;
-    }
-
-    painter->setPen(color);
-
-    QFont font;
-    font.setPixelSize(side * 0.27);
-    painter->setFont(font);
-
-    QRect lunarRect(0, height / 2, width, height / 2);
-    painter->drawText(lunarRect, Qt::AlignCenter, lunar);
+        if(locale == QLocale::Chinese){
+            QStringList listDayName;
+            listDayName << "*" << "初一" << "初二" << "初三" << "初四" << "初五" << "初六" << "初七" << "初八" << "初九" << "初十"
+                        << "十一" << "十二" << "十三" << "十四" << "十五" << "十六" << "十七" << "十八" << "十九" << "二十"
+                        << "廿一" << "廿二" << "廿三" << "廿四" << "廿五" << "廿六" << "廿七" << "廿八" << "廿九" << "三十";
+        
+            //判断当前农历文字是否节日,是节日且是当月则用农历节日颜色显示
+            bool exist = (!listDayName.contains(lunar) && dayType != DayType_MonthPre && dayType != DayType_MonthNext);
+        
+            //根据当前类型选择对应的颜色
+            QColor color = currentLunarColor;
+            if (dayType == DayType_MonthPre || dayType == DayType_MonthNext) {
+                color = otherLunarColor;
+            }
+        
+        //    if (select) {
+        //        color = selectTextColor;
+        //    } /*else if (hover) {
+        //        color = hoverTextColor;
+        //    }*/ else if (exist) {
+        //        color = lunarColor;
+        //    }
+        
+            if (exist) {
+                   color = lunarColor;
+            }
+        
+            painter->setPen(color);
+        
+            QFont font;
+            font.setPixelSize(side * 0.27);
+            painter->setFont(font);
+        
+            QRect lunarRect(0, height / 2, width, height / 2);
+            painter->drawText(lunarRect, Qt::AlignCenter, lunar);
+            }
+            painter->restore();
     }
-    painter->restore();
-
 }
 
 
diff --git a/plugin-calendar/lunarcalendarwidget/lunarcalendarmonthitem.cpp b/plugin-calendar/lunarcalendarwidget/lunarcalendarmonthitem.cpp
index 6cfe449..e7a046b 100644
--- a/plugin-calendar/lunarcalendarwidget/lunarcalendarmonthitem.cpp
+++ b/plugin-calendar/lunarcalendarwidget/lunarcalendarmonthitem.cpp
@@ -200,7 +200,7 @@ void LunarCalendarMonthItem::drawMonth(QPainter *painter)
     painter->setFont(font);
 
     QRect dayRect = QRect(0, 0, width, height / 1.7);
-    QString arg = QString::number(date.month()) +"月";
+    QString arg = QString::number(date.month()) /*+"月"*/;
     painter->drawText(dayRect, Qt::AlignHCenter | Qt::AlignBottom, arg);
     painter->restore();
 }
diff --git a/plugin-calendar/lunarcalendarwidget/lunarcalendarwidget.cpp b/plugin-calendar/lunarcalendarwidget/lunarcalendarwidget.cpp
index ddfd1db..ca6cb02 100644
--- a/plugin-calendar/lunarcalendarwidget/lunarcalendarwidget.cpp
+++ b/plugin-calendar/lunarcalendarwidget/lunarcalendarwidget.cpp
@@ -32,10 +32,18 @@ LunarCalendarWidget::LunarCalendarWidget(QWidget *parent) : QWidget(parent)
         connect(calendar_gsettings, &QGSettings::changed, this, [=] (const QString &key){
             if(key == LUNAR_KEY){
                 if(calendar_gsettings->get("calendar").toString() == "lunar") {
-                    //农历
-                    lunarstate = true;
-                    labWidget->setVisible(true);
-                    yijiWidget->setVisible(true);
+                    QLocale locale = (QLocale::system().name() == "zh_CN" ? (QLocale::Chinese) : (QLocale::English));
+		    if(locale == QLocale::Chinese){
+		        //农历模式且是中文模式
+                        lunarstate = true;
+                        labWidget->setVisible(true);
+                        yijiWidget->setVisible(true);
+		    }else{
+		        qDebug()<<"农历模式但非中文模式则不能显示农历相关";
+		        lunarstate = false;
+		        labWidget->setVisible(false);
+		        yijiWidget->setVisible(false);
+	       	    }
                 } else {
                     //公历
                     lunarstate = false;
@@ -43,7 +51,7 @@ LunarCalendarWidget::LunarCalendarWidget(QWidget *parent) : QWidget(parent)
                     yijiWidget->setVisible(false);
                 }
                 _timeUpdate();
-             }
+            }
             if(key == "date") {
                 if(calendar_gsettings->get("date").toString() == "cn"){
                     dateShowMode = "yyyy/MM/dd    dddd";
@@ -110,20 +118,29 @@ LunarCalendarWidget::LunarCalendarWidget(QWidget *parent) : QWidget(parent)
     timeShow->setContentsMargins(0, 0, 0, 0);
     initWidget();
 
-     if(QGSettings::isSchemaInstalled(calendar_id)){
-         //初始化农历/公历显示方式
-         if(calendar_gsettings->get("calendar").toString() == "lunar") {
-             //农历
-             lunarstate = true;
-             labWidget->setVisible(true);
-             yijiWidget->setVisible(true);
-         } else {
-             //公历
-             lunarstate = false;
-             labWidget->setVisible(false);
-             yijiWidget->setVisible(false);
-         }
-     }
+    if(QGSettings::isSchemaInstalled(calendar_id)){
+        //初始化农历/公历显示方式
+        if(calendar_gsettings->get("calendar").toString() == "lunar") {
+            QLocale locale = (QLocale::system().name() == "zh_CN" ? (QLocale::Chinese) : (QLocale::English));
+	    qDebug()<<"语言模式2:"<<locale;
+	    if(locale == QLocale::Chinese){
+                //农历模式且是中文模式
+                lunarstate = true;
+                labWidget->setVisible(true);
+                yijiWidget->setVisible(true);
+            }else{
+                qDebug()<<"农历模式但非中文模式则不能显示农历相关";
+                lunarstate = false;
+    	        labWidget->setVisible(false);
+                yijiWidget->setVisible(false);
+    	    }
+        } else {
+            //公历
+            lunarstate = false;
+            labWidget->setVisible(false);
+            yijiWidget->setVisible(false);
+	}
+    }
 
 
     //切换主题
diff --git a/plugin-calendar/lunarcalendarwidget/lunarcalendaryearitem.cpp b/plugin-calendar/lunarcalendarwidget/lunarcalendaryearitem.cpp
index ca3d6a2..150f27e 100644
--- a/plugin-calendar/lunarcalendarwidget/lunarcalendaryearitem.cpp
+++ b/plugin-calendar/lunarcalendarwidget/lunarcalendaryearitem.cpp
@@ -76,7 +76,7 @@ LunarCalendarYearItem::LunarCalendarYearItem(QWidget *parent) : QWidget(parent)
 
     currentBgColor = QColor(255, 255, 255);
     otherBgColor = QColor(240, 240, 240);
-    selectBgColor = QColor(55,143,250);
+    selectBgColor = QColor(55,144,250);
     hoverBgColor = QColor(204, 183, 180);
 }
 
@@ -199,7 +199,7 @@ void LunarCalendarYearItem::drawYear(QPainter *painter)
     painter->setFont(font);
 
     QRect dayRect = QRect(0, 0, width, height / 1.7);
-    QString arg = QString::number(date.year()) + "年";
+    QString arg = QString::number(date.year()) /*+ "年"*/;
     painter->drawText(dayRect, Qt::AlignHCenter | Qt::AlignBottom, arg);
     painter->restore();
 }
-- 
2.33.0

