From 59dbd3f891ed79d56df468235c47be3538be734d Mon Sep 17 00:00:00 2001 From: Sebastian Holtermann Date: Fri, 25 Nov 2016 12:28:02 +0100 Subject: QtAutogen tests: Rename rcconly target to camel case rccOnly. Also add dedicated rccOnlyRes.qrc file for the rccOnly target. --- Tests/QtAutogen/CMakeLists.txt | 8 ++++---- Tests/QtAutogen/rccOnly.cpp | 9 +++++++++ Tests/QtAutogen/rccOnlyRes.qrc | 5 +++++ Tests/QtAutogen/rcconly.cpp | 9 --------- 4 files changed, 18 insertions(+), 13 deletions(-) create mode 100644 Tests/QtAutogen/rccOnly.cpp create mode 100644 Tests/QtAutogen/rccOnlyRes.qrc delete mode 100644 Tests/QtAutogen/rcconly.cpp diff --git a/Tests/QtAutogen/CMakeLists.txt b/Tests/QtAutogen/CMakeLists.txt index c713d1c..44c8a33 100644 --- a/Tests/QtAutogen/CMakeLists.txt +++ b/Tests/QtAutogen/CMakeLists.txt @@ -44,10 +44,10 @@ else() endif() -# -- RCC only -add_executable(rcconly rcconly.cpp second_resource.qrc) -set_property(TARGET rcconly PROPERTY AUTORCC ON) -target_link_libraries(rcconly ${QT_QTCORE_TARGET}) +# -- Test: RCC only +add_executable(rccOnly rccOnly.cpp rccOnlyRes.qrc) +set_property(TARGET rccOnly PROPERTY AUTORCC ON) +target_link_libraries(rccOnly ${QT_QTCORE_TARGET}) # -- RCC empty add_executable(rcc_empty rcc_empty.cpp rcc_empty_resource.qrc) diff --git a/Tests/QtAutogen/rccOnly.cpp b/Tests/QtAutogen/rccOnly.cpp new file mode 100644 index 0000000..61c7bf4 --- /dev/null +++ b/Tests/QtAutogen/rccOnly.cpp @@ -0,0 +1,9 @@ + +extern int qInitResources_rccOnlyRes(); + +int main(int, char**) +{ + // Fails to link if the symbol is not present. + qInitResources_rccOnlyRes(); + return 0; +} diff --git a/Tests/QtAutogen/rccOnlyRes.qrc b/Tests/QtAutogen/rccOnlyRes.qrc new file mode 100644 index 0000000..5551348 --- /dev/null +++ b/Tests/QtAutogen/rccOnlyRes.qrc @@ -0,0 +1,5 @@ + + + rccOnly.cpp + + diff --git a/Tests/QtAutogen/rcconly.cpp b/Tests/QtAutogen/rcconly.cpp deleted file mode 100644 index 854c4c1..0000000 --- a/Tests/QtAutogen/rcconly.cpp +++ /dev/null @@ -1,9 +0,0 @@ - -extern int qInitResources_second_resource(); - -int main(int, char**) -{ - // Fails to link if the symbol is not present. - qInitResources_second_resource(); - return 0; -} -- cgit v0.12 From cb4bc19ae1b2f61165543ef926037936b179414d Mon Sep 17 00:00:00 2001 From: Sebastian Holtermann Date: Fri, 25 Nov 2016 12:41:16 +0100 Subject: QtAutogen tests: Rename rcc_empty target to camel case rccEmpty --- Tests/QtAutogen/CMakeLists.txt | 9 ++++----- Tests/QtAutogen/rccEmpty.cpp | 9 +++++++++ Tests/QtAutogen/rccEmptyRes.qrc | 4 ++++ Tests/QtAutogen/rcc_empty.cpp | 9 --------- Tests/QtAutogen/rcc_empty_resource.qrc | 4 ---- 5 files changed, 17 insertions(+), 18 deletions(-) create mode 100644 Tests/QtAutogen/rccEmpty.cpp create mode 100644 Tests/QtAutogen/rccEmptyRes.qrc delete mode 100644 Tests/QtAutogen/rcc_empty.cpp delete mode 100644 Tests/QtAutogen/rcc_empty_resource.qrc diff --git a/Tests/QtAutogen/CMakeLists.txt b/Tests/QtAutogen/CMakeLists.txt index 44c8a33..b0bc100 100644 --- a/Tests/QtAutogen/CMakeLists.txt +++ b/Tests/QtAutogen/CMakeLists.txt @@ -49,13 +49,12 @@ add_executable(rccOnly rccOnly.cpp rccOnlyRes.qrc) set_property(TARGET rccOnly PROPERTY AUTORCC ON) target_link_libraries(rccOnly ${QT_QTCORE_TARGET}) -# -- RCC empty -add_executable(rcc_empty rcc_empty.cpp rcc_empty_resource.qrc) -set_property(TARGET rcc_empty PROPERTY AUTORCC ON) -target_link_libraries(rcc_empty ${QT_QTCORE_TARGET}) +# -- Test: RCC empty +add_executable(rccEmpty rccEmpty.cpp rccEmptyRes.qrc) +set_property(TARGET rccEmpty PROPERTY AUTORCC ON) +target_link_libraries(rccEmpty ${QT_QTCORE_TARGET}) include_directories(${CMAKE_CURRENT_BINARY_DIR}) - add_definitions(-DFOO -DSomeDefine="Barx") # enable relaxed mode so automoc can handle all the special cases: diff --git a/Tests/QtAutogen/rccEmpty.cpp b/Tests/QtAutogen/rccEmpty.cpp new file mode 100644 index 0000000..7f2c527 --- /dev/null +++ b/Tests/QtAutogen/rccEmpty.cpp @@ -0,0 +1,9 @@ + +extern int qInitResources_rccEmptyRes(); + +int main(int, char**) +{ + // Fails to link if the symbol is not present. + qInitResources_rccEmptyRes(); + return 0; +} diff --git a/Tests/QtAutogen/rccEmptyRes.qrc b/Tests/QtAutogen/rccEmptyRes.qrc new file mode 100644 index 0000000..4ca9cd5 --- /dev/null +++ b/Tests/QtAutogen/rccEmptyRes.qrc @@ -0,0 +1,4 @@ + + + + diff --git a/Tests/QtAutogen/rcc_empty.cpp b/Tests/QtAutogen/rcc_empty.cpp deleted file mode 100644 index 3f9f9a2..0000000 --- a/Tests/QtAutogen/rcc_empty.cpp +++ /dev/null @@ -1,9 +0,0 @@ - -extern int qInitResources_rcc_empty_resource(); - -int main(int, char**) -{ - // Fails to link if the symbol is not present. - qInitResources_rcc_empty_resource(); - return 0; -} diff --git a/Tests/QtAutogen/rcc_empty_resource.qrc b/Tests/QtAutogen/rcc_empty_resource.qrc deleted file mode 100644 index 4ca9cd5..0000000 --- a/Tests/QtAutogen/rcc_empty_resource.qrc +++ /dev/null @@ -1,4 +0,0 @@ - - - - -- cgit v0.12 From d675004dbac12a938cf60fac39e5b9b81bbb6a99 Mon Sep 17 00:00:00 2001 From: Sebastian Holtermann Date: Fri, 25 Nov 2016 13:19:32 +0100 Subject: QtAutogen tests: Rename uiconly target to camel case uicOnly Also move uicOnly sources to dedicated uicOnlySource directory. --- Tests/QtAutogen/CMakeLists.txt | 10 ++++++---- Tests/QtAutogen/sub/uiconly.cpp | 13 ------------- Tests/QtAutogen/sub/uiconly.h | 20 -------------------- Tests/QtAutogen/sub/uiconly.ui | 24 ------------------------ Tests/QtAutogen/uicOnlySource/uiconly.cpp | 13 +++++++++++++ Tests/QtAutogen/uicOnlySource/uiconly.h | 20 ++++++++++++++++++++ Tests/QtAutogen/uicOnlySource/uiconly.ui | 24 ++++++++++++++++++++++++ 7 files changed, 63 insertions(+), 61 deletions(-) delete mode 100644 Tests/QtAutogen/sub/uiconly.cpp delete mode 100644 Tests/QtAutogen/sub/uiconly.h delete mode 100644 Tests/QtAutogen/sub/uiconly.ui create mode 100644 Tests/QtAutogen/uicOnlySource/uiconly.cpp create mode 100644 Tests/QtAutogen/uicOnlySource/uiconly.h create mode 100644 Tests/QtAutogen/uicOnlySource/uiconly.ui diff --git a/Tests/QtAutogen/CMakeLists.txt b/Tests/QtAutogen/CMakeLists.txt index b0bc100..6a5d7b5 100644 --- a/Tests/QtAutogen/CMakeLists.txt +++ b/Tests/QtAutogen/CMakeLists.txt @@ -54,6 +54,12 @@ add_executable(rccEmpty rccEmpty.cpp rccEmptyRes.qrc) set_property(TARGET rccEmpty PROPERTY AUTORCC ON) target_link_libraries(rccEmpty ${QT_QTCORE_TARGET}) +# -- Test: UIC only +qtx_wrap_cpp(uicOnlyMoc uicOnlySource/uiconly.h) +add_executable(uicOnly uicOnlySource/uiconly.cpp ${uicOnlyMoc}) +set_property(TARGET uicOnly PROPERTY AUTOUIC ON) +target_link_libraries(uicOnly ${QT_LIBRARIES}) + include_directories(${CMAKE_CURRENT_BINARY_DIR}) add_definitions(-DFOO -DSomeDefine="Barx") @@ -147,10 +153,6 @@ target_link_libraries(empty no_link_language) add_library(no_link_language STATIC empty.h) set_target_properties(no_link_language PROPERTIES AUTOMOC TRUE) -qtx_wrap_cpp(uicOnlyMoc sub/uiconly.h) -add_executable(uiconly sub/uiconly.cpp ${uicOnlyMoc}) -target_link_libraries(uiconly ${QT_LIBRARIES}) - try_compile(RCC_DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/autorcc_depends" "${CMAKE_CURRENT_SOURCE_DIR}/autorcc_depends" diff --git a/Tests/QtAutogen/sub/uiconly.cpp b/Tests/QtAutogen/sub/uiconly.cpp deleted file mode 100644 index ac22789..0000000 --- a/Tests/QtAutogen/sub/uiconly.cpp +++ /dev/null @@ -1,13 +0,0 @@ - -#include "uiconly.h" - -UicOnly::UicOnly(QWidget* parent) - : QWidget(parent) - , ui(new Ui::UicOnly) -{ -} - -int main() -{ - return 0; -} diff --git a/Tests/QtAutogen/sub/uiconly.h b/Tests/QtAutogen/sub/uiconly.h deleted file mode 100644 index 9b0b1b4..0000000 --- a/Tests/QtAutogen/sub/uiconly.h +++ /dev/null @@ -1,20 +0,0 @@ - -#ifndef UIC_ONLY_H -#define UIC_ONLY_H - -#include -#include - -#include "ui_uiconly.h" - -class UicOnly : public QWidget -{ - Q_OBJECT -public: - explicit UicOnly(QWidget* parent = 0); - -private: - const std::auto_ptr ui; -}; - -#endif diff --git a/Tests/QtAutogen/sub/uiconly.ui b/Tests/QtAutogen/sub/uiconly.ui deleted file mode 100644 index 13fb832..0000000 --- a/Tests/QtAutogen/sub/uiconly.ui +++ /dev/null @@ -1,24 +0,0 @@ - - - UicOnly - - - - 0 - 0 - 400 - 300 - - - - Form - - - - - - - - - - diff --git a/Tests/QtAutogen/uicOnlySource/uiconly.cpp b/Tests/QtAutogen/uicOnlySource/uiconly.cpp new file mode 100644 index 0000000..ac22789 --- /dev/null +++ b/Tests/QtAutogen/uicOnlySource/uiconly.cpp @@ -0,0 +1,13 @@ + +#include "uiconly.h" + +UicOnly::UicOnly(QWidget* parent) + : QWidget(parent) + , ui(new Ui::UicOnly) +{ +} + +int main() +{ + return 0; +} diff --git a/Tests/QtAutogen/uicOnlySource/uiconly.h b/Tests/QtAutogen/uicOnlySource/uiconly.h new file mode 100644 index 0000000..9b0b1b4 --- /dev/null +++ b/Tests/QtAutogen/uicOnlySource/uiconly.h @@ -0,0 +1,20 @@ + +#ifndef UIC_ONLY_H +#define UIC_ONLY_H + +#include +#include + +#include "ui_uiconly.h" + +class UicOnly : public QWidget +{ + Q_OBJECT +public: + explicit UicOnly(QWidget* parent = 0); + +private: + const std::auto_ptr ui; +}; + +#endif diff --git a/Tests/QtAutogen/uicOnlySource/uiconly.ui b/Tests/QtAutogen/uicOnlySource/uiconly.ui new file mode 100644 index 0000000..13fb832 --- /dev/null +++ b/Tests/QtAutogen/uicOnlySource/uiconly.ui @@ -0,0 +1,24 @@ + + + UicOnly + + + + 0 + 0 + 400 + 300 + + + + Form + + + + + + + + + + -- cgit v0.12 From 7052af9d4a4e71f52e98a24969c38e8eb86f317b Mon Sep 17 00:00:00 2001 From: Sebastian Holtermann Date: Fri, 25 Nov 2016 13:39:12 +0100 Subject: QtAutogen tests: Move independent sameName test to top list of CMakeLists.txt --- Tests/QtAutogen/CMakeLists.txt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Tests/QtAutogen/CMakeLists.txt b/Tests/QtAutogen/CMakeLists.txt index 6a5d7b5..a499acc 100644 --- a/Tests/QtAutogen/CMakeLists.txt +++ b/Tests/QtAutogen/CMakeLists.txt @@ -60,6 +60,10 @@ add_executable(uicOnly uicOnlySource/uiconly.cpp ${uicOnlyMoc}) set_property(TARGET uicOnly PROPERTY AUTOUIC ON) target_link_libraries(uicOnly ${QT_LIBRARIES}) +# -- Test: AUTOMOC and AUTORCC on source files with the same name +# but in different subdirectories +add_subdirectory(sameName) + include_directories(${CMAKE_CURRENT_BINARY_DIR}) add_definitions(-DFOO -DSomeDefine="Barx") @@ -121,9 +125,6 @@ set_target_properties( AUTOMOC TRUE ) -# Test AUTOMOC and AUTORCC on source files with the same name -# but in different subdirectories -add_subdirectory(sameName) include(GenerateExportHeader) # The order is relevant here. B depends on A, and B headers depend on A -- cgit v0.12 From 2599f5d64b6d81967de9ba6f11420ec7815f618d Mon Sep 17 00:00:00 2001 From: Sebastian Holtermann Date: Fri, 25 Nov 2016 14:19:55 +0100 Subject: QtAutogen tests: Extend test description in CMakeLists.txt --- Tests/QtAutogen/CMakeLists.txt | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/Tests/QtAutogen/CMakeLists.txt b/Tests/QtAutogen/CMakeLists.txt index a499acc..d09b24d 100644 --- a/Tests/QtAutogen/CMakeLists.txt +++ b/Tests/QtAutogen/CMakeLists.txt @@ -44,26 +44,30 @@ else() endif() -# -- Test: RCC only +# -- Test: AUTORCC +# RCC only add_executable(rccOnly rccOnly.cpp rccOnlyRes.qrc) set_property(TARGET rccOnly PROPERTY AUTORCC ON) target_link_libraries(rccOnly ${QT_QTCORE_TARGET}) -# -- Test: RCC empty +# -- Test: AUTORCC +# RCC empty add_executable(rccEmpty rccEmpty.cpp rccEmptyRes.qrc) set_property(TARGET rccEmpty PROPERTY AUTORCC ON) target_link_libraries(rccEmpty ${QT_QTCORE_TARGET}) -# -- Test: UIC only +# -- Test: AUTOUIC +# UIC only qtx_wrap_cpp(uicOnlyMoc uicOnlySource/uiconly.h) add_executable(uicOnly uicOnlySource/uiconly.cpp ${uicOnlyMoc}) set_property(TARGET uicOnly PROPERTY AUTOUIC ON) target_link_libraries(uicOnly ${QT_LIBRARIES}) -# -- Test: AUTOMOC and AUTORCC on source files with the same name -# but in different subdirectories +# -- Test: AUTOMOC AUTORCC +# Source files with the same basename in different subdirectories add_subdirectory(sameName) +# -- Test: AUTOMOC AUTORCC AUTOUIC include_directories(${CMAKE_CURRENT_BINARY_DIR}) add_definitions(-DFOO -DSomeDefine="Barx") @@ -142,6 +146,7 @@ target_link_libraries(libC LINK_PUBLIC libB) target_link_libraries(QtAutogen codeeditorLib ${QT_LIBRARIES} libC) +# -- Test: AUTOMOC, AUTORCC # Add not_generated_file.qrc to the source list to get the file-level # dependency, but don't generate a c++ file from it. Disable the AUTORCC # feature for this target. This tests that qrc files in the sources don't @@ -154,6 +159,8 @@ target_link_libraries(empty no_link_language) add_library(no_link_language STATIC empty.h) set_target_properties(no_link_language PROPERTIES AUTOMOC TRUE) +# -- Test: AUTORCC +# When a file listed in a .qrc file changes the target must be rebuilt try_compile(RCC_DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/autorcc_depends" "${CMAKE_CURRENT_SOURCE_DIR}/autorcc_depends" @@ -187,7 +194,8 @@ if (NOT file1_step1 GREATER file1_before) message(SEND_ERROR "file1 (${qrc_file1}) should have changed in the first step!") endif() -#----------------------------------------------------------------------------- +# -- Test: AUTOMOC +# Ensure a repeated build succeeds when a header containing a QObject changes try_compile(MOC_RERUN "${CMAKE_CURRENT_BINARY_DIR}/automoc_rerun" "${CMAKE_CURRENT_SOURCE_DIR}/automoc_rerun" -- cgit v0.12 From c4d4becf8b79f68534eb8320ccd63218afa4ca31 Mon Sep 17 00:00:00 2001 From: Sebastian Holtermann Date: Fri, 25 Nov 2016 15:12:04 +0100 Subject: QtAutogen tests: Move the complex test case to a subdirectory --- Tests/CMakeLists.txt | 2 +- Tests/QtAutogen/Adir/CMakeLists.txt | 8 - Tests/QtAutogen/Adir/libA.cpp | 12 - Tests/QtAutogen/Adir/libA.h | 18 - Tests/QtAutogen/Bdir/CMakeLists.txt | 10 - Tests/QtAutogen/Bdir/libB.cpp | 12 - Tests/QtAutogen/Bdir/libB.h | 22 -- Tests/QtAutogen/CMakeLists.txt | 93 +---- Tests/QtAutogen/abc.cpp | 39 -- Tests/QtAutogen/abc.h | 17 - Tests/QtAutogen/abc_p.h | 19 - Tests/QtAutogen/bar.cpp | 17 - Tests/QtAutogen/blub.cpp | 31 -- Tests/QtAutogen/blub.h | 15 - Tests/QtAutogen/calwidget.cpp | 436 ---------------------- Tests/QtAutogen/calwidget.h | 127 ------- Tests/QtAutogen/calwidget.ui | 32 -- Tests/QtAutogen/codeeditor.cpp | 146 -------- Tests/QtAutogen/codeeditor.h | 100 ----- Tests/QtAutogen/complex/Adir/CMakeLists.txt | 8 + Tests/QtAutogen/complex/Adir/libA.cpp | 12 + Tests/QtAutogen/complex/Adir/libA.h | 18 + Tests/QtAutogen/complex/Bdir/CMakeLists.txt | 10 + Tests/QtAutogen/complex/Bdir/libB.cpp | 12 + Tests/QtAutogen/complex/Bdir/libB.h | 22 ++ Tests/QtAutogen/complex/CMakeLists.txt | 78 ++++ Tests/QtAutogen/complex/abc.cpp | 39 ++ Tests/QtAutogen/complex/abc.h | 17 + Tests/QtAutogen/complex/abc_p.h | 19 + Tests/QtAutogen/complex/bar.cpp | 17 + Tests/QtAutogen/complex/blub.cpp | 31 ++ Tests/QtAutogen/complex/blub.h | 15 + Tests/QtAutogen/complex/calwidget.cpp | 436 ++++++++++++++++++++++ Tests/QtAutogen/complex/calwidget.h | 127 +++++++ Tests/QtAutogen/complex/calwidget.ui | 32 ++ Tests/QtAutogen/complex/codeeditor.cpp | 146 ++++++++ Tests/QtAutogen/complex/codeeditor.h | 100 +++++ Tests/QtAutogen/complex/debug_class.cpp | 10 + Tests/QtAutogen/complex/debug_class.h | 19 + Tests/QtAutogen/complex/debug_class.ui | 45 +++ Tests/QtAutogen/complex/debug_resource.qrc | 5 + Tests/QtAutogen/complex/foo.cpp | 30 ++ Tests/QtAutogen/complex/foo.h | 20 + Tests/QtAutogen/complex/gadget.cpp | 4 + Tests/QtAutogen/complex/gadget.h | 19 + Tests/QtAutogen/complex/generated.cpp | 9 + Tests/QtAutogen/complex/generated.h | 18 + Tests/QtAutogen/complex/generated.txt.in | 1 + Tests/QtAutogen/complex/generated_resource.qrc.in | 5 + Tests/QtAutogen/complex/libC.cpp | 12 + Tests/QtAutogen/complex/libC.h | 22 ++ Tests/QtAutogen/complex/main.cpp | 93 +++++ Tests/QtAutogen/complex/multiplewidgets.cpp | 19 + Tests/QtAutogen/complex/multiplewidgets.h | 35 ++ Tests/QtAutogen/complex/myinterface.h.in | 14 + Tests/QtAutogen/complex/myotherinterface.h.in | 14 + Tests/QtAutogen/complex/private_slot.cpp | 16 + Tests/QtAutogen/complex/private_slot.h | 20 + Tests/QtAutogen/complex/resourcetester.cpp | 26 ++ Tests/QtAutogen/complex/resourcetester.h | 17 + Tests/QtAutogen/complex/second_resource.qrc | 5 + Tests/QtAutogen/complex/second_widget.cpp | 15 + Tests/QtAutogen/complex/second_widget.h | 18 + Tests/QtAutogen/complex/second_widget.ui | 32 ++ Tests/QtAutogen/complex/sub/bar.h | 17 + Tests/QtAutogen/complex/targetObjectsTest.cpp | 5 + Tests/QtAutogen/complex/test.qrc | 5 + Tests/QtAutogen/complex/widget1.ui | 45 +++ Tests/QtAutogen/complex/widget2.ui | 29 ++ Tests/QtAutogen/complex/xyz.cpp | 15 + Tests/QtAutogen/complex/xyz.h | 17 + Tests/QtAutogen/complex/yaf.cpp | 19 + Tests/QtAutogen/complex/yaf.h | 15 + Tests/QtAutogen/complex/yaf_p.h | 19 + Tests/QtAutogen/debug_class.cpp | 10 - Tests/QtAutogen/debug_class.h | 19 - Tests/QtAutogen/debug_class.ui | 45 --- Tests/QtAutogen/debug_resource.qrc | 5 - Tests/QtAutogen/foo.cpp | 30 -- Tests/QtAutogen/foo.h | 20 - Tests/QtAutogen/gadget.cpp | 4 - Tests/QtAutogen/gadget.h | 19 - Tests/QtAutogen/generated.cpp | 9 - Tests/QtAutogen/generated.h | 18 - Tests/QtAutogen/generated.txt.in | 1 - Tests/QtAutogen/generated_resource.qrc.in | 5 - Tests/QtAutogen/libC.cpp | 12 - Tests/QtAutogen/libC.h | 22 -- Tests/QtAutogen/main.cpp | 93 ----- Tests/QtAutogen/multiplewidgets.cpp | 19 - Tests/QtAutogen/multiplewidgets.h | 35 -- Tests/QtAutogen/myinterface.h.in | 14 - Tests/QtAutogen/myotherinterface.h.in | 14 - Tests/QtAutogen/private_slot.cpp | 16 - Tests/QtAutogen/private_slot.h | 20 - Tests/QtAutogen/resourcetester.cpp | 26 -- Tests/QtAutogen/resourcetester.h | 17 - Tests/QtAutogen/second_resource.qrc | 5 - Tests/QtAutogen/second_widget.cpp | 15 - Tests/QtAutogen/second_widget.h | 18 - Tests/QtAutogen/second_widget.ui | 32 -- Tests/QtAutogen/sub/bar.h | 17 - Tests/QtAutogen/targetObjectsTest.cpp | 5 - Tests/QtAutogen/test.qrc | 5 - Tests/QtAutogen/widget1.ui | 45 --- Tests/QtAutogen/widget2.ui | 29 -- Tests/QtAutogen/xyz.cpp | 15 - Tests/QtAutogen/xyz.h | 17 - Tests/QtAutogen/yaf.cpp | 19 - Tests/QtAutogen/yaf.h | 15 - Tests/QtAutogen/yaf_p.h | 19 - 111 files changed, 1879 insertions(+), 1874 deletions(-) delete mode 100644 Tests/QtAutogen/Adir/CMakeLists.txt delete mode 100644 Tests/QtAutogen/Adir/libA.cpp delete mode 100644 Tests/QtAutogen/Adir/libA.h delete mode 100644 Tests/QtAutogen/Bdir/CMakeLists.txt delete mode 100644 Tests/QtAutogen/Bdir/libB.cpp delete mode 100644 Tests/QtAutogen/Bdir/libB.h delete mode 100644 Tests/QtAutogen/abc.cpp delete mode 100644 Tests/QtAutogen/abc.h delete mode 100644 Tests/QtAutogen/abc_p.h delete mode 100644 Tests/QtAutogen/bar.cpp delete mode 100644 Tests/QtAutogen/blub.cpp delete mode 100644 Tests/QtAutogen/blub.h delete mode 100644 Tests/QtAutogen/calwidget.cpp delete mode 100644 Tests/QtAutogen/calwidget.h delete mode 100644 Tests/QtAutogen/calwidget.ui delete mode 100644 Tests/QtAutogen/codeeditor.cpp delete mode 100644 Tests/QtAutogen/codeeditor.h create mode 100644 Tests/QtAutogen/complex/Adir/CMakeLists.txt create mode 100644 Tests/QtAutogen/complex/Adir/libA.cpp create mode 100644 Tests/QtAutogen/complex/Adir/libA.h create mode 100644 Tests/QtAutogen/complex/Bdir/CMakeLists.txt create mode 100644 Tests/QtAutogen/complex/Bdir/libB.cpp create mode 100644 Tests/QtAutogen/complex/Bdir/libB.h create mode 100644 Tests/QtAutogen/complex/CMakeLists.txt create mode 100644 Tests/QtAutogen/complex/abc.cpp create mode 100644 Tests/QtAutogen/complex/abc.h create mode 100644 Tests/QtAutogen/complex/abc_p.h create mode 100644 Tests/QtAutogen/complex/bar.cpp create mode 100644 Tests/QtAutogen/complex/blub.cpp create mode 100644 Tests/QtAutogen/complex/blub.h create mode 100644 Tests/QtAutogen/complex/calwidget.cpp create mode 100644 Tests/QtAutogen/complex/calwidget.h create mode 100644 Tests/QtAutogen/complex/calwidget.ui create mode 100644 Tests/QtAutogen/complex/codeeditor.cpp create mode 100644 Tests/QtAutogen/complex/codeeditor.h create mode 100644 Tests/QtAutogen/complex/debug_class.cpp create mode 100644 Tests/QtAutogen/complex/debug_class.h create mode 100644 Tests/QtAutogen/complex/debug_class.ui create mode 100644 Tests/QtAutogen/complex/debug_resource.qrc create mode 100644 Tests/QtAutogen/complex/foo.cpp create mode 100644 Tests/QtAutogen/complex/foo.h create mode 100644 Tests/QtAutogen/complex/gadget.cpp create mode 100644 Tests/QtAutogen/complex/gadget.h create mode 100644 Tests/QtAutogen/complex/generated.cpp create mode 100644 Tests/QtAutogen/complex/generated.h create mode 100644 Tests/QtAutogen/complex/generated.txt.in create mode 100644 Tests/QtAutogen/complex/generated_resource.qrc.in create mode 100644 Tests/QtAutogen/complex/libC.cpp create mode 100644 Tests/QtAutogen/complex/libC.h create mode 100644 Tests/QtAutogen/complex/main.cpp create mode 100644 Tests/QtAutogen/complex/multiplewidgets.cpp create mode 100644 Tests/QtAutogen/complex/multiplewidgets.h create mode 100644 Tests/QtAutogen/complex/myinterface.h.in create mode 100644 Tests/QtAutogen/complex/myotherinterface.h.in create mode 100644 Tests/QtAutogen/complex/private_slot.cpp create mode 100644 Tests/QtAutogen/complex/private_slot.h create mode 100644 Tests/QtAutogen/complex/resourcetester.cpp create mode 100644 Tests/QtAutogen/complex/resourcetester.h create mode 100644 Tests/QtAutogen/complex/second_resource.qrc create mode 100644 Tests/QtAutogen/complex/second_widget.cpp create mode 100644 Tests/QtAutogen/complex/second_widget.h create mode 100644 Tests/QtAutogen/complex/second_widget.ui create mode 100644 Tests/QtAutogen/complex/sub/bar.h create mode 100644 Tests/QtAutogen/complex/targetObjectsTest.cpp create mode 100644 Tests/QtAutogen/complex/test.qrc create mode 100644 Tests/QtAutogen/complex/widget1.ui create mode 100644 Tests/QtAutogen/complex/widget2.ui create mode 100644 Tests/QtAutogen/complex/xyz.cpp create mode 100644 Tests/QtAutogen/complex/xyz.h create mode 100644 Tests/QtAutogen/complex/yaf.cpp create mode 100644 Tests/QtAutogen/complex/yaf.h create mode 100644 Tests/QtAutogen/complex/yaf_p.h delete mode 100644 Tests/QtAutogen/debug_class.cpp delete mode 100644 Tests/QtAutogen/debug_class.h delete mode 100644 Tests/QtAutogen/debug_class.ui delete mode 100644 Tests/QtAutogen/debug_resource.qrc delete mode 100644 Tests/QtAutogen/foo.cpp delete mode 100644 Tests/QtAutogen/foo.h delete mode 100644 Tests/QtAutogen/gadget.cpp delete mode 100644 Tests/QtAutogen/gadget.h delete mode 100644 Tests/QtAutogen/generated.cpp delete mode 100644 Tests/QtAutogen/generated.h delete mode 100644 Tests/QtAutogen/generated.txt.in delete mode 100644 Tests/QtAutogen/generated_resource.qrc.in delete mode 100644 Tests/QtAutogen/libC.cpp delete mode 100644 Tests/QtAutogen/libC.h delete mode 100644 Tests/QtAutogen/main.cpp delete mode 100644 Tests/QtAutogen/multiplewidgets.cpp delete mode 100644 Tests/QtAutogen/multiplewidgets.h delete mode 100644 Tests/QtAutogen/myinterface.h.in delete mode 100644 Tests/QtAutogen/myotherinterface.h.in delete mode 100644 Tests/QtAutogen/private_slot.cpp delete mode 100644 Tests/QtAutogen/private_slot.h delete mode 100644 Tests/QtAutogen/resourcetester.cpp delete mode 100644 Tests/QtAutogen/resourcetester.h delete mode 100644 Tests/QtAutogen/second_resource.qrc delete mode 100644 Tests/QtAutogen/second_widget.cpp delete mode 100644 Tests/QtAutogen/second_widget.h delete mode 100644 Tests/QtAutogen/second_widget.ui delete mode 100644 Tests/QtAutogen/sub/bar.h delete mode 100644 Tests/QtAutogen/targetObjectsTest.cpp delete mode 100644 Tests/QtAutogen/test.qrc delete mode 100644 Tests/QtAutogen/widget1.ui delete mode 100644 Tests/QtAutogen/widget2.ui delete mode 100644 Tests/QtAutogen/xyz.cpp delete mode 100644 Tests/QtAutogen/xyz.h delete mode 100644 Tests/QtAutogen/yaf.cpp delete mode 100644 Tests/QtAutogen/yaf.h delete mode 100644 Tests/QtAutogen/yaf_p.h diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index e914d00..6327f25 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -1243,7 +1243,7 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release set(run_autogen_test ${CMAKE_CTEST_COMMAND} -V) set(run_autouic_test ${CMAKE_CTEST_COMMAND} -V) else() - set(run_autogen_test QtAutogen) + set(run_autogen_test complex/QtAutogen) set(run_autouic_test QtAutoUicInterface) endif() if(NOT CMAKE_CONFIGURATION_TYPES) diff --git a/Tests/QtAutogen/Adir/CMakeLists.txt b/Tests/QtAutogen/Adir/CMakeLists.txt deleted file mode 100644 index a1c36ff..0000000 --- a/Tests/QtAutogen/Adir/CMakeLists.txt +++ /dev/null @@ -1,8 +0,0 @@ - -set(CMAKE_INCLUDE_CURRENT_DIR ON) -set(CMAKE_AUTOMOC ON) -set(CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE ON) - -add_library(libA SHARED libA.cpp) -target_link_libraries(libA LINK_PUBLIC ${QT_QTCORE_TARGET}) -generate_export_header(libA) diff --git a/Tests/QtAutogen/Adir/libA.cpp b/Tests/QtAutogen/Adir/libA.cpp deleted file mode 100644 index f79f24a..0000000 --- a/Tests/QtAutogen/Adir/libA.cpp +++ /dev/null @@ -1,12 +0,0 @@ - -#include "libA.h" - -LibA::LibA(QObject* parent) - : QObject(parent) -{ -} - -int LibA::foo() -{ - return 0; -} diff --git a/Tests/QtAutogen/Adir/libA.h b/Tests/QtAutogen/Adir/libA.h deleted file mode 100644 index c4eb9f7..0000000 --- a/Tests/QtAutogen/Adir/libA.h +++ /dev/null @@ -1,18 +0,0 @@ - -#ifndef LIBA_H -#define LIBA_H - -#include "liba_export.h" - -#include - -class LIBA_EXPORT LibA : public QObject -{ - Q_OBJECT -public: - explicit LibA(QObject* parent = 0); - - int foo(); -}; - -#endif diff --git a/Tests/QtAutogen/Bdir/CMakeLists.txt b/Tests/QtAutogen/Bdir/CMakeLists.txt deleted file mode 100644 index d9d4aa7..0000000 --- a/Tests/QtAutogen/Bdir/CMakeLists.txt +++ /dev/null @@ -1,10 +0,0 @@ - -set(CMAKE_INCLUDE_CURRENT_DIR ON) -set(CMAKE_AUTOMOC ON) -set(CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE ON) - -add_library(libB SHARED libB.cpp) -generate_export_header(libB) - -# set_property(TARGET libB APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ) -target_link_libraries(libB LINK_PUBLIC libA) diff --git a/Tests/QtAutogen/Bdir/libB.cpp b/Tests/QtAutogen/Bdir/libB.cpp deleted file mode 100644 index d3b6753..0000000 --- a/Tests/QtAutogen/Bdir/libB.cpp +++ /dev/null @@ -1,12 +0,0 @@ - -#include "libB.h" - -LibB::LibB(QObject* parent) - : QObject(parent) -{ -} - -int LibB::foo() -{ - return a.foo(); -} diff --git a/Tests/QtAutogen/Bdir/libB.h b/Tests/QtAutogen/Bdir/libB.h deleted file mode 100644 index e4ab788..0000000 --- a/Tests/QtAutogen/Bdir/libB.h +++ /dev/null @@ -1,22 +0,0 @@ - -#ifndef LIBB_H -#define LIBB_H - -#include "libb_export.h" - -#include "libA.h" -#include - -class LIBB_EXPORT LibB : public QObject -{ - Q_OBJECT -public: - explicit LibB(QObject* parent = 0); - - int foo(); - -private: - LibA a; -}; - -#endif diff --git a/Tests/QtAutogen/CMakeLists.txt b/Tests/QtAutogen/CMakeLists.txt index d09b24d..c0c20f8 100644 --- a/Tests/QtAutogen/CMakeLists.txt +++ b/Tests/QtAutogen/CMakeLists.txt @@ -44,6 +44,8 @@ else() endif() +include_directories(${CMAKE_CURRENT_BINARY_DIR}) + # -- Test: AUTORCC # RCC only add_executable(rccOnly rccOnly.cpp rccOnlyRes.qrc) @@ -63,89 +65,6 @@ add_executable(uicOnly uicOnlySource/uiconly.cpp ${uicOnlyMoc}) set_property(TARGET uicOnly PROPERTY AUTOUIC ON) target_link_libraries(uicOnly ${QT_LIBRARIES}) -# -- Test: AUTOMOC AUTORCC -# Source files with the same basename in different subdirectories -add_subdirectory(sameName) - -# -- Test: AUTOMOC AUTORCC AUTOUIC -include_directories(${CMAKE_CURRENT_BINARY_DIR}) -add_definitions(-DFOO -DSomeDefine="Barx") - -# enable relaxed mode so automoc can handle all the special cases: -set(CMAKE_AUTOMOC_RELAXED_MODE TRUE) - -set(CMAKE_AUTOUIC ON) -set(CMAKE_AUTORCC ON) - -# create an executable and two library targets, each requiring automoc: -add_library(codeeditorLib STATIC codeeditor.cpp) - -add_library(privateSlot OBJECT private_slot.cpp) - -configure_file(generated_resource.qrc.in generated_resource.qrc @ONLY) -add_custom_command( - OUTPUT generated.txt - COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR}/generated.txt.in" "${CMAKE_CURRENT_BINARY_DIR}/generated.txt" - DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/generated.txt.in" - ) - -add_custom_target(generate_moc_input - DEPENDS generated.txt - COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR}/myinterface.h.in" "${CMAKE_CURRENT_BINARY_DIR}" - COMMAND ${CMAKE_COMMAND} -E rename "${CMAKE_CURRENT_BINARY_DIR}/myinterface.h.in" "${CMAKE_CURRENT_BINARY_DIR}/myinterface.h" -) - -add_custom_command( - OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/myotherinterface.h" - COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR}/myotherinterface.h.in" "${CMAKE_CURRENT_BINARY_DIR}/myotherinterface.h" - DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/myotherinterface.h.in" -) - -if (NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_GENERATOR STREQUAL Ninja) - set(debug_srcs "$<$:debug_class.cpp>" $<$:debug_resource.qrc>) - set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS $<$:TEST_DEBUG_CLASS>) -endif() - -# The -no-protection option disables the generation of include guards. Verify -# that setting the source file property has an effect by using this and -# issue an error in the preprocessor in calwidget.cpp if the include guard -# is defined. -set_source_files_properties(calwidget.ui PROPERTIES AUTOUIC_OPTIONS "-no-protection") - -add_executable(QtAutogen main.cpp calwidget.cpp second_widget.cpp foo.cpp blub.cpp bar.cpp abc.cpp - multiplewidgets.cpp - xyz.cpp yaf.cpp gadget.cpp $ - test.qrc second_resource.qrc resourcetester.cpp generated.cpp ${debug_srcs} - ${CMAKE_CURRENT_BINARY_DIR}/generated_resource.qrc -) -set_property(TARGET QtAutogen APPEND PROPERTY AUTOGEN_TARGET_DEPENDS generate_moc_input "${CMAKE_CURRENT_BINARY_DIR}/myotherinterface.h") - -add_executable(targetObjectsTest targetObjectsTest.cpp $) -target_link_libraries(targetObjectsTest ${QT_LIBRARIES}) - -set_target_properties( - QtAutogen codeeditorLib privateSlot targetObjectsTest - PROPERTIES - AUTOMOC TRUE -) - - -include(GenerateExportHeader) -# The order is relevant here. B depends on A, and B headers depend on A -# headers both subdirectories use CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE and we -# test that CMAKE_AUTOMOC successfully reads the include directories -# for the build interface from those targets. There has previously been -# a bug where caching of the include directories happened before -# extracting the includes to pass to moc. -add_subdirectory(Bdir) -add_subdirectory(Adir) -add_library(libC SHARED libC.cpp) -set_target_properties(libC PROPERTIES AUTOMOC TRUE) -generate_export_header(libC) -target_link_libraries(libC LINK_PUBLIC libB) - -target_link_libraries(QtAutogen codeeditorLib ${QT_LIBRARIES} libC) - # -- Test: AUTOMOC, AUTORCC # Add not_generated_file.qrc to the source list to get the file-level # dependency, but don't generate a c++ file from it. Disable the AUTORCC @@ -217,3 +136,11 @@ execute_process(COMMAND "${CMAKE_COMMAND}" --build . if (automoc_rerun_result) message(SEND_ERROR "Second build of automoc_rerun failed.") endif() + +# -- Test: AUTOMOC AUTORCC +# Source files with the same basename in different subdirectories +add_subdirectory(sameName) + +# -- Test: AUTOMOC AUTORCC AUTOUIC +# Complex test case +add_subdirectory(complex) diff --git a/Tests/QtAutogen/abc.cpp b/Tests/QtAutogen/abc.cpp deleted file mode 100644 index 2929b92..0000000 --- a/Tests/QtAutogen/abc.cpp +++ /dev/null @@ -1,39 +0,0 @@ -/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying - file Copyright.txt or https://cmake.org/licensing for details. */ -#include "abc.h" -#include "abc_p.h" - -#include - -class PrintAbc : public QObject -{ - Q_OBJECT -public: - PrintAbc() - : QObject() - { - } -public slots: - void print() const { printf("abc\n"); } -}; - -Abc::Abc() - : QObject() -{ -} - -void Abc::doAbc() -{ - PrintAbc pa; - pa.print(); - AbcP abcP; - abcP.doAbcP(); -} - -// check that including the moc file for the cpp file and the header works: -#include "abc.moc" -#include "moc_abc.cpp" -#include "moc_abc_p.cpp" - -// check that including a moc file from another header works: -#include "moc_xyz.cpp" diff --git a/Tests/QtAutogen/abc.h b/Tests/QtAutogen/abc.h deleted file mode 100644 index ec5f411..0000000 --- a/Tests/QtAutogen/abc.h +++ /dev/null @@ -1,17 +0,0 @@ -/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying - file Copyright.txt or https://cmake.org/licensing for details. */ -#ifndef ABC_H -#define ABC_H - -#include - -class Abc : public QObject -{ - Q_OBJECT -public: - Abc(); -public slots: - void doAbc(); -}; - -#endif diff --git a/Tests/QtAutogen/abc_p.h b/Tests/QtAutogen/abc_p.h deleted file mode 100644 index be98487..0000000 --- a/Tests/QtAutogen/abc_p.h +++ /dev/null @@ -1,19 +0,0 @@ -/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying - file Copyright.txt or https://cmake.org/licensing for details. */ -#ifndef ABC_P_H -#define ABC_P_H - -#include - -#include - -class AbcP : public QObject -{ - Q_OBJECT -public: - AbcP() {} -public slots: - void doAbcP() { printf("I am private abc !\n"); } -}; - -#endif diff --git a/Tests/QtAutogen/bar.cpp b/Tests/QtAutogen/bar.cpp deleted file mode 100644 index 734bd7a..0000000 --- a/Tests/QtAutogen/bar.cpp +++ /dev/null @@ -1,17 +0,0 @@ -/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying - file Copyright.txt or https://cmake.org/licensing for details. */ -#include "sub/bar.h" - -#include - -Bar::Bar() - : QObject() -{ -} - -void Bar::doBar() -{ - printf("Hello bar !\n"); -} - -#include "sub/moc_bar.cpp" diff --git a/Tests/QtAutogen/blub.cpp b/Tests/QtAutogen/blub.cpp deleted file mode 100644 index 1c497e0..0000000 --- a/Tests/QtAutogen/blub.cpp +++ /dev/null @@ -1,31 +0,0 @@ -/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying - file Copyright.txt or https://cmake.org/licensing for details. */ -#include "blub.h" - -#include - -class BlubBlub : public QObject -{ - Q_OBJECT -public: - BlubBlub() - : QObject() - { - } -public slots: - int getValue() const { return 13; } -}; - -Blub::Blub() -{ -} - -void Blub::blubber() -{ - BlubBlub bb; - printf("Blub blub %d ! \n", bb.getValue()); -} - -// test the case that the wrong moc-file is included, it should -// actually be "blub.moc" -#include "moc_blub.cpp" diff --git a/Tests/QtAutogen/blub.h b/Tests/QtAutogen/blub.h deleted file mode 100644 index ff79878..0000000 --- a/Tests/QtAutogen/blub.h +++ /dev/null @@ -1,15 +0,0 @@ -/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying - file Copyright.txt or https://cmake.org/licensing for details. */ -#ifndef BLUB_H -#define BLUB_H - -#include - -class Blub -{ -public: - Blub(); - void blubber(); -}; - -#endif diff --git a/Tests/QtAutogen/calwidget.cpp b/Tests/QtAutogen/calwidget.cpp deleted file mode 100644 index 380e982..0000000 --- a/Tests/QtAutogen/calwidget.cpp +++ /dev/null @@ -1,436 +0,0 @@ -/**************************************************************************** - ** - ** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). - ** All rights reserved. - ** Contact: Nokia Corporation (qt-info@nokia.com) - ** - ** This file is part of the examples of the Qt Toolkit. - ** - ** $QT_BEGIN_LICENSE:BSD$ - ** You may use this file under the terms of the BSD license as follows: - ** - ** "Redistribution and use in source and binary forms, with or without - ** modification, are permitted provided that the following conditions are - ** met: - ** * Redistributions of source code must retain the above copyright - ** notice, this list of conditions and the following disclaimer. - ** * Redistributions in binary form must reproduce the above copyright - ** notice, this list of conditions and the following disclaimer in - ** the documentation and/or other materials provided with the - ** distribution. - ** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor - ** the names of its contributors may be used to endorse or promote - ** products derived from this software without specific prior written - ** permission. - ** - ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." - ** $QT_END_LICENSE$ - ** - ****************************************************************************/ - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "calwidget.h" - -#include "ui_calwidget.h" -#ifdef UI_CALWIDGET_H -#error Definition of UI_CALWIDGET_H should be disabled by file option. -#endif - -Window::Window() - : ui(new Ui::Window) -{ - createPreviewGroupBox(); - createGeneralOptionsGroupBox(); - createDatesGroupBox(); - createTextFormatsGroupBox(); - - QGridLayout* layout = new QGridLayout; - layout->addWidget(previewGroupBox, 0, 0); - layout->addWidget(generalOptionsGroupBox, 0, 1); - layout->addWidget(datesGroupBox, 1, 0); - layout->addWidget(textFormatsGroupBox, 1, 1); - layout->setSizeConstraint(QLayout::SetFixedSize); - setLayout(layout); - - previewLayout->setRowMinimumHeight(0, calendar->sizeHint().height()); - previewLayout->setColumnMinimumWidth(0, calendar->sizeHint().width()); - - setWindowTitle(tr("Calendar Widget")); -} - -void Window::localeChanged(int index) -{ - calendar->setLocale(localeCombo->itemData(index).toLocale()); -} - -void Window::firstDayChanged(int index) -{ - calendar->setFirstDayOfWeek( - Qt::DayOfWeek(firstDayCombo->itemData(index).toInt())); -} - -void Window::selectionModeChanged(int index) -{ - calendar->setSelectionMode(QCalendarWidget::SelectionMode( - selectionModeCombo->itemData(index).toInt())); -} - -void Window::horizontalHeaderChanged(int index) -{ - calendar->setHorizontalHeaderFormat(QCalendarWidget::HorizontalHeaderFormat( - horizontalHeaderCombo->itemData(index).toInt())); -} - -void Window::verticalHeaderChanged(int index) -{ - calendar->setVerticalHeaderFormat(QCalendarWidget::VerticalHeaderFormat( - verticalHeaderCombo->itemData(index).toInt())); -} - -void Window::selectedDateChanged() -{ - currentDateEdit->setDate(calendar->selectedDate()); -} - -void Window::minimumDateChanged(const QDate& date) -{ - calendar->setMinimumDate(date); - maximumDateEdit->setDate(calendar->maximumDate()); -} - -void Window::maximumDateChanged(const QDate& date) -{ - calendar->setMaximumDate(date); - minimumDateEdit->setDate(calendar->minimumDate()); -} - -void Window::weekdayFormatChanged() -{ - QTextCharFormat format; - - format.setForeground(qvariant_cast( - weekdayColorCombo->itemData(weekdayColorCombo->currentIndex()))); - calendar->setWeekdayTextFormat(Qt::Monday, format); - calendar->setWeekdayTextFormat(Qt::Tuesday, format); - calendar->setWeekdayTextFormat(Qt::Wednesday, format); - calendar->setWeekdayTextFormat(Qt::Thursday, format); - calendar->setWeekdayTextFormat(Qt::Friday, format); -} - -void Window::weekendFormatChanged() -{ - QTextCharFormat format; - - format.setForeground(qvariant_cast( - weekendColorCombo->itemData(weekendColorCombo->currentIndex()))); - calendar->setWeekdayTextFormat(Qt::Saturday, format); - calendar->setWeekdayTextFormat(Qt::Sunday, format); -} - -void Window::reformatHeaders() -{ - QString text = headerTextFormatCombo->currentText(); - QTextCharFormat format; - - if (text == tr("Bold")) { - format.setFontWeight(QFont::Bold); - } else if (text == tr("Italic")) { - format.setFontItalic(true); - } else if (text == tr("Green")) { - format.setForeground(Qt::green); - } - calendar->setHeaderTextFormat(format); -} - -void Window::reformatCalendarPage() -{ - if (firstFridayCheckBox->isChecked()) { - QDate firstFriday(calendar->yearShown(), calendar->monthShown(), 1); - while (firstFriday.dayOfWeek() != Qt::Friday) - firstFriday = firstFriday.addDays(1); - QTextCharFormat firstFridayFormat; - firstFridayFormat.setForeground(Qt::blue); - calendar->setDateTextFormat(firstFriday, firstFridayFormat); - } - - // May First in Red takes precedence - if (mayFirstCheckBox->isChecked()) { - const QDate mayFirst(calendar->yearShown(), 5, 1); - QTextCharFormat mayFirstFormat; - mayFirstFormat.setForeground(Qt::red); - calendar->setDateTextFormat(mayFirst, mayFirstFormat); - } -} - -void Window::createPreviewGroupBox() -{ - previewGroupBox = new QGroupBox(tr("Preview")); - - calendar = new QCalendarWidget; - calendar->setMinimumDate(QDate(1900, 1, 1)); - calendar->setMaximumDate(QDate(3000, 1, 1)); - calendar->setGridVisible(true); - - connect(calendar, SIGNAL(currentPageChanged(int, int)), this, - SLOT(reformatCalendarPage())); - - previewLayout = new QGridLayout; - previewLayout->addWidget(calendar, 0, 0, Qt::AlignCenter); - previewGroupBox->setLayout(previewLayout); -} - -void Window::createGeneralOptionsGroupBox() -{ - generalOptionsGroupBox = new QGroupBox(tr("General Options")); - - localeCombo = new QComboBox; - int curLocaleIndex = -1; - int index = 0; - for (int _lang = QLocale::C; _lang <= QLocale::LastLanguage; ++_lang) { - QLocale::Language lang = static_cast(_lang); - QList countries = QLocale::countriesForLanguage(lang); - for (int i = 0; i < countries.count(); ++i) { - QLocale::Country country = countries.at(i); - QString label = QLocale::languageToString(lang); - label += QLatin1Char('/'); - label += QLocale::countryToString(country); - QLocale locale(lang, country); - if (this->locale().language() == lang && - this->locale().country() == country) - curLocaleIndex = index; - localeCombo->addItem(label, locale); - ++index; - } - } - if (curLocaleIndex != -1) - localeCombo->setCurrentIndex(curLocaleIndex); - localeLabel = new QLabel(tr("&Locale")); - localeLabel->setBuddy(localeCombo); - - firstDayCombo = new QComboBox; - firstDayCombo->addItem(tr("Sunday"), Qt::Sunday); - firstDayCombo->addItem(tr("Monday"), Qt::Monday); - firstDayCombo->addItem(tr("Tuesday"), Qt::Tuesday); - firstDayCombo->addItem(tr("Wednesday"), Qt::Wednesday); - firstDayCombo->addItem(tr("Thursday"), Qt::Thursday); - firstDayCombo->addItem(tr("Friday"), Qt::Friday); - firstDayCombo->addItem(tr("Saturday"), Qt::Saturday); - - firstDayLabel = new QLabel(tr("Wee&k starts on:")); - firstDayLabel->setBuddy(firstDayCombo); - - selectionModeCombo = new QComboBox; - selectionModeCombo->addItem(tr("Single selection"), - QCalendarWidget::SingleSelection); - selectionModeCombo->addItem(tr("None"), QCalendarWidget::NoSelection); - - selectionModeLabel = new QLabel(tr("&Selection mode:")); - selectionModeLabel->setBuddy(selectionModeCombo); - - gridCheckBox = new QCheckBox(tr("&Grid")); - gridCheckBox->setChecked(calendar->isGridVisible()); - - navigationCheckBox = new QCheckBox(tr("&Navigation bar")); - navigationCheckBox->setChecked(true); - - horizontalHeaderCombo = new QComboBox; - horizontalHeaderCombo->addItem(tr("Single letter day names"), - QCalendarWidget::SingleLetterDayNames); - horizontalHeaderCombo->addItem(tr("Short day names"), - QCalendarWidget::ShortDayNames); - horizontalHeaderCombo->addItem(tr("None"), - QCalendarWidget::NoHorizontalHeader); - horizontalHeaderCombo->setCurrentIndex(1); - - horizontalHeaderLabel = new QLabel(tr("&Horizontal header:")); - horizontalHeaderLabel->setBuddy(horizontalHeaderCombo); - - verticalHeaderCombo = new QComboBox; - verticalHeaderCombo->addItem(tr("ISO week numbers"), - QCalendarWidget::ISOWeekNumbers); - verticalHeaderCombo->addItem(tr("None"), QCalendarWidget::NoVerticalHeader); - - verticalHeaderLabel = new QLabel(tr("&Vertical header:")); - verticalHeaderLabel->setBuddy(verticalHeaderCombo); - - connect(localeCombo, SIGNAL(currentIndexChanged(int)), this, - SLOT(localeChanged(int))); - connect(firstDayCombo, SIGNAL(currentIndexChanged(int)), this, - SLOT(firstDayChanged(int))); - connect(selectionModeCombo, SIGNAL(currentIndexChanged(int)), this, - SLOT(selectionModeChanged(int))); - connect(gridCheckBox, SIGNAL(toggled(bool)), calendar, - SLOT(setGridVisible(bool))); - connect(navigationCheckBox, SIGNAL(toggled(bool)), calendar, - SLOT(setNavigationBarVisible(bool))); - connect(horizontalHeaderCombo, SIGNAL(currentIndexChanged(int)), this, - SLOT(horizontalHeaderChanged(int))); - connect(verticalHeaderCombo, SIGNAL(currentIndexChanged(int)), this, - SLOT(verticalHeaderChanged(int))); - - QHBoxLayout* checkBoxLayout = new QHBoxLayout; - checkBoxLayout->addWidget(gridCheckBox); - checkBoxLayout->addStretch(); - checkBoxLayout->addWidget(navigationCheckBox); - - QGridLayout* outerLayout = new QGridLayout; - outerLayout->addWidget(localeLabel, 0, 0); - outerLayout->addWidget(localeCombo, 0, 1); - outerLayout->addWidget(firstDayLabel, 1, 0); - outerLayout->addWidget(firstDayCombo, 1, 1); - outerLayout->addWidget(selectionModeLabel, 2, 0); - outerLayout->addWidget(selectionModeCombo, 2, 1); - outerLayout->addLayout(checkBoxLayout, 3, 0, 1, 2); - outerLayout->addWidget(horizontalHeaderLabel, 4, 0); - outerLayout->addWidget(horizontalHeaderCombo, 4, 1); - outerLayout->addWidget(verticalHeaderLabel, 5, 0); - outerLayout->addWidget(verticalHeaderCombo, 5, 1); - generalOptionsGroupBox->setLayout(outerLayout); - - firstDayChanged(firstDayCombo->currentIndex()); - selectionModeChanged(selectionModeCombo->currentIndex()); - horizontalHeaderChanged(horizontalHeaderCombo->currentIndex()); - verticalHeaderChanged(verticalHeaderCombo->currentIndex()); -} - -void Window::createDatesGroupBox() -{ - datesGroupBox = new QGroupBox(tr("Dates")); - - minimumDateEdit = new QDateEdit; - minimumDateEdit->setDisplayFormat("MMM d yyyy"); - minimumDateEdit->setDateRange(calendar->minimumDate(), - calendar->maximumDate()); - minimumDateEdit->setDate(calendar->minimumDate()); - - minimumDateLabel = new QLabel(tr("&Minimum Date:")); - minimumDateLabel->setBuddy(minimumDateEdit); - - currentDateEdit = new QDateEdit; - currentDateEdit->setDisplayFormat("MMM d yyyy"); - currentDateEdit->setDate(calendar->selectedDate()); - currentDateEdit->setDateRange(calendar->minimumDate(), - calendar->maximumDate()); - - currentDateLabel = new QLabel(tr("&Current Date:")); - currentDateLabel->setBuddy(currentDateEdit); - - maximumDateEdit = new QDateEdit; - maximumDateEdit->setDisplayFormat("MMM d yyyy"); - maximumDateEdit->setDateRange(calendar->minimumDate(), - calendar->maximumDate()); - maximumDateEdit->setDate(calendar->maximumDate()); - - maximumDateLabel = new QLabel(tr("Ma&ximum Date:")); - maximumDateLabel->setBuddy(maximumDateEdit); - - connect(currentDateEdit, SIGNAL(dateChanged(QDate)), calendar, - SLOT(setSelectedDate(QDate))); - connect(calendar, SIGNAL(selectionChanged()), this, - SLOT(selectedDateChanged())); - connect(minimumDateEdit, SIGNAL(dateChanged(QDate)), this, - SLOT(minimumDateChanged(QDate))); - connect(maximumDateEdit, SIGNAL(dateChanged(QDate)), this, - SLOT(maximumDateChanged(QDate))); - - QGridLayout* dateBoxLayout = new QGridLayout; - dateBoxLayout->addWidget(currentDateLabel, 1, 0); - dateBoxLayout->addWidget(currentDateEdit, 1, 1); - dateBoxLayout->addWidget(minimumDateLabel, 0, 0); - dateBoxLayout->addWidget(minimumDateEdit, 0, 1); - dateBoxLayout->addWidget(maximumDateLabel, 2, 0); - dateBoxLayout->addWidget(maximumDateEdit, 2, 1); - dateBoxLayout->setRowStretch(3, 1); - - datesGroupBox->setLayout(dateBoxLayout); -} - -void Window::createTextFormatsGroupBox() -{ - textFormatsGroupBox = new QGroupBox(tr("Text Formats")); - - weekdayColorCombo = createColorComboBox(); - weekdayColorCombo->setCurrentIndex(weekdayColorCombo->findText(tr("Black"))); - - weekdayColorLabel = new QLabel(tr("&Weekday color:")); - weekdayColorLabel->setBuddy(weekdayColorCombo); - - weekendColorCombo = createColorComboBox(); - weekendColorCombo->setCurrentIndex(weekendColorCombo->findText(tr("Red"))); - - weekendColorLabel = new QLabel(tr("Week&end color:")); - weekendColorLabel->setBuddy(weekendColorCombo); - - headerTextFormatCombo = new QComboBox; - headerTextFormatCombo->addItem(tr("Bold")); - headerTextFormatCombo->addItem(tr("Italic")); - headerTextFormatCombo->addItem(tr("Plain")); - - headerTextFormatLabel = new QLabel(tr("&Header text:")); - headerTextFormatLabel->setBuddy(headerTextFormatCombo); - - firstFridayCheckBox = new QCheckBox(tr("&First Friday in blue")); - - mayFirstCheckBox = new QCheckBox(tr("May &1 in red")); - - connect(weekdayColorCombo, SIGNAL(currentIndexChanged(int)), this, - SLOT(weekdayFormatChanged())); - connect(weekendColorCombo, SIGNAL(currentIndexChanged(int)), this, - SLOT(weekendFormatChanged())); - connect(headerTextFormatCombo, SIGNAL(currentIndexChanged(QString)), this, - SLOT(reformatHeaders())); - connect(firstFridayCheckBox, SIGNAL(toggled(bool)), this, - SLOT(reformatCalendarPage())); - connect(mayFirstCheckBox, SIGNAL(toggled(bool)), this, - SLOT(reformatCalendarPage())); - - QHBoxLayout* checkBoxLayout = new QHBoxLayout; - checkBoxLayout->addWidget(firstFridayCheckBox); - checkBoxLayout->addStretch(); - checkBoxLayout->addWidget(mayFirstCheckBox); - - QGridLayout* outerLayout = new QGridLayout; - outerLayout->addWidget(weekdayColorLabel, 0, 0); - outerLayout->addWidget(weekdayColorCombo, 0, 1); - outerLayout->addWidget(weekendColorLabel, 1, 0); - outerLayout->addWidget(weekendColorCombo, 1, 1); - outerLayout->addWidget(headerTextFormatLabel, 2, 0); - outerLayout->addWidget(headerTextFormatCombo, 2, 1); - outerLayout->addLayout(checkBoxLayout, 3, 0, 1, 2); - textFormatsGroupBox->setLayout(outerLayout); - - weekdayFormatChanged(); - weekendFormatChanged(); - reformatHeaders(); - reformatCalendarPage(); -} - -QComboBox* Window::createColorComboBox() -{ - QComboBox* comboBox = new QComboBox; - comboBox->addItem(tr("Red"), QColor(Qt::red)); - comboBox->addItem(tr("Blue"), QColor(Qt::blue)); - comboBox->addItem(tr("Black"), QColor(Qt::black)); - comboBox->addItem(tr("Magenta"), QColor(Qt::magenta)); - return comboBox; -} - -//#include "moc_calwidget.cpp" diff --git a/Tests/QtAutogen/calwidget.h b/Tests/QtAutogen/calwidget.h deleted file mode 100644 index 084d959..0000000 --- a/Tests/QtAutogen/calwidget.h +++ /dev/null @@ -1,127 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef WINDOW_H -#define WINDOW_H - -#include - -class QCalendarWidget; -class QCheckBox; -class QComboBox; -class QDate; -class QDateEdit; -class QGridLayout; -class QGroupBox; -class QLabel; - -namespace Ui { -class Window; -} - -class Window : public QWidget -{ - Q_OBJECT - -public: - Window(); - -private slots: - void localeChanged(int index); - void firstDayChanged(int index); - void selectionModeChanged(int index); - void horizontalHeaderChanged(int index); - void verticalHeaderChanged(int index); - void selectedDateChanged(); - void minimumDateChanged(const QDate& date); - void maximumDateChanged(const QDate& date); - void weekdayFormatChanged(); - void weekendFormatChanged(); - void reformatHeaders(); - void reformatCalendarPage(); - -private: - void createPreviewGroupBox(); - void createGeneralOptionsGroupBox(); - void createDatesGroupBox(); - void createTextFormatsGroupBox(); - QComboBox* createColorComboBox(); - - QGroupBox* previewGroupBox; - QGridLayout* previewLayout; - QCalendarWidget* calendar; - - QGroupBox* generalOptionsGroupBox; - QLabel* localeLabel; - QLabel* firstDayLabel; - QLabel* selectionModeLabel; - QLabel* horizontalHeaderLabel; - QLabel* verticalHeaderLabel; - QComboBox* localeCombo; - QComboBox* firstDayCombo; - QComboBox* selectionModeCombo; - QCheckBox* gridCheckBox; - QCheckBox* navigationCheckBox; - QComboBox* horizontalHeaderCombo; - QComboBox* verticalHeaderCombo; - - QGroupBox* datesGroupBox; - QLabel* currentDateLabel; - QLabel* minimumDateLabel; - QLabel* maximumDateLabel; - QDateEdit* currentDateEdit; - QDateEdit* minimumDateEdit; - QDateEdit* maximumDateEdit; - - QGroupBox* textFormatsGroupBox; - QLabel* weekdayColorLabel; - QLabel* weekendColorLabel; - QLabel* headerTextFormatLabel; - QComboBox* weekdayColorCombo; - QComboBox* weekendColorCombo; - QComboBox* headerTextFormatCombo; - - QCheckBox* firstFridayCheckBox; - QCheckBox* mayFirstCheckBox; - - Ui::Window* ui; -}; - -#endif diff --git a/Tests/QtAutogen/calwidget.ui b/Tests/QtAutogen/calwidget.ui deleted file mode 100644 index 1c245ca..0000000 --- a/Tests/QtAutogen/calwidget.ui +++ /dev/null @@ -1,32 +0,0 @@ - - - Window - - - - 0 - 0 - 400 - 300 - - - - Form - - - - - 90 - 180 - 94 - 24 - - - - PushButton - - - - - - diff --git a/Tests/QtAutogen/codeeditor.cpp b/Tests/QtAutogen/codeeditor.cpp deleted file mode 100644 index 0caf8a7..0000000 --- a/Tests/QtAutogen/codeeditor.cpp +++ /dev/null @@ -1,146 +0,0 @@ -/**************************************************************************** - ** - ** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). - ** All rights reserved. - ** Contact: Nokia Corporation (qt-info@nokia.com) - ** - ** This file is part of the examples of the Qt Toolkit. - ** - ** $QT_BEGIN_LICENSE:BSD$ - ** You may use this file under the terms of the BSD license as follows: - ** - ** "Redistribution and use in source and binary forms, with or without - ** modification, are permitted provided that the following conditions are - ** met: - ** * Redistributions of source code must retain the above copyright - ** notice, this list of conditions and the following disclaimer. - ** * Redistributions in binary form must reproduce the above copyright - ** notice, this list of conditions and the following disclaimer in - ** the documentation and/or other materials provided with the - ** distribution. - ** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor - ** the names of its contributors may be used to endorse or promote - ** products derived from this software without specific prior written - ** permission. - ** - ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." - ** $QT_END_LICENSE$ - ** - ****************************************************************************/ - -#include - -#include "codeeditor.h" - -CodeEditor::CodeEditor(QWidget* parent) - : QPlainTextEdit(parent) -{ - lineNumberArea = new LineNumberArea(this); - - connect(this, SIGNAL(blockCountChanged(int)), this, - SLOT(updateLineNumberAreaWidth(int))); - connect(this, SIGNAL(updateRequest(QRect, int)), this, - SLOT(updateLineNumberArea(QRect, int))); - connect(this, SIGNAL(cursorPositionChanged()), this, - SLOT(highlightCurrentLine())); - - updateLineNumberAreaWidth(0); - highlightCurrentLine(); -} - -int CodeEditor::lineNumberAreaWidth() -{ - int digits = 1; - int max = qMax(1, blockCount()); - while (max >= 10) { - max /= 10; - ++digits; - } - - int space = 3 + fontMetrics().width(QLatin1Char('9')) * digits; - - return space; -} - -void CodeEditor::updateLineNumberAreaWidth(int /* newBlockCount */) -{ - setViewportMargins(lineNumberAreaWidth(), 0, 0, 0); -} - -void CodeEditor::updateLineNumberArea(const QRect& rect, int dy) -{ - if (dy) - lineNumberArea->scroll(0, dy); - else - lineNumberArea->update(0, rect.y(), lineNumberArea->width(), - rect.height()); - - if (rect.contains(viewport()->rect())) - updateLineNumberAreaWidth(0); -} - -void CodeEditor::resizeEvent(QResizeEvent* e) -{ - QPlainTextEdit::resizeEvent(e); - - QRect cr = contentsRect(); - lineNumberArea->setGeometry( - QRect(cr.left(), cr.top(), lineNumberAreaWidth(), cr.height())); -} - -void CodeEditor::highlightCurrentLine() -{ - QList extraSelections; - - if (!isReadOnly()) { - QTextEdit::ExtraSelection selection; - - QColor lineColor = QColor(Qt::yellow).lighter(160); - - selection.format.setBackground(lineColor); - selection.format.setProperty(QTextFormat::FullWidthSelection, true); - selection.cursor = textCursor(); - selection.cursor.clearSelection(); - extraSelections.append(selection); - } - - setExtraSelections(extraSelections); -} - -void CodeEditor::lineNumberAreaPaintEvent(QPaintEvent* event) -{ - QPainter painter(lineNumberArea); - painter.fillRect(event->rect(), Qt::lightGray); - - QTextBlock block = firstVisibleBlock(); - int blockNumber = block.blockNumber(); - int top = - (int)blockBoundingGeometry(block).translated(contentOffset()).top(); - int bottom = top + (int)blockBoundingRect(block).height(); - - while (block.isValid() && top <= event->rect().bottom()) { - if (block.isVisible() && bottom >= event->rect().top()) { - QString number = QString::number(blockNumber + 1); - painter.setPen(Qt::black); - painter.drawText(0, top, lineNumberArea->width(), fontMetrics().height(), - Qt::AlignRight, number); - } - - block = block.next(); - top = bottom; - bottom = top + (int)blockBoundingRect(block).height(); - ++blockNumber; - } -} - -#include "codeeditor.moc" diff --git a/Tests/QtAutogen/codeeditor.h b/Tests/QtAutogen/codeeditor.h deleted file mode 100644 index b410bd4..0000000 --- a/Tests/QtAutogen/codeeditor.h +++ /dev/null @@ -1,100 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef CODEEDITOR_H -#define CODEEDITOR_H - -#include -#include - -class QPaintEvent; -class QResizeEvent; -class QSize; -class QWidget; - -class LineNumberArea; - -class CodeEditor : public QPlainTextEdit -{ - Q_OBJECT - -public: - CodeEditor(QWidget* parent = 0); - - void lineNumberAreaPaintEvent(QPaintEvent* event); - int lineNumberAreaWidth(); - -protected: - void resizeEvent(QResizeEvent* event); - -private slots: - void updateLineNumberAreaWidth(int newBlockCount); - void highlightCurrentLine(); - void updateLineNumberArea(const QRect&, int); - -private: - QWidget* lineNumberArea; -}; - -class LineNumberArea : public QWidget -{ -public: - LineNumberArea(CodeEditor* editor) - : QWidget(editor) - { - codeEditor = editor; - } - - QSize sizeHint() const - { - return QSize(codeEditor->lineNumberAreaWidth(), 0); - } - -protected: - void paintEvent(QPaintEvent* event) - { - codeEditor->lineNumberAreaPaintEvent(event); - } - -private: - CodeEditor* codeEditor; -}; - -#endif diff --git a/Tests/QtAutogen/complex/Adir/CMakeLists.txt b/Tests/QtAutogen/complex/Adir/CMakeLists.txt new file mode 100644 index 0000000..a1c36ff --- /dev/null +++ b/Tests/QtAutogen/complex/Adir/CMakeLists.txt @@ -0,0 +1,8 @@ + +set(CMAKE_INCLUDE_CURRENT_DIR ON) +set(CMAKE_AUTOMOC ON) +set(CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE ON) + +add_library(libA SHARED libA.cpp) +target_link_libraries(libA LINK_PUBLIC ${QT_QTCORE_TARGET}) +generate_export_header(libA) diff --git a/Tests/QtAutogen/complex/Adir/libA.cpp b/Tests/QtAutogen/complex/Adir/libA.cpp new file mode 100644 index 0000000..f79f24a --- /dev/null +++ b/Tests/QtAutogen/complex/Adir/libA.cpp @@ -0,0 +1,12 @@ + +#include "libA.h" + +LibA::LibA(QObject* parent) + : QObject(parent) +{ +} + +int LibA::foo() +{ + return 0; +} diff --git a/Tests/QtAutogen/complex/Adir/libA.h b/Tests/QtAutogen/complex/Adir/libA.h new file mode 100644 index 0000000..c4eb9f7 --- /dev/null +++ b/Tests/QtAutogen/complex/Adir/libA.h @@ -0,0 +1,18 @@ + +#ifndef LIBA_H +#define LIBA_H + +#include "liba_export.h" + +#include + +class LIBA_EXPORT LibA : public QObject +{ + Q_OBJECT +public: + explicit LibA(QObject* parent = 0); + + int foo(); +}; + +#endif diff --git a/Tests/QtAutogen/complex/Bdir/CMakeLists.txt b/Tests/QtAutogen/complex/Bdir/CMakeLists.txt new file mode 100644 index 0000000..d9d4aa7 --- /dev/null +++ b/Tests/QtAutogen/complex/Bdir/CMakeLists.txt @@ -0,0 +1,10 @@ + +set(CMAKE_INCLUDE_CURRENT_DIR ON) +set(CMAKE_AUTOMOC ON) +set(CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE ON) + +add_library(libB SHARED libB.cpp) +generate_export_header(libB) + +# set_property(TARGET libB APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ) +target_link_libraries(libB LINK_PUBLIC libA) diff --git a/Tests/QtAutogen/complex/Bdir/libB.cpp b/Tests/QtAutogen/complex/Bdir/libB.cpp new file mode 100644 index 0000000..d3b6753 --- /dev/null +++ b/Tests/QtAutogen/complex/Bdir/libB.cpp @@ -0,0 +1,12 @@ + +#include "libB.h" + +LibB::LibB(QObject* parent) + : QObject(parent) +{ +} + +int LibB::foo() +{ + return a.foo(); +} diff --git a/Tests/QtAutogen/complex/Bdir/libB.h b/Tests/QtAutogen/complex/Bdir/libB.h new file mode 100644 index 0000000..e4ab788 --- /dev/null +++ b/Tests/QtAutogen/complex/Bdir/libB.h @@ -0,0 +1,22 @@ + +#ifndef LIBB_H +#define LIBB_H + +#include "libb_export.h" + +#include "libA.h" +#include + +class LIBB_EXPORT LibB : public QObject +{ + Q_OBJECT +public: + explicit LibB(QObject* parent = 0); + + int foo(); + +private: + LibA a; +}; + +#endif diff --git a/Tests/QtAutogen/complex/CMakeLists.txt b/Tests/QtAutogen/complex/CMakeLists.txt new file mode 100644 index 0000000..d1b34c6 --- /dev/null +++ b/Tests/QtAutogen/complex/CMakeLists.txt @@ -0,0 +1,78 @@ +cmake_minimum_required(VERSION 3.1) + +# -- Test: AUTOMOC AUTORCC AUTOUIC +include_directories(${CMAKE_CURRENT_BINARY_DIR}) +add_definitions(-DFOO -DSomeDefine="Barx") + +# enable relaxed mode so automoc can handle all the special cases: +set(CMAKE_AUTOMOC_RELAXED_MODE TRUE) +set(CMAKE_AUTOUIC ON) +set(CMAKE_AUTORCC ON) + +# create an executable and two library targets, each requiring automoc: +add_library(codeeditorLib STATIC codeeditor.cpp) +add_library(privateSlot OBJECT private_slot.cpp) + +configure_file(generated_resource.qrc.in generated_resource.qrc @ONLY) +add_custom_command( + OUTPUT generated.txt + COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR}/generated.txt.in" "${CMAKE_CURRENT_BINARY_DIR}/generated.txt" + DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/generated.txt.in" + ) + +add_custom_target(generate_moc_input + DEPENDS generated.txt + COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR}/myinterface.h.in" "${CMAKE_CURRENT_BINARY_DIR}" + COMMAND ${CMAKE_COMMAND} -E rename "${CMAKE_CURRENT_BINARY_DIR}/myinterface.h.in" "${CMAKE_CURRENT_BINARY_DIR}/myinterface.h" +) + +add_custom_command( + OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/myotherinterface.h" + COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR}/myotherinterface.h.in" "${CMAKE_CURRENT_BINARY_DIR}/myotherinterface.h" + DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/myotherinterface.h.in" +) + +if (NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_GENERATOR STREQUAL Ninja) + set(debug_srcs "$<$:debug_class.cpp>" $<$:debug_resource.qrc>) + set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS $<$:TEST_DEBUG_CLASS>) +endif() + +# The -no-protection option disables the generation of include guards. Verify +# that setting the source file property has an effect by using this and +# issue an error in the preprocessor in calwidget.cpp if the include guard +# is defined. +set_source_files_properties(calwidget.ui PROPERTIES AUTOUIC_OPTIONS "-no-protection") + +add_executable(QtAutogen main.cpp calwidget.cpp second_widget.cpp foo.cpp blub.cpp bar.cpp abc.cpp + multiplewidgets.cpp + xyz.cpp yaf.cpp gadget.cpp $ + test.qrc second_resource.qrc resourcetester.cpp generated.cpp ${debug_srcs} + ${CMAKE_CURRENT_BINARY_DIR}/generated_resource.qrc +) +set_property(TARGET QtAutogen APPEND PROPERTY AUTOGEN_TARGET_DEPENDS generate_moc_input "${CMAKE_CURRENT_BINARY_DIR}/myotherinterface.h") + +add_executable(targetObjectsTest targetObjectsTest.cpp $) +target_link_libraries(targetObjectsTest ${QT_LIBRARIES}) + +set_target_properties( + QtAutogen codeeditorLib privateSlot targetObjectsTest + PROPERTIES + AUTOMOC TRUE +) + + +include(GenerateExportHeader) +# The order is relevant here. B depends on A, and B headers depend on A +# headers both subdirectories use CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE and we +# test that CMAKE_AUTOMOC successfully reads the include directories +# for the build interface from those targets. There has previously been +# a bug where caching of the include directories happened before +# extracting the includes to pass to moc. +add_subdirectory(Bdir) +add_subdirectory(Adir) +add_library(libC SHARED libC.cpp) +set_target_properties(libC PROPERTIES AUTOMOC TRUE) +generate_export_header(libC) +target_link_libraries(libC LINK_PUBLIC libB) + +target_link_libraries(QtAutogen codeeditorLib ${QT_LIBRARIES} libC) diff --git a/Tests/QtAutogen/complex/abc.cpp b/Tests/QtAutogen/complex/abc.cpp new file mode 100644 index 0000000..2929b92 --- /dev/null +++ b/Tests/QtAutogen/complex/abc.cpp @@ -0,0 +1,39 @@ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ +#include "abc.h" +#include "abc_p.h" + +#include + +class PrintAbc : public QObject +{ + Q_OBJECT +public: + PrintAbc() + : QObject() + { + } +public slots: + void print() const { printf("abc\n"); } +}; + +Abc::Abc() + : QObject() +{ +} + +void Abc::doAbc() +{ + PrintAbc pa; + pa.print(); + AbcP abcP; + abcP.doAbcP(); +} + +// check that including the moc file for the cpp file and the header works: +#include "abc.moc" +#include "moc_abc.cpp" +#include "moc_abc_p.cpp" + +// check that including a moc file from another header works: +#include "moc_xyz.cpp" diff --git a/Tests/QtAutogen/complex/abc.h b/Tests/QtAutogen/complex/abc.h new file mode 100644 index 0000000..ec5f411 --- /dev/null +++ b/Tests/QtAutogen/complex/abc.h @@ -0,0 +1,17 @@ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ +#ifndef ABC_H +#define ABC_H + +#include + +class Abc : public QObject +{ + Q_OBJECT +public: + Abc(); +public slots: + void doAbc(); +}; + +#endif diff --git a/Tests/QtAutogen/complex/abc_p.h b/Tests/QtAutogen/complex/abc_p.h new file mode 100644 index 0000000..be98487 --- /dev/null +++ b/Tests/QtAutogen/complex/abc_p.h @@ -0,0 +1,19 @@ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ +#ifndef ABC_P_H +#define ABC_P_H + +#include + +#include + +class AbcP : public QObject +{ + Q_OBJECT +public: + AbcP() {} +public slots: + void doAbcP() { printf("I am private abc !\n"); } +}; + +#endif diff --git a/Tests/QtAutogen/complex/bar.cpp b/Tests/QtAutogen/complex/bar.cpp new file mode 100644 index 0000000..734bd7a --- /dev/null +++ b/Tests/QtAutogen/complex/bar.cpp @@ -0,0 +1,17 @@ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ +#include "sub/bar.h" + +#include + +Bar::Bar() + : QObject() +{ +} + +void Bar::doBar() +{ + printf("Hello bar !\n"); +} + +#include "sub/moc_bar.cpp" diff --git a/Tests/QtAutogen/complex/blub.cpp b/Tests/QtAutogen/complex/blub.cpp new file mode 100644 index 0000000..1c497e0 --- /dev/null +++ b/Tests/QtAutogen/complex/blub.cpp @@ -0,0 +1,31 @@ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ +#include "blub.h" + +#include + +class BlubBlub : public QObject +{ + Q_OBJECT +public: + BlubBlub() + : QObject() + { + } +public slots: + int getValue() const { return 13; } +}; + +Blub::Blub() +{ +} + +void Blub::blubber() +{ + BlubBlub bb; + printf("Blub blub %d ! \n", bb.getValue()); +} + +// test the case that the wrong moc-file is included, it should +// actually be "blub.moc" +#include "moc_blub.cpp" diff --git a/Tests/QtAutogen/complex/blub.h b/Tests/QtAutogen/complex/blub.h new file mode 100644 index 0000000..ff79878 --- /dev/null +++ b/Tests/QtAutogen/complex/blub.h @@ -0,0 +1,15 @@ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ +#ifndef BLUB_H +#define BLUB_H + +#include + +class Blub +{ +public: + Blub(); + void blubber(); +}; + +#endif diff --git a/Tests/QtAutogen/complex/calwidget.cpp b/Tests/QtAutogen/complex/calwidget.cpp new file mode 100644 index 0000000..380e982 --- /dev/null +++ b/Tests/QtAutogen/complex/calwidget.cpp @@ -0,0 +1,436 @@ +/**************************************************************************** + ** + ** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). + ** All rights reserved. + ** Contact: Nokia Corporation (qt-info@nokia.com) + ** + ** This file is part of the examples of the Qt Toolkit. + ** + ** $QT_BEGIN_LICENSE:BSD$ + ** You may use this file under the terms of the BSD license as follows: + ** + ** "Redistribution and use in source and binary forms, with or without + ** modification, are permitted provided that the following conditions are + ** met: + ** * Redistributions of source code must retain the above copyright + ** notice, this list of conditions and the following disclaimer. + ** * Redistributions in binary form must reproduce the above copyright + ** notice, this list of conditions and the following disclaimer in + ** the documentation and/or other materials provided with the + ** distribution. + ** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor + ** the names of its contributors may be used to endorse or promote + ** products derived from this software without specific prior written + ** permission. + ** + ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." + ** $QT_END_LICENSE$ + ** + ****************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "calwidget.h" + +#include "ui_calwidget.h" +#ifdef UI_CALWIDGET_H +#error Definition of UI_CALWIDGET_H should be disabled by file option. +#endif + +Window::Window() + : ui(new Ui::Window) +{ + createPreviewGroupBox(); + createGeneralOptionsGroupBox(); + createDatesGroupBox(); + createTextFormatsGroupBox(); + + QGridLayout* layout = new QGridLayout; + layout->addWidget(previewGroupBox, 0, 0); + layout->addWidget(generalOptionsGroupBox, 0, 1); + layout->addWidget(datesGroupBox, 1, 0); + layout->addWidget(textFormatsGroupBox, 1, 1); + layout->setSizeConstraint(QLayout::SetFixedSize); + setLayout(layout); + + previewLayout->setRowMinimumHeight(0, calendar->sizeHint().height()); + previewLayout->setColumnMinimumWidth(0, calendar->sizeHint().width()); + + setWindowTitle(tr("Calendar Widget")); +} + +void Window::localeChanged(int index) +{ + calendar->setLocale(localeCombo->itemData(index).toLocale()); +} + +void Window::firstDayChanged(int index) +{ + calendar->setFirstDayOfWeek( + Qt::DayOfWeek(firstDayCombo->itemData(index).toInt())); +} + +void Window::selectionModeChanged(int index) +{ + calendar->setSelectionMode(QCalendarWidget::SelectionMode( + selectionModeCombo->itemData(index).toInt())); +} + +void Window::horizontalHeaderChanged(int index) +{ + calendar->setHorizontalHeaderFormat(QCalendarWidget::HorizontalHeaderFormat( + horizontalHeaderCombo->itemData(index).toInt())); +} + +void Window::verticalHeaderChanged(int index) +{ + calendar->setVerticalHeaderFormat(QCalendarWidget::VerticalHeaderFormat( + verticalHeaderCombo->itemData(index).toInt())); +} + +void Window::selectedDateChanged() +{ + currentDateEdit->setDate(calendar->selectedDate()); +} + +void Window::minimumDateChanged(const QDate& date) +{ + calendar->setMinimumDate(date); + maximumDateEdit->setDate(calendar->maximumDate()); +} + +void Window::maximumDateChanged(const QDate& date) +{ + calendar->setMaximumDate(date); + minimumDateEdit->setDate(calendar->minimumDate()); +} + +void Window::weekdayFormatChanged() +{ + QTextCharFormat format; + + format.setForeground(qvariant_cast( + weekdayColorCombo->itemData(weekdayColorCombo->currentIndex()))); + calendar->setWeekdayTextFormat(Qt::Monday, format); + calendar->setWeekdayTextFormat(Qt::Tuesday, format); + calendar->setWeekdayTextFormat(Qt::Wednesday, format); + calendar->setWeekdayTextFormat(Qt::Thursday, format); + calendar->setWeekdayTextFormat(Qt::Friday, format); +} + +void Window::weekendFormatChanged() +{ + QTextCharFormat format; + + format.setForeground(qvariant_cast( + weekendColorCombo->itemData(weekendColorCombo->currentIndex()))); + calendar->setWeekdayTextFormat(Qt::Saturday, format); + calendar->setWeekdayTextFormat(Qt::Sunday, format); +} + +void Window::reformatHeaders() +{ + QString text = headerTextFormatCombo->currentText(); + QTextCharFormat format; + + if (text == tr("Bold")) { + format.setFontWeight(QFont::Bold); + } else if (text == tr("Italic")) { + format.setFontItalic(true); + } else if (text == tr("Green")) { + format.setForeground(Qt::green); + } + calendar->setHeaderTextFormat(format); +} + +void Window::reformatCalendarPage() +{ + if (firstFridayCheckBox->isChecked()) { + QDate firstFriday(calendar->yearShown(), calendar->monthShown(), 1); + while (firstFriday.dayOfWeek() != Qt::Friday) + firstFriday = firstFriday.addDays(1); + QTextCharFormat firstFridayFormat; + firstFridayFormat.setForeground(Qt::blue); + calendar->setDateTextFormat(firstFriday, firstFridayFormat); + } + + // May First in Red takes precedence + if (mayFirstCheckBox->isChecked()) { + const QDate mayFirst(calendar->yearShown(), 5, 1); + QTextCharFormat mayFirstFormat; + mayFirstFormat.setForeground(Qt::red); + calendar->setDateTextFormat(mayFirst, mayFirstFormat); + } +} + +void Window::createPreviewGroupBox() +{ + previewGroupBox = new QGroupBox(tr("Preview")); + + calendar = new QCalendarWidget; + calendar->setMinimumDate(QDate(1900, 1, 1)); + calendar->setMaximumDate(QDate(3000, 1, 1)); + calendar->setGridVisible(true); + + connect(calendar, SIGNAL(currentPageChanged(int, int)), this, + SLOT(reformatCalendarPage())); + + previewLayout = new QGridLayout; + previewLayout->addWidget(calendar, 0, 0, Qt::AlignCenter); + previewGroupBox->setLayout(previewLayout); +} + +void Window::createGeneralOptionsGroupBox() +{ + generalOptionsGroupBox = new QGroupBox(tr("General Options")); + + localeCombo = new QComboBox; + int curLocaleIndex = -1; + int index = 0; + for (int _lang = QLocale::C; _lang <= QLocale::LastLanguage; ++_lang) { + QLocale::Language lang = static_cast(_lang); + QList countries = QLocale::countriesForLanguage(lang); + for (int i = 0; i < countries.count(); ++i) { + QLocale::Country country = countries.at(i); + QString label = QLocale::languageToString(lang); + label += QLatin1Char('/'); + label += QLocale::countryToString(country); + QLocale locale(lang, country); + if (this->locale().language() == lang && + this->locale().country() == country) + curLocaleIndex = index; + localeCombo->addItem(label, locale); + ++index; + } + } + if (curLocaleIndex != -1) + localeCombo->setCurrentIndex(curLocaleIndex); + localeLabel = new QLabel(tr("&Locale")); + localeLabel->setBuddy(localeCombo); + + firstDayCombo = new QComboBox; + firstDayCombo->addItem(tr("Sunday"), Qt::Sunday); + firstDayCombo->addItem(tr("Monday"), Qt::Monday); + firstDayCombo->addItem(tr("Tuesday"), Qt::Tuesday); + firstDayCombo->addItem(tr("Wednesday"), Qt::Wednesday); + firstDayCombo->addItem(tr("Thursday"), Qt::Thursday); + firstDayCombo->addItem(tr("Friday"), Qt::Friday); + firstDayCombo->addItem(tr("Saturday"), Qt::Saturday); + + firstDayLabel = new QLabel(tr("Wee&k starts on:")); + firstDayLabel->setBuddy(firstDayCombo); + + selectionModeCombo = new QComboBox; + selectionModeCombo->addItem(tr("Single selection"), + QCalendarWidget::SingleSelection); + selectionModeCombo->addItem(tr("None"), QCalendarWidget::NoSelection); + + selectionModeLabel = new QLabel(tr("&Selection mode:")); + selectionModeLabel->setBuddy(selectionModeCombo); + + gridCheckBox = new QCheckBox(tr("&Grid")); + gridCheckBox->setChecked(calendar->isGridVisible()); + + navigationCheckBox = new QCheckBox(tr("&Navigation bar")); + navigationCheckBox->setChecked(true); + + horizontalHeaderCombo = new QComboBox; + horizontalHeaderCombo->addItem(tr("Single letter day names"), + QCalendarWidget::SingleLetterDayNames); + horizontalHeaderCombo->addItem(tr("Short day names"), + QCalendarWidget::ShortDayNames); + horizontalHeaderCombo->addItem(tr("None"), + QCalendarWidget::NoHorizontalHeader); + horizontalHeaderCombo->setCurrentIndex(1); + + horizontalHeaderLabel = new QLabel(tr("&Horizontal header:")); + horizontalHeaderLabel->setBuddy(horizontalHeaderCombo); + + verticalHeaderCombo = new QComboBox; + verticalHeaderCombo->addItem(tr("ISO week numbers"), + QCalendarWidget::ISOWeekNumbers); + verticalHeaderCombo->addItem(tr("None"), QCalendarWidget::NoVerticalHeader); + + verticalHeaderLabel = new QLabel(tr("&Vertical header:")); + verticalHeaderLabel->setBuddy(verticalHeaderCombo); + + connect(localeCombo, SIGNAL(currentIndexChanged(int)), this, + SLOT(localeChanged(int))); + connect(firstDayCombo, SIGNAL(currentIndexChanged(int)), this, + SLOT(firstDayChanged(int))); + connect(selectionModeCombo, SIGNAL(currentIndexChanged(int)), this, + SLOT(selectionModeChanged(int))); + connect(gridCheckBox, SIGNAL(toggled(bool)), calendar, + SLOT(setGridVisible(bool))); + connect(navigationCheckBox, SIGNAL(toggled(bool)), calendar, + SLOT(setNavigationBarVisible(bool))); + connect(horizontalHeaderCombo, SIGNAL(currentIndexChanged(int)), this, + SLOT(horizontalHeaderChanged(int))); + connect(verticalHeaderCombo, SIGNAL(currentIndexChanged(int)), this, + SLOT(verticalHeaderChanged(int))); + + QHBoxLayout* checkBoxLayout = new QHBoxLayout; + checkBoxLayout->addWidget(gridCheckBox); + checkBoxLayout->addStretch(); + checkBoxLayout->addWidget(navigationCheckBox); + + QGridLayout* outerLayout = new QGridLayout; + outerLayout->addWidget(localeLabel, 0, 0); + outerLayout->addWidget(localeCombo, 0, 1); + outerLayout->addWidget(firstDayLabel, 1, 0); + outerLayout->addWidget(firstDayCombo, 1, 1); + outerLayout->addWidget(selectionModeLabel, 2, 0); + outerLayout->addWidget(selectionModeCombo, 2, 1); + outerLayout->addLayout(checkBoxLayout, 3, 0, 1, 2); + outerLayout->addWidget(horizontalHeaderLabel, 4, 0); + outerLayout->addWidget(horizontalHeaderCombo, 4, 1); + outerLayout->addWidget(verticalHeaderLabel, 5, 0); + outerLayout->addWidget(verticalHeaderCombo, 5, 1); + generalOptionsGroupBox->setLayout(outerLayout); + + firstDayChanged(firstDayCombo->currentIndex()); + selectionModeChanged(selectionModeCombo->currentIndex()); + horizontalHeaderChanged(horizontalHeaderCombo->currentIndex()); + verticalHeaderChanged(verticalHeaderCombo->currentIndex()); +} + +void Window::createDatesGroupBox() +{ + datesGroupBox = new QGroupBox(tr("Dates")); + + minimumDateEdit = new QDateEdit; + minimumDateEdit->setDisplayFormat("MMM d yyyy"); + minimumDateEdit->setDateRange(calendar->minimumDate(), + calendar->maximumDate()); + minimumDateEdit->setDate(calendar->minimumDate()); + + minimumDateLabel = new QLabel(tr("&Minimum Date:")); + minimumDateLabel->setBuddy(minimumDateEdit); + + currentDateEdit = new QDateEdit; + currentDateEdit->setDisplayFormat("MMM d yyyy"); + currentDateEdit->setDate(calendar->selectedDate()); + currentDateEdit->setDateRange(calendar->minimumDate(), + calendar->maximumDate()); + + currentDateLabel = new QLabel(tr("&Current Date:")); + currentDateLabel->setBuddy(currentDateEdit); + + maximumDateEdit = new QDateEdit; + maximumDateEdit->setDisplayFormat("MMM d yyyy"); + maximumDateEdit->setDateRange(calendar->minimumDate(), + calendar->maximumDate()); + maximumDateEdit->setDate(calendar->maximumDate()); + + maximumDateLabel = new QLabel(tr("Ma&ximum Date:")); + maximumDateLabel->setBuddy(maximumDateEdit); + + connect(currentDateEdit, SIGNAL(dateChanged(QDate)), calendar, + SLOT(setSelectedDate(QDate))); + connect(calendar, SIGNAL(selectionChanged()), this, + SLOT(selectedDateChanged())); + connect(minimumDateEdit, SIGNAL(dateChanged(QDate)), this, + SLOT(minimumDateChanged(QDate))); + connect(maximumDateEdit, SIGNAL(dateChanged(QDate)), this, + SLOT(maximumDateChanged(QDate))); + + QGridLayout* dateBoxLayout = new QGridLayout; + dateBoxLayout->addWidget(currentDateLabel, 1, 0); + dateBoxLayout->addWidget(currentDateEdit, 1, 1); + dateBoxLayout->addWidget(minimumDateLabel, 0, 0); + dateBoxLayout->addWidget(minimumDateEdit, 0, 1); + dateBoxLayout->addWidget(maximumDateLabel, 2, 0); + dateBoxLayout->addWidget(maximumDateEdit, 2, 1); + dateBoxLayout->setRowStretch(3, 1); + + datesGroupBox->setLayout(dateBoxLayout); +} + +void Window::createTextFormatsGroupBox() +{ + textFormatsGroupBox = new QGroupBox(tr("Text Formats")); + + weekdayColorCombo = createColorComboBox(); + weekdayColorCombo->setCurrentIndex(weekdayColorCombo->findText(tr("Black"))); + + weekdayColorLabel = new QLabel(tr("&Weekday color:")); + weekdayColorLabel->setBuddy(weekdayColorCombo); + + weekendColorCombo = createColorComboBox(); + weekendColorCombo->setCurrentIndex(weekendColorCombo->findText(tr("Red"))); + + weekendColorLabel = new QLabel(tr("Week&end color:")); + weekendColorLabel->setBuddy(weekendColorCombo); + + headerTextFormatCombo = new QComboBox; + headerTextFormatCombo->addItem(tr("Bold")); + headerTextFormatCombo->addItem(tr("Italic")); + headerTextFormatCombo->addItem(tr("Plain")); + + headerTextFormatLabel = new QLabel(tr("&Header text:")); + headerTextFormatLabel->setBuddy(headerTextFormatCombo); + + firstFridayCheckBox = new QCheckBox(tr("&First Friday in blue")); + + mayFirstCheckBox = new QCheckBox(tr("May &1 in red")); + + connect(weekdayColorCombo, SIGNAL(currentIndexChanged(int)), this, + SLOT(weekdayFormatChanged())); + connect(weekendColorCombo, SIGNAL(currentIndexChanged(int)), this, + SLOT(weekendFormatChanged())); + connect(headerTextFormatCombo, SIGNAL(currentIndexChanged(QString)), this, + SLOT(reformatHeaders())); + connect(firstFridayCheckBox, SIGNAL(toggled(bool)), this, + SLOT(reformatCalendarPage())); + connect(mayFirstCheckBox, SIGNAL(toggled(bool)), this, + SLOT(reformatCalendarPage())); + + QHBoxLayout* checkBoxLayout = new QHBoxLayout; + checkBoxLayout->addWidget(firstFridayCheckBox); + checkBoxLayout->addStretch(); + checkBoxLayout->addWidget(mayFirstCheckBox); + + QGridLayout* outerLayout = new QGridLayout; + outerLayout->addWidget(weekdayColorLabel, 0, 0); + outerLayout->addWidget(weekdayColorCombo, 0, 1); + outerLayout->addWidget(weekendColorLabel, 1, 0); + outerLayout->addWidget(weekendColorCombo, 1, 1); + outerLayout->addWidget(headerTextFormatLabel, 2, 0); + outerLayout->addWidget(headerTextFormatCombo, 2, 1); + outerLayout->addLayout(checkBoxLayout, 3, 0, 1, 2); + textFormatsGroupBox->setLayout(outerLayout); + + weekdayFormatChanged(); + weekendFormatChanged(); + reformatHeaders(); + reformatCalendarPage(); +} + +QComboBox* Window::createColorComboBox() +{ + QComboBox* comboBox = new QComboBox; + comboBox->addItem(tr("Red"), QColor(Qt::red)); + comboBox->addItem(tr("Blue"), QColor(Qt::blue)); + comboBox->addItem(tr("Black"), QColor(Qt::black)); + comboBox->addItem(tr("Magenta"), QColor(Qt::magenta)); + return comboBox; +} + +//#include "moc_calwidget.cpp" diff --git a/Tests/QtAutogen/complex/calwidget.h b/Tests/QtAutogen/complex/calwidget.h new file mode 100644 index 0000000..084d959 --- /dev/null +++ b/Tests/QtAutogen/complex/calwidget.h @@ -0,0 +1,127 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the examples of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef WINDOW_H +#define WINDOW_H + +#include + +class QCalendarWidget; +class QCheckBox; +class QComboBox; +class QDate; +class QDateEdit; +class QGridLayout; +class QGroupBox; +class QLabel; + +namespace Ui { +class Window; +} + +class Window : public QWidget +{ + Q_OBJECT + +public: + Window(); + +private slots: + void localeChanged(int index); + void firstDayChanged(int index); + void selectionModeChanged(int index); + void horizontalHeaderChanged(int index); + void verticalHeaderChanged(int index); + void selectedDateChanged(); + void minimumDateChanged(const QDate& date); + void maximumDateChanged(const QDate& date); + void weekdayFormatChanged(); + void weekendFormatChanged(); + void reformatHeaders(); + void reformatCalendarPage(); + +private: + void createPreviewGroupBox(); + void createGeneralOptionsGroupBox(); + void createDatesGroupBox(); + void createTextFormatsGroupBox(); + QComboBox* createColorComboBox(); + + QGroupBox* previewGroupBox; + QGridLayout* previewLayout; + QCalendarWidget* calendar; + + QGroupBox* generalOptionsGroupBox; + QLabel* localeLabel; + QLabel* firstDayLabel; + QLabel* selectionModeLabel; + QLabel* horizontalHeaderLabel; + QLabel* verticalHeaderLabel; + QComboBox* localeCombo; + QComboBox* firstDayCombo; + QComboBox* selectionModeCombo; + QCheckBox* gridCheckBox; + QCheckBox* navigationCheckBox; + QComboBox* horizontalHeaderCombo; + QComboBox* verticalHeaderCombo; + + QGroupBox* datesGroupBox; + QLabel* currentDateLabel; + QLabel* minimumDateLabel; + QLabel* maximumDateLabel; + QDateEdit* currentDateEdit; + QDateEdit* minimumDateEdit; + QDateEdit* maximumDateEdit; + + QGroupBox* textFormatsGroupBox; + QLabel* weekdayColorLabel; + QLabel* weekendColorLabel; + QLabel* headerTextFormatLabel; + QComboBox* weekdayColorCombo; + QComboBox* weekendColorCombo; + QComboBox* headerTextFormatCombo; + + QCheckBox* firstFridayCheckBox; + QCheckBox* mayFirstCheckBox; + + Ui::Window* ui; +}; + +#endif diff --git a/Tests/QtAutogen/complex/calwidget.ui b/Tests/QtAutogen/complex/calwidget.ui new file mode 100644 index 0000000..1c245ca --- /dev/null +++ b/Tests/QtAutogen/complex/calwidget.ui @@ -0,0 +1,32 @@ + + + Window + + + + 0 + 0 + 400 + 300 + + + + Form + + + + + 90 + 180 + 94 + 24 + + + + PushButton + + + + + + diff --git a/Tests/QtAutogen/complex/codeeditor.cpp b/Tests/QtAutogen/complex/codeeditor.cpp new file mode 100644 index 0000000..0caf8a7 --- /dev/null +++ b/Tests/QtAutogen/complex/codeeditor.cpp @@ -0,0 +1,146 @@ +/**************************************************************************** + ** + ** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). + ** All rights reserved. + ** Contact: Nokia Corporation (qt-info@nokia.com) + ** + ** This file is part of the examples of the Qt Toolkit. + ** + ** $QT_BEGIN_LICENSE:BSD$ + ** You may use this file under the terms of the BSD license as follows: + ** + ** "Redistribution and use in source and binary forms, with or without + ** modification, are permitted provided that the following conditions are + ** met: + ** * Redistributions of source code must retain the above copyright + ** notice, this list of conditions and the following disclaimer. + ** * Redistributions in binary form must reproduce the above copyright + ** notice, this list of conditions and the following disclaimer in + ** the documentation and/or other materials provided with the + ** distribution. + ** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor + ** the names of its contributors may be used to endorse or promote + ** products derived from this software without specific prior written + ** permission. + ** + ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." + ** $QT_END_LICENSE$ + ** + ****************************************************************************/ + +#include + +#include "codeeditor.h" + +CodeEditor::CodeEditor(QWidget* parent) + : QPlainTextEdit(parent) +{ + lineNumberArea = new LineNumberArea(this); + + connect(this, SIGNAL(blockCountChanged(int)), this, + SLOT(updateLineNumberAreaWidth(int))); + connect(this, SIGNAL(updateRequest(QRect, int)), this, + SLOT(updateLineNumberArea(QRect, int))); + connect(this, SIGNAL(cursorPositionChanged()), this, + SLOT(highlightCurrentLine())); + + updateLineNumberAreaWidth(0); + highlightCurrentLine(); +} + +int CodeEditor::lineNumberAreaWidth() +{ + int digits = 1; + int max = qMax(1, blockCount()); + while (max >= 10) { + max /= 10; + ++digits; + } + + int space = 3 + fontMetrics().width(QLatin1Char('9')) * digits; + + return space; +} + +void CodeEditor::updateLineNumberAreaWidth(int /* newBlockCount */) +{ + setViewportMargins(lineNumberAreaWidth(), 0, 0, 0); +} + +void CodeEditor::updateLineNumberArea(const QRect& rect, int dy) +{ + if (dy) + lineNumberArea->scroll(0, dy); + else + lineNumberArea->update(0, rect.y(), lineNumberArea->width(), + rect.height()); + + if (rect.contains(viewport()->rect())) + updateLineNumberAreaWidth(0); +} + +void CodeEditor::resizeEvent(QResizeEvent* e) +{ + QPlainTextEdit::resizeEvent(e); + + QRect cr = contentsRect(); + lineNumberArea->setGeometry( + QRect(cr.left(), cr.top(), lineNumberAreaWidth(), cr.height())); +} + +void CodeEditor::highlightCurrentLine() +{ + QList extraSelections; + + if (!isReadOnly()) { + QTextEdit::ExtraSelection selection; + + QColor lineColor = QColor(Qt::yellow).lighter(160); + + selection.format.setBackground(lineColor); + selection.format.setProperty(QTextFormat::FullWidthSelection, true); + selection.cursor = textCursor(); + selection.cursor.clearSelection(); + extraSelections.append(selection); + } + + setExtraSelections(extraSelections); +} + +void CodeEditor::lineNumberAreaPaintEvent(QPaintEvent* event) +{ + QPainter painter(lineNumberArea); + painter.fillRect(event->rect(), Qt::lightGray); + + QTextBlock block = firstVisibleBlock(); + int blockNumber = block.blockNumber(); + int top = + (int)blockBoundingGeometry(block).translated(contentOffset()).top(); + int bottom = top + (int)blockBoundingRect(block).height(); + + while (block.isValid() && top <= event->rect().bottom()) { + if (block.isVisible() && bottom >= event->rect().top()) { + QString number = QString::number(blockNumber + 1); + painter.setPen(Qt::black); + painter.drawText(0, top, lineNumberArea->width(), fontMetrics().height(), + Qt::AlignRight, number); + } + + block = block.next(); + top = bottom; + bottom = top + (int)blockBoundingRect(block).height(); + ++blockNumber; + } +} + +#include "codeeditor.moc" diff --git a/Tests/QtAutogen/complex/codeeditor.h b/Tests/QtAutogen/complex/codeeditor.h new file mode 100644 index 0000000..b410bd4 --- /dev/null +++ b/Tests/QtAutogen/complex/codeeditor.h @@ -0,0 +1,100 @@ +/**************************************************************************** +** +** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the examples of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** You may use this file under the terms of the BSD license as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor +** the names of its contributors may be used to endorse or promote +** products derived from this software without specific prior written +** permission. +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef CODEEDITOR_H +#define CODEEDITOR_H + +#include +#include + +class QPaintEvent; +class QResizeEvent; +class QSize; +class QWidget; + +class LineNumberArea; + +class CodeEditor : public QPlainTextEdit +{ + Q_OBJECT + +public: + CodeEditor(QWidget* parent = 0); + + void lineNumberAreaPaintEvent(QPaintEvent* event); + int lineNumberAreaWidth(); + +protected: + void resizeEvent(QResizeEvent* event); + +private slots: + void updateLineNumberAreaWidth(int newBlockCount); + void highlightCurrentLine(); + void updateLineNumberArea(const QRect&, int); + +private: + QWidget* lineNumberArea; +}; + +class LineNumberArea : public QWidget +{ +public: + LineNumberArea(CodeEditor* editor) + : QWidget(editor) + { + codeEditor = editor; + } + + QSize sizeHint() const + { + return QSize(codeEditor->lineNumberAreaWidth(), 0); + } + +protected: + void paintEvent(QPaintEvent* event) + { + codeEditor->lineNumberAreaPaintEvent(event); + } + +private: + CodeEditor* codeEditor; +}; + +#endif diff --git a/Tests/QtAutogen/complex/debug_class.cpp b/Tests/QtAutogen/complex/debug_class.cpp new file mode 100644 index 0000000..46b09e7 --- /dev/null +++ b/Tests/QtAutogen/complex/debug_class.cpp @@ -0,0 +1,10 @@ + +#include "debug_class.h" +#include "ui_debug_class.h" + +DebugClass::DebugClass(QWidget* parent) + : QWidget(parent) + , ui(new Ui::DebugClass) +{ + ui->setupUi(this); +} diff --git a/Tests/QtAutogen/complex/debug_class.h b/Tests/QtAutogen/complex/debug_class.h new file mode 100644 index 0000000..c02f0ed --- /dev/null +++ b/Tests/QtAutogen/complex/debug_class.h @@ -0,0 +1,19 @@ + +#include + +namespace Ui { +class DebugClass; +} + +class DebugClass : public QWidget +{ + Q_OBJECT +public: + explicit DebugClass(QWidget* parent = 0); + +signals: + void someSignal(); + +private: + Ui::DebugClass* ui; +}; diff --git a/Tests/QtAutogen/complex/debug_class.ui b/Tests/QtAutogen/complex/debug_class.ui new file mode 100644 index 0000000..dc2e1ac --- /dev/null +++ b/Tests/QtAutogen/complex/debug_class.ui @@ -0,0 +1,45 @@ + + + DebugClass + + + + 0 + 0 + 400 + 300 + + + + DebugClass + + + + + 50 + 20 + 82 + 21 + + + + CheckBox + + + + + + 40 + 70 + 94 + 24 + + + + PushButton + + + + + + diff --git a/Tests/QtAutogen/complex/debug_resource.qrc b/Tests/QtAutogen/complex/debug_resource.qrc new file mode 100644 index 0000000..db98b9b --- /dev/null +++ b/Tests/QtAutogen/complex/debug_resource.qrc @@ -0,0 +1,5 @@ + + + debug_class.ui + + diff --git a/Tests/QtAutogen/complex/foo.cpp b/Tests/QtAutogen/complex/foo.cpp new file mode 100644 index 0000000..f665eee --- /dev/null +++ b/Tests/QtAutogen/complex/foo.cpp @@ -0,0 +1,30 @@ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ +#include "foo.h" + +#include + +class FooFoo : public QObject +{ + Q_OBJECT +public: + FooFoo() + : QObject() + { + } +public slots: + int getValue() const { return 12; } +}; + +Foo::Foo() + : QObject() +{ +} + +void Foo::doFoo() +{ + FooFoo ff; + printf("Hello automoc: %d\n", ff.getValue()); +} + +#include "foo.moc" diff --git a/Tests/QtAutogen/complex/foo.h b/Tests/QtAutogen/complex/foo.h new file mode 100644 index 0000000..3e03fe6 --- /dev/null +++ b/Tests/QtAutogen/complex/foo.h @@ -0,0 +1,20 @@ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ +#ifndef FOO_H +#define FOO_H + +#include + +class Foo +#ifdef FOO + : public QObject +#endif +{ + Q_OBJECT +public: + Foo(); +public slots: + void doFoo(); +}; + +#endif diff --git a/Tests/QtAutogen/complex/gadget.cpp b/Tests/QtAutogen/complex/gadget.cpp new file mode 100644 index 0000000..23d95fa --- /dev/null +++ b/Tests/QtAutogen/complex/gadget.cpp @@ -0,0 +1,4 @@ + +#include "gadget.h" + +#include "moc_gadget.cpp" diff --git a/Tests/QtAutogen/complex/gadget.h b/Tests/QtAutogen/complex/gadget.h new file mode 100644 index 0000000..3253e31 --- /dev/null +++ b/Tests/QtAutogen/complex/gadget.h @@ -0,0 +1,19 @@ + +#ifndef GADGET_H +#define GADGET_H + +#include + +class Gadget +{ + Q_GADGET + Q_ENUMS(Type) +public: + enum Type + { + Type0, + Type1 + }; +}; + +#endif diff --git a/Tests/QtAutogen/complex/generated.cpp b/Tests/QtAutogen/complex/generated.cpp new file mode 100644 index 0000000..d514c61 --- /dev/null +++ b/Tests/QtAutogen/complex/generated.cpp @@ -0,0 +1,9 @@ + +#include "generated.h" + +Generated::Generated(QObject* parent) + : QObject(parent) +{ +} + +#include "moc_generated.cpp" diff --git a/Tests/QtAutogen/complex/generated.h b/Tests/QtAutogen/complex/generated.h new file mode 100644 index 0000000..62e1607 --- /dev/null +++ b/Tests/QtAutogen/complex/generated.h @@ -0,0 +1,18 @@ + +#ifndef GENERATED_H +#define GENERATED_H + +#include + +#include "myinterface.h" +#include "myotherinterface.h" + +class Generated : public QObject, MyInterface, MyOtherInterface +{ + Q_OBJECT + Q_INTERFACES(MyInterface MyOtherInterface) +public: + explicit Generated(QObject* parent = 0); +}; + +#endif diff --git a/Tests/QtAutogen/complex/generated.txt.in b/Tests/QtAutogen/complex/generated.txt.in new file mode 100644 index 0000000..77507bb --- /dev/null +++ b/Tests/QtAutogen/complex/generated.txt.in @@ -0,0 +1 @@ +Some generated text file. diff --git a/Tests/QtAutogen/complex/generated_resource.qrc.in b/Tests/QtAutogen/complex/generated_resource.qrc.in new file mode 100644 index 0000000..da5fa62 --- /dev/null +++ b/Tests/QtAutogen/complex/generated_resource.qrc.in @@ -0,0 +1,5 @@ + + + generated.txt + + diff --git a/Tests/QtAutogen/complex/libC.cpp b/Tests/QtAutogen/complex/libC.cpp new file mode 100644 index 0000000..a3acff1 --- /dev/null +++ b/Tests/QtAutogen/complex/libC.cpp @@ -0,0 +1,12 @@ + +#include "libC.h" + +LibC::LibC(QObject* parent) + : QObject(parent) +{ +} + +int LibC::foo() +{ + return b.foo(); +} diff --git a/Tests/QtAutogen/complex/libC.h b/Tests/QtAutogen/complex/libC.h new file mode 100644 index 0000000..3bc2bad --- /dev/null +++ b/Tests/QtAutogen/complex/libC.h @@ -0,0 +1,22 @@ + +#ifndef LIBC_H +#define LIBC_H + +#include "libc_export.h" + +#include "libB.h" +#include + +class LIBC_EXPORT LibC : public QObject +{ + Q_OBJECT +public: + explicit LibC(QObject* parent = 0); + + int foo(); + +private: + LibB b; +}; + +#endif diff --git a/Tests/QtAutogen/complex/main.cpp b/Tests/QtAutogen/complex/main.cpp new file mode 100644 index 0000000..d557c70 --- /dev/null +++ b/Tests/QtAutogen/complex/main.cpp @@ -0,0 +1,93 @@ +/**************************************************************************** + ** + ** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). + ** All rights reserved. + ** Contact: Nokia Corporation (qt-info@nokia.com) + ** + ** This file is part of the examples of the Qt Toolkit. + ** + ** $QT_BEGIN_LICENSE:BSD$ + ** You may use this file under the terms of the BSD license as follows: + ** + ** "Redistribution and use in source and binary forms, with or without + ** modification, are permitted provided that the following conditions are + ** met: + ** * Redistributions of source code must retain the above copyright + ** notice, this list of conditions and the following disclaimer. + ** * Redistributions in binary form must reproduce the above copyright + ** notice, this list of conditions and the following disclaimer in + ** the documentation and/or other materials provided with the + ** distribution. + ** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor + ** the names of its contributors may be used to endorse or promote + ** products derived from this software without specific prior written + ** permission. + ** + ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." + ** $QT_END_LICENSE$ + ** + ****************************************************************************/ + +#include +#include + +#include "abc.h" +#include "blub.h" +#include "calwidget.h" +#include "codeeditor.h" +#include "foo.h" +#include "libC.h" +#include "resourcetester.h" +#include "sub/bar.h" +#include "xyz.h" +#include "yaf.h" +#ifdef TEST_DEBUG_CLASS +#include "debug_class.h" +#include +#endif + +int main(int argv, char** args) +{ + QCoreApplication app(argv, args); + + Foo foo; + foo.doFoo(); + + Blub b; + b.blubber(); + + Bar bar; + bar.doBar(); + + Abc abc; + abc.doAbc(); + + Xyz xyz; + xyz.doXyz(); + + Yaf yaf; + yaf.doYaf(); + + LibC lc; + lc.foo(); + + ResourceTester rt; + + QTimer::singleShot(0, &rt, SLOT(doTest())); + +#ifdef TEST_DEBUG_CLASS + std::cout << DebugClass::staticMetaObject.className() << std::endl; +#endif + + return app.exec(); +} diff --git a/Tests/QtAutogen/complex/multiplewidgets.cpp b/Tests/QtAutogen/complex/multiplewidgets.cpp new file mode 100644 index 0000000..fda36ea --- /dev/null +++ b/Tests/QtAutogen/complex/multiplewidgets.cpp @@ -0,0 +1,19 @@ + +#include "multiplewidgets.h" + +#include "ui_widget1.h" +#include "ui_widget2.h" + +Widget1::Widget1(QWidget* parent) + : QWidget(parent) + , ui(new Ui::Widget1) +{ + ui->setupUi(this); +} + +Widget2::Widget2(QWidget* parent) + : QWidget(parent) + , ui(new Ui::Widget2) +{ + ui->setupUi(this); +} diff --git a/Tests/QtAutogen/complex/multiplewidgets.h b/Tests/QtAutogen/complex/multiplewidgets.h new file mode 100644 index 0000000..a4d0a50 --- /dev/null +++ b/Tests/QtAutogen/complex/multiplewidgets.h @@ -0,0 +1,35 @@ + +#ifndef MULTIPLEWIDGETS_H +#define MULTIPLEWIDGETS_H + +#include + +namespace Ui { +class Widget1; +} + +class Widget1 : public QWidget +{ + Q_OBJECT +public: + Widget1(QWidget* parent = 0); + +private: + Ui::Widget1* ui; +}; + +namespace Ui { +class Widget2; +} + +class Widget2 : public QWidget +{ + Q_OBJECT +public: + Widget2(QWidget* parent = 0); + +private: + Ui::Widget2* ui; +}; + +#endif diff --git a/Tests/QtAutogen/complex/myinterface.h.in b/Tests/QtAutogen/complex/myinterface.h.in new file mode 100644 index 0000000..c6c0ba1 --- /dev/null +++ b/Tests/QtAutogen/complex/myinterface.h.in @@ -0,0 +1,14 @@ + +#ifndef MYINTERFACE_H +#define MYINTERFACE_H + +#include + +class MyInterface +{ + +}; + +Q_DECLARE_INTERFACE(MyInterface, "org.cmake.example.MyInterface") + +#endif diff --git a/Tests/QtAutogen/complex/myotherinterface.h.in b/Tests/QtAutogen/complex/myotherinterface.h.in new file mode 100644 index 0000000..d21e7af --- /dev/null +++ b/Tests/QtAutogen/complex/myotherinterface.h.in @@ -0,0 +1,14 @@ + +#ifndef MYOTHERINTERFACE_H +#define MYOTHERINTERFACE_H + +#include + +class MyOtherInterface +{ + +}; + +Q_DECLARE_INTERFACE(MyOtherInterface, "org.cmake.example.MyOtherInterface") + +#endif diff --git a/Tests/QtAutogen/complex/private_slot.cpp b/Tests/QtAutogen/complex/private_slot.cpp new file mode 100644 index 0000000..ab1682a --- /dev/null +++ b/Tests/QtAutogen/complex/private_slot.cpp @@ -0,0 +1,16 @@ + +#include "private_slot.h" + +class PrivateSlotPrivate +{ +public: + void privateSlot() {} +}; + +PrivateSlot::PrivateSlot(QObject* parent) + : QObject(parent) + , d(new PrivateSlotPrivate) +{ +} + +#include "private_slot.moc" diff --git a/Tests/QtAutogen/complex/private_slot.h b/Tests/QtAutogen/complex/private_slot.h new file mode 100644 index 0000000..8041eb2 --- /dev/null +++ b/Tests/QtAutogen/complex/private_slot.h @@ -0,0 +1,20 @@ + +#ifndef PRIVATE_SLOT_H +#define PRIVATE_SLOT_H + +#include + +class PrivateSlotPrivate; + +class PrivateSlot : public QObject +{ + Q_OBJECT +public: + PrivateSlot(QObject* parent = 0); + +private: + PrivateSlotPrivate* const d; + Q_PRIVATE_SLOT(d, void privateSlot()) +}; + +#endif diff --git a/Tests/QtAutogen/complex/resourcetester.cpp b/Tests/QtAutogen/complex/resourcetester.cpp new file mode 100644 index 0000000..4ecb6b4 --- /dev/null +++ b/Tests/QtAutogen/complex/resourcetester.cpp @@ -0,0 +1,26 @@ + +#include "resourcetester.h" + +#include +#include +#include +#include + +ResourceTester::ResourceTester(QObject* parent) + : QObject(parent) +{ +} + +void ResourceTester::doTest() +{ + if (!QFile::exists(":/CMakeLists.txt")) + qApp->exit(EXIT_FAILURE); + if (!QFile::exists(":/main.cpp")) + qApp->exit(EXIT_FAILURE); +#ifdef TEST_DEBUG_CLASS + if (!QFile::exists(":/debug_class.ui")) + qApp->exit(EXIT_FAILURE); +#endif + + QTimer::singleShot(0, qApp, SLOT(quit())); +} diff --git a/Tests/QtAutogen/complex/resourcetester.h b/Tests/QtAutogen/complex/resourcetester.h new file mode 100644 index 0000000..dbdb3ad --- /dev/null +++ b/Tests/QtAutogen/complex/resourcetester.h @@ -0,0 +1,17 @@ + +#ifndef RESOURCE_TESTER_H +#define RESOURCE_TESTER_H + +#include + +class ResourceTester : public QObject +{ + Q_OBJECT +public: + explicit ResourceTester(QObject* parent = 0); + +private slots: + void doTest(); +}; + +#endif diff --git a/Tests/QtAutogen/complex/second_resource.qrc b/Tests/QtAutogen/complex/second_resource.qrc new file mode 100644 index 0000000..27bfb14 --- /dev/null +++ b/Tests/QtAutogen/complex/second_resource.qrc @@ -0,0 +1,5 @@ + + + main.cpp + + diff --git a/Tests/QtAutogen/complex/second_widget.cpp b/Tests/QtAutogen/complex/second_widget.cpp new file mode 100644 index 0000000..c575f10 --- /dev/null +++ b/Tests/QtAutogen/complex/second_widget.cpp @@ -0,0 +1,15 @@ + +#include "second_widget.h" +#include "ui_second_widget.h" + +SecondWidget::SecondWidget(QWidget* parent) + : QWidget(parent) + , ui(new Ui::SecondWidget) +{ + ui->setupUi(this); +} + +SecondWidget::~SecondWidget() +{ + delete ui; +} diff --git a/Tests/QtAutogen/complex/second_widget.h b/Tests/QtAutogen/complex/second_widget.h new file mode 100644 index 0000000..c7929c4 --- /dev/null +++ b/Tests/QtAutogen/complex/second_widget.h @@ -0,0 +1,18 @@ + +#include + +namespace Ui { +class SecondWidget; +} + +class SecondWidget : public QWidget +{ + Q_OBJECT +public: + explicit SecondWidget(QWidget* parent = 0); + + ~SecondWidget(); + +private: + Ui::SecondWidget* ui; +}; diff --git a/Tests/QtAutogen/complex/second_widget.ui b/Tests/QtAutogen/complex/second_widget.ui new file mode 100644 index 0000000..4effa58 --- /dev/null +++ b/Tests/QtAutogen/complex/second_widget.ui @@ -0,0 +1,32 @@ + + + SecondWidget + + + + 0 + 0 + 400 + 300 + + + + Form + + + + + 80 + 20 + 94 + 24 + + + + PushButton + + + + + + diff --git a/Tests/QtAutogen/complex/sub/bar.h b/Tests/QtAutogen/complex/sub/bar.h new file mode 100644 index 0000000..e4093f6 --- /dev/null +++ b/Tests/QtAutogen/complex/sub/bar.h @@ -0,0 +1,17 @@ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ +#ifndef BAR_H +#define BAR_H + +#include + +class Bar : public QObject +{ + Q_OBJECT +public: + Bar(); +public slots: + void doBar(); +}; + +#endif diff --git a/Tests/QtAutogen/complex/targetObjectsTest.cpp b/Tests/QtAutogen/complex/targetObjectsTest.cpp new file mode 100644 index 0000000..766b775 --- /dev/null +++ b/Tests/QtAutogen/complex/targetObjectsTest.cpp @@ -0,0 +1,5 @@ + +int main() +{ + return 0; +} diff --git a/Tests/QtAutogen/complex/test.qrc b/Tests/QtAutogen/complex/test.qrc new file mode 100644 index 0000000..c3d4e3c --- /dev/null +++ b/Tests/QtAutogen/complex/test.qrc @@ -0,0 +1,5 @@ + + + CMakeLists.txt + + diff --git a/Tests/QtAutogen/complex/widget1.ui b/Tests/QtAutogen/complex/widget1.ui new file mode 100644 index 0000000..8fce81a --- /dev/null +++ b/Tests/QtAutogen/complex/widget1.ui @@ -0,0 +1,45 @@ + + + Widget1 + + + + 0 + 0 + 400 + 300 + + + + Form + + + + + 140 + 80 + 80 + 23 + + + + PushButton + + + + + + 190 + 170 + 80 + 23 + + + + PushButton + + + + + + diff --git a/Tests/QtAutogen/complex/widget2.ui b/Tests/QtAutogen/complex/widget2.ui new file mode 100644 index 0000000..1f411b9 --- /dev/null +++ b/Tests/QtAutogen/complex/widget2.ui @@ -0,0 +1,29 @@ + + + Widget2 + + + + 0 + 0 + 400 + 300 + + + + Form + + + + + 20 + 20 + 256 + 192 + + + + + + + diff --git a/Tests/QtAutogen/complex/xyz.cpp b/Tests/QtAutogen/complex/xyz.cpp new file mode 100644 index 0000000..e46c9d3 --- /dev/null +++ b/Tests/QtAutogen/complex/xyz.cpp @@ -0,0 +1,15 @@ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ +#include "xyz.h" + +#include + +Xyz::Xyz() + : QObject() +{ +} + +void Xyz::doXyz() +{ + printf("This is xyz !\n"); +} diff --git a/Tests/QtAutogen/complex/xyz.h b/Tests/QtAutogen/complex/xyz.h new file mode 100644 index 0000000..8b813fd --- /dev/null +++ b/Tests/QtAutogen/complex/xyz.h @@ -0,0 +1,17 @@ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ +#ifndef XYZ_H +#define XYZ_H + +#include + +class Xyz : public QObject +{ + Q_OBJECT +public: + Xyz(); +public slots: + void doXyz(); +}; + +#endif diff --git a/Tests/QtAutogen/complex/yaf.cpp b/Tests/QtAutogen/complex/yaf.cpp new file mode 100644 index 0000000..70e26aa --- /dev/null +++ b/Tests/QtAutogen/complex/yaf.cpp @@ -0,0 +1,19 @@ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ +#include "yaf.h" +#include "yaf_p.h" + +#include + +Yaf::Yaf() +{ +} + +void Yaf::doYaf() +{ + YafP yafP; + yafP.doYafP(); +} + +// check that including a moc file from a private header the wrong way works: +#include "yaf_p.moc" diff --git a/Tests/QtAutogen/complex/yaf.h b/Tests/QtAutogen/complex/yaf.h new file mode 100644 index 0000000..f271061 --- /dev/null +++ b/Tests/QtAutogen/complex/yaf.h @@ -0,0 +1,15 @@ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ +#ifndef YAF_H +#define YAF_H + +class Yaf +{ +public: + Yaf(); + +public: + void doYaf(); +}; + +#endif diff --git a/Tests/QtAutogen/complex/yaf_p.h b/Tests/QtAutogen/complex/yaf_p.h new file mode 100644 index 0000000..ea5eed6 --- /dev/null +++ b/Tests/QtAutogen/complex/yaf_p.h @@ -0,0 +1,19 @@ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ +#ifndef YAF_P_H +#define YAF_P_H + +#include + +#include + +class YafP : public QObject +{ + Q_OBJECT +public: + YafP() {} +public slots: + void doYafP() { printf("I am yet another file !\n"); } +}; + +#endif diff --git a/Tests/QtAutogen/debug_class.cpp b/Tests/QtAutogen/debug_class.cpp deleted file mode 100644 index 46b09e7..0000000 --- a/Tests/QtAutogen/debug_class.cpp +++ /dev/null @@ -1,10 +0,0 @@ - -#include "debug_class.h" -#include "ui_debug_class.h" - -DebugClass::DebugClass(QWidget* parent) - : QWidget(parent) - , ui(new Ui::DebugClass) -{ - ui->setupUi(this); -} diff --git a/Tests/QtAutogen/debug_class.h b/Tests/QtAutogen/debug_class.h deleted file mode 100644 index c02f0ed..0000000 --- a/Tests/QtAutogen/debug_class.h +++ /dev/null @@ -1,19 +0,0 @@ - -#include - -namespace Ui { -class DebugClass; -} - -class DebugClass : public QWidget -{ - Q_OBJECT -public: - explicit DebugClass(QWidget* parent = 0); - -signals: - void someSignal(); - -private: - Ui::DebugClass* ui; -}; diff --git a/Tests/QtAutogen/debug_class.ui b/Tests/QtAutogen/debug_class.ui deleted file mode 100644 index dc2e1ac..0000000 --- a/Tests/QtAutogen/debug_class.ui +++ /dev/null @@ -1,45 +0,0 @@ - - - DebugClass - - - - 0 - 0 - 400 - 300 - - - - DebugClass - - - - - 50 - 20 - 82 - 21 - - - - CheckBox - - - - - - 40 - 70 - 94 - 24 - - - - PushButton - - - - - - diff --git a/Tests/QtAutogen/debug_resource.qrc b/Tests/QtAutogen/debug_resource.qrc deleted file mode 100644 index db98b9b..0000000 --- a/Tests/QtAutogen/debug_resource.qrc +++ /dev/null @@ -1,5 +0,0 @@ - - - debug_class.ui - - diff --git a/Tests/QtAutogen/foo.cpp b/Tests/QtAutogen/foo.cpp deleted file mode 100644 index f665eee..0000000 --- a/Tests/QtAutogen/foo.cpp +++ /dev/null @@ -1,30 +0,0 @@ -/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying - file Copyright.txt or https://cmake.org/licensing for details. */ -#include "foo.h" - -#include - -class FooFoo : public QObject -{ - Q_OBJECT -public: - FooFoo() - : QObject() - { - } -public slots: - int getValue() const { return 12; } -}; - -Foo::Foo() - : QObject() -{ -} - -void Foo::doFoo() -{ - FooFoo ff; - printf("Hello automoc: %d\n", ff.getValue()); -} - -#include "foo.moc" diff --git a/Tests/QtAutogen/foo.h b/Tests/QtAutogen/foo.h deleted file mode 100644 index 3e03fe6..0000000 --- a/Tests/QtAutogen/foo.h +++ /dev/null @@ -1,20 +0,0 @@ -/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying - file Copyright.txt or https://cmake.org/licensing for details. */ -#ifndef FOO_H -#define FOO_H - -#include - -class Foo -#ifdef FOO - : public QObject -#endif -{ - Q_OBJECT -public: - Foo(); -public slots: - void doFoo(); -}; - -#endif diff --git a/Tests/QtAutogen/gadget.cpp b/Tests/QtAutogen/gadget.cpp deleted file mode 100644 index 23d95fa..0000000 --- a/Tests/QtAutogen/gadget.cpp +++ /dev/null @@ -1,4 +0,0 @@ - -#include "gadget.h" - -#include "moc_gadget.cpp" diff --git a/Tests/QtAutogen/gadget.h b/Tests/QtAutogen/gadget.h deleted file mode 100644 index 3253e31..0000000 --- a/Tests/QtAutogen/gadget.h +++ /dev/null @@ -1,19 +0,0 @@ - -#ifndef GADGET_H -#define GADGET_H - -#include - -class Gadget -{ - Q_GADGET - Q_ENUMS(Type) -public: - enum Type - { - Type0, - Type1 - }; -}; - -#endif diff --git a/Tests/QtAutogen/generated.cpp b/Tests/QtAutogen/generated.cpp deleted file mode 100644 index d514c61..0000000 --- a/Tests/QtAutogen/generated.cpp +++ /dev/null @@ -1,9 +0,0 @@ - -#include "generated.h" - -Generated::Generated(QObject* parent) - : QObject(parent) -{ -} - -#include "moc_generated.cpp" diff --git a/Tests/QtAutogen/generated.h b/Tests/QtAutogen/generated.h deleted file mode 100644 index 62e1607..0000000 --- a/Tests/QtAutogen/generated.h +++ /dev/null @@ -1,18 +0,0 @@ - -#ifndef GENERATED_H -#define GENERATED_H - -#include - -#include "myinterface.h" -#include "myotherinterface.h" - -class Generated : public QObject, MyInterface, MyOtherInterface -{ - Q_OBJECT - Q_INTERFACES(MyInterface MyOtherInterface) -public: - explicit Generated(QObject* parent = 0); -}; - -#endif diff --git a/Tests/QtAutogen/generated.txt.in b/Tests/QtAutogen/generated.txt.in deleted file mode 100644 index 77507bb..0000000 --- a/Tests/QtAutogen/generated.txt.in +++ /dev/null @@ -1 +0,0 @@ -Some generated text file. diff --git a/Tests/QtAutogen/generated_resource.qrc.in b/Tests/QtAutogen/generated_resource.qrc.in deleted file mode 100644 index da5fa62..0000000 --- a/Tests/QtAutogen/generated_resource.qrc.in +++ /dev/null @@ -1,5 +0,0 @@ - - - generated.txt - - diff --git a/Tests/QtAutogen/libC.cpp b/Tests/QtAutogen/libC.cpp deleted file mode 100644 index a3acff1..0000000 --- a/Tests/QtAutogen/libC.cpp +++ /dev/null @@ -1,12 +0,0 @@ - -#include "libC.h" - -LibC::LibC(QObject* parent) - : QObject(parent) -{ -} - -int LibC::foo() -{ - return b.foo(); -} diff --git a/Tests/QtAutogen/libC.h b/Tests/QtAutogen/libC.h deleted file mode 100644 index 3bc2bad..0000000 --- a/Tests/QtAutogen/libC.h +++ /dev/null @@ -1,22 +0,0 @@ - -#ifndef LIBC_H -#define LIBC_H - -#include "libc_export.h" - -#include "libB.h" -#include - -class LIBC_EXPORT LibC : public QObject -{ - Q_OBJECT -public: - explicit LibC(QObject* parent = 0); - - int foo(); - -private: - LibB b; -}; - -#endif diff --git a/Tests/QtAutogen/main.cpp b/Tests/QtAutogen/main.cpp deleted file mode 100644 index d557c70..0000000 --- a/Tests/QtAutogen/main.cpp +++ /dev/null @@ -1,93 +0,0 @@ -/**************************************************************************** - ** - ** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). - ** All rights reserved. - ** Contact: Nokia Corporation (qt-info@nokia.com) - ** - ** This file is part of the examples of the Qt Toolkit. - ** - ** $QT_BEGIN_LICENSE:BSD$ - ** You may use this file under the terms of the BSD license as follows: - ** - ** "Redistribution and use in source and binary forms, with or without - ** modification, are permitted provided that the following conditions are - ** met: - ** * Redistributions of source code must retain the above copyright - ** notice, this list of conditions and the following disclaimer. - ** * Redistributions in binary form must reproduce the above copyright - ** notice, this list of conditions and the following disclaimer in - ** the documentation and/or other materials provided with the - ** distribution. - ** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor - ** the names of its contributors may be used to endorse or promote - ** products derived from this software without specific prior written - ** permission. - ** - ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." - ** $QT_END_LICENSE$ - ** - ****************************************************************************/ - -#include -#include - -#include "abc.h" -#include "blub.h" -#include "calwidget.h" -#include "codeeditor.h" -#include "foo.h" -#include "libC.h" -#include "resourcetester.h" -#include "sub/bar.h" -#include "xyz.h" -#include "yaf.h" -#ifdef TEST_DEBUG_CLASS -#include "debug_class.h" -#include -#endif - -int main(int argv, char** args) -{ - QCoreApplication app(argv, args); - - Foo foo; - foo.doFoo(); - - Blub b; - b.blubber(); - - Bar bar; - bar.doBar(); - - Abc abc; - abc.doAbc(); - - Xyz xyz; - xyz.doXyz(); - - Yaf yaf; - yaf.doYaf(); - - LibC lc; - lc.foo(); - - ResourceTester rt; - - QTimer::singleShot(0, &rt, SLOT(doTest())); - -#ifdef TEST_DEBUG_CLASS - std::cout << DebugClass::staticMetaObject.className() << std::endl; -#endif - - return app.exec(); -} diff --git a/Tests/QtAutogen/multiplewidgets.cpp b/Tests/QtAutogen/multiplewidgets.cpp deleted file mode 100644 index fda36ea..0000000 --- a/Tests/QtAutogen/multiplewidgets.cpp +++ /dev/null @@ -1,19 +0,0 @@ - -#include "multiplewidgets.h" - -#include "ui_widget1.h" -#include "ui_widget2.h" - -Widget1::Widget1(QWidget* parent) - : QWidget(parent) - , ui(new Ui::Widget1) -{ - ui->setupUi(this); -} - -Widget2::Widget2(QWidget* parent) - : QWidget(parent) - , ui(new Ui::Widget2) -{ - ui->setupUi(this); -} diff --git a/Tests/QtAutogen/multiplewidgets.h b/Tests/QtAutogen/multiplewidgets.h deleted file mode 100644 index a4d0a50..0000000 --- a/Tests/QtAutogen/multiplewidgets.h +++ /dev/null @@ -1,35 +0,0 @@ - -#ifndef MULTIPLEWIDGETS_H -#define MULTIPLEWIDGETS_H - -#include - -namespace Ui { -class Widget1; -} - -class Widget1 : public QWidget -{ - Q_OBJECT -public: - Widget1(QWidget* parent = 0); - -private: - Ui::Widget1* ui; -}; - -namespace Ui { -class Widget2; -} - -class Widget2 : public QWidget -{ - Q_OBJECT -public: - Widget2(QWidget* parent = 0); - -private: - Ui::Widget2* ui; -}; - -#endif diff --git a/Tests/QtAutogen/myinterface.h.in b/Tests/QtAutogen/myinterface.h.in deleted file mode 100644 index c6c0ba1..0000000 --- a/Tests/QtAutogen/myinterface.h.in +++ /dev/null @@ -1,14 +0,0 @@ - -#ifndef MYINTERFACE_H -#define MYINTERFACE_H - -#include - -class MyInterface -{ - -}; - -Q_DECLARE_INTERFACE(MyInterface, "org.cmake.example.MyInterface") - -#endif diff --git a/Tests/QtAutogen/myotherinterface.h.in b/Tests/QtAutogen/myotherinterface.h.in deleted file mode 100644 index d21e7af..0000000 --- a/Tests/QtAutogen/myotherinterface.h.in +++ /dev/null @@ -1,14 +0,0 @@ - -#ifndef MYOTHERINTERFACE_H -#define MYOTHERINTERFACE_H - -#include - -class MyOtherInterface -{ - -}; - -Q_DECLARE_INTERFACE(MyOtherInterface, "org.cmake.example.MyOtherInterface") - -#endif diff --git a/Tests/QtAutogen/private_slot.cpp b/Tests/QtAutogen/private_slot.cpp deleted file mode 100644 index ab1682a..0000000 --- a/Tests/QtAutogen/private_slot.cpp +++ /dev/null @@ -1,16 +0,0 @@ - -#include "private_slot.h" - -class PrivateSlotPrivate -{ -public: - void privateSlot() {} -}; - -PrivateSlot::PrivateSlot(QObject* parent) - : QObject(parent) - , d(new PrivateSlotPrivate) -{ -} - -#include "private_slot.moc" diff --git a/Tests/QtAutogen/private_slot.h b/Tests/QtAutogen/private_slot.h deleted file mode 100644 index 8041eb2..0000000 --- a/Tests/QtAutogen/private_slot.h +++ /dev/null @@ -1,20 +0,0 @@ - -#ifndef PRIVATE_SLOT_H -#define PRIVATE_SLOT_H - -#include - -class PrivateSlotPrivate; - -class PrivateSlot : public QObject -{ - Q_OBJECT -public: - PrivateSlot(QObject* parent = 0); - -private: - PrivateSlotPrivate* const d; - Q_PRIVATE_SLOT(d, void privateSlot()) -}; - -#endif diff --git a/Tests/QtAutogen/resourcetester.cpp b/Tests/QtAutogen/resourcetester.cpp deleted file mode 100644 index 4ecb6b4..0000000 --- a/Tests/QtAutogen/resourcetester.cpp +++ /dev/null @@ -1,26 +0,0 @@ - -#include "resourcetester.h" - -#include -#include -#include -#include - -ResourceTester::ResourceTester(QObject* parent) - : QObject(parent) -{ -} - -void ResourceTester::doTest() -{ - if (!QFile::exists(":/CMakeLists.txt")) - qApp->exit(EXIT_FAILURE); - if (!QFile::exists(":/main.cpp")) - qApp->exit(EXIT_FAILURE); -#ifdef TEST_DEBUG_CLASS - if (!QFile::exists(":/debug_class.ui")) - qApp->exit(EXIT_FAILURE); -#endif - - QTimer::singleShot(0, qApp, SLOT(quit())); -} diff --git a/Tests/QtAutogen/resourcetester.h b/Tests/QtAutogen/resourcetester.h deleted file mode 100644 index dbdb3ad..0000000 --- a/Tests/QtAutogen/resourcetester.h +++ /dev/null @@ -1,17 +0,0 @@ - -#ifndef RESOURCE_TESTER_H -#define RESOURCE_TESTER_H - -#include - -class ResourceTester : public QObject -{ - Q_OBJECT -public: - explicit ResourceTester(QObject* parent = 0); - -private slots: - void doTest(); -}; - -#endif diff --git a/Tests/QtAutogen/second_resource.qrc b/Tests/QtAutogen/second_resource.qrc deleted file mode 100644 index 27bfb14..0000000 --- a/Tests/QtAutogen/second_resource.qrc +++ /dev/null @@ -1,5 +0,0 @@ - - - main.cpp - - diff --git a/Tests/QtAutogen/second_widget.cpp b/Tests/QtAutogen/second_widget.cpp deleted file mode 100644 index c575f10..0000000 --- a/Tests/QtAutogen/second_widget.cpp +++ /dev/null @@ -1,15 +0,0 @@ - -#include "second_widget.h" -#include "ui_second_widget.h" - -SecondWidget::SecondWidget(QWidget* parent) - : QWidget(parent) - , ui(new Ui::SecondWidget) -{ - ui->setupUi(this); -} - -SecondWidget::~SecondWidget() -{ - delete ui; -} diff --git a/Tests/QtAutogen/second_widget.h b/Tests/QtAutogen/second_widget.h deleted file mode 100644 index c7929c4..0000000 --- a/Tests/QtAutogen/second_widget.h +++ /dev/null @@ -1,18 +0,0 @@ - -#include - -namespace Ui { -class SecondWidget; -} - -class SecondWidget : public QWidget -{ - Q_OBJECT -public: - explicit SecondWidget(QWidget* parent = 0); - - ~SecondWidget(); - -private: - Ui::SecondWidget* ui; -}; diff --git a/Tests/QtAutogen/second_widget.ui b/Tests/QtAutogen/second_widget.ui deleted file mode 100644 index 4effa58..0000000 --- a/Tests/QtAutogen/second_widget.ui +++ /dev/null @@ -1,32 +0,0 @@ - - - SecondWidget - - - - 0 - 0 - 400 - 300 - - - - Form - - - - - 80 - 20 - 94 - 24 - - - - PushButton - - - - - - diff --git a/Tests/QtAutogen/sub/bar.h b/Tests/QtAutogen/sub/bar.h deleted file mode 100644 index e4093f6..0000000 --- a/Tests/QtAutogen/sub/bar.h +++ /dev/null @@ -1,17 +0,0 @@ -/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying - file Copyright.txt or https://cmake.org/licensing for details. */ -#ifndef BAR_H -#define BAR_H - -#include - -class Bar : public QObject -{ - Q_OBJECT -public: - Bar(); -public slots: - void doBar(); -}; - -#endif diff --git a/Tests/QtAutogen/targetObjectsTest.cpp b/Tests/QtAutogen/targetObjectsTest.cpp deleted file mode 100644 index 766b775..0000000 --- a/Tests/QtAutogen/targetObjectsTest.cpp +++ /dev/null @@ -1,5 +0,0 @@ - -int main() -{ - return 0; -} diff --git a/Tests/QtAutogen/test.qrc b/Tests/QtAutogen/test.qrc deleted file mode 100644 index c3d4e3c..0000000 --- a/Tests/QtAutogen/test.qrc +++ /dev/null @@ -1,5 +0,0 @@ - - - CMakeLists.txt - - diff --git a/Tests/QtAutogen/widget1.ui b/Tests/QtAutogen/widget1.ui deleted file mode 100644 index 8fce81a..0000000 --- a/Tests/QtAutogen/widget1.ui +++ /dev/null @@ -1,45 +0,0 @@ - - - Widget1 - - - - 0 - 0 - 400 - 300 - - - - Form - - - - - 140 - 80 - 80 - 23 - - - - PushButton - - - - - - 190 - 170 - 80 - 23 - - - - PushButton - - - - - - diff --git a/Tests/QtAutogen/widget2.ui b/Tests/QtAutogen/widget2.ui deleted file mode 100644 index 1f411b9..0000000 --- a/Tests/QtAutogen/widget2.ui +++ /dev/null @@ -1,29 +0,0 @@ - - - Widget2 - - - - 0 - 0 - 400 - 300 - - - - Form - - - - - 20 - 20 - 256 - 192 - - - - - - - diff --git a/Tests/QtAutogen/xyz.cpp b/Tests/QtAutogen/xyz.cpp deleted file mode 100644 index e46c9d3..0000000 --- a/Tests/QtAutogen/xyz.cpp +++ /dev/null @@ -1,15 +0,0 @@ -/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying - file Copyright.txt or https://cmake.org/licensing for details. */ -#include "xyz.h" - -#include - -Xyz::Xyz() - : QObject() -{ -} - -void Xyz::doXyz() -{ - printf("This is xyz !\n"); -} diff --git a/Tests/QtAutogen/xyz.h b/Tests/QtAutogen/xyz.h deleted file mode 100644 index 8b813fd..0000000 --- a/Tests/QtAutogen/xyz.h +++ /dev/null @@ -1,17 +0,0 @@ -/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying - file Copyright.txt or https://cmake.org/licensing for details. */ -#ifndef XYZ_H -#define XYZ_H - -#include - -class Xyz : public QObject -{ - Q_OBJECT -public: - Xyz(); -public slots: - void doXyz(); -}; - -#endif diff --git a/Tests/QtAutogen/yaf.cpp b/Tests/QtAutogen/yaf.cpp deleted file mode 100644 index 70e26aa..0000000 --- a/Tests/QtAutogen/yaf.cpp +++ /dev/null @@ -1,19 +0,0 @@ -/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying - file Copyright.txt or https://cmake.org/licensing for details. */ -#include "yaf.h" -#include "yaf_p.h" - -#include - -Yaf::Yaf() -{ -} - -void Yaf::doYaf() -{ - YafP yafP; - yafP.doYafP(); -} - -// check that including a moc file from a private header the wrong way works: -#include "yaf_p.moc" diff --git a/Tests/QtAutogen/yaf.h b/Tests/QtAutogen/yaf.h deleted file mode 100644 index f271061..0000000 --- a/Tests/QtAutogen/yaf.h +++ /dev/null @@ -1,15 +0,0 @@ -/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying - file Copyright.txt or https://cmake.org/licensing for details. */ -#ifndef YAF_H -#define YAF_H - -class Yaf -{ -public: - Yaf(); - -public: - void doYaf(); -}; - -#endif diff --git a/Tests/QtAutogen/yaf_p.h b/Tests/QtAutogen/yaf_p.h deleted file mode 100644 index ea5eed6..0000000 --- a/Tests/QtAutogen/yaf_p.h +++ /dev/null @@ -1,19 +0,0 @@ -/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying - file Copyright.txt or https://cmake.org/licensing for details. */ -#ifndef YAF_P_H -#define YAF_P_H - -#include - -#include - -class YafP : public QObject -{ - Q_OBJECT -public: - YafP() {} -public slots: - void doYafP() { printf("I am yet another file !\n"); } -}; - -#endif -- cgit v0.12 From 6938772a114099df406bc72cbc98a3c8d57cd458 Mon Sep 17 00:00:00 2001 From: Sebastian Holtermann Date: Tue, 29 Nov 2016 18:11:01 +0100 Subject: QtAutogen tests: Pass Qt compiler features to library targets --- Tests/QtAutogen/CMakeLists.txt | 5 ++++- Tests/QtAutogen/complex/CMakeLists.txt | 3 +++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/Tests/QtAutogen/CMakeLists.txt b/Tests/QtAutogen/CMakeLists.txt index c0c20f8..c4d0567 100644 --- a/Tests/QtAutogen/CMakeLists.txt +++ b/Tests/QtAutogen/CMakeLists.txt @@ -44,6 +44,7 @@ else() endif() +get_property(QT_COMPILE_FEATURES TARGET ${QT_QTCORE_TARGET} PROPERTY INTERFACE_COMPILE_FEATURES) include_directories(${CMAKE_CURRENT_BINARY_DIR}) # -- Test: AUTORCC @@ -72,11 +73,13 @@ target_link_libraries(uicOnly ${QT_LIBRARIES}) # have an effect on generation if AUTORCC is off. add_library(empty STATIC empty.cpp not_generated_file.qrc) set_target_properties(empty PROPERTIES AUTORCC OFF) - set_target_properties(empty PROPERTIES AUTOMOC TRUE) target_link_libraries(empty no_link_language) add_library(no_link_language STATIC empty.h) set_target_properties(no_link_language PROPERTIES AUTOMOC TRUE) +# Pass Qt compiler features to targets that don't link against Qt +target_compile_features(no_link_language PRIVATE ${QT_COMPILE_FEATURES}) +target_compile_features(empty PRIVATE ${QT_COMPILE_FEATURES}) # -- Test: AUTORCC # When a file listed in a .qrc file changes the target must be rebuilt diff --git a/Tests/QtAutogen/complex/CMakeLists.txt b/Tests/QtAutogen/complex/CMakeLists.txt index d1b34c6..0d44f50 100644 --- a/Tests/QtAutogen/complex/CMakeLists.txt +++ b/Tests/QtAutogen/complex/CMakeLists.txt @@ -12,6 +12,9 @@ set(CMAKE_AUTORCC ON) # create an executable and two library targets, each requiring automoc: add_library(codeeditorLib STATIC codeeditor.cpp) add_library(privateSlot OBJECT private_slot.cpp) +# Pass Qt compiler features to targets that don't link against Qt +target_compile_features(codeeditorLib PRIVATE ${QT_COMPILE_FEATURES}) +target_compile_features(privateSlot PRIVATE ${QT_COMPILE_FEATURES}) configure_file(generated_resource.qrc.in generated_resource.qrc @ONLY) add_custom_command( -- cgit v0.12