Commit Graph

1069 Commits

Author SHA1 Message Date
Sergio Martins
d2bd2b5601 Update .gitignore 2019-08-07 21:26:21 +01:00
Sergio Martins
6060741851 More QtWidget abstraction 2019-08-07 14:24:11 +01:00
Sergio Martins
bb304a82e5 Fix windows build 2019-08-07 14:11:46 +01:00
Sergio Martins
ebb37e9871 Fix build 2019-08-07 14:03:48 +01:00
Sergio Martins
93303035c4 Drag the QWindow instead of the top-level QWidget
So it works for QtQuick too
2019-08-07 14:01:29 +01:00
Sergio Martins
022e91db78 More QtWidget decoupling 2019-08-07 13:35:45 +01:00
Sergio Martins
f37d9c0a94 Disable QtQuick support in cmake, not ready yet 2019-08-07 11:30:57 +01:00
Sergio Martins
a27b4b387a Split QWidgetAdapter into _widget and _quick variants
So we don't need so many ifdefs
2019-08-07 11:29:39 +01:00
Sergio Martins
823d1b658b FloatingWindow now inherits from QWidgetAdapter too 2019-08-07 00:20:28 +01:00
Sergio Martins
c7754f8206 Remove some QWidget specific code from DropArea 2019-08-06 23:50:50 +01:00
Sergio Martins
266e683f98 Abstract Separator too, it inherits from QWidgetAdapter 2019-08-06 23:17:08 +01:00
Sergio Martins
4bfd76dc61 Introduce QWidgetAdapter and apply it to MultiSplitter
MultiSplitter is now QWidget agnostic, and should work with
QtQuick
2019-08-06 23:07:47 +01:00
Sergio Martins
cb7ecb76e4 Rename the MultiSplitterWidget files too 2019-08-06 22:19:00 +01:00
Sergio Martins
01c4bddcc3 Rename MultiSplitterWidget to MultiSplitter
Since now we're suffixing with Widget the QtWidget specific classes,
not this one that will be shared with QtQuick
2019-08-06 22:12:15 +01:00
Sergio Martins
5613030fd3 Revert "Remove DOCKS_EXPORT_FOR_UNIT_TESTS to simplify things
Maybe let's keep it, since it's on very core classes that
users shouldn't change

