From 8e14a8d13412d7844e9264810a1fb2d2c00a1a4c Mon Sep 17 00:00:00 2001 From: Fan PengCheng Date: Mon, 9 May 2022 18:36:21 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=97=A5=E5=8E=86?= =?UTF-8?q?=E5=9B=BE=E6=A0=87=E6=98=BE=E7=A4=BA=E5=BC=82=E5=B8=B8=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 某些情况下,日历图标中的3月会显示错位,这部分是因为3月在svg图片中信息和其他月份不一样,当前已修改 Log: 修复部分情况下日历图标显示异常的问题 Influence: 日历图标显示 --- frame/util/themeappicon.cpp | 202 ++++++++++++++++----------------- frame/util/themeappicon.h | 2 +- tests/util/ut_themeappicon.cpp | 3 +- 3 files changed, 101 insertions(+), 106 deletions(-) diff --git a/frame/util/themeappicon.cpp b/frame/util/themeappicon.cpp index c19512fdd..349cb8b69 100644 --- a/frame/util/themeappicon.cpp +++ b/frame/util/themeappicon.cpp @@ -95,7 +95,7 @@ bool ThemeAppIcon::getIcon(QPixmap &pix, const QString iconName, const int size, QString name = QStandardPaths::standardLocations(QStandardPaths::TempLocation).first() + "/" + QString::number(QDate::currentDate().year()) + "_" + QString::number(QDate::currentDate().dayOfYear()) + ".svg"; - if (!createCalendarIcon(name)) { + if (!createCalendarIcon(QDate::currentDate(), name)) { qWarning() << "file: "<< name << " ,create failed!"; } @@ -169,128 +169,122 @@ bool ThemeAppIcon::getIcon(QPixmap &pix, const QString iconName, const int size, return ret; } -bool ThemeAppIcon::createCalendarIcon(const QString &fileName) +bool ThemeAppIcon::createCalendarIcon(const QDate &date, const QString &fileName) { - static const QByteArrayList dayList= {"\n" - , "\n" - , "\n" - , "\n" - , "\n" - , "\n" - , "\n" - , "\n" - , "\n" - , "" - , "" - , "" - , "" - , "" - , "" - , "" - , "" - , "" - , "" - , "" - , "" - , "" - , "" - , "" - , "" - , "" - , "" - , "" - , "" - , "" - , "" + static const QByteArrayList &dayList= { "\n" + , "\n" + , "\n" + , "\n" + , "\n" + , "\n" + , "\n" + , "\n" + , "\n" + , "\n" + , "\n" + , "\n" + , "\n" + , "\n" + , "\n" + , "\n" + , "\n" + , "\n" + , "\n" + , "\n" + , "\n" + , "\n" + , "\n" + , "\n" + , "\n" + , "\n" + , "\n" + , "\n" + , "\n" + , "\n" + , "\n" }; - static const QByteArrayList monthList= {"\n" - , "\n" - , "\n" - "MAR\n" - "\n" - , "\n" - , "\n" - , "\n" - , "\n" - , "\n" - , "\n" - , "\n" - , "\n" - , "\n" + static const QByteArrayList &monthList= { "\n" + , "\n" + , "\n" + , "\n" + , "\n" + , "\n" + , "\n" + , "\n" + , "\n" + , "\n" + , "\n" + , "\n" }; - static const QByteArrayList weekList= {"\n" - , "\n" - , "\n" - , "\n" - , "\n" - , "\n" - , "\n" - }; + static const QByteArrayList &weekList= { "\n" + , "\n" + , "\n" + , "\n" + , "\n" + , "\n" + , "\n"}; if (!QFile(fileName).exists()) { // create svg QFile file(fileName); - if (!file.open(QIODevice::WriteOnly | QIODevice::Truncate)) { + if (!file.open(QIODevice::WriteOnly | QIODevice::Truncate)) return false; - } - file.write(QByteArray("\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n")); + + file.write(QByteArray("\n" + "\n" + " 0101\n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n")); // 日期 - file.write(dayList.at(QDate::currentDate().day() - 1)); - file.write(QByteArray("\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n")); + file.write(" " + dayList.at(date.day() - 1)); + file.write(QByteArray(" \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n" + " \n")); // 右下角 - file.write(QByteArray("\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n")); + file.write(QByteArray(" \n")); // 背景 - file.write(QByteArray("\n" - " \n" - " \n")); + file.write(QByteArray(" \n" + " \n" + " \n" + " \n" + " \n")); // 月份 - file.write(monthList.at(QDate::currentDate().month() - 1)); + file.write(" " + monthList.at(date.month() - 1)); // 日期 - file.write(QByteArray("\n" - " \n" - " \n" - " \n" - " \n")); + file.write(QByteArray(" \n" + " \n" + " \n" + " \n" + " \n")); // 星期 - file.write(weekList.at(QDate::currentDate().dayOfWeek() - 1)); + file.write(" " + weekList.at(date.dayOfWeek() - 1)); // 右下角 - file.write(QByteArray("\n" - "\n" - "\n" - "\n")); + file.write(QByteArray(" \n" + "")); file.close(); } diff --git a/frame/util/themeappicon.h b/frame/util/themeappicon.h index 35fb218c6..e96687c5f 100644 --- a/frame/util/themeappicon.h +++ b/frame/util/themeappicon.h @@ -35,7 +35,7 @@ public: static bool getIcon(QPixmap &pix, const QString iconName, const int size, bool reObtain = false); private: - static bool createCalendarIcon(const QString &fileName); + static bool createCalendarIcon(const QDate &date, const QString &fileName); }; #endif // THEMEAPPICON_H diff --git a/tests/util/ut_themeappicon.cpp b/tests/util/ut_themeappicon.cpp index 82986ac9a..4a9c6fccb 100644 --- a/tests/util/ut_themeappicon.cpp +++ b/tests/util/ut_themeappicon.cpp @@ -24,6 +24,7 @@ #include #include #include +#include #include @@ -86,6 +87,6 @@ TEST_F(Ut_ThemeAppIcon, getIcon_test4) TEST_F(Ut_ThemeAppIcon, createCalendarIcon_test) { const QString &filePath = "/tmp/calendar.svg"; - ASSERT_TRUE(ThemeAppIcon::createCalendarIcon(filePath)); + ASSERT_TRUE(ThemeAppIcon::createCalendarIcon(QDate::currentDate(), filePath)); QFile::remove(filePath); }