Commit Graph

87 Commits

Author SHA1 Message Date
Zhao Yuhang 2cb8ec0aeb win: minor fix 2023-10-19 20:13:34 +08:00
Zhao Yuhang ff4b9f3879 minor tweaks 2023-10-15 13:16:10 +08:00
Yuhang Zhao a9642dccfc support elided title text 2023-10-08 13:27:15 +08:00
Yuhang Zhao d86f55832f refactor 2023-10-04 11:37:39 +08:00
Yuhang Zhao 7b41f9aa31 cmake fixes 2023-09-12 18:15:10 +08:00
Yuhang Zhao 6abb636a19 large refactor 2023-08-27 15:12:06 +08:00
Yuhang Zhao f7368d0a08 widgets: PIMPL refactor 2023-08-25 17:50:22 +08:00
Yuhang Zhao a130fef677 win: refactor 2023-08-23 18:04:31 +08:00
SineStriker 8ac3d747a1
Fix hover event and system buttons (#262)
* Fix hover event

* Fix system button
2023-08-19 14:48:26 +08:00
Yuhang Zhao 86bc1c0142 cleanup & optimize, part 2
The file size of FramelessHelper binaries should be smaller than before. Core: Win32 MSVC2022 x64 release build, -20KB
The general performance should be improved, due to double lookups are all eliminated.
2023-07-30 18:28:38 +08:00
Yuhang Zhao c6ca6cc794 include std headers, avoid transitive include 2023-07-29 15:57:03 +08:00
Yuhang Zhao 4ed21585b4 cleanup core module
Core mostly done. TODO: Widgets & Quick module
2023-07-29 15:29:38 +08:00
Yuhang Zhao a3cfa59d1d improve dpi change experience
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2023-05-13 11:30:54 +08:00
Yuhang Zhao 632a708c8a fix white-line issue for QWidget applications
Fixes: #204

Signed-off-by: Yuhang Zhao <zhaoyuhang@rankyee.com>
2023-04-07 16:41:39 +08:00
Yuhang Zhao 2a6b8e6ebe fix compilation error
Fixes: #211
2023-03-30 10:28:31 +08:00
Yuhang Zhao 598de50290 add synchronize api to wait for the ready signal
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2023-02-24 13:13:01 +08:00
Yuhang Zhao 4929707806 fix header search path
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2023-02-17 09:17:15 +08:00
Yuhang Zhao 14ccc990cf general refactor, remove useless code
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2023-02-05 14:01:46 +08:00
Yuhang Zhao 3d37d87c81 win: tweak some enum values
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2023-02-03 11:18:08 +08:00
Yuhang Zhao ed75e2f3e8 adapt to latest Qt code style
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2023-01-27 18:16:32 +08:00
Yuhang Zhao 7534a4631c migrate to the <module/file> include pattern
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2023-01-18 14:27:10 +08:00
Yuhang Zhao 4896869123 use better name
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2023-01-18 10:00:18 +08:00
Yuhang Zhao 5e7ddb1864 quick: adapt macos updates
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2023-01-15 14:11:52 +08:00
Yuhang Zhao 819ffb79fb macOS: widgets: preserve the native title bar elements
Quick part to be done.
2023-01-14 18:32:47 +08:00
Yuhang Zhao c849217d43 fix build on linux and macos
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-12-12 14:55:17 +08:00
Yuhang Zhao f00adba67c replace QScopedPointer with std::unique_ptr
QScopedPointer is being deprecated in latest qtbase code.

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-12-12 11:59:53 +08:00
Yuhang Zhao cb88b602fe minor tweaks
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-12-05 14:33:38 +08:00
Yuhang Zhao 3961ecb505 quick: fix a regression
Looks like we can't use overloads in QML documents.

Should fix #183

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-11-21 17:12:33 +08:00
Yuhang Zhao f15ca8daf0 fix various issues
1. Fix mica material doesn't work normally when used on multiple windows.
2. Fix build on Qt5.

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-10-12 14:08:58 +08:00
Yuhang Zhao fcf51d6d73 refactor
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-10-11 11:52:49 +08:00
Yuhang Zhao 92415fb61c Add WindowBorderPainter and WindowBorder
1. Added WindowBorderPainter for QtWidgets
2. Added WindowBorder for QtQuick (uses WindowBorderPainter internally)
3. Adjust some header includes
4. Limit a Linux workaround to the appropriate Qt versions

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-10-10 13:35:37 +08:00
Yuhang Zhao f97f000cc7 avoid potential deadlocks
And some other minor tweaks.

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-09-25 10:35:00 +08:00
Yuhang Zhao eeda750a61 finalize api update
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-09-21 13:22:03 +08:00
Yuhang Zhao 47bf4da5ae allow user to remove a window from the frameless window list
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-09-20 15:56:59 +08:00
Yuhang Zhao 3d3607af7b refactor
and maybe avoid potential bugs.

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-09-16 17:38:13 +08:00
Yuhang Zhao 91bb8273b8 routine code quality improvement
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-09-15 18:24:34 +08:00
Yuhang Zhao 1b36587f14 widgets: emulate Windows behavior more
On Windows, when you left click the window icon in the title bar, the system menu will be triggered.
And when you double click it, the window will be closed.

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-09-14 13:30:08 +08:00
Yuhang Zhao 55fe04000e add more comments
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-09-11 10:43:48 +08:00
Jan Kowalewicz 6a46844853
win: Qt version check for #155 (#157) 2022-09-11 10:23:01 +08:00
Jan Kowalewicz f2affbca85
win: fix build with Qt 5.14 and MinGW (#155) 2022-09-10 16:38:40 +08:00
Yuhang Zhao 34596db939 fix various issues found by user
Issue list:

1. MinGW lacks some definitions so there's compilation errors
2. The chrome buttons' foreground color is incorrect when the window is inactive.
3. Adapt to new macros from Qt dev branch.
4. Remove unneeded parameter from setApplicationOSThemeAware().

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-09-10 13:11:55 +08:00
Yuhang Zhao b9f65aa783 add frameless dialog & demo
And some other minor fixes.

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-09-05 15:00:02 +08:00
Yuhang Zhao 5018d9ea82 widget: add support for changing title font
Not needed for Qt Quick, because you can easily to change it:

```qml
StandardTitleBar {
    titleLabel {
        font {
            family: "Arial"
            pointSize: 10
            italic: true
        }
    }
}
```

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-09-02 10:39:45 +08:00
Yuhang Zhao 7a35b09a74 add limited qmake support
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-08-31 16:34:30 +08:00
Yuhang Zhao 463ac0a999 add window icon support
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-08-31 10:21:24 +08:00
Yuhang Zhao 7616161699 Implement homemade Mica material & other improvements
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-07-16 15:25:15 +08:00
Yuhang Zhao 011b4a85f5 fix Qt5 build
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-07-07 16:22:34 +08:00
Yuhang Zhao 2806cc811b code simplification, minor re-structure
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-07-07 13:43:09 +08:00
Yuhang Zhao 464e2af515 finish the chrome palette implementation
And with some other minor tweaks that improve user experience.

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-07-06 14:24:41 +08:00
Yuhang Zhao e8dcb6e6fe add api to set title bar and chrome button color
TODO:
1. Special handling for the close button
2. Move QuickChromePalette class to own files
3. More testing

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-07-05 17:58:04 +08:00