This reverts commit db4167dd1f.
2019-08-06 22:08:00 +01:00
Sergio Martins
db4167dd1f Remove DOCKS_EXPORT_FOR_UNIT_TESTS to simplify things
And also to give more power to the user
2019-08-06 22:05:30 +01:00
Sergio Martins
49bd0b42be Add unit-test for dragging by tab widget directly 2019-08-06 21:12:34 +01:00
Sergio Martins
c78180f135 Minor refactoring 2019-08-06 20:51:28 +01:00
Sergio Martins
fc90d1e506 Move more code into tests/utils.cpp 2019-08-06 20:45:16 +01:00
Sergio Martins
1c7d0c0059 tests: refactor drag() to support dragging the TabWidget directly 2019-08-06 20:22:20 +01:00
Sergio Martins
6fe115e3fc Tests for Flag_HideTitleBarWhenTabsVisible 2019-08-06 20:02:15 +01:00
Sergio Martins
efd72df940 Remove FlagDraggableTitleBar, we have Flag_HideTitleBarWhenTabsVisible
There's not much sense to have the former
2019-08-06 16:22:24 +01:00
Sergio Martins
8f2f7e634a Add option to hide title bar when we have tabs 2019-08-06 16:20:27 +01:00
Sergio Martins
c3605fd6d2 Export more classes, since we're letting the user customizing them 2019-08-06 14:18:50 +01:00
Sergio Martins
8aa81d8f99 Add example of customizing SeparatorWidget 2019-08-06 14:10:13 +01:00
Sergio Martins
3ef2cef7b7 Allow to configure separator thickness 2019-08-06 13:56:57 +01:00
Sergio Martins
e206b9f0f8 Fix layout margins, got lost with a refactoring 2019-08-06 13:46:12 +01:00
Sergio Martins
eafc00657b Separator: Decouple the QWidget dependency
There's no Separator and SeparatorWidget. The former only with
state/logic. To be reused by QtQuick.
2019-08-06 13:32:06 +01:00
Sergio Martins
8742da76ae DockWidgetBase: Move layouting code into DockWidget.cpp
We don't want QWidget related code in the base class, to be
shared with QML
2019-08-06 12:58:07 +01:00
Sergio Martins
464ef4fd93 Move widget specific stuff from DockWidgetBase to DockWidget 2019-08-06 00:36:00 +01:00
Sergio Martins
8f05c3fa72 cmake: include_directories-- 2019-08-05 23:55:19 +01:00
Sergio Martins
fb837b7713 Move DockWidget.cpp into widgets/
As it's specific to QtWidgets. It's mostly empty now
and inheriting from DockWidgetBase, but we'll move a few stuff.
2019-08-05 23:35:44 +01:00
Sergio Martins
39ba3cdf2d FloatingWindow: Move the close logic into the logic class 2019-08-05 22:07:03 +01:00
Sergio Martins
570de60981 FloatingWindow: Move layouting code to FloatingWindowWindow
Our "data" class shouldn't worry about appearence
2019-08-05 22:01:49 +01:00
Sergio Martins
7a06126194 examples: Add a custom title bar example 2019-08-05 15:54:09 +01:00
Sergio Martins
1f78385ccb TitleBar: Don't make it pure virtual
Those pure virtuals are only for tests
2019-08-05 15:24:06 +01:00
Sergio Martins
2ce50c01ef Remove wrong assert, the variable is set to the default 2019-08-05 15:23:39 +01:00
Sergio Martins
663e06e5b5 Export FrameworkWidgetFactory 2019-08-05 15:23:25 +01:00
Sergio Martins
ea37783d04 Try to fix windows build 2019-08-05 13:02:18 +01:00
Sergio Martins
33aa76164a Fix linux build 2019-08-05 12:57:21 +01:00
Sergio Martins
da31a72194 Fix Windows build 2019-08-05 12:48:21 +01:00
Sergio Martins
ae7934dd47 Abstract FloatingWindow too, introducing FloatingWindowWidget 2019-08-05 02:41:34 +01:00
Sergio Martins
d8c689316d Moved SeparatorWidget into widgets/
It's now abstracted by the FrameworkWidgetFactory, allowing
the user to provide his own
2019-08-05 02:13:42 +01:00
Sergio Martins
a17465158d Introduce FrameworkWidgetFactory
The framework uses a few QWidgets (FrameWidget, TabbarWidget, TabWidget
TitleBarWidget). This factory allows the user to provide his own,
to achieve different appearence.
2019-08-05 01:35:42 +01:00
Sergio Martins
0f579d8f5e TabWidget: Separate GUI from state 2019-08-05 00:24:02 +01:00
Sergio Martins
bddd059ce9 TabBar: Split logic from GUI
Will make it easier for the users to subclass TabBar and provide an alternative.
Also easier to make the QtQuick port.
2019-08-04 23:51:43 +01:00
Sergio Martins
b347e0e53f Abstract Frame.cpp into FrameWidget
Anything GUI specific should go to FrameWidget, so the user
can change GUI aspects without impacting the sensitive logic.
2019-08-04 23:10:12 +01:00
Sergio Martins
ee023cb5ac Move TitleBarWidget into widgets/ 2019-08-04 21:56:08 +01:00
Sergio Martins
3035d387a5 TitleBar: Introduce TitleBarWidget to separate logic/state from GUI
TitleBar has the state, while TitleBarWidget has the appearence.
This makes it easier for the user to specify his own TitleBar's,
by inheriting from TitleBar.

Will also make the QtQuick support easier.
2019-08-04 21:50:28 +01:00
Sergio Martins
603de72c24 Remove unused TitleBar ctor 2019-08-04 20:07:18 +01:00