diff --git a/frame/util/docksettings.cpp b/frame/util/docksettings.cpp index 79a771ed1..42b9c407b 100644 --- a/frame/util/docksettings.cpp +++ b/frame/util/docksettings.cpp @@ -34,7 +34,9 @@ DockSettings::DockSettings(QObject *parent) m_iconSize = m_dockInter->iconSize(); AppItem::setIconBaseSize(m_iconSize); DockItem::setDockPosition(m_position); + qApp->setProperty(PROP_POSITION, QVariant::fromValue(m_position)); DockItem::setDockDisplayMode(m_displayMode); + qApp->setProperty(PROP_DISPLAY_MODE, QVariant::fromValue(m_displayMode)); m_fashionModeAct.setCheckable(true); m_efficientModeAct.setCheckable(true); diff --git a/plugins/datetime/datetime.pro b/plugins/datetime/datetime.pro index 204d7d35c..5ee3757a4 100644 --- a/plugins/datetime/datetime.pro +++ b/plugins/datetime/datetime.pro @@ -19,3 +19,6 @@ SOURCES += \ target.path = $${PREFIX}/lib/dde-dock/plugins/ INSTALLS += target + +RESOURCES += \ + resources.qrc diff --git a/plugins/datetime/datetimeplugin.cpp b/plugins/datetime/datetimeplugin.cpp index a9f476dee..b079b67a2 100644 --- a/plugins/datetime/datetimeplugin.cpp +++ b/plugins/datetime/datetimeplugin.cpp @@ -9,7 +9,7 @@ DatetimePlugin::DatetimePlugin(QObject *parent) m_centeralWidget = new DatetimeWidget; - connect(m_refershTimer, &QTimer::timeout, m_centeralWidget, static_cast(&DatetimeWidget::update)); + connect(m_refershTimer, &QTimer::timeout, this, &DatetimePlugin::updateCurrentTimeString); } DatetimePlugin::~DatetimePlugin() @@ -41,3 +41,14 @@ QWidget *DatetimePlugin::itemWidget(const QString &itemKey) return m_centeralWidget; } + +void DatetimePlugin::updateCurrentTimeString() +{ + const QString currentString = QTime::currentTime().toString("mm"); + + if (currentString == m_currentTimeString) + return; + + m_currentTimeString = currentString; + m_centeralWidget->update(); +} diff --git a/plugins/datetime/datetimeplugin.h b/plugins/datetime/datetimeplugin.h index 5dde4f46f..23769bc05 100644 --- a/plugins/datetime/datetimeplugin.h +++ b/plugins/datetime/datetimeplugin.h @@ -22,9 +22,14 @@ public: QWidget *itemWidget(const QString &itemKey); +private slots: + void updateCurrentTimeString(); + private: DatetimeWidget *m_centeralWidget; QTimer *m_refershTimer; + + QString m_currentTimeString; }; #endif // DATETIMEPLUGIN_H diff --git a/plugins/datetime/datetimewidget.cpp b/plugins/datetime/datetimewidget.cpp index 9f07f520f..f6988dc7b 100644 --- a/plugins/datetime/datetimewidget.cpp +++ b/plugins/datetime/datetimewidget.cpp @@ -23,16 +23,29 @@ void DatetimeWidget::paintEvent(QPaintEvent *e) Q_UNUSED(e); const Dock::DisplayMode displayMode = qApp->property(PROP_DISPLAY_MODE).value(); + const QDateTime current = QDateTime::currentDateTime(); QPainter painter(this); if (displayMode == Dock::Efficient) { painter.setPen(Qt::white); - painter.drawText(rect(), Qt::AlignCenter, "88:88"); + painter.drawText(rect(), Qt::AlignCenter, current.toString(tr("HH:mm"))); + return; } - else - { - } + // draw fashion mode datetime plugin + const int perfectIconSize = qMin(width(), height()) * 0.8; + const QString currentTimeString = current.toString("HHmmss"); + + 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(); + + pixmap = pixmap.scaled(perfectIconSize, perfectIconSize, Qt::KeepAspectRatio, Qt::SmoothTransformation); + painter.drawPixmap(rect().center() - pixmap.rect().center(), pixmap, pixmap.rect()); } diff --git a/plugins/datetime/resources.qrc b/plugins/datetime/resources.qrc new file mode 100644 index 000000000..bc9695ffc --- /dev/null +++ b/plugins/datetime/resources.qrc @@ -0,0 +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 + + diff --git a/plugins/datetime/resources/icons/am.png b/plugins/datetime/resources/icons/am.png new file mode 100644 index 000000000..0bf03a421 Binary files /dev/null and b/plugins/datetime/resources/icons/am.png differ diff --git a/plugins/datetime/resources/icons/big0.png b/plugins/datetime/resources/icons/big0.png new file mode 100644 index 000000000..0cec0f8bd Binary files /dev/null and b/plugins/datetime/resources/icons/big0.png differ diff --git a/plugins/datetime/resources/icons/big1.png b/plugins/datetime/resources/icons/big1.png new file mode 100644 index 000000000..fb08902d4 Binary files /dev/null and b/plugins/datetime/resources/icons/big1.png differ diff --git a/plugins/datetime/resources/icons/big2.png b/plugins/datetime/resources/icons/big2.png new file mode 100644 index 000000000..8b939b971 Binary files /dev/null and b/plugins/datetime/resources/icons/big2.png differ diff --git a/plugins/datetime/resources/icons/big3.png b/plugins/datetime/resources/icons/big3.png new file mode 100644 index 000000000..d04bc424f Binary files /dev/null and b/plugins/datetime/resources/icons/big3.png differ diff --git a/plugins/datetime/resources/icons/big4.png b/plugins/datetime/resources/icons/big4.png new file mode 100644 index 000000000..b2449d3a1 Binary files /dev/null and b/plugins/datetime/resources/icons/big4.png differ diff --git a/plugins/datetime/resources/icons/big5.png b/plugins/datetime/resources/icons/big5.png new file mode 100644 index 000000000..ed0e7f68d Binary files /dev/null and b/plugins/datetime/resources/icons/big5.png differ diff --git a/plugins/datetime/resources/icons/big6.png b/plugins/datetime/resources/icons/big6.png new file mode 100644 index 000000000..3618b4534 Binary files /dev/null and b/plugins/datetime/resources/icons/big6.png differ diff --git a/plugins/datetime/resources/icons/big7.png b/plugins/datetime/resources/icons/big7.png new file mode 100644 index 000000000..163a845f4 Binary files /dev/null and b/plugins/datetime/resources/icons/big7.png differ diff --git a/plugins/datetime/resources/icons/big8.png b/plugins/datetime/resources/icons/big8.png new file mode 100644 index 000000000..d34be78fd Binary files /dev/null and b/plugins/datetime/resources/icons/big8.png differ diff --git a/plugins/datetime/resources/icons/big9.png b/plugins/datetime/resources/icons/big9.png new file mode 100644 index 000000000..41cf385b2 Binary files /dev/null and b/plugins/datetime/resources/icons/big9.png differ diff --git a/plugins/datetime/resources/icons/dail.png b/plugins/datetime/resources/icons/dail.png new file mode 100644 index 000000000..88067a358 Binary files /dev/null and b/plugins/datetime/resources/icons/dail.png differ diff --git a/plugins/datetime/resources/icons/hour_hand.png b/plugins/datetime/resources/icons/hour_hand.png new file mode 100644 index 000000000..d145bf8cc Binary files /dev/null and b/plugins/datetime/resources/icons/hour_hand.png differ diff --git a/plugins/datetime/resources/icons/hour_hand_with_shadow.png b/plugins/datetime/resources/icons/hour_hand_with_shadow.png new file mode 100644 index 000000000..7bece8177 Binary files /dev/null and b/plugins/datetime/resources/icons/hour_hand_with_shadow.png differ diff --git a/plugins/datetime/resources/icons/minute_hand.png b/plugins/datetime/resources/icons/minute_hand.png new file mode 100644 index 000000000..3e14afbc5 Binary files /dev/null and b/plugins/datetime/resources/icons/minute_hand.png differ diff --git a/plugins/datetime/resources/icons/minute_hand_with_shadow.png b/plugins/datetime/resources/icons/minute_hand_with_shadow.png new file mode 100644 index 000000000..5f1ee0945 Binary files /dev/null and b/plugins/datetime/resources/icons/minute_hand_with_shadow.png differ diff --git a/plugins/datetime/resources/icons/panel.png b/plugins/datetime/resources/icons/panel.png new file mode 100644 index 000000000..f4abe48ee Binary files /dev/null and b/plugins/datetime/resources/icons/panel.png differ diff --git a/plugins/datetime/resources/icons/pm.png b/plugins/datetime/resources/icons/pm.png new file mode 100644 index 000000000..01986ff25 Binary files /dev/null and b/plugins/datetime/resources/icons/pm.png differ diff --git a/plugins/datetime/resources/icons/point.png b/plugins/datetime/resources/icons/point.png new file mode 100644 index 000000000..4876864b8 Binary files /dev/null and b/plugins/datetime/resources/icons/point.png differ diff --git a/plugins/datetime/resources/icons/small0.png b/plugins/datetime/resources/icons/small0.png new file mode 100644 index 000000000..3e0ee7ddc Binary files /dev/null and b/plugins/datetime/resources/icons/small0.png differ diff --git a/plugins/datetime/resources/icons/small1.png b/plugins/datetime/resources/icons/small1.png new file mode 100644 index 000000000..bb1a90dd3 Binary files /dev/null and b/plugins/datetime/resources/icons/small1.png differ diff --git a/plugins/datetime/resources/icons/small2.png b/plugins/datetime/resources/icons/small2.png new file mode 100644 index 000000000..023b59754 Binary files /dev/null and b/plugins/datetime/resources/icons/small2.png differ diff --git a/plugins/datetime/resources/icons/small3.png b/plugins/datetime/resources/icons/small3.png new file mode 100644 index 000000000..651bf5117 Binary files /dev/null and b/plugins/datetime/resources/icons/small3.png differ diff --git a/plugins/datetime/resources/icons/small4.png b/plugins/datetime/resources/icons/small4.png new file mode 100644 index 000000000..898ff4eac Binary files /dev/null and b/plugins/datetime/resources/icons/small4.png differ diff --git a/plugins/datetime/resources/icons/small5.png b/plugins/datetime/resources/icons/small5.png new file mode 100644 index 000000000..e3821a08e Binary files /dev/null and b/plugins/datetime/resources/icons/small5.png differ diff --git a/plugins/datetime/resources/icons/small6.png b/plugins/datetime/resources/icons/small6.png new file mode 100644 index 000000000..d991e4288 Binary files /dev/null and b/plugins/datetime/resources/icons/small6.png differ diff --git a/plugins/datetime/resources/icons/small7.png b/plugins/datetime/resources/icons/small7.png new file mode 100644 index 000000000..5a456d91c Binary files /dev/null and b/plugins/datetime/resources/icons/small7.png differ diff --git a/plugins/datetime/resources/icons/small8.png b/plugins/datetime/resources/icons/small8.png new file mode 100644 index 000000000..e43d7e0ad Binary files /dev/null and b/plugins/datetime/resources/icons/small8.png differ diff --git a/plugins/datetime/resources/icons/small9.png b/plugins/datetime/resources/icons/small9.png new file mode 100644 index 000000000..d9af8fb93 Binary files /dev/null and b/plugins/datetime/resources/icons/small9.png differ