diff --git a/plugins/datetime/datetime.pro b/plugins/datetime/datetime.pro index 66e16541c..7a57bf790 100644 --- a/plugins/datetime/datetime.pro +++ b/plugins/datetime/datetime.pro @@ -1,7 +1,7 @@ include(../../interfaces/interfaces.pri) -QT += widgets +QT += widgets svg TEMPLATE = lib CONFIG += plugin c++11 link_pkgconfig PKGCONFIG += diff --git a/plugins/datetime/datetimewidget.cpp b/plugins/datetime/datetimewidget.cpp index f6988dc7b..5cef6cd20 100644 --- a/plugins/datetime/datetimewidget.cpp +++ b/plugins/datetime/datetimewidget.cpp @@ -4,6 +4,7 @@ #include #include #include +#include DatetimeWidget::DatetimeWidget(QWidget *parent) : QWidget(parent) @@ -37,15 +38,53 @@ void DatetimeWidget::paintEvent(QPaintEvent *e) // draw fashion mode datetime plugin const int perfectIconSize = qMin(width(), height()) * 0.8; const QString currentTimeString = current.toString("HHmmss"); + const QRect r = rect(); - QPixmap pixmap(":/icons/resources/icons/panel.png"); - QPainter itemPainter(&pixmap); - itemPainter.drawPixmap(8, 15, QPixmap(QString(":/icons/resources/icons/big%1.png").arg(currentTimeString[0]))); - itemPainter.drawPixmap(18, 15, QPixmap(QString(":/icons/resources/icons/big%1.png").arg(currentTimeString[1]))); - itemPainter.drawPixmap(28, 24, QPixmap(QString(":/icons/resources/icons/small%1.png").arg(currentTimeString[2]))); - itemPainter.drawPixmap(34, 24, QPixmap(QString(":/icons/resources/icons/small%1.png").arg(currentTimeString[3]))); - itemPainter.end(); + // draw background + const QPixmap background = loadSvg(":/icons/resources/icons/background.svg", QSize(perfectIconSize, perfectIconSize)); + const QPoint backgroundOffset = r.center() - background.rect().center(); + painter.drawPixmap(backgroundOffset, background); - pixmap = pixmap.scaled(perfectIconSize, perfectIconSize, Qt::KeepAspectRatio, Qt::SmoothTransformation); - painter.drawPixmap(rect().center() - pixmap.rect().center(), pixmap, pixmap.rect()); + const int bigNumHeight = perfectIconSize / 2.35; + const int bigNumWidth = double(bigNumHeight) * 8 / 18; + const int smallNumHeight = bigNumHeight / 2; + const int smallNumWidth = double(smallNumHeight) * 5 / 9; + + // draw big num 1 + const QString bigNum1Path = QString(":/icons/resources/icons/big%1.svg").arg(currentTimeString[0]); + const QPixmap bigNum1 = loadSvg(bigNum1Path, QSize(bigNumWidth, bigNumHeight)); + const QPoint bigNum1Offset = backgroundOffset + QPoint(perfectIconSize / 2 - bigNumWidth * 2 + 2, perfectIconSize / 2 - bigNumHeight / 2); + painter.drawPixmap(bigNum1Offset, bigNum1); + + // draw big num 2 + const QString bigNum2Path = QString(":/icons/resources/icons/big%1.svg").arg(currentTimeString[1]); + const QPixmap bigNum2 = loadSvg(bigNum2Path, QSize(bigNumWidth, bigNumHeight)); + const QPoint bigNum2Offset = bigNum1Offset + QPoint(bigNumWidth + 3, 0); + painter.drawPixmap(bigNum2Offset, bigNum2); + + // draw small num 1 + const QString smallNum1Path = QString(":/icons/resources/icons/small%1.svg").arg(currentTimeString[2]); + const QPixmap smallNum1 = loadSvg(smallNum1Path, QSize(smallNumWidth, smallNumHeight)); + const QPoint smallNum1Offset = bigNum2Offset + QPoint(bigNumWidth + 1, smallNumHeight); + painter.drawPixmap(smallNum1Offset, smallNum1); + + // draw small num 2 + const QString smallNum2Path = QString(":/icons/resources/icons/small%1.svg").arg(currentTimeString[3]); + const QPixmap smallNum2 = loadSvg(smallNum2Path, QSize(smallNumWidth, smallNumHeight)); + const QPoint smallNum2Offset = smallNum1Offset + QPoint(smallNumWidth + 1, 0); + painter.drawPixmap(smallNum2Offset, smallNum2); +} + +const QPixmap DatetimeWidget::loadSvg(const QString &fileName, const QSize size) +{ + QPixmap pixmap(size); + QSvgRenderer renderer(fileName); + pixmap.fill(Qt::transparent); + + QPainter painter; + painter.begin(&pixmap); + renderer.render(&painter); + painter.end(); + + return pixmap; } diff --git a/plugins/datetime/datetimewidget.h b/plugins/datetime/datetimewidget.h index 36787961c..997dc19c6 100644 --- a/plugins/datetime/datetimewidget.h +++ b/plugins/datetime/datetimewidget.h @@ -13,6 +13,8 @@ public: private: QSize sizeHint() const; void paintEvent(QPaintEvent *e); + + const QPixmap loadSvg(const QString &fileName, const QSize size); }; #endif // DATETIMEWIDGET_H diff --git a/plugins/datetime/resources.qrc b/plugins/datetime/resources.qrc index bc9695ffc..c961ff6ae 100644 --- a/plugins/datetime/resources.qrc +++ b/plugins/datetime/resources.qrc @@ -1,25 +1,25 @@ - resources/icons/panel.png - resources/icons/big0.png - resources/icons/big1.png - resources/icons/big2.png - resources/icons/big3.png - resources/icons/big4.png - resources/icons/big5.png - resources/icons/big6.png - resources/icons/big7.png - resources/icons/big8.png - resources/icons/big9.png - resources/icons/small0.png - resources/icons/small1.png - resources/icons/small2.png - resources/icons/small3.png - resources/icons/small4.png - resources/icons/small5.png - resources/icons/small6.png - resources/icons/small7.png - resources/icons/small8.png - resources/icons/small9.png + resources/icons/background.svg + resources/icons/big0.svg + resources/icons/big1.svg + resources/icons/big2.svg + resources/icons/big3.svg + resources/icons/big4.svg + resources/icons/big5.svg + resources/icons/big6.svg + resources/icons/big7.svg + resources/icons/big8.svg + resources/icons/big9.svg + resources/icons/small0.svg + resources/icons/small1.svg + resources/icons/small2.svg + resources/icons/small3.svg + resources/icons/small4.svg + resources/icons/small5.svg + resources/icons/small6.svg + resources/icons/small7.svg + resources/icons/small8.svg + resources/icons/small9.svg diff --git a/plugins/datetime/resources/icons/am.png b/plugins/datetime/resources/icons/am.png deleted file mode 100644 index 0bf03a421..000000000 Binary files a/plugins/datetime/resources/icons/am.png and /dev/null differ diff --git a/plugins/datetime/resources/icons/background.svg b/plugins/datetime/resources/icons/background.svg new file mode 100644 index 000000000..806eb7edf --- /dev/null +++ b/plugins/datetime/resources/icons/background.svg @@ -0,0 +1,25 @@ + + + + 时钟底板 + Created with Sketch. + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/plugins/datetime/resources/icons/big0.png b/plugins/datetime/resources/icons/big0.png deleted file mode 100644 index 0cec0f8bd..000000000 Binary files a/plugins/datetime/resources/icons/big0.png and /dev/null differ diff --git a/plugins/datetime/resources/icons/big0.svg b/plugins/datetime/resources/icons/big0.svg new file mode 100644 index 000000000..1e2e27362 --- /dev/null +++ b/plugins/datetime/resources/icons/big0.svg @@ -0,0 +1,12 @@ + + + + 数字大0 + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/plugins/datetime/resources/icons/big1.png b/plugins/datetime/resources/icons/big1.png deleted file mode 100644 index fb08902d4..000000000 Binary files a/plugins/datetime/resources/icons/big1.png and /dev/null differ diff --git a/plugins/datetime/resources/icons/big1.svg b/plugins/datetime/resources/icons/big1.svg new file mode 100644 index 000000000..37d42e268 --- /dev/null +++ b/plugins/datetime/resources/icons/big1.svg @@ -0,0 +1,12 @@ + + + + 数字大1 + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/plugins/datetime/resources/icons/big2.png b/plugins/datetime/resources/icons/big2.png deleted file mode 100644 index 8b939b971..000000000 Binary files a/plugins/datetime/resources/icons/big2.png and /dev/null differ diff --git a/plugins/datetime/resources/icons/big2.svg b/plugins/datetime/resources/icons/big2.svg new file mode 100644 index 000000000..ece4c007c --- /dev/null +++ b/plugins/datetime/resources/icons/big2.svg @@ -0,0 +1,12 @@ + + + + 数字大2 + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/plugins/datetime/resources/icons/big3.png b/plugins/datetime/resources/icons/big3.png deleted file mode 100644 index d04bc424f..000000000 Binary files a/plugins/datetime/resources/icons/big3.png and /dev/null differ diff --git a/plugins/datetime/resources/icons/big3.svg b/plugins/datetime/resources/icons/big3.svg new file mode 100644 index 000000000..475fb8253 --- /dev/null +++ b/plugins/datetime/resources/icons/big3.svg @@ -0,0 +1,12 @@ + + + + 数字大3 + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/plugins/datetime/resources/icons/big4.png b/plugins/datetime/resources/icons/big4.png deleted file mode 100644 index b2449d3a1..000000000 Binary files a/plugins/datetime/resources/icons/big4.png and /dev/null differ diff --git a/plugins/datetime/resources/icons/big4.svg b/plugins/datetime/resources/icons/big4.svg new file mode 100644 index 000000000..a2c651c60 --- /dev/null +++ b/plugins/datetime/resources/icons/big4.svg @@ -0,0 +1,12 @@ + + + + 数字大4 + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/plugins/datetime/resources/icons/big5.png b/plugins/datetime/resources/icons/big5.png deleted file mode 100644 index ed0e7f68d..000000000 Binary files a/plugins/datetime/resources/icons/big5.png and /dev/null differ diff --git a/plugins/datetime/resources/icons/big5.svg b/plugins/datetime/resources/icons/big5.svg new file mode 100644 index 000000000..c3f74fd84 --- /dev/null +++ b/plugins/datetime/resources/icons/big5.svg @@ -0,0 +1,12 @@ + + + + 数字大5 + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/plugins/datetime/resources/icons/big6.png b/plugins/datetime/resources/icons/big6.png deleted file mode 100644 index 3618b4534..000000000 Binary files a/plugins/datetime/resources/icons/big6.png and /dev/null differ diff --git a/plugins/datetime/resources/icons/big6.svg b/plugins/datetime/resources/icons/big6.svg new file mode 100644 index 000000000..ddc8eca45 --- /dev/null +++ b/plugins/datetime/resources/icons/big6.svg @@ -0,0 +1,12 @@ + + + + 数字大6 + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/plugins/datetime/resources/icons/big7.png b/plugins/datetime/resources/icons/big7.png deleted file mode 100644 index 163a845f4..000000000 Binary files a/plugins/datetime/resources/icons/big7.png and /dev/null differ diff --git a/plugins/datetime/resources/icons/big7.svg b/plugins/datetime/resources/icons/big7.svg new file mode 100644 index 000000000..16bb1cd11 --- /dev/null +++ b/plugins/datetime/resources/icons/big7.svg @@ -0,0 +1,12 @@ + + + + 数字大7 + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/plugins/datetime/resources/icons/big8.png b/plugins/datetime/resources/icons/big8.png deleted file mode 100644 index d34be78fd..000000000 Binary files a/plugins/datetime/resources/icons/big8.png and /dev/null differ diff --git a/plugins/datetime/resources/icons/big8.svg b/plugins/datetime/resources/icons/big8.svg new file mode 100644 index 000000000..8e25427da --- /dev/null +++ b/plugins/datetime/resources/icons/big8.svg @@ -0,0 +1,12 @@ + + + + 数字大8 + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/plugins/datetime/resources/icons/big9.png b/plugins/datetime/resources/icons/big9.png deleted file mode 100644 index 41cf385b2..000000000 Binary files a/plugins/datetime/resources/icons/big9.png and /dev/null differ diff --git a/plugins/datetime/resources/icons/big9.svg b/plugins/datetime/resources/icons/big9.svg new file mode 100644 index 000000000..721b8f3f3 --- /dev/null +++ b/plugins/datetime/resources/icons/big9.svg @@ -0,0 +1,12 @@ + + + + 数字大9 + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/plugins/datetime/resources/icons/dail.png b/plugins/datetime/resources/icons/dail.png deleted file mode 100644 index 88067a358..000000000 Binary files a/plugins/datetime/resources/icons/dail.png and /dev/null differ diff --git a/plugins/datetime/resources/icons/hour_hand.png b/plugins/datetime/resources/icons/hour_hand.png deleted file mode 100644 index d145bf8cc..000000000 Binary files a/plugins/datetime/resources/icons/hour_hand.png and /dev/null differ diff --git a/plugins/datetime/resources/icons/hour_hand_with_shadow.png b/plugins/datetime/resources/icons/hour_hand_with_shadow.png deleted file mode 100644 index 7bece8177..000000000 Binary files a/plugins/datetime/resources/icons/hour_hand_with_shadow.png and /dev/null differ diff --git a/plugins/datetime/resources/icons/minute_hand.png b/plugins/datetime/resources/icons/minute_hand.png deleted file mode 100644 index 3e14afbc5..000000000 Binary files a/plugins/datetime/resources/icons/minute_hand.png and /dev/null differ diff --git a/plugins/datetime/resources/icons/minute_hand_with_shadow.png b/plugins/datetime/resources/icons/minute_hand_with_shadow.png deleted file mode 100644 index 5f1ee0945..000000000 Binary files a/plugins/datetime/resources/icons/minute_hand_with_shadow.png and /dev/null differ diff --git a/plugins/datetime/resources/icons/panel.png b/plugins/datetime/resources/icons/panel.png deleted file mode 100644 index f4abe48ee..000000000 Binary files a/plugins/datetime/resources/icons/panel.png and /dev/null differ diff --git a/plugins/datetime/resources/icons/pm.png b/plugins/datetime/resources/icons/pm.png deleted file mode 100644 index 01986ff25..000000000 Binary files a/plugins/datetime/resources/icons/pm.png and /dev/null differ diff --git a/plugins/datetime/resources/icons/point.png b/plugins/datetime/resources/icons/point.png deleted file mode 100644 index 4876864b8..000000000 Binary files a/plugins/datetime/resources/icons/point.png and /dev/null differ diff --git a/plugins/datetime/resources/icons/small0.png b/plugins/datetime/resources/icons/small0.png deleted file mode 100644 index 3e0ee7ddc..000000000 Binary files a/plugins/datetime/resources/icons/small0.png and /dev/null differ diff --git a/plugins/datetime/resources/icons/small0.svg b/plugins/datetime/resources/icons/small0.svg new file mode 100644 index 000000000..0cc0cff2e --- /dev/null +++ b/plugins/datetime/resources/icons/small0.svg @@ -0,0 +1,12 @@ + + + + 数字小0 + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/plugins/datetime/resources/icons/small1.png b/plugins/datetime/resources/icons/small1.png deleted file mode 100644 index bb1a90dd3..000000000 Binary files a/plugins/datetime/resources/icons/small1.png and /dev/null differ diff --git a/plugins/datetime/resources/icons/small1.svg b/plugins/datetime/resources/icons/small1.svg new file mode 100644 index 000000000..9d7d697ad --- /dev/null +++ b/plugins/datetime/resources/icons/small1.svg @@ -0,0 +1,12 @@ + + + + 数字小1 + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/plugins/datetime/resources/icons/small2.png b/plugins/datetime/resources/icons/small2.png deleted file mode 100644 index 023b59754..000000000 Binary files a/plugins/datetime/resources/icons/small2.png and /dev/null differ diff --git a/plugins/datetime/resources/icons/small2.svg b/plugins/datetime/resources/icons/small2.svg new file mode 100644 index 000000000..141ab389f --- /dev/null +++ b/plugins/datetime/resources/icons/small2.svg @@ -0,0 +1,12 @@ + + + + 数字小2 + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/plugins/datetime/resources/icons/small3.png b/plugins/datetime/resources/icons/small3.png deleted file mode 100644 index 651bf5117..000000000 Binary files a/plugins/datetime/resources/icons/small3.png and /dev/null differ diff --git a/plugins/datetime/resources/icons/small3.svg b/plugins/datetime/resources/icons/small3.svg new file mode 100644 index 000000000..37a12cab3 --- /dev/null +++ b/plugins/datetime/resources/icons/small3.svg @@ -0,0 +1,12 @@ + + + + 数字小3 + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/plugins/datetime/resources/icons/small4.png b/plugins/datetime/resources/icons/small4.png deleted file mode 100644 index 898ff4eac..000000000 Binary files a/plugins/datetime/resources/icons/small4.png and /dev/null differ diff --git a/plugins/datetime/resources/icons/small4.svg b/plugins/datetime/resources/icons/small4.svg new file mode 100644 index 000000000..208445396 --- /dev/null +++ b/plugins/datetime/resources/icons/small4.svg @@ -0,0 +1,12 @@ + + + + 数字小4 + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/plugins/datetime/resources/icons/small5.png b/plugins/datetime/resources/icons/small5.png deleted file mode 100644 index e3821a08e..000000000 Binary files a/plugins/datetime/resources/icons/small5.png and /dev/null differ diff --git a/plugins/datetime/resources/icons/small5.svg b/plugins/datetime/resources/icons/small5.svg new file mode 100644 index 000000000..3afaa4853 --- /dev/null +++ b/plugins/datetime/resources/icons/small5.svg @@ -0,0 +1,12 @@ + + + + 数字小5 + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/plugins/datetime/resources/icons/small6.png b/plugins/datetime/resources/icons/small6.png deleted file mode 100644 index d991e4288..000000000 Binary files a/plugins/datetime/resources/icons/small6.png and /dev/null differ diff --git a/plugins/datetime/resources/icons/small6.svg b/plugins/datetime/resources/icons/small6.svg new file mode 100644 index 000000000..263ee2e57 --- /dev/null +++ b/plugins/datetime/resources/icons/small6.svg @@ -0,0 +1,12 @@ + + + + 数字小6 + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/plugins/datetime/resources/icons/small7.png b/plugins/datetime/resources/icons/small7.png deleted file mode 100644 index 5a456d91c..000000000 Binary files a/plugins/datetime/resources/icons/small7.png and /dev/null differ diff --git a/plugins/datetime/resources/icons/small7.svg b/plugins/datetime/resources/icons/small7.svg new file mode 100644 index 000000000..9aecf113d --- /dev/null +++ b/plugins/datetime/resources/icons/small7.svg @@ -0,0 +1,12 @@ + + + + 数字小7 + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/plugins/datetime/resources/icons/small8.png b/plugins/datetime/resources/icons/small8.png deleted file mode 100644 index e43d7e0ad..000000000 Binary files a/plugins/datetime/resources/icons/small8.png and /dev/null differ diff --git a/plugins/datetime/resources/icons/small8.svg b/plugins/datetime/resources/icons/small8.svg new file mode 100644 index 000000000..92f6019e2 --- /dev/null +++ b/plugins/datetime/resources/icons/small8.svg @@ -0,0 +1,12 @@ + + + + 数字小8 + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/plugins/datetime/resources/icons/small9.png b/plugins/datetime/resources/icons/small9.png deleted file mode 100644 index d9af8fb93..000000000 Binary files a/plugins/datetime/resources/icons/small9.png and /dev/null differ diff --git a/plugins/datetime/resources/icons/small9.svg b/plugins/datetime/resources/icons/small9.svg new file mode 100644 index 000000000..ebcfe4e81 --- /dev/null +++ b/plugins/datetime/resources/icons/small9.svg @@ -0,0 +1,12 @@ + + + + 数字小9 + Created with Sketch. + + + + + + + \ No newline at end of file