Commit Graph

2695 Commits

Author SHA1 Message Date
Sergio Martins
c2b3e6b36e Remove some unneeded debug info 2021-02-15 17:28:29 +00:00
Sergio Martins
b8405c01f1 Export WidgetResizeHandler 2021-02-15 17:25:49 +00:00
Sergio Martins
3d191da07e Remove the unity build option, there's already a CMake way
-DCMAKE_UNITY_BUILD should do the same thing.
Disabling it by default since the project is too small for the gains,
and because it screws up the compile_commands.json which I need
for vscode
2021-02-14 23:28:46 +00:00
Sergio Martins
aeb61993a4 Use QT6_DIR in the presets file
Removes the hardcoded "gcc"
2021-02-14 23:08:06 +00:00
Sergio Martins
3679e1da3a Pass a QStyleOption in Button::sizeHint()
Allows to use the logical dpi of the screen the widget is in
2021-02-14 22:41:02 +00:00
Sergio Martins
52aefd23f0 Improve comments 2021-02-14 22:40:23 +00:00
Sergio Martins
76a2b84925 Windows: Support scalable icons without requiring AA_EnableHighDpiScaling 2021-02-14 22:22:04 +00:00
Sergio Martins
a89b2c7ed1 Add a comment 2021-02-14 19:54:49 +00:00
Sergio Martins
5dd4eb2d20 Honour the logical DPI for sizing title bar buttons
Some Linux window managers manipulate the logical DPI instead of
the device pixel ratio.
2021-02-14 19:39:05 +00:00
Sergio Martins
600661a570 Minor: Move Button::paintEvent() into the .cpp file 2021-02-14 19:22:41 +00:00
Sergio Martins
92f6453d26 Minor refactoring
Adds scalingFactorIsSupported(dpr) to utils, to workaround a bug
on earlier Qt
2021-02-14 19:17:15 +00:00
Sergio Martins
8bf3aa9b4d Use sizeHint() for title bar buttons
In preparation for using style pixel metrics, which is more
HDPI friendly
2021-02-14 18:43:49 +00:00
Sergio Martins
c52db1945b Minor rename for readability 2021-02-14 17:52:36 +00:00
Sergio Martins
09a10cd791 Minor rename for readability 2021-02-14 17:42:35 +00:00
Sergio Martins
07fd577894 MDI|qtquick: Fix resize cursor not being shown
the docked widgets were resizable but the cursor didn't change
shape
2021-02-14 17:41:01 +00:00
Sergio Martins
ed900b8531 MDI|qtquick: Allow to resize the docked windows with mouse
Was already possible for QtWidgets. For QtQuick we weren't
receiving the mouse events in Frame.
2021-02-14 17:26:03 +00:00
Sergio Martins
fa010357b3 Add Frame::isMDIChanged() signal 2021-02-14 17:21:28 +00:00
Sergio Martins
da6ffc85ef Fix transparency of QtQuick MDI example 2021-02-14 16:33:02 +00:00
Sergio Martins
b7c23087e1 MDI|qtquick: Don't use private API in the example 2021-02-14 13:30:34 +00:00
Sergio Martins
656f482cad qtquick: fix build 2021-02-14 13:17:45 +00:00
Sergio Martins
5e03003b94 Add MDI to the ChangeLog 2021-02-14 13:05:34 +00:00
Sergio Martins
48b5b27d42 Introduce MainWindowMDI
User no longer needs to use private API
2021-02-14 13:02:48 +00:00
Sergio Martins
fccb815d5a Fix QtQuick build 2021-02-13 18:56:18 +00:00
Sergio Martins
544d3b026a MDI windows will now poput into floating mode
when dragged behond the edges
Please enter the commit message for your changes. Lines starting
2021-02-13 18:30:59 +00:00
Sergio Martins
15ff882919 MDI: Raise window when we're dragging it
Otherwise it's appearing under others, possibly
2021-02-13 16:29:32 +00:00
Sergio Martins
18d405bdfb MDI: Don't let windows escape its parent 2021-02-13 16:19:05 +00:00
Sergio Martins
4379e7c544 MDI|Item: Allow widget to resize itself outside of the layout domain
With a normal KDDW layout, we don't allow the user to arbitrarily
resize widgets, all the resizes are done via dragging Separator,
which interacts closly with the layout.

