diff --git a/.gitignore b/.gitignore index fa5623e6..82ea16ba 100644 --- a/.gitignore +++ b/.gitignore @@ -34,7 +34,6 @@ latex html custom_titlebar libkddockwidgets.so* -libkddockwidgets_multisplitter.so* *.depends kddockwidgets_basic_quick /src/KDDockWidgetsConfig.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 7ab24455..16b9c056 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -234,5 +234,4 @@ endif() if (${PROJECT_NAME}_UNITY_BUILD) set_target_properties(kddockwidgets PROPERTIES UNITY_BUILD ON) - set_target_properties(kddockwidgets_multisplitter PROPERTIES UNITY_BUILD ON) endif() diff --git a/kddockwidgets.spec b/kddockwidgets.spec index 16ab630f..cbf80bf1 100644 --- a/kddockwidgets.spec +++ b/kddockwidgets.spec @@ -75,7 +75,6 @@ cmake . -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release %defattr(-,root,root) %{_prefix}/share/doc/KDDockWidgets %{_libdir}/libkddockwidgets.so.* -%{_libdir}/libkddockwidgets_multisplitter.so.* %files devel %defattr(-,root,root,-) @@ -85,7 +84,6 @@ cmake . -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release %dir %{_libdir}/cmake/KDDockWidgets %{_libdir}/cmake/KDDockWidgets/* %{_libdir}/libkddockwidgets.so -%{_libdir}/libkddockwidgets_multisplitter.so %changelog * Fri Dec 11 2020 Allen Winter 1.1.1 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 7c01c5ce..443c3c13 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -47,6 +47,19 @@ set(DOCKSLIBS_SRCS private/indicators/NullIndicators.cpp private/indicators/ClassicIndicators.cpp private/indicators/ClassicIndicatorsWindow.cpp + + private/multisplitter/Item.cpp + private/multisplitter/Item_p.h + private/multisplitter/Logging.cpp + private/multisplitter/Logging_p.h + private/multisplitter/MultiSplitterConfig.cpp + private/multisplitter/MultiSplitterConfig.h + private/multisplitter/Separator.cpp + private/multisplitter/Separator_p.h + private/multisplitter/Widget.cpp + private/multisplitter/Widget.h + private/multisplitter/multisplitter_export.h + ) set(DOCKS_INSTALLABLE_INCLUDES @@ -97,6 +110,12 @@ if(${PROJECT_NAME}_QTQUICK) private/quick/RubberBandQuick.cpp private/quick/MainWindowQuick.cpp private/quick/MainWindowWrapper.cpp + private/multisplitter/Widget_quick.cpp + private/multisplitter/Widget_quick.h + private/multisplitter/Separator_quick.cpp + private/multisplitter/Separator_quick.h + private/multisplitter/Rubberband_quick.cpp + private/multisplitter/Rubberband_quick.h ${CMAKE_CURRENT_SOURCE_DIR}/kddockwidgets_qtquick.qrc ) else() @@ -104,6 +123,10 @@ else() private/DebugWindow.cpp private/ObjectViewer.cpp MainWindow.cpp + private/multisplitter/Widget_qwidget.cpp + private/multisplitter/Widget_qwidget.h + private/multisplitter/Separator_qwidget.cpp + private/multisplitter/Separator_qwidget.h private/widgets/TabWidget.cpp private/widgets/TabBarWidget.cpp private/widgets/FloatingWindowWidget.cpp @@ -131,8 +154,6 @@ else() set(IS_CLANG_BUILD FALSE) endif() -add_subdirectory(private/multisplitter) - set(RESOURCES ${CMAKE_CURRENT_SOURCE_DIR}/kddockwidgets_resources.qrc) add_library(kddockwidgets ${KDDockWidgets_LIBRARY_MODE} ${DOCKSLIBS_SRCS} ${DOCKS_INSTALLABLE_INCLUDES} ${RESOURCES} ${RESOURCES_QUICK}) @@ -146,6 +167,7 @@ target_include_directories(kddockwidgets PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/private + ${CMAKE_CURRENT_SOURCE_DIR}/private/multisplitter/ ) target_compile_definitions(kddockwidgets @@ -170,10 +192,9 @@ if(CMAKE_COMPILER_IS_GNUCXX OR IS_CLANG_BUILD) endif() if(${PROJECT_NAME}_QTQUICK) - target_link_libraries(kddockwidgets PUBLIC Qt${QT_MAJOR_VERSION}::Widgets Qt${QT_MAJOR_VERSION}::Quick Qt${QT_MAJOR_VERSION}::QuickControls2 kddockwidgets_multisplitter) - + target_link_libraries(kddockwidgets PUBLIC Qt${QT_MAJOR_VERSION}::Widgets Qt${QT_MAJOR_VERSION}::Quick Qt${QT_MAJOR_VERSION}::QuickControls2) else() - target_link_libraries(kddockwidgets PUBLIC Qt${QT_MAJOR_VERSION}::Widgets kddockwidgets_multisplitter) + target_link_libraries(kddockwidgets PUBLIC Qt${QT_MAJOR_VERSION}::Widgets) endif() if (WIN32) @@ -245,7 +266,7 @@ if(${PROJECT_NAME}_DEVELOPER_MODE) if (NOT ${PROJECT_NAME}_QTQUICK) # TODO: We can support it add_executable(kddockwidgets_linter layoutlinter_main.cpp) - target_link_libraries(kddockwidgets_linter kddockwidgets kddockwidgets_multisplitter Qt${QT_MAJOR_VERSION}::Widgets) + target_link_libraries(kddockwidgets_linter kddockwidgets Qt${QT_MAJOR_VERSION}::Widgets) endif() endif() diff --git a/src/private/multisplitter/CMakeLists.txt b/src/private/multisplitter/CMakeLists.txt deleted file mode 100644 index b47ab6f3..00000000 --- a/src/private/multisplitter/CMakeLists.txt +++ /dev/null @@ -1,114 +0,0 @@ -# -# This file is part of KDDockWidgets. -# -# SPDX-FileCopyrightText: 2020 Klarälvdalens Datakonsult AB, a KDAB Group company -# Author: Sergio Martins -# -# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only -# -# Contact KDAB at for commercial licensing options. -# - -set(MULTISPLITTER_SRCS - Item.cpp - Item_p.h - Logging.cpp - Logging_p.h - MultiSplitterConfig.cpp - MultiSplitterConfig.h - Separator.cpp - Separator_p.h - Widget.cpp - Widget.h - multisplitter_export.h -) - -set(MULTISPLITTER_SRCS_QTWIDGETS - Widget_qwidget.cpp - Widget_qwidget.h - Separator_qwidget.cpp - Separator_qwidget.h -) - -set(MULTISPLITTER_SRCS_QTQUICK - Widget_quick.cpp - Widget_quick.h - Separator_quick.cpp - Separator_quick.h - Rubberband_quick.cpp - Rubberband_quick.h -) - - -if(${PROJECT_NAME}_QTQUICK) - find_package(Qt${QT_MAJOR_VERSION}Quick) - set(MULTISPLITTER_SRCS ${MULTISPLITTER_SRCS} ${MULTISPLITTER_SRCS_QTQUICK}) - add_definitions(-DKDMULTISPLITTER_QTQUICK) -else() - find_package(Qt${QT_MAJOR_VERSION}Widgets) - set(MULTISPLITTER_SRCS ${MULTISPLITTER_SRCS} ${MULTISPLITTER_SRCS_QTWIDGETS}) - add_definitions(-DKDMULTISPLITTER_QTWIDGETS) -endif() - -set(MULTISPLITTER_RESOURCES ${CMAKE_CURRENT_SOURCE_DIR}/kddockwidgets_multisplitter.qrc) - -add_library(kddockwidgets_multisplitter ${KDDockWidgets_LIBRARY_MODE} ${MULTISPLITTER_SRCS} ${MULTISPLITTER_RESOURCES}) -add_library(KDAB::kddockwidgets_multisplitter ALIAS kddockwidgets_multisplitter) - -set_compiler_flags(kddockwidgets_multisplitter) - -if(${PROJECT_NAME}_QTQUICK) - target_link_libraries(kddockwidgets_multisplitter Qt${QT_MAJOR_VERSION}::Core Qt${QT_MAJOR_VERSION}::Quick) -else() - target_link_libraries(kddockwidgets_multisplitter Qt${QT_MAJOR_VERSION}::Core Qt${QT_MAJOR_VERSION}::Widgets) -endif() - -if(${PROJECT_NAME}_STATIC) - target_compile_definitions(kddockwidgets_multisplitter PUBLIC MULTISPLITTER_STATICLIB) -else() - target_compile_definitions(kddockwidgets_multisplitter PRIVATE BUILDING_MULTISPLITTER_LIBRARY) -endif() - -if(${PROJECT_NAME}_DEVELOPER_MODE) - # Under developer mode since kddw might be a sub-folder of a project setting a different value for QT_DISABLE_DEPRECATED_BEFORE - target_compile_definitions(kddockwidgets_multisplitter PRIVATE QT_DISABLE_DEPRECATED_BEFORE=0x060000) - - if(${PROJECT_NAME}_TESTS AND NOT ${PROJECT_NAME}_QTQUICK) - add_subdirectory(tests) - endif() -endif() - -target_include_directories(kddockwidgets_multisplitter - PUBLIC - $ - $ - $ - PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR} -) - -set_target_properties(kddockwidgets_multisplitter PROPERTIES - SOVERSION ${${PROJECT_NAME}_SOVERSION} - VERSION ${${PROJECT_NAME}_VERSION} -) - -#version libraries on Windows -if(WIN32) - set(postfix ${${PROJECT_NAME}_VERSION_MAJOR}) - set(CMAKE_RELEASE_POSTFIX ${postfix}) - set_target_properties(kddockwidgets_multisplitter PROPERTIES RELEASE_POSTFIX ${CMAKE_RELEASE_POSTFIX}) - #append 'd' to debug libraries - string(CONCAT postfix ${postfix} "d") - set(CMAKE_DEBUG_POSTFIX ${postfix}) - set_target_properties(kddockwidgets_multisplitter PROPERTIES DEBUG_POSTFIX ${CMAKE_DEBUG_POSTFIX}) -endif() - -install(TARGETS kddockwidgets_multisplitter - EXPORT kddockwidgetsTargets - RUNTIME DESTINATION ${INSTALL_RUNTIME_DIR} - LIBRARY DESTINATION ${INSTALL_LIBRARY_DIR} - ARCHIVE DESTINATION ${INSTALL_ARCHIVE_DIR} -) -if(MSVC AND NOT ${PROJECT_NAME}_STATIC) - install(FILES "$/$" DESTINATION ${INSTALL_LIBRARY_DIR} CONFIGURATIONS Debug RelWithDebInfo) -endif() diff --git a/src/private/multisplitter/examples/quick/CMakeLists.txt b/src/private/multisplitter/examples/quick/CMakeLists.txt index f0d373a0..e53e0b32 100644 --- a/src/private/multisplitter/examples/quick/CMakeLists.txt +++ b/src/private/multisplitter/examples/quick/CMakeLists.txt @@ -14,4 +14,4 @@ set(SRCS main.cpp controller.cpp multisplitter.cpp) set(RESOURCES ${CMAKE_CURRENT_SOURCE_DIR}/resources.qrc) add_executable(kdmultisplitter_example_quick ${SRCS} ${RESOURCES}) -target_link_libraries(kdmultisplitter_example_quick kddockwidgets kddockwidgets_multisplitter Qt5::Quick) # Linking to kddockwidgets just so we get the indicators png +target_link_libraries(kdmultisplitter_example_quick kddockwidgets Qt5::Quick) diff --git a/src/private/multisplitter/tests/CMakeLists.txt b/src/private/multisplitter/tests/CMakeLists.txt deleted file mode 100644 index f1569d0d..00000000 --- a/src/private/multisplitter/tests/CMakeLists.txt +++ /dev/null @@ -1,16 +0,0 @@ -# -# This file is part of KDDockWidgets. -# -# SPDX-FileCopyrightText: 2020 Klarälvdalens Datakonsult AB, a KDAB Group company -# Author: Sergio Martins -# -# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only -# -# Contact KDAB at for commercial licensing options. -# - -find_package(Qt${QT_MAJOR_VERSION}Test) - -add_executable(tst_multisplitter tst_multisplitter.cpp) -target_link_libraries(tst_multisplitter kddockwidgets_multisplitter Qt${QT_MAJOR_VERSION}::Test) -set_compiler_flags(tst_multisplitter) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 21b47f9f..fb0cebb0 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -31,11 +31,14 @@ set(TESTING_SRCS utils.cpp Testing.cpp) # tst_docks set(TESTING_RESOURCES ${CMAKE_CURRENT_SOURCE_DIR}/test_resources.qrc) add_executable(tst_docks tst_docks.cpp ${TESTING_SRCS} ${TESTING_RESOURCES}) - -target_link_libraries(tst_docks kddockwidgets kddockwidgets_multisplitter Qt${QT_MAJOR_VERSION}::Test) - +target_link_libraries(tst_docks kddockwidgets Qt${QT_MAJOR_VERSION}::Test) set_compiler_flags(tst_docks) +add_executable(tst_multisplitter tst_multisplitter.cpp) +target_link_libraries(tst_multisplitter kddockwidgets Qt${QT_MAJOR_VERSION}::Test) +set_compiler_flags(tst_multisplitter) + + if (NOT ${PROJECT_NAME}_QTQUICK) add_subdirectory(fuzzer) endif() diff --git a/src/private/multisplitter/tests/tst_multisplitter.cpp b/tests/tst_multisplitter.cpp similarity index 99% rename from src/private/multisplitter/tests/tst_multisplitter.cpp rename to tests/tst_multisplitter.cpp index f5f3daac..f7a0af27 100644 --- a/src/private/multisplitter/tests/tst_multisplitter.cpp +++ b/tests/tst_multisplitter.cpp @@ -9,11 +9,11 @@ Contact KDAB at for commercial licensing options. */ -#include "Item_p.h" -#include "Separator_p.h" -#include "Widget_qwidget.h" -#include "MultiSplitterConfig.h" -#include "Separator_qwidget.h" +#include "private/multisplitter/Item_p.h" +#include "private/multisplitter/Separator_p.h" +#include "private/multisplitter/Widget_qwidget.h" +#include "private/multisplitter/MultiSplitterConfig.h" +#include "private/multisplitter/Separator_qwidget.h" #include #include