Commit Graph

1157 Commits

Author SHA1 Message Date
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
Sergio Martins
1e3782b73b Add DockWidget::tabWidget() getter 2019-08-04 19:15:37 +01:00
Sergio Martins
b487a31edc Use 5px as top margin 2019-08-03 16:06:48 +01:00
Sergio Martins
b2a3e974fa Initialize the layout's min size
Fixes a unit-test on platform offscreen
2019-08-03 16:06:23 +01:00
Sergio Martins
fe49790170 MainWindow: Put the central widget into a layout
So we can add margins
2019-08-03 15:41:39 +01:00
Sergio Martins
5915c2b70f When trying to drag a TabWidget don't allow to click everywhere
We can only click the background next to the tabs
2019-08-03 12:42:07 +01:00
Sergio Martins
ea9bbe324c Allow to drag a tabwidget by it's background
So you can click next to the tabs instead of the title bar
2019-08-03 12:20:23 +01:00
Sergio Martins
0cac8f7b7c Fix some clazy warnings 2019-08-03 12:15:14 +01:00
Sergio Martins
2916495f7a Update the FloatingWindows title when the frame's tab changes
When we have a single frame with multiple dock widgets, the window's
title and icon should be of the current dock widget
2019-08-03 12:07:42 +01:00
Sergio Martins
29c42443ef Add a missing setIcon call to FloatingWindow 2019-08-03 12:01:12 +01:00
Sergio Martins
cb7d1086b9 tests: Don't use QStringLiteral or any fancy Qt restrictions
It's very verbose and its preformance benefits aren't important
for the tests
2019-08-03 11:55:27 +01:00
Sergio Martins
369703a0bd tests: Remove a bunch of qobject_casts<FloatingWindow*>
By adding DockWidget::floatingWindow()
2019-08-03 11:22:06 +01:00
Sergio Martins
ae7ea032d0 Get rid of actualTitleBar() hack and simplify logic
Instead of having both FloatingWindow::updateTitleBarVisibility()
and Frame::updateTitleBarVisibility() have logic, simplify it:

- FloatingWindow's title bar is always visible
- Frame's title bar is visible if in a nested FloatingWindow
or in a MainWindow
2019-08-03 11:11:49 +01:00