Commit Graph

120 Commits

Author SHA1 Message Date
Yuhang Zhao f90b49538a add support for qmltc tool
Also remove one useless enum.

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-07-01 15:52:28 +08:00
Yuhang Zhao 66250dbb6e cmake: minor tweaks
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-06-27 14:15:34 +08:00
Yuhang Zhao a89f19af96 2.1.7 release
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-06-25 19:38:41 +08:00
Yuhang Zhao 6fe3dd1088 cmake: minor tweaks
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-05-23 14:46:20 +08:00
Yuhang Zhao 1cd39fd7b2 quick: a little code simplification
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-05-14 10:02:42 +08:00
Yuhang Zhao 8042a78b8f various fixes and improvements
1. Make all demo applications be able to record and restore the previous window geometry.
2. Improve the robustness of the widgets and quick implementation.

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-05-13 14:19:50 +08:00
Yuhang Zhao a10ac4e32d demos: simplify some code
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-05-08 18:24:09 +08:00
Yuhang Zhao 1c6e02d81b code tidies, prepare for the 2.1 release
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-05-05 18:02:38 +08:00
Yuhang Zhao a97b1782ae redesign the title bar interface
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-05-04 14:50:11 +08:00
Yuhang Zhao 306ebfc717 Refactor the Quick implementation, interface is now simpler
Now we use attached properties instead, it make things simpler.

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-05-02 12:26:57 +08:00
Yuhang Zhao ff8252aaf4 Add initial snap layout implementation
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-04-30 12:47:51 +08:00
Yuhang Zhao 2f629a9e5b Quick: make the titleBarItem become a property
By making it a Q_PROPERTY we can use it more conveniently.

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-04-25 14:50:41 +08:00
Yuhang Zhao 701d8d0927 fix build on 5.12 & add initial opengl demo
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-04-21 15:10:16 +08:00
Yuhang Zhao 2c0ec868ab finish the linux implementation
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-04-16 16:55:51 +08:00
Yuhang Zhao cd05b6ecdf quick: finish qml -> cpp migrating
Convert all qml files to pure c++ implementation.

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-04-16 09:52:38 +08:00
Yuhang Zhao 4f5044a58c wip: quick: start migrating to modern usage
Still wip, but doesn't left much.

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-04-14 17:33:09 +08:00
Yuhang Zhao b5d2ae5888 quick: improve the standard titlebar's appearance
And some minor tweaks to the initialize() function.

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-04-02 17:56:45 +08:00
Yuhang Zhao d4bacdcab6 quick: fix running on qt5
Previously Qt5 can't recognize the Anchor enum, it's fixed now.
Also rename framelesshelper_quick to framelessquickhelper, the
former name was to avoid conflict with an already removed class.

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-04-02 13:07:26 +08:00
Yuhang Zhao bde9c85cd9 cmake: add license headers
add some more license headers

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-04-01 14:36:36 +08:00
Yuhang Zhao 8bc08ab32f quick example: add some comments
explain some more

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-04-01 14:22:45 +08:00
Yuhang Zhao 6166422e37 misc: internal refactor
centralize how we handle string literals.

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-04-01 14:09:14 +08:00
Yuhang Zhao 90ad8d281a little simplify
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-03-30 13:16:19 +08:00
Yuhang Zhao c49b971983 internal refactoring
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-03-29 13:34:05 +08:00
Yuhang Zhao d4e711d679 win implementation is mostly settled now
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-03-26 15:31:16 +08:00
Yuhang Zhao fd3b815924 wip
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-03-24 16:37:37 +08:00
Yuhang Zhao 6ffc894213 wip
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-03-23 16:38:14 +08:00
Yuhang Zhao d94f8221d3 wip
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-03-23 10:48:22 +08:00
Yuhang Zhao 5ecc06df2f wip
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-03-22 15:03:22 +08:00
Yuhang Zhao 1ed6e2fb01 wip
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-03-21 16:53:18 +08:00
Yuhang Zhao 0e75f12089 wip
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-03-21 15:18:42 +08:00
Yuhang Zhao 09acbfaf02 adjust the project file architecture
to make it more like a modern library project

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-03-20 12:30:00 +08:00
Yuhang Zhao 4d277a5eac wip
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-03-18 18:09:20 +08:00
Yuhang Zhao f700b07e5c wip
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-03-17 16:48:57 +08:00
Yuhang Zhao 1aa92e3db4 wip
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-03-16 16:19:24 +08:00
Yuhang Zhao 942fd02b66 wip
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-03-15 17:29:00 +08:00
Yuhang Zhao bb8d174c56 wip
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-03-14 15:26:49 +08:00
Yuhang Zhao 3216defd59 wip
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-03-13 15:36:18 +08:00
Yuhang Zhao 2073cb9fd2 wip
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-03-13 15:17:27 +08:00
Yuhang Zhao 556741cfb1 wip
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-03-13 12:14:08 +08:00
Yuhang Zhao 0e4f95fe2c wip
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-03-11 16:23:12 +08:00
Yuhang Zhao 8e69a57039 wip
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-03-11 09:33:27 +08:00
Yuhang Zhao a9256ba4b3 QtQuick demo: work-around a QtQuick bug
See https://bugreports.qt.io/browse/QTBUG-69711
Also some minor tweaks of the constexpr variables.

