mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-02 15:45:21 +00:00
datetime: support 12 hour format display
Change-Id: Ied625ac784a59ff235050cea6e9d0660986824d4
This commit is contained in:
parent
9064e464d3
commit
b416d4572d
Notes:
Deepin Code Review
2017-03-31 09:29:34 +08:00
Verified+1: Anonymous Coward #1000004 i18n+1: <liufei@linuxdeepin.com> Code-Review+2: 石博文 <sbw@sbw.so> Submitted-by: 石博文 <sbw@sbw.so> Submitted-at: Fri, 31 Mar 2017 09:29:34 +0800 Reviewed-on: https://cr.deepin.io/21962 Project: dde/dde-dock Branch: refs/heads/master
@ -75,6 +75,15 @@ const QString DatetimePlugin::itemContextMenu(const QString &itemKey)
|
||||
QList<QVariant> items;
|
||||
items.reserve(1);
|
||||
|
||||
QMap<QString, QVariant> settings;
|
||||
settings["itemId"] = "settings";
|
||||
if (m_centralWidget->is24HourFormat())
|
||||
settings["itemText"] = tr("12 Hour Time");
|
||||
else
|
||||
settings["itemText"] = tr("24 Hour Time");
|
||||
settings["isActive"] = true;
|
||||
items.push_back(settings);
|
||||
|
||||
QMap<QString, QVariant> open;
|
||||
open["itemId"] = "open";
|
||||
open["itemText"] = tr("Time Settings");
|
||||
@ -92,10 +101,12 @@ const QString DatetimePlugin::itemContextMenu(const QString &itemKey)
|
||||
void DatetimePlugin::invokedMenuItem(const QString &itemKey, const QString &menuId, const bool checked)
|
||||
{
|
||||
Q_UNUSED(itemKey)
|
||||
Q_UNUSED(menuId)
|
||||
Q_UNUSED(checked)
|
||||
|
||||
QProcess::startDetached("dde-control-center", QStringList() << "datetime");
|
||||
if (menuId == "open")
|
||||
QProcess::startDetached("dde-control-center", QStringList() << "datetime");
|
||||
else
|
||||
m_centralWidget->toggleHourFormat();
|
||||
}
|
||||
|
||||
void DatetimePlugin::updateCurrentTimeString()
|
||||
|
@ -8,11 +8,25 @@
|
||||
#include <QMouseEvent>
|
||||
|
||||
DatetimeWidget::DatetimeWidget(QWidget *parent)
|
||||
: QWidget(parent)
|
||||
: QWidget(parent),
|
||||
|
||||
m_settings("deepin", "dde-dock-datetime"),
|
||||
|
||||
m_24HourFormat(m_settings.value("24HourFormat").toBool())
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void DatetimeWidget::toggleHourFormat()
|
||||
{
|
||||
m_24HourFormat = !m_24HourFormat;
|
||||
|
||||
m_settings.setValue("24HourFormat", m_24HourFormat);
|
||||
|
||||
m_cachedTime.clear();
|
||||
update();
|
||||
}
|
||||
|
||||
QSize DatetimeWidget::sizeHint() const
|
||||
{
|
||||
QFontMetrics fm(qApp->font());
|
||||
@ -39,11 +53,11 @@ void DatetimeWidget::paintEvent(QPaintEvent *e)
|
||||
if (displayMode == Dock::Efficient)
|
||||
{
|
||||
painter.setPen(Qt::white);
|
||||
painter.drawText(rect(), Qt::AlignCenter, current.toString("HH:mm"));
|
||||
painter.drawText(rect(), Qt::AlignCenter, current.toString(m_24HourFormat ? "hh:mm" : "hh:mm A"));
|
||||
return;
|
||||
}
|
||||
|
||||
const QString currentTimeString = current.toString("HHmm");
|
||||
const QString currentTimeString = current.toString(m_24HourFormat ? "hhmm" : "hhmma");
|
||||
// check cache valid
|
||||
if (m_cachedTime != currentTimeString)
|
||||
{
|
||||
|
@ -2,6 +2,7 @@
|
||||
#define DATETIMEWIDGET_H
|
||||
|
||||
#include <QWidget>
|
||||
#include <QSettings>
|
||||
|
||||
class DatetimeWidget : public QWidget
|
||||
{
|
||||
@ -10,9 +11,14 @@ class DatetimeWidget : public QWidget
|
||||
public:
|
||||
explicit DatetimeWidget(QWidget *parent = 0);
|
||||
|
||||
bool is24HourFormat() const { return m_24HourFormat; }
|
||||
|
||||
signals:
|
||||
void requestContextMenu() const;
|
||||
|
||||
public slots:
|
||||
void toggleHourFormat();
|
||||
|
||||
private:
|
||||
QSize sizeHint() const;
|
||||
void resizeEvent(QResizeEvent *e);
|
||||
@ -24,6 +30,8 @@ private:
|
||||
private:
|
||||
QPixmap m_cachedIcon;
|
||||
QString m_cachedTime;
|
||||
QSettings m_settings;
|
||||
bool m_24HourFormat;
|
||||
};
|
||||
|
||||
#endif // DATETIMEWIDGET_H
|
||||
|
Loading…
x
Reference in New Issue
Block a user