mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-02 15:45:21 +00:00
fix: timedate tips show error
timedate tips should bind region format Log:
This commit is contained in:
parent
f4a40f36b8
commit
6b0fec0426
79
debian/control
vendored
79
debian/control
vendored
@ -2,73 +2,80 @@ Source: dde-dock
|
|||||||
Section: x11
|
Section: x11
|
||||||
Priority: optional
|
Priority: optional
|
||||||
Maintainer: Deepin Packages Builder <packages@deepin.com>
|
Maintainer: Deepin Packages Builder <packages@deepin.com>
|
||||||
Build-Depends: debhelper-compat (= 10),
|
Build-Depends:
|
||||||
pkg-config,
|
|
||||||
cmake,
|
cmake,
|
||||||
qt5-qmake,
|
debhelper-compat (= 10),
|
||||||
libxcb-image0-dev,
|
extra-cmake-modules,
|
||||||
libxcb-composite0-dev,
|
libdbusmenu-qt5-dev,
|
||||||
libxcb-ewmh-dev,
|
|
||||||
libxtst-dev,
|
|
||||||
qttools5-dev-tools,
|
|
||||||
qtbase5-private-dev,
|
|
||||||
libxcb-icccm4-dev,
|
|
||||||
libqt5x11extras5-dev,
|
|
||||||
libxcb-damage0-dev,
|
|
||||||
libqt5svg5-dev,
|
|
||||||
libdtkwidget-dev (>=5.4.19),
|
|
||||||
libdtkcore-dev (>=5.4.14),
|
libdtkcore-dev (>=5.4.14),
|
||||||
libdtkcore5-bin (>=5.4.14),
|
libdtkcore5-bin (>=5.4.14),
|
||||||
libdtkgui-dev (>=5.4.13),
|
libdtkgui-dev (>=5.4.13),
|
||||||
libgsettings-qt-dev,
|
libdtkwidget-dev (>=5.4.19),
|
||||||
libdbusmenu-qt5-dev,
|
|
||||||
libgtest-dev,
|
|
||||||
libgmock-dev,
|
|
||||||
qttools5-dev,
|
|
||||||
libxcursor-dev,
|
|
||||||
libxres-dev,
|
|
||||||
libqt5waylandclient5-dev,
|
|
||||||
qtwayland5-private-dev,
|
|
||||||
libxdamage-dev,
|
|
||||||
libdwayland-dev,
|
libdwayland-dev,
|
||||||
extra-cmake-modules
|
libgmock-dev,
|
||||||
|
libgsettings-qt-dev,
|
||||||
|
libgtest-dev,
|
||||||
|
libqt5svg5-dev,
|
||||||
|
libqt5waylandclient5-dev,
|
||||||
|
libqt5x11extras5-dev,
|
||||||
|
libxcb-composite0-dev,
|
||||||
|
libxcb-damage0-dev,
|
||||||
|
libxcb-ewmh-dev,
|
||||||
|
libxcb-icccm4-dev,
|
||||||
|
libxcb-image0-dev,
|
||||||
|
libxcursor-dev,
|
||||||
|
libxdamage-dev,
|
||||||
|
libxres-dev,
|
||||||
|
libxtst-dev,
|
||||||
|
pkg-config,
|
||||||
|
qt5-qmake,
|
||||||
|
qtbase5-private-dev,
|
||||||
|
qttools5-dev,
|
||||||
|
qttools5-dev-tools,
|
||||||
|
qtwayland5-private-dev,
|
||||||
Standards-Version: 3.9.8
|
Standards-Version: 3.9.8
|
||||||
Homepage: http://www.deepin.org/
|
Homepage: http://www.deepin.org/
|
||||||
|
|
||||||
Package: dde-dock
|
Package: dde-dock
|
||||||
Architecture: any
|
Architecture: any
|
||||||
Depends: ${shlibs:Depends}, ${misc:Depends},
|
Depends:
|
||||||
deepin-desktop-schemas (>=5.9.14),
|
dbus-bin,
|
||||||
dde-qt5xcb-plugin (>=5.0.25),
|
|
||||||
dde-daemon (>=5.13.12),
|
dde-daemon (>=5.13.12),
|
||||||
startdde (>=5.8.9),
|
dde-qt5xcb-plugin (>=5.0.25),
|
||||||
|
deepin-desktop-schemas (>=5.9.14),
|
||||||
lastore-daemon (>=5.2.9),
|
lastore-daemon (>=5.2.9),
|
||||||
qtxdg-dev-tools,
|
qtxdg-dev-tools,
|
||||||
dbus-bin
|
startdde (>=5.8.9),
|
||||||
|
${misc:Depends},
|
||||||
|
${shlibs:Depends},
|
||||||
Recommends:
|
Recommends:
|
||||||
dde-disk-mount-plugin,
|
dde-disk-mount-plugin,
|
||||||
dde-dock-onboard-plugin,
|
dde-dock-onboard-plugin,
|
||||||
|
dde-network-dialog,
|
||||||
dock-network-plugin,
|
dock-network-plugin,
|
||||||
dde-network-dialog
|
|
||||||
Conflicts:
|
Conflicts:
|
||||||
dde-workspace (<< 2.90.5),
|
|
||||||
dde-dock-applets,
|
dde-dock-applets,
|
||||||
dde-trash-plugin,
|
dde-trash-plugin,
|
||||||
dock-hotspot-plugin
|
dde-workspace (<< 2.90.5),
|
||||||
|
dock-hotspot-plugin,
|
||||||
Replaces:
|
Replaces:
|
||||||
dde-dock-applets,
|
dde-dock-applets,
|
||||||
dde-trash-plugin
|
dde-trash-plugin,
|
||||||
Description: deepin desktop-environment - dock module
|
Description: deepin desktop-environment - dock module
|
||||||
Dock module of deepin desktop-environment
|
Dock module of deepin desktop-environment
|
||||||
|
|
||||||
Package: dde-dock-dev
|
Package: dde-dock-dev
|
||||||
Architecture: any
|
Architecture: any
|
||||||
Depends: ${misc:Depends}
|
Depends:
|
||||||
|
${misc:Depends},
|
||||||
Description: deepin desktop-environment - dock module development files
|
Description: deepin desktop-environment - dock module development files
|
||||||
Dock module development files of deepin desktop-environment
|
Dock module development files of deepin desktop-environment
|
||||||
|
|
||||||
Package: dde-dock-onboard-plugin
|
Package: dde-dock-onboard-plugin
|
||||||
Architecture: any
|
Architecture: any
|
||||||
Depends: ${shlibs:Depends}, ${misc:Depends}, onboard
|
Depends:
|
||||||
|
onboard,
|
||||||
|
${misc:Depends},
|
||||||
|
${shlibs:Depends},
|
||||||
Description: deepin desktop-environment - dock plugin for onboard
|
Description: deepin desktop-environment - dock plugin for onboard
|
||||||
Dock plugin for onboard of deepin desktop-environment
|
Dock plugin for onboard of deepin desktop-environment
|
||||||
|
@ -35,6 +35,8 @@ static QMap<int, QString> timeFormat{{0, "h:mm"}, {1, "hh:mm"}};
|
|||||||
const QString localeName_key = "localeName";
|
const QString localeName_key = "localeName";
|
||||||
const QString shortDateFormat_key = "shortDateFormat";
|
const QString shortDateFormat_key = "shortDateFormat";
|
||||||
const QString shortTimeFormat_key = "shortTimeFormat";
|
const QString shortTimeFormat_key = "shortTimeFormat";
|
||||||
|
const QString longDateFormat_key = "longDateFormat";
|
||||||
|
const QString longTimeFormat_key = "longTimeFormat";
|
||||||
|
|
||||||
DateTimeDisplayer::DateTimeDisplayer(bool showMultiRow, QWidget *parent)
|
DateTimeDisplayer::DateTimeDisplayer(bool showMultiRow, QWidget *parent)
|
||||||
: QWidget (parent)
|
: QWidget (parent)
|
||||||
@ -71,17 +73,34 @@ DateTimeDisplayer::DateTimeDisplayer(bool showMultiRow, QWidget *parent)
|
|||||||
m_tipPopupWindow->hide();
|
m_tipPopupWindow->hide();
|
||||||
|
|
||||||
m_locale = QLocale::system();
|
m_locale = QLocale::system();
|
||||||
|
initDConfig();
|
||||||
|
}
|
||||||
|
|
||||||
|
void DateTimeDisplayer::initDConfig()
|
||||||
|
{
|
||||||
if (!m_config->isValid())
|
if (!m_config->isValid())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!m_config->isDefaultValue(localeName_key)) {
|
if (!m_config->isDefaultValue(localeName_key)) {
|
||||||
m_locale = QLocale(m_config->value(localeName_key).toString());
|
m_locale = QLocale(m_config->value(localeName_key).toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!m_config->isDefaultValue(shortDateFormat_key)) {
|
if (!m_config->isDefaultValue(shortDateFormat_key)) {
|
||||||
m_shortDateFormatStr = m_config->value(shortDateFormat_key).toString();
|
m_shortDateFormatStr = m_config->value(shortDateFormat_key).toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!m_config->isDefaultValue(shortTimeFormat_key)) {
|
if (!m_config->isDefaultValue(shortTimeFormat_key)) {
|
||||||
m_shortTimeFormatStr = m_config->value(shortTimeFormat_key).toString();
|
m_shortTimeFormatStr = m_config->value(shortTimeFormat_key).toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!m_config->isDefaultValue(longTimeFormat_key)) {
|
||||||
|
m_longTimeFormatStr = m_config->value(longTimeFormat_key).toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!m_config->isDefaultValue(longDateFormat_key)) {
|
||||||
|
m_longDateFormatStr = m_config->value(longDateFormat_key).toString();
|
||||||
|
}
|
||||||
|
|
||||||
connect(m_config, &DTK_CORE_NAMESPACE::DConfig::valueChanged, this, [this] (const QString &key) {
|
connect(m_config, &DTK_CORE_NAMESPACE::DConfig::valueChanged, this, [this] (const QString &key) {
|
||||||
if (key == shortDateFormat_key) {
|
if (key == shortDateFormat_key) {
|
||||||
m_shortDateFormatStr = m_config->value(key).toString();
|
m_shortDateFormatStr = m_config->value(key).toString();
|
||||||
@ -89,7 +108,12 @@ DateTimeDisplayer::DateTimeDisplayer(bool showMultiRow, QWidget *parent)
|
|||||||
m_shortTimeFormatStr = m_config->value(key).toString();
|
m_shortTimeFormatStr = m_config->value(key).toString();
|
||||||
} else if (key == localeName_key) {
|
} else if (key == localeName_key) {
|
||||||
m_locale = QLocale(m_config->value(key).toString());
|
m_locale = QLocale(m_config->value(key).toString());
|
||||||
|
} else if (key == longDateFormat_key) {
|
||||||
|
m_longDateFormatStr = m_config->value(key).toString();
|
||||||
|
} else if (key == longTimeFormat_key) {
|
||||||
|
m_longTimeFormatStr = m_config->value(key).toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
update();
|
update();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -176,12 +200,6 @@ QString DateTimeDisplayer::getTimeString(const Dock::Position &position) const
|
|||||||
tFormat = timeFormat[m_shortDateFormat];
|
tFormat = timeFormat[m_shortDateFormat];
|
||||||
if (!m_shortTimeFormatStr.isEmpty())
|
if (!m_shortTimeFormatStr.isEmpty())
|
||||||
tFormat = m_shortTimeFormatStr;
|
tFormat = m_shortTimeFormatStr;
|
||||||
if (!m_use24HourFormat) {
|
|
||||||
if (position == Dock::Top || position == Dock::Bottom)
|
|
||||||
tFormat = tFormat.append(" AP");
|
|
||||||
else
|
|
||||||
tFormat = tFormat.append("\nAP");
|
|
||||||
}
|
|
||||||
|
|
||||||
return m_locale.toString(QDateTime::currentDateTime(), tFormat);
|
return m_locale.toString(QDateTime::currentDateTime(), tFormat);
|
||||||
}
|
}
|
||||||
@ -266,12 +284,7 @@ DateTimeDisplayer::DateTimeInfo DateTimeDisplayer::dateTimeInfo(const Dock::Posi
|
|||||||
|
|
||||||
void DateTimeDisplayer::onTimeChanged()
|
void DateTimeDisplayer::onTimeChanged()
|
||||||
{
|
{
|
||||||
const QDateTime currentDateTime = QDateTime::currentDateTime();
|
m_tipsWidget->setText(m_locale.toString(QDate::currentDate(), m_longDateFormatStr) + QString(" ") + m_locale.toString(QTime::currentTime(), m_longTimeFormatStr));
|
||||||
|
|
||||||
if (m_use24HourFormat)
|
|
||||||
m_tipsWidget->setText(QLocale().toString(currentDateTime.date()) + currentDateTime.toString(" HH:mm:ss"));
|
|
||||||
else
|
|
||||||
m_tipsWidget->setText(QLocale().toString(currentDateTime.date()) + currentDateTime.toString(" hh:mm:ss AP"));
|
|
||||||
|
|
||||||
// 如果时间和日期有一个不等,则实时刷新界面
|
// 如果时间和日期有一个不等,则实时刷新界面
|
||||||
if (m_lastDateString != getDateString() || m_lastTimeString != getTimeString())
|
if (m_lastDateString != getDateString() || m_lastTimeString != getTimeString())
|
||||||
@ -281,7 +294,6 @@ void DateTimeDisplayer::onTimeChanged()
|
|||||||
void DateTimeDisplayer::onDateTimeFormatChanged()
|
void DateTimeDisplayer::onDateTimeFormatChanged()
|
||||||
{
|
{
|
||||||
m_shortDateFormat = m_timedateInter->shortDateFormat();
|
m_shortDateFormat = m_timedateInter->shortDateFormat();
|
||||||
m_use24HourFormat = m_timedateInter->use24HourFormat();
|
|
||||||
// 此处需要强制重绘,因为在重绘过程中才会改变m_currentSize信息,方便在后面判断是否需要调整尺寸
|
// 此处需要强制重绘,因为在重绘过程中才会改变m_currentSize信息,方便在后面判断是否需要调整尺寸
|
||||||
repaint();
|
repaint();
|
||||||
}
|
}
|
||||||
@ -294,7 +306,6 @@ void DateTimeDisplayer::paintEvent(QPaintEvent *e)
|
|||||||
|
|
||||||
QPainter painter(this);
|
QPainter painter(this);
|
||||||
painter.setRenderHint(QPainter::Antialiasing);
|
painter.setRenderHint(QPainter::Antialiasing);
|
||||||
|
|
||||||
|
|
||||||
int timeAlignFlag = Qt::AlignCenter;
|
int timeAlignFlag = Qt::AlignCenter;
|
||||||
int dateAlignFlag = Qt::AlignCenter;
|
int dateAlignFlag = Qt::AlignCenter;
|
||||||
@ -377,17 +388,6 @@ void DateTimeDisplayer::updateFont() const
|
|||||||
|
|
||||||
void DateTimeDisplayer::createMenuItem()
|
void DateTimeDisplayer::createMenuItem()
|
||||||
{
|
{
|
||||||
QAction *timeFormatAction = new QAction(this);
|
|
||||||
timeFormatAction->setText(m_use24HourFormat ? tr("12-hour time"): tr("24-hour time"));
|
|
||||||
|
|
||||||
connect(timeFormatAction, &QAction::triggered, this, [ = ] {
|
|
||||||
bool use24hourformat = !m_use24HourFormat;
|
|
||||||
// 此时调用 dbus 更新时间格式但是本地 m_use24HourFormat 未更新,所以需要使用新变量,设置新格式
|
|
||||||
m_timedateInter->setUse24HourFormat(use24hourformat);
|
|
||||||
timeFormatAction->setText(use24hourformat ? tr("12-hour time") : tr("24-hour time"));
|
|
||||||
});
|
|
||||||
m_menu->addAction(timeFormatAction);
|
|
||||||
|
|
||||||
if (!QFile::exists(ICBC_CONF_FILE)) {
|
if (!QFile::exists(ICBC_CONF_FILE)) {
|
||||||
QAction *timeSettingAction = new QAction(tr("Time settings"), this);
|
QAction *timeSettingAction = new QAction(tr("Time settings"), this);
|
||||||
connect(timeSettingAction, &QAction::triggered, this, [ = ] {
|
connect(timeSettingAction, &QAction::triggered, this, [ = ] {
|
||||||
|
@ -72,6 +72,7 @@ private:
|
|||||||
|
|
||||||
void createMenuItem();
|
void createMenuItem();
|
||||||
QRect textRect(const QRect &sourceRect) const;
|
QRect textRect(const QRect &sourceRect) const;
|
||||||
|
void initDConfig();
|
||||||
|
|
||||||
private Q_SLOTS:
|
private Q_SLOTS:
|
||||||
void onTimeChanged();
|
void onTimeChanged();
|
||||||
@ -92,10 +93,11 @@ private:
|
|||||||
bool m_oneRow;
|
bool m_oneRow;
|
||||||
bool m_showMultiRow;
|
bool m_showMultiRow;
|
||||||
int m_shortDateFormat;
|
int m_shortDateFormat;
|
||||||
bool m_use24HourFormat;
|
|
||||||
DTK_CORE_NAMESPACE::DConfig *m_config;
|
DTK_CORE_NAMESPACE::DConfig *m_config;
|
||||||
QString m_shortDateFormatStr;
|
QString m_shortDateFormatStr;
|
||||||
QString m_shortTimeFormatStr;
|
QString m_shortTimeFormatStr;
|
||||||
|
QString m_longDateFormatStr;
|
||||||
|
QString m_longTimeFormatStr;
|
||||||
QLocale m_locale;
|
QLocale m_locale;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user