Fixes: #35

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-02-10 10:14:54 +08:00
Yuhang Zhao e0c00bce35 Example improvements
Try to fix the frame border issue on high dpi monitors.

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-01-10 10:07:26 +08:00
Yuhang Zhao e85e3f891e Example: special case for Win11
1. On Win11 we don't need to paint the frame border, the OS will always draw one for us.
2. Fix the wrong coordinate of the right and bottom frame border of the widget example.
3. Improve the Qt Quick example.
4. Correctly detect the OS version when building against Qt below 5.9.
5. Other minor tweaks.

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-01-07 11:10:28 +08:00
Yuhang Zhao e3adb917a6 Fix build on Qt before 5.14
1. The QWinRegistryKey class was introduced in 5.14.0. The implementation is quite clean, so just copy the sources files from Qt repo in case the user is linking against a version older than 5.14.
2. Fixes the rounding error of the self-painted frame border of the examples.
3. Other minor tweaks.

Fixes: #95
Task-number: #94

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2022-01-06 11:18:33 +08:00
Yuhang Zhao 17601f386f Code refactor
1. Load dwmapi.dll and winmm.dll dynamically at runtime, to remove the dependency on those dlls
2. Use QSystemLibrary to load dlls, it can make the loading of system dlls safer, and avoid duplicating the code
3. Use QWinRegistryKey to access registry, no need to use QSettings in such scenarios
4. Adapt to new code when building against Qt 6.3 and newer.
5. Other minor tweaks.

