Sergio Martins
60b5eb00a3
Move IndicatorWindow to its own file
...
As it's the part that will be different with QtQuick.
ClassicIndicators can be shared.
2020-08-09 19:19:31 +01:00
Sergio Martins
10026ba191
Add FocusScope behaviour to TitleBar
...
Github issue #56 is not a KDDW bug, it's how Qt works. QtWidgets don't
have focus scope. But let's workaround and handroll our own FocusScope.
Now the title bar can be colored differently if the dock widget it controls
contains any focused children.
This just implements half of the story. You have to focus a child
for the title bar to change color. Clicking the title bar directly
isn't done yet. Needs to be figured out. What do we focus when clicking it?
TitleBars usually don't care about keyboard focus. Probably we
just use the user's widget as a focus proxy.
2020-08-08 12:33:23 +01:00
Sergio Martins
1cdd1a1b74
Fix static build on Windows
...
The STATICBUILD macros should:
- Be PUBLIC, so anyone linking against kddw gets them
- Not needed to be included in all targets, just link other targets and
they'll inherit
fixes linker errors
2020-08-07 21:24:43 +01:00
Sergio Martins
21938e4b3f
Fix Windows build
...
The "BUILDING_*" macros are only to be defined on the dll that's
being build, so that the export macros expand to QT_EXPORT
The kddockwidgets target had the BUILDING_MULTISPLITTER macro, so
it included multisplitter.dll's symbols with QT_EXPORT, instead of
import, so couldn't work, resulting in linker errors
2020-08-07 21:12:52 +01:00
Allen Winter
8a3252473f
buildsystem - support static library build
2020-08-07 12:26:27 -04:00
Sergio Martins
52626b1874
qml: Add support for the MainWindow
...
Not really a MainWindow in the sense of toolbars and all.
For qml it's just the drop area, acepting drops
2020-08-03 20:05:36 +01:00
Sergio Martins
312d95a376
qml: link to QQC2 too, needed for TabBar
2020-07-31 18:51:39 +01:00
Allen Winter
35728f54cd
src/CMakeLists.txt - ${PROJECT_NAME}_VERSION for PACKAGE_VERSION
...
we haven't set a PACKAGE_VERSION needed by
write_basic_package_version_file() but we don't need one
since we can simply use ${PROJECT_NAME}_VERSION
2020-07-27 17:49:59 -04:00
Sergio Martins
7d01b7649a
qml: Move MultiSplitter out of widgets/
...
Will make it shared to both stacks
2020-07-26 21:46:09 +01:00
Sergio Martins
df5738dd34
qml: Don't build layoutlinter yet
...
needs some work and not a priority at this point
2020-07-26 21:37:54 +01:00
Sergio Martins
34ea666007
qml: Remove LayoutSaverQuick
...
LayoutSaver is generic enough and works with both stacks
2020-07-26 21:00:51 +01:00
Sergio Martins
1a44d36838
qml: Make ClassicIndicator widgets only
2020-07-26 17:51:13 +01:00
Sergio Martins
c53d71e2de
qml: Remove more QWidget'isms, make code generic
2020-07-26 16:49:01 +01:00
Sergio Martins
40e944ee9d
qml|cmake: Move some widget only .cpp files into the widgets-only section
...
These won't be used by the QtQuick impl
2020-07-26 16:00:10 +01:00
Sergio Martins
9a15ac4bfa
Fix running cmake with OPTION_QUICK
2020-07-26 14:47:09 +01:00
Allen Winter
b4f49895c2
clarify: licensing is GPL2 or GPL3 or commercial licensed
...
follow the REUSE specs
2020-07-24 18:16:13 -04:00
Sergio Martins
709728e456
Revert "Add support for Qt6"
...
This reverts commit e1bf1cd786 .
This breaks the build with older CMake (3.9 for example), which
doesn't support alias to imported targets.
2020-07-19 15:42:59 +01:00
Sergio Martins
e1bf1cd786
Add support for Qt6
...
Build with -DOPTION_QT6=ON
2020-07-18 21:56:18 +01:00
Sérgio Martins
8474f246ae
Fix Qt6 build
...
Didn't include the cmake changes, as those are hacks for now.
Only included fixes to cpp code.
2020-07-18 18:51:47 +01:00
Allen Winter
2462f991be
buildsystem - consistent formatting
2020-06-25 13:32:59 -04:00
Allen Winter
0701e8aa97
buildsystem - improve how Windows libraries are versioned
...
Change-Id: Ie6873c1ec8fc53a005d12ef6a0573f61b41fba39
2020-06-24 09:57:28 -04:00
Allen Winter
e35fcb02df
src/CMakeLists.txt - fix cmake file install destination
2020-06-23 15:09:20 -04:00
Allen Winter
842e72c4c3
Windows: version libs, install pdb files for MSVC builds
...
Change-Id: I2964e809de20a9cb94d3039c95a1a623fdfd4d40
2020-06-23 12:38:51 -04:00
Sergio Martins
84989745b4
Use target_compile_options instead of the hammer
...
Doing per target ensures that the python stuff won't get -Werror.
We can now build the python bindings and still use the developer build
2020-06-17 14:37:42 +01:00
Sergio Martins
86e58dd8a7
Merge MultiSplitterLayout into MultiSplitter
...
No need to have two. It's a leftover from the old layouting engine
2020-06-11 16:34:28 +01:00
Sergio Martins
a7878122ac
Only use QT_DISABLE_DEPRECATED_BEFORE in developer-mode
...
Many projects just add kddw as a sub-folder and might have
QT_DISABLE_DEPRECATED_BEFORE with a different value, then you get
lots of warnings
2020-06-09 12:40:37 +01:00
Sergio Martins
2b3c3b75bf
Fix build with older cmake
...
Error was:
"install TARGETS given target "kddockwidgets_multisplitter" which does not
exist in this directory."
Fixes : #47
2020-06-04 15:29:34 +01:00
Sergio Martins
2fd9d45525
Link multisplitter as a PUBLIC dependency if kddockwidgets
...
This way user doesn't need to explicitly link against it
2020-05-25 06:52:25 +01:00
Sergio Martins
8461f1f79e
kddockwidgets_multisplitter is now a library of its own
2020-05-25 06:45:13 +01:00
Sergio Martins
3bbc33d8c4
example: Revive the custom separator example
...
Pass -p to see a custom painted separator
2020-05-24 19:31:15 +01:00
Sergio Martins
e8abc23f59
Use a dedicated export macro file for multisplitter/
...
As it's independent from KDDW
2020-05-24 19:24:16 +01:00
Sergio Martins
c63c713bea
Move SeparatorWidget into multisplitter/
...
multisplitter/ is to be a reusable component without needing KDDW
2020-05-24 19:13:39 +01:00
Sergio Martins
7016656264
Rename GuestInterface to Widget
...
So we can use it to abstract the host too, not just the guest.
2020-05-24 15:23:10 +01:00
Sergio Martins
0a2fb6ed73
Add GuestWidget.h
...
The QtWidgets counter-part for GuestInterface.
Removing QWidget from Item
2020-05-23 19:22:01 +01:00
Sergio Martins
e75b47737c
Move GuestInterface into its own file
2020-05-23 18:59:58 +01:00
Sergio Martins
2527b39368
Moved the multisplitter wrapper outside of multisplitter/
...
As it depends on kddw framework, while multisplitter/ is the
agnostic layouting engine
2020-05-23 17:01:20 +01:00
Sergio Martins
f260a76f8b
Rename LastPosition to Position
...
so we can have a list of them, the dock widget might have been
in several main windows
2020-05-21 14:49:49 +01:00
Sergio Martins
e0f16ae57e
Add a kddockwidgets_linter executable
...
For linking layout json files. Returns non 0 if invalid, and
probably some warnings too.
2020-05-20 19:19:07 +01:00
Sergio Martins
97c1ca30fd
Layouting engine rewrite
...
The layouting was becoming too complex to maintain and to introduce
new features. Was even buggy, the fuzzer was constantly finding
bugs, which took hours to workaround.
Problem with the old layout engine is that there was a catch 22, between
Items driving the separators, and separators driving the anchors.
The new layout is much simpler, both in implementation and conceptually.
There's simply a recursive hierarchy of Item elements. An Item can either
have a QWidget to show, or be a ItemContainer, which contains Item children,
and so forth. Each ItemContainer is either vertical or horizontal. That's enough
to represent the "nested multi-splitter" concept which KDDW uses.
After each item insertion/deletion/resize, the separators are regenerated. They
are essentially dumb now.
TODO:
- Separators are drawn, but are not interactive yet
- There's 5 tests failing
- LayoutSaver scalling functionality
2020-05-04 00:02:03 +01:00
Sergio Martins
8cc53ca5bb
Also build the example when building KDDW
...
No need to install the library anymore
Fixes : #42
2020-05-01 13:07:25 +01:00
Sergio Martins
787f7802be
Move the private code into a private/ folder
...
It's nice to have a similar include hierarchy at build time and install
time.
It also makes things more explicit
2019-10-20 19:24:54 +01:00
Sergio Martins
511a035df1
Install more missing _p.h headers to private/
...
The custom separator example is disabled for now, as we're not
installing the multisplitters headers yet
2019-10-07 13:55:09 +01:00
Sergio Martins
01249374e9
Install the *_p.h headers into a private/ folder
...
As the API is not stable
2019-10-06 23:43:01 +01:00
Sergio Martins
ea75b84af3
cmake: Install missing headers
2019-10-06 23:05:01 +01:00
Sergio Martins
a0787f1488
examples: Move custom_titlebar code into kddockwidgets_example
...
Guarded with a command line switch, no need to have two examples
2019-10-06 22:26:09 +01:00
Jean-Michaël Celerier
f6909b0fa5
Make KDDockWidgets installable, find_packageable and useable from external projects
2019-09-19 11:35:54 +02:00
Sergio Martins
abbc79f0e0
Progress with the QtQuick port
2019-09-07 16:20:22 +01:00
Sergio Martins
9f84760541
quick: Don't build DebugWindow, that's widget specific
2019-09-04 15:54:21 +01:00
Sergio Martins
cad7486907
Introduce MainWindowBase
...
MainWindow is widgets only. MainWindowBase will be used by QtQuick too.
2019-09-04 15:31:55 +01:00
Sergio Martins
48c0ea2a4d
Add a cpp file for DropAreaWithCentralFrame
2019-09-04 13:48:39 +01:00