diff --git a/.gitignore b/.gitignore index 2b8f1e51..32fba1e4 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,5 @@ CMakeLists.txt.user # nix files result* .direnv + +cmake-build-*/ diff --git a/CMakeLists.txt b/CMakeLists.txt index 54f35b1e..871d5db4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -62,6 +62,9 @@ endif() set(QATERIAL_ENABLE_INSTALL ${_default_QATERIAL_ENABLE_INSTALL} CACHE BOOL "Generate the install target") +# "d" postfix should also transitively apply to dependencies but won't affect the parent scope +set(CMAKE_DEBUG_POSTFIX "d") + project(${QATERIAL_PROJECT} VERSION ${QATERIAL_VERSION} LANGUAGES CXX) if(QATERIAL_MAIN_PROJECT) set_property(GLOBAL PROPERTY USE_FOLDERS ON) @@ -119,19 +122,6 @@ endif() include(cmake/FetchQOlm.cmake) -# ───── RESSOURCES ───── - -add_subdirectory(qml) -include(cmake/QaterialGenerateIcons.cmake) -set(QATERIAL_ICONS_OUTPUT_FOLDER "${CMAKE_CURRENT_BINARY_DIR}/Qaterial_icons") -set(QATERIAL_ICONS_CLASS_FILE "${QATERIAL_ICONS_OUTPUT_FOLDER}/Qaterial/Display/Icons.hpp") -set(QATERIAL_ICONS_SRC_FILE "${QATERIAL_ICONS_OUTPUT_FOLDER}/Qaterial/Display/Icons.cpp") -qaterial_generate_icons_class(${QATERIAL_ICONS_CLASS_FILE} ${QATERIAL_ICONS_SRC_FILE}) -set(QATERIAL_GEN_SRCS - ${QATERIAL_ICONS_CLASS_FILE} - ${QATERIAL_ICONS_SRC_FILE} -) - # ───── QML SOURCES ───── set(QATERIAL_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/src/Qaterial) @@ -182,12 +172,28 @@ set(QATERIAL_SRCS source_group(TREE "${QATERIAL_SOURCE_DIR}" FILES ${QATERIAL_SRCS}) source_group(TREE "${QATERIAL_ICONS_OUTPUT_FOLDER}/Qaterial" FILES ${QATERIAL_GEN_SRCS}) -set(QATERIAL_SRCS ${QATERIAL_SRCS} ${QATERIAL_GEN_SRCS}) +set(QATERIAL_SRCS ${QATERIAL_SRCS}) # ───── QATERIAL TARGET ───── +qt_policy(SET QTP0004 NEW) + +set(QATERIAL_OUTPUT_DIR "${CMAKE_CURRENT_BINARY_DIR}/gen_out/${QATERIAL_TARGET}") + if(${QATERIAL_BUILD_SHARED}) - qt_add_library(${QATERIAL_TARGET} SHARED ${QATERIAL_SRCS}) + qt_add_qml_module(Qaterial SHARED + URI "Qaterial" + VERSION ${QATERIAL_VERSION} + DEPENDENCIES + QtQuick/auto + CLASS_NAME QaterialPlugin + PLUGIN_TARGET qaterialplugin + NO_PLUGIN_OPTIONAL + RESOURCE_PREFIX "/" + SOURCES ${QATERIAL_SRCS} + OUTPUT_DIRECTORY "${QATERIAL_OUTPUT_DIR}" + ) + target_compile_definitions(${QATERIAL_TARGET} PRIVATE -DQATERIAL_SHARED) else() qt_add_library(${QATERIAL_TARGET} STATIC ${QATERIAL_SRCS}) @@ -197,18 +203,47 @@ add_library(${QATERIAL_TARGET}::${QATERIAL_TARGET} ALIAS ${QATERIAL_TARGET}) target_compile_features(${QATERIAL_TARGET} PUBLIC cxx_std_17) target_include_directories(${QATERIAL_TARGET} PRIVATE src ${QATERIAL_ICONS_OUTPUT_FOLDER}) +# Glob all include directories in src Qaterial +file(GLOB_RECURSE QATERIAL_INCLUDE_DIRS LIST_DIRECTORIES true RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} src/Qaterial/*) +# Add to include directories +foreach(INCLUDE_DIR ${QATERIAL_INCLUDE_DIRS}) + # Convert to absolute path, because IS_DIRECTORY only works with absolute paths + get_filename_component(INCLUDE_DIR_ABS ${INCLUDE_DIR} ABSOLUTE) + if(IS_DIRECTORY ${INCLUDE_DIR_ABS}) + get_filename_component(INCLUDE_DIR_NAME ${INCLUDE_DIR} NAME) + if(NOT INCLUDE_DIR_NAME STREQUAL "Pch") + message(VERBOSE "Adding include directory: ${INCLUDE_DIR}") + target_include_directories(${QATERIAL_TARGET} PRIVATE ${INCLUDE_DIR}) + endif() + endif() +endforeach() + target_include_directories(${QATERIAL_TARGET} PUBLIC $ $ ) + if(QATERIAL_ENABLE_PCH AND COMMAND target_precompile_headers) target_precompile_headers(${QATERIAL_TARGET} PRIVATE src/Qaterial/Pch/Pch.hpp) endif() +add_subdirectory(qml) +include(cmake/QaterialGenerateIcons.cmake) + +set(QATERIAL_ICONS_OUTPUT_FOLDER "${CMAKE_CURRENT_BINARY_DIR}/Qaterial_icons") +set(QATERIAL_ICONS_CLASS_FILE "${QATERIAL_ICONS_OUTPUT_FOLDER}/Qaterial/Display/Icons.hpp") +set(QATERIAL_ICONS_SRC_FILE "${QATERIAL_ICONS_OUTPUT_FOLDER}/Qaterial/Display/Icons.cpp") +qaterial_generate_icons_class(${QATERIAL_ICONS_CLASS_FILE} ${QATERIAL_ICONS_SRC_FILE}) + +set(QATERIAL_GEN_SRCS + ${QATERIAL_ICONS_CLASS_FILE} + ${QATERIAL_ICONS_SRC_FILE} +) +target_sources(${QATERIAL_TARGET} PRIVATE ${QATERIAL_GEN_SRCS}) +target_include_directories(${QATERIAL_TARGET} PRIVATE ${QATERIAL_ICONS_OUTPUT_FOLDER}) +target_include_directories(${QATERIAL_TARGET} PRIVATE ${QATERIAL_ICONS_OUTPUT_FOLDER}/Qaterial/Display) + target_link_libraries(${QATERIAL_TARGET} - PRIVATE ${QATERIAL_TARGET}::Icons - PRIVATE ${QATERIAL_TARGET}::Fonts - PRIVATE ${QATERIAL_TARGET}::Components PUBLIC QOlm::QOlm PUBLIC Qt::Core PUBLIC Qt::Gui @@ -276,6 +311,11 @@ if (QATERIAL_ENABLE_INSTALL) EXPORT ${QATERIAL_TARGET}Targets ) + install(DIRECTORY ${QATERIAL_OUTPUT_DIR} + DESTINATION ${CMAKE_INSTALL_PREFIX}/qml/ + FILES_MATCHING PATTERN "*.qml" PATTERN "qmldir" PATTERN "*.qmltypes" PATTERN "*.dll" PATTERN "*.so" + ) + foreach(HDR_FILE ${QATERIAL_PUBLIC_HEADERS}) get_filename_component(HDR_DIRECTORY ${HDR_FILE} DIRECTORY) get_filename_component(ABSOLUTE_HDR_DIRECTORY ${HDR_DIRECTORY} ABSOLUTE) diff --git a/cmake/QaterialGenerateIcons.cmake b/cmake/QaterialGenerateIcons.cmake index 7d2a2db9..52922201 100644 --- a/cmake/QaterialGenerateIcons.cmake +++ b/cmake/QaterialGenerateIcons.cmake @@ -94,7 +94,8 @@ function(_qaterial_generate_icons_class HEADER SRC) "class QATERIAL_API_ Icons : public QObject\n" "{\n" " Q_OBJECT\n" - " QATERIAL_SINGLETON_IMPL(Icons, icons, Icons);\n\n" + " QML_ELEMENT\n" + " QML_SINGLETON\n\n" "public:\n" " Icons(QObject* parent = nullptr) : QObject(parent) {}\n\n" ) @@ -165,10 +166,6 @@ function(_qaterial_generate_icons_class HEADER SRC) "#include \n" "#include \"moc_Icons.cpp\"\n" "\n" - "void __Qaterial_registerIconsSingleton()\n" - "{\n" - " qaterial::Icons::registerSingleton()\;\n" - "}\n" ) file(WRITE ${OUT_FILENAME_ABS_CPP}.temp ${OUT_CONTENT_CPP}) @@ -194,7 +191,7 @@ function(qaterial_generate_icons_class OUTPUT_FILE_HPP OUTPUT_FILE_CPP) NAME ${OUTPUT_FILE_HPP} NAME_CPP ${OUTPUT_FILE_CPP} CLASS_NAME "Icons" - PREFIX "Qaterial/Icons" + PREFIX "/Qaterial/Icons" GLOB_EXPRESSION ${QATERIAL_ICONS}) else() @@ -212,7 +209,8 @@ function(qaterial_generate_icons_class OUTPUT_FILE_HPP OUTPUT_FILE_CPP) "class QATERIAL_API_ Icons : public QObject\n" "{\n" " Q_OBJECT\n" - " QATERIAL_SINGLETON_IMPL(Icons, icons, Icons);\n\n" + " QML_ELEMENT\n" + " QML_SINGLETON\n\n" "public:\n" " Icons(QObject* parent = nullptr) : QObject(parent) {}\n\n" "};\n\n" @@ -226,10 +224,6 @@ function(qaterial_generate_icons_class OUTPUT_FILE_HPP OUTPUT_FILE_CPP) "// Everything written here will be lost.\n\n" "#include \n" "#include \"moc_Icons.cpp\"\n" - "void __Qaterial_registerIconsSingleton()\n" - "{\n" - " qaterial::Icons::registerSingleton();\n" - "}\n" ) endif() diff --git a/qml/Qaterial/CMakeLists.txt b/qml/Qaterial/CMakeLists.txt index 63fe024a..d24e04e0 100644 --- a/qml/Qaterial/CMakeLists.txt +++ b/qml/Qaterial/CMakeLists.txt @@ -17,32 +17,23 @@ file(GLOB_RECURSE QATERIAL_QML_FILES ) set(SINGLETON_FILES + ${CMAKE_CURRENT_SOURCE_DIR}/Calendar.qml ${CMAKE_CURRENT_SOURCE_DIR}/Style.qml ${CMAKE_CURRENT_SOURCE_DIR}/Colors.qml ${CMAKE_CURRENT_SOURCE_DIR}/DataFormat.qml ${CMAKE_CURRENT_SOURCE_DIR}/DateFormat.qml ${CMAKE_CURRENT_SOURCE_DIR}/DialogManager.qml ${CMAKE_CURRENT_SOURCE_DIR}/SnackbarManager.qml - ${CMAKE_CURRENT_SOURCE_DIR}/Style.qml ) set_source_files_properties(${SINGLETON_FILES} PROPERTIES QT_QML_SINGLETON_TYPE TRUE) -qt_add_library(${QATERIAL_TARGET}Components STATIC) -qt_add_qml_module(${QATERIAL_TARGET}Components - URI Qaterial - VERSION 1.0 - RESOURCE_PREFIX "/" - QML_FILES - ${QATERIAL_QML_FILES} - OUTPUT_TARGETS QATERIAL_COMPONENTS_QML_TARGETS - NO_PLUGIN +qt_target_qml_sources(${QATERIAL_TARGET} + QML_FILES ${QATERIAL_QML_FILES} + NO_CACHEGEN ) -add_library(${QATERIAL_TARGET}::Components ALIAS ${QATERIAL_TARGET}Components) - -set_target_properties(${QATERIAL_TARGET}Components PROPERTIES AUTORCC TRUE) -target_link_libraries(${QATERIAL_TARGET}Components PRIVATE +target_link_libraries(${QATERIAL_TARGET} PRIVATE Qt::Core Qt::Gui Qt::Svg @@ -52,26 +43,3 @@ target_link_libraries(${QATERIAL_TARGET}Components PRIVATE Qt::QuickControls2 Qt::Core5Compat ) - -if(QATERIAL_FOLDER_PREFIX) - set_target_properties(${QATERIAL_TARGET}Components PROPERTIES FOLDER ${QATERIAL_FOLDER_PREFIX}) -endif() - -if(QATERIAL_ENABLE_INSTALL AND NOT QATERIAL_BUILD_SHARED) - include(GNUInstallDirs) - install(TARGETS ${QATERIAL_TARGET}Components ${QATERIAL_COMPONENTS_QML_TARGETS} - EXPORT ${QATERIAL_TARGET}ComponentsTargets - ) - - export(EXPORT ${QATERIAL_TARGET}ComponentsTargets - FILE "${CMAKE_CURRENT_BINARY_DIR}/${QATERIAL_TARGET}/${QATERIAL_TARGET}ComponentsTargets.cmake" - ) - - set(ConfigPackageLocation lib/cmake/${QATERIAL_TARGET}) - install(EXPORT ${QATERIAL_TARGET}ComponentsTargets - FILE - ${QATERIAL_TARGET}ComponentsTargets.cmake - DESTINATION - ${ConfigPackageLocation} - ) -endif() diff --git a/qml/Qaterial/Fonts/CMakeLists.txt b/qml/Qaterial/Fonts/CMakeLists.txt index 48f09815..0e068668 100644 --- a/qml/Qaterial/Fonts/CMakeLists.txt +++ b/qml/Qaterial/Fonts/CMakeLists.txt @@ -85,42 +85,15 @@ foreach(QATERIAL_FONT_FILE ${QATERIAL_FONTS_FILES}) ) endforeach() -qt_add_library(${QATERIAL_TARGET}Fonts STATIC ${QATERIAL_FONTS_QML_QRC}) -qt_add_resources(${QATERIAL_TARGET}Fonts "${QATERIAL_TARGET}Fonts" +qt_add_resources(${QATERIAL_TARGET} "${QATERIAL_TARGET}Fonts" FILES ${QATERIAL_FONTS_FILES} PREFIX "/Qaterial/Fonts" - OUTPUT_TARGETS QATERIAL_FONTS_QML_TARGETS ) -add_library(${QATERIAL_TARGET}::Fonts ALIAS ${QATERIAL_TARGET}Fonts) -set_target_properties(${QATERIAL_TARGET}Fonts PROPERTIES AUTORCC TRUE) -target_link_libraries(${QATERIAL_TARGET}Fonts PRIVATE +target_link_libraries(${QATERIAL_TARGET} PRIVATE Qt::Core Qt::Gui Qt::Svg Qt::Xml Qt::Qml ) - -if(QATERIAL_FOLDER_PREFIX) - set_target_properties(${QATERIAL_TARGET}Fonts PROPERTIES FOLDER ${QATERIAL_FOLDER_PREFIX}) -endif() - -if(QATERIAL_ENABLE_INSTALL AND NOT QATERIAL_BUILD_SHARED) - include(GNUInstallDirs) - install(TARGETS ${QATERIAL_TARGET}Fonts ${QATERIAL_FONTS_QML_TARGETS} - EXPORT ${QATERIAL_TARGET}FontsTargets - ) - - export(EXPORT ${QATERIAL_TARGET}FontsTargets - FILE "${CMAKE_CURRENT_BINARY_DIR}/${QATERIAL_TARGET}/${QATERIAL_TARGET}FontsTargets.cmake" - ) - - set(ConfigPackageLocation lib/cmake/${QATERIAL_TARGET}) - install(EXPORT ${QATERIAL_TARGET}FontsTargets - FILE - ${QATERIAL_TARGET}FontsTargets.cmake - DESTINATION - ${ConfigPackageLocation} - ) -endif() diff --git a/qml/Qaterial/Icons/CMakeLists.txt b/qml/Qaterial/Icons/CMakeLists.txt index e41fc00b..f6ca6998 100644 --- a/qml/Qaterial/Icons/CMakeLists.txt +++ b/qml/Qaterial/Icons/CMakeLists.txt @@ -39,47 +39,18 @@ if(QATERIAL_ENABLE_ICONS) QT_RESOURCE_ALIAS ${QATERIAL_ICON_FILE_NAME} ) endforeach() -endif() -qt_add_library(${QATERIAL_TARGET}Icons STATIC) - -if(QATERIAL_ENABLE_ICONS) - qt_add_resources(${QATERIAL_TARGET}Icons "${QATERIAL_TARGET}Icons" - PREFIX "/Qaterial/Icons" + qt_add_resources(${QATERIAL_TARGET} "${QATERIAL_TARGET}Icons" + PREFIX "/Icons" FILES ${QATERIAL_ICONS_FILES} - OUTPUT_TARGETS QATERIAL_ICONS_QML_TARGETS - ) -endif() - -add_library(${QATERIAL_TARGET}::Icons ALIAS ${QATERIAL_TARGET}Icons) - -target_link_libraries(${QATERIAL_TARGET}Icons PRIVATE - Qt::Core - Qt::Gui - Qt::Svg - Qt::Xml - Qt::Qml -) - -if(QATERIAL_FOLDER_PREFIX) - set_target_properties(${QATERIAL_TARGET}Icons PROPERTIES FOLDER ${QATERIAL_FOLDER_PREFIX}) -endif() - -if(QATERIAL_ENABLE_INSTALL AND NOT QATERIAL_BUILD_SHARED) - include(GNUInstallDirs) - install(TARGETS ${QATERIAL_TARGET}Icons ${QATERIAL_ICONS_QML_TARGETS} - EXPORT ${QATERIAL_TARGET}IconsTargets ) - export(EXPORT ${QATERIAL_TARGET}IconsTargets - FILE "${CMAKE_CURRENT_BINARY_DIR}/${QATERIAL_TARGET}/${QATERIAL_TARGET}IconsTargets.cmake" + target_link_libraries(${QATERIAL_TARGET} PRIVATE + Qt::Core + Qt::Gui + Qt::Svg + Qt::Xml + Qt::Qml ) - set(ConfigPackageLocation lib/cmake/${QATERIAL_TARGET}) - install(EXPORT ${QATERIAL_TARGET}IconsTargets - FILE - ${QATERIAL_TARGET}IconsTargets.cmake - DESTINATION - ${ConfigPackageLocation} - ) -endif() +endif() \ No newline at end of file diff --git a/qml/Qaterial/ModalDialog.qml b/qml/Qaterial/ModalDialog.qml index 8ef93ee6..d7cb7aa7 100644 --- a/qml/Qaterial/ModalDialog.qml +++ b/qml/Qaterial/ModalDialog.qml @@ -22,5 +22,4 @@ Qaterial.Dialog parent: Overlay.overlay property int dialogImplicitWidth: Qaterial.Style.dialog.implicitWidth - implicitWidth: Math.floor(Math.min(parent.width - 2 * Qaterial.Style.card.horizontalPadding, dialogImplicitWidth)) } // Dialog diff --git a/src/Qaterial/Details/Utils.cpp b/src/Qaterial/Details/Utils.cpp index 13322c81..1b0669f9 100644 --- a/src/Qaterial/Details/Utils.cpp +++ b/src/Qaterial/Details/Utils.cpp @@ -49,51 +49,12 @@ static quint8 _minor = 0; static bool registeredTypes = false; static bool registeredRes = false; -void __Qaterial_registerIconsSingleton(); - -static void Qaterial_registerTypes() -{ - qaterial::Version::registerSingleton(*_uri, _major, _minor); - - // THEME - qaterial::TextTheme::registerToQml(*_uri, _major, _minor); - qaterial::ColorTheme::registerToQml(*_uri, _major, _minor); - qaterial::Theme::registerToQml(*_uri, _major, _minor); - qaterial::ThemeAttached::registerToQml(*_uri, _major, _minor); - - __Qaterial_registerIconsSingleton(); - - // DISPLAY - - qaterial::IconDescription::registerToQml(*_uri, _major, _minor); - qaterial::IconLabelPositioner::registerToQml(*_uri, _major, _minor); - qaterial::IconLabelImpl::registerToQml(*_uri, _major, _minor); - - // NAVIGATION - - qaterial::StepperElement::registerToQml(*_uri, _major, _minor); - qmlRegisterType>(*_uri, _major, _minor, "StepperModel"); - - qaterial::TreeElement::registerToQml(*_uri, _major, _minor); - qmlRegisterType(*_uri, _major, _minor, "TreeModel"); - - // IO - - qaterial::TextFile::registerToQml(*_uri, _major, _minor); - qaterial::Clipboard::registerSingleton(*_uri, _major, _minor); - qaterial::FolderTreeModel::registerToQml(*_uri, _major, _minor); - - qmlRegisterAnonymousType(*_uri, _major); - qaterial::Layout::registerToQml(); -} - static void Qaterial_registerTypes(const char* uri, const quint8 major, const quint8 minor) { if(uri) _uri = &uri; _major = major; _minor = minor; - Qaterial_registerTypes(); } static void Qaterial_loadFonts() @@ -137,7 +98,7 @@ static void Qaterial_loadResources(bool autoRegisterStyle) if(registeredRes) return; - qCDebug(qaterialUtils).noquote().nospace() << "Load Qaterial v" << qaterial::Version::version().readable(); + //qCDebug(qaterialUtils).noquote().nospace() << "Load Qaterial v" << qaterial::Version::version().readable(); // Load all fonts embedded in QaterialFonts Qaterial_loadFonts(); @@ -159,11 +120,6 @@ static void Qaterial_loadResources() Qaterial_loadResources(true); } -#ifndef QATERIAL_STATIC -Q_COREAPP_STARTUP_FUNCTION(Qaterial_registerTypes); -Q_COREAPP_STARTUP_FUNCTION(Qaterial_loadResources); -#endif - namespace qaterial { void registerQmlTypes(const char* uri, const quint8 major, const quint8 minor) diff --git a/src/Qaterial/Details/Version.hpp b/src/Qaterial/Details/Version.hpp index 1c79e893..61702aaf 100644 --- a/src/Qaterial/Details/Version.hpp +++ b/src/Qaterial/Details/Version.hpp @@ -34,7 +34,8 @@ namespace qaterial { class QATERIAL_API_ Version : public QObject { Q_OBJECT - QATERIAL_SINGLETON_IMPL(Version, version, Version); + QML_ELEMENT + QML_SINGLETON // ──────── CONSTRUCTOR ──────────────── public: diff --git a/src/Qaterial/Display/IconDescription.hpp b/src/Qaterial/Display/IconDescription.hpp index 1c220f61..a65a6632 100644 --- a/src/Qaterial/Display/IconDescription.hpp +++ b/src/Qaterial/Display/IconDescription.hpp @@ -23,6 +23,7 @@ #ifndef __QATERIAL_ICON_DESCRIPTION_HPP__ #define __QATERIAL_ICON_DESCRIPTION_HPP__ +#include #include #include @@ -32,15 +33,15 @@ namespace qaterial { // Behave like QQuickIcon (that is private) -class QATERIAL_API_ IconDescription : public QObject +class QATERIAL_API_ IconDescription : public QQuickItem { Q_OBJECT - QATERIAL_REGISTER_TO_QML(IconDescription); + QML_ELEMENT // ──── CONSTRUCTOR ──── public: - IconDescription(QObject* parent = nullptr) - : QObject(parent) + IconDescription(QQuickItem* parent = nullptr) + : QQuickItem(parent) { } @@ -50,14 +51,6 @@ class QATERIAL_API_ IconDescription : public QObject // The icon will be loaded as a regular image. QATERIAL_PROPERTY(QUrl, source, Source); - // This property holds the width of the icon. - // The icon's width will never exceed this value, though it will shrink when necessary. - QATERIAL_PROPERTY_D(int, width, Width, 24); - - // This property holds the height of the icon. - // The icon's height will never exceed this value, though it will shrink when necessary. - QATERIAL_PROPERTY_D(int, height, Height, 24); - // This property holds the color of the icon. // The icon is tinted with the specified color, unless the color is set to "transparent". QATERIAL_PROPERTY(QColor, color, Color); diff --git a/src/Qaterial/Display/IconLabelImpl.hpp b/src/Qaterial/Display/IconLabelImpl.hpp index d77081ff..d26835fd 100644 --- a/src/Qaterial/Display/IconLabelImpl.hpp +++ b/src/Qaterial/Display/IconLabelImpl.hpp @@ -35,7 +35,7 @@ namespace qaterial { class QATERIAL_API_ IconLabelImpl : public QQuickItem { Q_OBJECT - QATERIAL_REGISTER_TO_QML(IconLabelImpl); + QML_ELEMENT // ──── CONSTRUCTOR ──── public: diff --git a/src/Qaterial/Display/IconLabelPositioner.hpp b/src/Qaterial/Display/IconLabelPositioner.hpp index 84c8510b..48a5a64d 100644 --- a/src/Qaterial/Display/IconLabelPositioner.hpp +++ b/src/Qaterial/Display/IconLabelPositioner.hpp @@ -34,7 +34,7 @@ namespace qaterial { class QATERIAL_API_ IconLabelPositioner : public QObject { Q_OBJECT - QATERIAL_REGISTER_TO_QML(IconLabelPositioner); + QML_ELEMENT // ──── CONSTRUCTOR ──── public: diff --git a/src/Qaterial/IO/Clipboard.hpp b/src/Qaterial/IO/Clipboard.hpp index de687c7f..60203a30 100644 --- a/src/Qaterial/IO/Clipboard.hpp +++ b/src/Qaterial/IO/Clipboard.hpp @@ -47,7 +47,8 @@ namespace qaterial { class QATERIAL_API_ Clipboard : public QObject { Q_OBJECT - QATERIAL_SINGLETON_IMPL(Clipboard, clipboard, Clipboard); + QML_ELEMENT + QML_SINGLETON // ──── CONSTRUCTOR ──── public: diff --git a/src/Qaterial/IO/FolderTreeModel.hpp b/src/Qaterial/IO/FolderTreeModel.hpp index 46c29f09..185d79ca 100644 --- a/src/Qaterial/IO/FolderTreeModel.hpp +++ b/src/Qaterial/IO/FolderTreeModel.hpp @@ -38,7 +38,7 @@ namespace qaterial { class QATERIAL_API_ FolderTreeModel : public qolm::QOlm { Q_OBJECT - QATERIAL_REGISTER_TO_QML(FolderTreeModel) + QML_ELEMENT public: FolderTreeModel(QObject* parent = nullptr); diff --git a/src/Qaterial/IO/TextFile.hpp b/src/Qaterial/IO/TextFile.hpp index cafb9794..a0f86681 100644 --- a/src/Qaterial/IO/TextFile.hpp +++ b/src/Qaterial/IO/TextFile.hpp @@ -36,7 +36,7 @@ namespace qaterial { class QATERIAL_API_ TextFile : public QObject { Q_OBJECT - QATERIAL_REGISTER_TO_QML(TextFile) + QML_ELEMENT // ──── CONSTRUCTOR ──── public: diff --git a/src/Qaterial/Layout/Layout.hpp b/src/Qaterial/Layout/Layout.hpp index f1caa27b..01f8c86d 100644 --- a/src/Qaterial/Layout/Layout.hpp +++ b/src/Qaterial/Layout/Layout.hpp @@ -81,7 +81,7 @@ class LayoutAttached : public QObject class QATERIAL_API_ Layout : public QObject { Q_OBJECT - QATERIAL_REGISTER_TO_QML(Layout); + QML_ELEMENT QML_ATTACHED(LayoutAttached) // ──── CONSTRUCTOR ──── diff --git a/src/Qaterial/Navigation/StepperElement.hpp b/src/Qaterial/Navigation/StepperElement.hpp index f57fdab1..da9f421b 100644 --- a/src/Qaterial/Navigation/StepperElement.hpp +++ b/src/Qaterial/Navigation/StepperElement.hpp @@ -34,7 +34,7 @@ namespace qaterial { class QATERIAL_API_ StepperElement : public QObject { Q_OBJECT - QATERIAL_REGISTER_TO_QML(StepperElement) + QML_ELEMENT public: StepperElement(QObject* parent = nullptr); diff --git a/src/Qaterial/Navigation/TreeElement.hpp b/src/Qaterial/Navigation/TreeElement.hpp index 01d71518..f3df2b3c 100644 --- a/src/Qaterial/Navigation/TreeElement.hpp +++ b/src/Qaterial/Navigation/TreeElement.hpp @@ -37,7 +37,7 @@ using TreeModel = qolm::QOlm; class QATERIAL_API_ TreeElement : public TreeModel { Q_OBJECT - QATERIAL_REGISTER_TO_QML(TreeElement) + QML_ELEMENT public: TreeElement(QObject* parent = nullptr); diff --git a/src/Qaterial/Theme/ColorTheme.hpp b/src/Qaterial/Theme/ColorTheme.hpp index c4ef64f9..86b006b8 100644 --- a/src/Qaterial/Theme/ColorTheme.hpp +++ b/src/Qaterial/Theme/ColorTheme.hpp @@ -33,7 +33,7 @@ namespace qaterial { class QATERIAL_API_ ColorTheme : public QObject { Q_OBJECT - QATERIAL_REGISTER_TO_QML(ColorTheme); + QML_ELEMENT // ──── CONSTRUCTOR ──── public: diff --git a/src/Qaterial/Theme/TextTheme.hpp b/src/Qaterial/Theme/TextTheme.hpp index 07ac89d1..384968c5 100644 --- a/src/Qaterial/Theme/TextTheme.hpp +++ b/src/Qaterial/Theme/TextTheme.hpp @@ -34,7 +34,7 @@ namespace qaterial { class QATERIAL_API_ TextTheme : public QObject { Q_OBJECT - QATERIAL_REGISTER_TO_QML(TextTheme); + QML_ELEMENT // ──── CONSTRUCTOR ──── public: diff --git a/src/Qaterial/Theme/Theme.hpp b/src/Qaterial/Theme/Theme.hpp index aa75a31c..cb102bd9 100644 --- a/src/Qaterial/Theme/Theme.hpp +++ b/src/Qaterial/Theme/Theme.hpp @@ -32,7 +32,6 @@ class ThemeAttached : public QObject { Q_OBJECT QML_ANONYMOUS - QATERIAL_REGISTER_ANONYMOUS_TO_QML(ThemeAttached); // ──── CONSTRUCTOR ──── public: @@ -49,7 +48,7 @@ class ThemeAttached : public QObject class QATERIAL_API_ Theme : public QObject { Q_OBJECT - QATERIAL_REGISTER_TO_QML(Theme); + QML_ELEMENT QML_ATTACHED(ThemeAttached) // ──── CONSTRUCTOR ────