feat: make QDeepinTheme follow DConfig settings - #1005
Conversation
There was a problem hiding this comment.
Sorry @deepin-wm, you have reached your weekly rate limit of 500000 diff characters.
Please try again later or upgrade to continue using Sourcery
8aa9c67 to
6e93e07
Compare
| // Notify all top-level windows about the theme change | ||
| for (auto *window : QGuiApplication::topLevelWindows()) { | ||
| QEvent event(QEvent::ThemeChange); | ||
| QCoreApplication::sendEvent(static_cast<QObject*>(window), &event); |
There was a problem hiding this comment.
这样做意义不大,应该调用 QGuiApplicationPrivate::handleThemeChanged ,而且应该只在theme icon等相关变化时才调用。
There was a problem hiding this comment.
QGuiApplicationPrivate::handleThemeChanged() is a protected method and cannot be called from QDeepinTheme (which is not a subclass of QGuiApplicationPrivate). This caused a build failure in CI (Qt 6.11.1). As an alternative, QCoreApplication::postEvent(qGuiApp, new QEvent(QEvent::ThemeChange)) is used, which is functionally equivalent — Qt internally delivers the event and eventually calls handleThemeChanged(), just asynchronously.
f9c3c96 to
8aa6adc
Compare
cba3420 to
ef01bc0
Compare
|
TAG Bot TAG: 0.9.1 |
|
TAG Bot New tag: 0.8.13 |
- Replace QCoreApplication::postEvent(ThemeChange) with QGuiApplicationPrivate::handleThemeChanged() in applyThemeSettings() - Supplement themeHint() with CursorFlashTime, MouseDoubleClickInterval, MouseCursorSize, KeyboardAutoRepeatRate, KeyboardInputInterval - Add bindSeatConfig/applyKeyboardSettings/disconnectSeatConfig for keyboard settings via SeatUserDConfig using QStyleHints::setXXX - Connect cursorSizeChanged to applyThemeSettings() in bindConfig() - Add InputManager::seatConfigChanged signal emitted from setupSeatUserConfig() - Connect InputManager::seatConfigChanged to QDeepinTheme::bindSeatConfig in main.cpp - Add Helper::inputManager() getter
dad6f0c to
f0deb06
Compare
|
TAG Bot New tag: 0.8.14 |
|
TAG Bot New tag: 0.8.15 |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: deepin-wm The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
4bfd63b to
83d9859
Compare
Implement QDeepinTheme that reads DConfig settings and applies them to the Qt platform theme, so QPA follows treeland user preferences. - Split QDeepinTheme to separate deepintheme.h/.cpp files - Track connections via QMetaObject::Connection for proper cleanup - Disconnect only own connections from old config on rebind - Use QStyleHints setters for properties that have them: setCursorFlashTime, setMouseDoubleClickInterval, setStartDragDistance, setColorScheme - Set font via QGuiApplication::setFont(), only on font changes - Use QCoreApplication::postEvent for theme/icon changes - Support: cursorBlink/cursorBlinkTime, doubleClickTime, doubleClickDistance, dndDragThreshold, font/monoFont/fontSize, iconThemeName, themeName, preferDark, cursorThemeName, keyboardRate/keyboardDelay (via seat config) - Adapt to treelandinit.cpp refactoring: expose QDeepinTheme via Treeland::deepinTheme(), bind config in main.cpp - Emit seatConfigChanged from InputManager for keyboard settings - Expose inputManager() accessor on Helper
83d9859 to
e289268
Compare
|
CLA Assistant Lite bot All contributors have signed the CLA ✍️ ✅ |
|
/retest |
|
TAG Bot New tag: 0.10.0 |
增强 QDeepinTheme,让 treeland 自身的光标闪动间隔、双击间隔、系统字体、等宽字体跟随 DConfig 设置。
WM-25
Summary by Sourcery
Synchronize Treeland’s Qt theme, fonts, input timing, and interaction settings with the active user and seat DConfig configuration.
New Features:
Enhancements:
Build:
Chores: