Commit Graph

3618 Commits

Author SHA1 Message Date
Sergio Martins
c39486ce84 vscode: Remove ms C++ extension settings
I'm on clangd instead.
I could leave them there, but no idea if they are correct.
Once we have a developer using the MS extension then he's free
to maintain the options.
2023-02-01 17:16:34 +00:00
Sergio Martins
e7bc93a69f Fix relayouting when dock widget is deleted directly
Usually, it's closed. "delete" isn't very well tested.
When it's deleted the container item becomes empty, so needs
to be resized to QSize(0,0) as well.

There's already a codepath for that but was too restrictive.
It now handles that case too.

Fixes #336
2023-01-27 18:09:34 +00:00
Sergio Martins
f2c3fe6910 tests: Add an XFAIL for issue #336 2023-01-27 16:23:36 +00:00
Sergio Martins
2326874be7 Cache TitleBar icons
Minor performance improvement. Detected by Milian when profiling.
2023-01-27 14:36:05 +00:00
Mauro Persano
1fc57b02b3 Save side bar overlay geometry when frame is resized
Previously we were updating the side bar overlay geometry only when the
side bar was closed. So if we open the side bar overlay, resize it, and
save/restore the layout state, we won't get the last side bar size.

Save it every time the frame is resized.
2023-01-27 12:19:26 +00:00
Mauro Persano
c55ce478df Serialize dock overlayed geometries
Otherwise the size of auto-hidden dock widgets won't get restored.
2023-01-27 12:19:26 +00:00
Sergio Martins
b0dfbc4486 Fix Werror build regarding unused variable 2023-01-26 22:57:39 +00:00
Allen Winter
6f6679d6be update copyright year to 2023 2023-01-06 12:24:12 -05:00
Sergio Martins
a6598d4607 Fixed build with -Wextra-semi 2023-01-06 17:14:58 +00:00
Sergio Martins
32b0e024d8 Fixed case of corrupt layout when using setDockWidgetFactoryFunc()
If the factory returned null for some dock widget, then the layout
would have holes. They need to be turned into placeholders, which
will be invisible.

Move the test into the QtWidgets guard. There's no point in making
it agnostic, since the bug is in the layouting.
2023-01-06 15:24:02 +00:00
Sergio Martins
392504e902 test: Add test for a bogus layout
The layout is creating holes when we skip restoring 1 dock widget
2023-01-05 22:34:30 +00:00
Sergio Martins
5b484a7dda tests: Added a test for issue #326
Currently an XFAIL
2022-11-18 11:50:20 +00:00
Mauro Persano
4be77d96df Fix layout scaling factor when main window is native
When a main window is serialized, we get the geometry to be serialized
with MainWindowBase::windowGeometry. When the layout is restored, we
get the geometry of the current window with window()->geometry() and use
it to compute the scaling factor.

The values returned by MainWindowBase::windowGeometry and
window()->geometry() will differ if the main window is a native widget,
but not a toplevel window. In this case, windowGeometry returns the
geometry of the main window widget, not of its containing window.

Use MainWindowBase::windowGeometry when computing the scaling factor, so
that these geometries are consistent and the scaling factor is correct.
2022-11-14 11:03:46 +00:00
Sergio Martins
8947c56442 Improve auto-hide icon transparency
They had non-transparent corners
2022-11-10 11:35:30 +00:00
Sergio Martins
35bf7bc9c8 Fix moving floating windows to negative positions
QScreen::geometry() is already in "virtual coordinate space", no
need to map again. Bug wasn't noticeable since most setups
have virtual top left at 0,0, so it was a no-op in most cases.

Fixes bug #321
2022-10-28 12:08:38 +01:00
Allen Winter
0d943620ac README.md - add blurb about demo 2022-10-27 16:10:07 -04:00
Allen Winter
8f6c659021 CMakeLists.txt - change name of demo 2022-10-27 16:09:56 -04:00
Allen Winter
a82f2afa64 create-demo-win-zip - create a 7z with the example execs
Add a "createZipDemo" buildsystem target to run this.
The 7z includes the Qt runtime.
2022-10-27 11:45:55 -04:00
Allen Winter
f1ae102383 pre-commit - autoupdate, and markdownlint config 2022-10-25 07:53:28 -04:00
Eism
34a7bfd0e5 Fixed using normal geometry of platform window if fractional scaling is enabled 2022-10-06 10:47:15 +01:00
pre-commit-ci[bot]
1f27716020 [pre-commit.ci] pre-commit autoupdate
updates:
- [github.com/pre-commit/mirrors-clang-format: v14.0.0 → v14.0.6](https://github.com/pre-commit/mirrors-clang-format/compare/v14.0.0...v14.0.6)
- [github.com/PyCQA/pylint: v2.15.2 → v2.15.3](https://github.com/PyCQA/pylint/compare/v2.15.2...v2.15.3)
2022-09-28 20:12:44 +01:00
Sergio Martins
4706392464 Amend last commit by using the shorter name, UseQtWindow
Still, one redundant flag was removed, but now, the one with
the long name.

For #314
2022-09-25 19:16:57 +01:00
Sergio Martins
3a9b583552 Remove uneeded FloatingWindowFlag::UseQtWindow
There's already DontUseQtToolWindowsForFloatingWindows
2022-09-25 19:05:59 +01:00
Sergio Martins
9a74839910 FloatingWindow::isUtilityWindow() now honours custom flags
If the user has passed custom per-window flags then we shouldn't
use the global ones.

Fixes minimize problem in #314
2022-09-25 18:47:31 +01:00
Sergio Martins
322ac107e3 refactoring: Move KDDockWidgets::usesUtilityWindows into FloatingWindow.cpp
No behaviour change for now, just moving.
Its usage is tricky, so it should only be used in one place, so we
can honour FloatingWindow::m_flags overrides too.

For issue #314
2022-09-25 17:27:45 +01:00
Sergio Martins
e98633b664 Remove unused variable, which fixes Windows build 2022-09-17 11:35:31 +01:00
Sergio Martins
290c0815e8 Update Changelog regarding issue #314 2022-09-16 18:42:11 +01:00
Sergio Martins
40d57e5000 Honour FloatingWindowFlag::DontUseParentForFloatingWindows 2022-09-16 18:42:11 +01:00
Sergio Martins
f2218f8ff3 Add Frame::requestedFloatingWindowFlags()
Just so we can share this bit of code without duplicating it
2022-09-16 18:42:11 +01:00
Sergio Martins
c070a11312 Remove FloatingWindowFlag::DontUseQtToolWindowsForFloatingWindows
UseQtTool and UseQtWindow have the same effect
2022-09-16 18:42:11 +01:00
Sergio Martins
7ac6a31512 Allow to specify Qt::Tool or Qt::Window per floating window 2022-09-16 18:42:11 +01:00
Sergio Martins
ef1226187d tests: Test DockWidgetBase::setFloatingWindowFlags() 2022-09-16 18:42:11 +01:00
Sergio Martins
757e57559a Add DockWidgetBase::setFloatingWindowFlags(flags)
So you can specify, per floating window, which flags you want
2022-09-16 18:42:11 +01:00
Sergio Martins
0bef7bc0e9 Load FloatingWindowFlags from disk with LayoutSaver
If a user specified different flags for a certain FloatingWindow,
they'll be reloaded when restored with LayoutSaver as well.
2022-09-16 18:42:11 +01:00
Sergio Martins
369437cbae Move FloatingWindow::Flag enum to KDDockWidgets namespace level 2022-09-16 18:42:11 +01:00
Sergio Martins
fd35fc26e6 Allow to specify which flags FloatingWindow should use 2022-09-16 18:42:11 +01:00
Sergio Martins
c2208b169e LayoutSaver: Store the floating window flags too 2022-09-16 18:42:11 +01:00
Sergio Martins
ff200950aa Isolate more Config flags in FloatingWindow 2022-09-16 18:42:11 +01:00
Sergio Martins
9916032981 Further isolate access to top-level Config in FloatingWindow
In preparation for per-floatingwindow flags
2022-09-16 18:42:11 +01:00
Sergio Martins
e6ccd9d01c Move TitleBar::supportsMinimize|MaximizeButton into FloatingWindow
Just a minor refactoring so FloatingWindow can save it during serialization.
So we can support per-floating window settings.
2022-09-16 18:42:11 +01:00
Allen Winter
3a3fedce3f pre-commit - update hooks versions 2022-09-16 12:55:56 -04:00
Allen Winter
5fdc1a14bc README-bindings.md - minor 2022-09-15 09:42:49 -04:00
Allen Winter
bced0a66c6 README-bindings.md - cleanup and improve 2022-09-15 09:22:57 -04:00
Allen Winter
fb63fdfd78 docs/api/Doxyfile.cmake - add README-bindings.md to INPUT 2022-09-15 09:12:01 -04:00
Allen Winter
b61c26669b cmake-format a bit prettier 2022-09-15 09:04:00 -04:00
Allen Winter
02316c2f72 CMakeLists.txt - set version pre 1.7.0 2022-09-15 09:02:36 -04:00
Sergio Martins
f531e8cb95 Bump ChangeLog and README to 1.7 2022-09-15 10:53:06 +01:00
Allen Winter
598787868b appveyor.yml - use Qt6.2 on Mac as well
since 6.2 is the min supported Qt version
v1.6.0
2022-09-14 17:50:42 -04:00
Allen Winter
48319a6309 distro/qt6-kddockwidgets.spec - fix found on OBS 2022-09-14 17:46:51 -04:00
Allen Winter
409ac51a3f distro - use today's date 2022-09-14 11:44:30 -04:00