Fixes: #94
2022-01-05 11:00:31 +08:00
Yuhang Zhao fb8f061091 Win32: Add workaround for DWM flicker
And some other minor tweaks.

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2021-12-01 14:59:29 +08:00
Yuhang Zhao 2fafa7a433 Fix the border width of the examples
Amends commit 3aba956d66

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2021-11-19 14:29:44 +08:00
Yuhang Zhao 3aba956d66 Minor improvements
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2021-11-19 14:11:55 +08:00
Yuhang Zhao 330669e34a Quality improvements
1. Use native frame color in the MainWindow example, just like the Widget example. Fixes #87
2. Rename setHitTestVisibleInChrome() to setHitTestVisible(): This name was taken from Microsoft's WindowChrome class in WPF. Now they removed the legacy "Chrome" suffix in their new products, so we removed it as well.
3. Fix build with Qt older than 5.15: Q_NAMESPACE_EXPORT was introduced in Qt 5.14
4. Removed code that supports native frame: they are just leftovers of the previous refactoring.
4. Correctly detect SetWindowLongPtrW() and GetWindowLongPtrW() 's operation result: they won't modify the Last Error state on success, so we have to set Last Error state to ERROR_SUCCESS before calling them to make sure we get the correct error code.
5. Remove implicitly conversions, use explicit casts where possible
6. Fixed FormatMessage() usage, correctly retrieve the error message: According to MSDN, we should pass the address of a LPWSTR, not the LPWSTR itself.
7. Removed the special handing of WM_SIZE: It turns out that this handling is not needed at all and it's causing new issues, so just remove it.

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2021-10-08 15:43:33 +08:00
Yuhang Zhao 138a2b90cb Minor refactor
1. Remove compiler specific flags
2. Build shared library by default
3. Remove unused functions
4. Minor tweaks of some internal logic, the final behavior is not affected

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2021-09-06 14:24:43 +08:00
Yuhang Zhao bc8a70dbb2 Win32: Fix window content will be cut-off for some pixels when window is fullscreened
1. Fix that bug
2. Some adjustments of the variable names to make them more clear
3. Some tweaks to the title bar height value

TODO: Add a button to switch between fullscreen and windowed mode for the widget example
TODO: Add a title text to the widget example

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2021-09-04 22:40:13 +08:00
Yuhang Zhao 2c106ffef9 Minor tweaks
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2021-09-01 15:26:36 +08:00
Yuhang Zhao 5a2d498445 Minor tweaks
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2021-08-11 17:58:47 +08:00
Yuhang Zhao 2b6d0fccb6 Minor tweaks
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2021-07-23 11:04:48 +08:00
Yuhang Zhao 6698033a1a Fix Qt 5.9 build
Use lower import version for Qt Quick

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2021-07-21 17:23:10 +08:00
Yuhang Zhao 233ebba3ec Minor tweaks
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2021-07-20 09:58:00 +08:00
Yuhang Zhao f30339ff54 Minor cleanup
1. Remove unneeded functions
2. Rename some functions and variables to match their real functionality

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2021-07-19 10:43:10 +08:00
Yuhang Zhao 151e8a1664 Minor tweaks
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2021-07-06 10:54:11 +08:00
Yuhang Zhao 28144b1e74 Minor tweaks
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2021-06-09 13:27:11 +08:00
Yuhang Zhao e0b5244420 Rename function
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2021-06-01 13:10:05 +08:00
Yuhang Zhao 4139cf0ab2 redesign API 2021-05-31 11:52:32 +08:00
Yuhang Zhao cdb7b87eb4 Remove acrylic related things
They'll be moved to a separate repo instead

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2021-04-02 12:02:46 +08:00
Yuhang Zhao f188c0f88d Examples: Quick: lower required version
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2021-03-30 11:03:16 +08:00
Yuhang Zhao 4cba3a4dd4 Minor improvements
1. Update margins when maximized for the examples
2. Prepare for the UNIX version of utility functions

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2021-03-25 15:12:47 +08:00
Yuhang Zhao 8ebf9cfc58 Disable acrylic blur by default
If the user want to use it, the user should enable it.

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2021-03-21 11:13:09 +08:00
Yuhang Zhao a183a6d4a1 Make the wallpaper blur dynamic update
The window background will update dynamically once
it's being moved.

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2021-03-10 14:18:08 +08:00
Yuhang Zhao 0931b73671 Some refactor
Rename some functions to make it more clear.

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2021-03-10 10:05:23 +08:00
Yuhang Zhao 8b3da2d31a Add CMake project files for the examples
Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2021-03-09 13:43:46 +08:00
Yuhang Zhao f70158a276 Add cross-platform Acrylic Effect
Currently still lacking Linux and macOS support,
but will be added sooner.

Signed-off-by: Yuhang Zhao <2546789017@qq.com>
2021-03-08 14:10:55 +08:00