diff --git a/components/filedialog/FolderContents.qml b/components/filedialog/FolderContents.qml index 3025478a..2774ee50 100644 --- a/components/filedialog/FolderContents.qml +++ b/components/filedialog/FolderContents.qml @@ -6,7 +6,7 @@ import "../images" import qs.services import qs.config import qs.utils -import Caelestia +import Caelestia.Models import Quickshell import QtQuick import QtQuick.Layouts diff --git a/components/images/CachingImage.qml b/components/images/CachingImage.qml index 3511345a..6795cb55 100644 --- a/components/images/CachingImage.qml +++ b/components/images/CachingImage.qml @@ -1,5 +1,5 @@ import qs.utils -import Caelestia +import Caelestia.Managers import Quickshell import QtQuick diff --git a/modules/background/Visualiser.qml b/modules/background/Visualiser.qml index ad726cc0..e5a8a9be 100644 --- a/modules/background/Visualiser.qml +++ b/modules/background/Visualiser.qml @@ -3,7 +3,7 @@ pragma ComponentBehavior: Bound import qs.components import qs.services import qs.config -import Caelestia +import Caelestia.Services import Quickshell import Quickshell.Widgets import QtQuick diff --git a/modules/dashboard/Media.qml b/modules/dashboard/Media.qml index 1798e89f..df6cf9c1 100644 --- a/modules/dashboard/Media.qml +++ b/modules/dashboard/Media.qml @@ -6,7 +6,7 @@ import qs.components.controls import qs.services import qs.utils import qs.config -import Caelestia +import Caelestia.Services import Quickshell import Quickshell.Widgets import Quickshell.Services.Mpris diff --git a/modules/dashboard/dash/Media.qml b/modules/dashboard/dash/Media.qml index d4cccc81..3a2b685e 100644 --- a/modules/dashboard/dash/Media.qml +++ b/modules/dashboard/dash/Media.qml @@ -2,7 +2,7 @@ import qs.components import qs.services import qs.config import qs.utils -import Caelestia +import Caelestia.Services import QtQuick import QtQuick.Shapes diff --git a/modules/launcher/items/WallpaperItem.qml b/modules/launcher/items/WallpaperItem.qml index 435fa4b0..1128bad2 100644 --- a/modules/launcher/items/WallpaperItem.qml +++ b/modules/launcher/items/WallpaperItem.qml @@ -3,7 +3,7 @@ import qs.components.effects import qs.components.images import qs.services import qs.config -import Caelestia +import Caelestia.Models import Quickshell import QtQuick diff --git a/plugin/src/Caelestia/CMakeLists.txt b/plugin/src/Caelestia/CMakeLists.txt index 94496c64..2832b5d8 100644 --- a/plugin/src/Caelestia/CMakeLists.txt +++ b/plugin/src/Caelestia/CMakeLists.txt @@ -8,50 +8,49 @@ pkg_check_modules(Cava IMPORTED_TARGET cava REQUIRED) set(QT_QML_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/qml") qt_standard_project_setup(REQUIRES 6.9) -qt_add_qml_module(caelestia +function(qml_module arg_TARGET) + cmake_parse_arguments(PARSE_ARGV 1 arg "" "URI" "SOURCES;LIBRARIES") + + qt_add_qml_module(${arg_TARGET} + URI ${arg_URI} + VERSION ${VERSION} + SOURCES ${arg_SOURCES} + ) + + qt_query_qml_module(${arg_TARGET} + URI module_uri + VERSION module_version + PLUGIN_TARGET module_plugin_target + TARGET_PATH module_target_path + QMLDIR module_qmldir + TYPEINFO module_typeinfo + ) + + message(STATUS "Created QML module ${module_uri}, version ${module_version}") + + set(module_dir "${INSTALL_QMLDIR}/${module_target_path}") + install(TARGETS ${arg_TARGET} LIBRARY DESTINATION "${module_dir}" RUNTIME DESTINATION "${module_dir}") + install(TARGETS "${module_plugin_target}" LIBRARY DESTINATION "${module_dir}" RUNTIME DESTINATION "${module_dir}") + install(FILES "${module_qmldir}" DESTINATION "${module_dir}") + install(FILES "${module_typeinfo}" DESTINATION "${module_dir}") + + target_link_libraries(${arg_TARGET} PRIVATE Qt::Core Qt::Qml ${arg_LIBRARIES}) +endfunction() + +qml_module(caelestia URI Caelestia - VERSION ${VERSION} SOURCES cutils.hpp cutils.cpp - cachingimagemanager.hpp cachingimagemanager.cpp - filesystemmodel.hpp filesystemmodel.cpp qalculator.hpp qalculator.cpp - beattracker.hpp beattracker.cpp - service.hpp service.cpp - serviceref.hpp serviceref.cpp - audiocollector.hpp audiocollector.cpp - audioprovider.hpp audioprovider.cpp - cavaprovider.hpp cavaprovider.cpp appdb.hpp appdb.cpp requests.hpp requests.cpp + LIBRARIES + Qt::Gui + Qt::Quick + Qt::Sql + PkgConfig::Qalculate ) -qt_query_qml_module(caelestia - URI module_uri - VERSION module_version - PLUGIN_TARGET module_plugin_target - TARGET_PATH module_target_path - QMLDIR module_qmldir - TYPEINFO module_typeinfo -) - -message(STATUS "Created QML module ${module_uri}, version ${module_version}") - -set(module_dir "${INSTALL_QMLDIR}/${module_target_path}") -install(TARGETS caelestia LIBRARY DESTINATION "${module_dir}" RUNTIME DESTINATION "${module_dir}") -install(TARGETS "${module_plugin_target}" LIBRARY DESTINATION "${module_dir}" RUNTIME DESTINATION "${module_dir}") -install(FILES "${module_qmldir}" DESTINATION "${module_dir}") -install(FILES "${module_typeinfo}" DESTINATION "${module_dir}") - -target_link_libraries(caelestia PRIVATE - Qt::Core - Qt::Qml - Qt::Gui - Qt::Quick - Qt::Concurrent - Qt::Sql - PkgConfig::Qalculate - PkgConfig::Pipewire - PkgConfig::Aubio - PkgConfig::Cava -) +add_subdirectory(Managers) +add_subdirectory(Models) +add_subdirectory(Services) diff --git a/plugin/src/Caelestia/Managers/CMakeLists.txt b/plugin/src/Caelestia/Managers/CMakeLists.txt new file mode 100644 index 00000000..9bb5baa2 --- /dev/null +++ b/plugin/src/Caelestia/Managers/CMakeLists.txt @@ -0,0 +1,9 @@ +qml_module(caelestia-managers + URI Caelestia.Managers + SOURCES + cachingimagemanager.hpp cachingimagemanager.cpp + LIBRARIES + Qt::Gui + Qt::Quick + Qt::Concurrent +) diff --git a/plugin/src/Caelestia/cachingimagemanager.cpp b/plugin/src/Caelestia/Managers/cachingimagemanager.cpp similarity index 100% rename from plugin/src/Caelestia/cachingimagemanager.cpp rename to plugin/src/Caelestia/Managers/cachingimagemanager.cpp diff --git a/plugin/src/Caelestia/cachingimagemanager.hpp b/plugin/src/Caelestia/Managers/cachingimagemanager.hpp similarity index 100% rename from plugin/src/Caelestia/cachingimagemanager.hpp rename to plugin/src/Caelestia/Managers/cachingimagemanager.hpp diff --git a/plugin/src/Caelestia/Models/CMakeLists.txt b/plugin/src/Caelestia/Models/CMakeLists.txt new file mode 100644 index 00000000..640e29e5 --- /dev/null +++ b/plugin/src/Caelestia/Models/CMakeLists.txt @@ -0,0 +1,8 @@ +qml_module(caelestia-models + URI Caelestia.Models + SOURCES + filesystemmodel.hpp filesystemmodel.cpp + LIBRARIES + Qt::Gui + Qt::Concurrent +) diff --git a/plugin/src/Caelestia/filesystemmodel.cpp b/plugin/src/Caelestia/Models/filesystemmodel.cpp similarity index 100% rename from plugin/src/Caelestia/filesystemmodel.cpp rename to plugin/src/Caelestia/Models/filesystemmodel.cpp diff --git a/plugin/src/Caelestia/filesystemmodel.hpp b/plugin/src/Caelestia/Models/filesystemmodel.hpp similarity index 100% rename from plugin/src/Caelestia/filesystemmodel.hpp rename to plugin/src/Caelestia/Models/filesystemmodel.hpp diff --git a/plugin/src/Caelestia/Services/CMakeLists.txt b/plugin/src/Caelestia/Services/CMakeLists.txt new file mode 100644 index 00000000..8ce868b5 --- /dev/null +++ b/plugin/src/Caelestia/Services/CMakeLists.txt @@ -0,0 +1,14 @@ +qml_module(caelestia-services + URI Caelestia.Services + SOURCES + service.hpp service.cpp + serviceref.hpp serviceref.cpp + beattracker.hpp beattracker.cpp + audiocollector.hpp audiocollector.cpp + audioprovider.hpp audioprovider.cpp + cavaprovider.hpp cavaprovider.cpp + LIBRARIES + PkgConfig::Pipewire + PkgConfig::Aubio + PkgConfig::Cava +) diff --git a/plugin/src/Caelestia/audiocollector.cpp b/plugin/src/Caelestia/Services/audiocollector.cpp similarity index 100% rename from plugin/src/Caelestia/audiocollector.cpp rename to plugin/src/Caelestia/Services/audiocollector.cpp diff --git a/plugin/src/Caelestia/audiocollector.hpp b/plugin/src/Caelestia/Services/audiocollector.hpp similarity index 100% rename from plugin/src/Caelestia/audiocollector.hpp rename to plugin/src/Caelestia/Services/audiocollector.hpp diff --git a/plugin/src/Caelestia/audioprovider.cpp b/plugin/src/Caelestia/Services/audioprovider.cpp similarity index 100% rename from plugin/src/Caelestia/audioprovider.cpp rename to plugin/src/Caelestia/Services/audioprovider.cpp diff --git a/plugin/src/Caelestia/audioprovider.hpp b/plugin/src/Caelestia/Services/audioprovider.hpp similarity index 100% rename from plugin/src/Caelestia/audioprovider.hpp rename to plugin/src/Caelestia/Services/audioprovider.hpp diff --git a/plugin/src/Caelestia/beattracker.cpp b/plugin/src/Caelestia/Services/beattracker.cpp similarity index 100% rename from plugin/src/Caelestia/beattracker.cpp rename to plugin/src/Caelestia/Services/beattracker.cpp diff --git a/plugin/src/Caelestia/beattracker.hpp b/plugin/src/Caelestia/Services/beattracker.hpp similarity index 100% rename from plugin/src/Caelestia/beattracker.hpp rename to plugin/src/Caelestia/Services/beattracker.hpp diff --git a/plugin/src/Caelestia/cavaprovider.cpp b/plugin/src/Caelestia/Services/cavaprovider.cpp similarity index 100% rename from plugin/src/Caelestia/cavaprovider.cpp rename to plugin/src/Caelestia/Services/cavaprovider.cpp diff --git a/plugin/src/Caelestia/cavaprovider.hpp b/plugin/src/Caelestia/Services/cavaprovider.hpp similarity index 100% rename from plugin/src/Caelestia/cavaprovider.hpp rename to plugin/src/Caelestia/Services/cavaprovider.hpp diff --git a/plugin/src/Caelestia/service.cpp b/plugin/src/Caelestia/Services/service.cpp similarity index 100% rename from plugin/src/Caelestia/service.cpp rename to plugin/src/Caelestia/Services/service.cpp diff --git a/plugin/src/Caelestia/service.hpp b/plugin/src/Caelestia/Services/service.hpp similarity index 100% rename from plugin/src/Caelestia/service.hpp rename to plugin/src/Caelestia/Services/service.hpp diff --git a/plugin/src/Caelestia/serviceref.cpp b/plugin/src/Caelestia/Services/serviceref.cpp similarity index 100% rename from plugin/src/Caelestia/serviceref.cpp rename to plugin/src/Caelestia/Services/serviceref.cpp diff --git a/plugin/src/Caelestia/serviceref.hpp b/plugin/src/Caelestia/Services/serviceref.hpp similarity index 100% rename from plugin/src/Caelestia/serviceref.hpp rename to plugin/src/Caelestia/Services/serviceref.hpp diff --git a/services/Audio.qml b/services/Audio.qml index e638af56..acd595f5 100644 --- a/services/Audio.qml +++ b/services/Audio.qml @@ -1,7 +1,7 @@ pragma Singleton import qs.config -import Caelestia +import Caelestia.Services import Quickshell import Quickshell.Services.Pipewire diff --git a/services/Wallpapers.qml b/services/Wallpapers.qml index e9356a58..cb96bc56 100644 --- a/services/Wallpapers.qml +++ b/services/Wallpapers.qml @@ -2,7 +2,7 @@ pragma Singleton import qs.config import qs.utils -import Caelestia +import Caelestia.Models import Quickshell import Quickshell.Io import QtQuick