With MDI however there's no separators. The user is resizing the
widget and the layout doesn't know about it, and it's fine for MDI
2021-02-13 14:17:42 +00:00
Sergio Martins
51e2be9b7b MDI: Don't paint the titlebar over the frame 2021-02-13 14:06:24 +00:00
Sergio Martins
f2b21d04b3 mdi example: Show KDAB logo 2021-02-13 14:02:22 +00:00
Sergio Martins
a73f35af22 MDI: Implement internal move
You can now move internal windows around without them becoming
floating
2021-02-13 13:03:14 +00:00
Sergio Martins
7b3ef03924 Add Draggable::isMDI() 2021-02-13 12:16:28 +00:00
Sergio Martins
a4d03c1514 Add a mdi-example
Don't want the main example to be too complex
2021-02-13 12:01:01 +00:00
Allen Winter
eccdee0081 buildsystem - add an uninstall target
uses the KDE extra-cmake-module ECMUninstallTarget.cmake
2021-02-12 15:18:01 -05:00
Sergio Martins
48f3390d71 Delete resize handler when floating a MDI dock widget
When it's floating it will use native resizing, or the resize handler
from the floating window. Not its own.
2021-02-11 20:09:22 +00:00
Sergio Martins
df6f1e6c8f Added Frame::isMDI() 2021-02-11 20:00:54 +00:00
Sergio Martins
3c95081aee MDI: Support internal resize
You can now resize docked MDI widgets
2021-02-11 19:37:05 +00:00
Sergio Martins
329a980510 WidgetResizeHandler: Fix case if parent's target wasn't top-level
By luck parentGeometry was in global space. Force it to be in global
space, as the target might be more nested.

Will be used by MDI, where Frame's parent is the MDI layout
2021-02-11 19:35:40 +00:00
Sergio Martins
d8605e9ce3 Minor styling: Reduce nesting, process invariant early 2021-02-11 19:15:36 +00:00
Sergio Martins
7dcc6dc114 Frame now takes care of its own resize handler
No need to set it from outside
2021-02-11 18:56:45 +00:00
Sergio Martins
64db52fd17 Move the CursorPositions header to the enums header instead
Otherwise will have to include WidgetResizeHandler_p.h
where I don't want to. And make it an installed header etc.
2021-02-11 18:52:21 +00:00
Sergio Martins
c0957024ec Remove some unneeded qDebug 2021-02-10 22:25:45 +00:00
Sergio Martins
649571a2eb Minor styling for the MDI example 2021-02-10 20:16:19 +00:00
Sergio Martins
60adb0d50b qtquick: Add a MDI example
Instead of poluting the normal example
2021-02-10 20:06:50 +00:00
Sergio Martins
f751d7c24e TitleBar is now HDPI aware even without the Qt::AA_ properties set
It will just query the style, which is already HDPI aware.
2021-02-10 15:17:04 +00:00
Sergio Martins
5ec5ade62f qtquick: Add a MDI example 2021-02-10 00:19:29 +00:00
Sergio Martins
788c497cbb Don't crash if it's a MDI layout 2021-02-10 00:01:47 +00:00
Sergio Martins
f6c274b82f qtquick: Remove unneeded dependency to DockArea 2021-02-09 23:50:52 +00:00
Sergio Martins
5a6b4a6fdd Don't use transparent titlebar if docked MDI
As the dock widgets can overlap over eachother
2021-02-09 23:27:10 +00:00
Sergio Martins
ef212b8c0f Added TitleBar::isMDI() 2021-02-09 22:38:16 +00:00
Sergio Martins
aa2f46fd00 Added TitleBar::mainWindow() 2021-02-09 22:15:31 +00:00