@@ -80,8 +80,12 @@ void CenterTopWidget::setCurrentUser(User *user)
8080 }
8181 }
8282
83+ #ifdef ENABLE_DSS_SNIPE
84+ m_timeWidget->updateLocale (QLocale (getUserLocale (user)));
85+ #else
8386 auto locale = qApp->applicationName () == " dde-lock" ? QLocale::system ().name () : user->locale ();
8487 m_timeWidget->updateLocale (QLocale (locale));
88+ #endif // ENABLE_DSS_SNIPE
8589 m_timeWidget->set24HourFormat (user->isUse24HourFormat ());
8690 m_timeWidget->setWeekdayFormatType (user->weekdayFormat ());
8791 m_timeWidget->setShortDateFormat (user->shortDateFormat ());
@@ -105,8 +109,12 @@ void CenterTopWidget::setCurrentUser(User *user)
105109void CenterTopWidget::updateTimeFormat (bool use24)
106110{
107111 if (!m_currentUser.isNull ()) {
112+ #ifdef ENABLE_DSS_SNIPE
113+ m_timeWidget->updateLocale (QLocale (getUserLocale (m_currentUser)));
114+ #else
108115 auto locale = qApp->applicationName () == " dde-lock" ? QLocale::system ().name () : m_currentUser->locale ();
109116 m_timeWidget->updateLocale (QLocale (locale));
117+ #endif // ENABLE_DSS_SNIPE
110118 m_timeWidget->set24HourFormat (use24);
111119 m_timeWidget->setVisible (true );
112120 }
@@ -219,6 +227,22 @@ QString CenterTopWidget::getRegionFormatValue(const QString &userConfigDbusPath,
219227 return reply.value ().toString ();
220228}
221229
230+ QString CenterTopWidget::getUserLocale (const User *user) const
231+ {
232+ if (!user)
233+ return QLocale::system ().name ();
234+
235+ if (qApp->applicationName () == " dde-lock" )
236+ return QLocale::system ().name ();
237+
238+ QString userConfigDbusPath = getRegionFormatConfigPath (user);
239+ QString localeName = getRegionFormatValue (userConfigDbusPath, localeNameKey);
240+ if (localeName.isEmpty ()) {
241+ localeName = user->locale ();
242+ }
243+ return localeName;
244+ }
245+
222246void CenterTopWidget::updateRegionFormatConnection (const User *user)
223247{
224248 if (!user) {
0 commit comments