plugin: refactor into modules

This commit is contained in:
2 * r + 2 * t 2025-09-13 14:38:44 +10:00
parent a57dd9343a
commit 306cfc06ed
28 changed files with 77 additions and 47 deletions

View file

@ -6,7 +6,7 @@ import "../images"
import qs.services import qs.services
import qs.config import qs.config
import qs.utils import qs.utils
import Caelestia import Caelestia.Models
import Quickshell import Quickshell
import QtQuick import QtQuick
import QtQuick.Layouts import QtQuick.Layouts

View file

@ -1,5 +1,5 @@
import qs.utils import qs.utils
import Caelestia import Caelestia.Managers
import Quickshell import Quickshell
import QtQuick import QtQuick

View file

@ -3,7 +3,7 @@ pragma ComponentBehavior: Bound
import qs.components import qs.components
import qs.services import qs.services
import qs.config import qs.config
import Caelestia import Caelestia.Services
import Quickshell import Quickshell
import Quickshell.Widgets import Quickshell.Widgets
import QtQuick import QtQuick

View file

@ -6,7 +6,7 @@ import qs.components.controls
import qs.services import qs.services
import qs.utils import qs.utils
import qs.config import qs.config
import Caelestia import Caelestia.Services
import Quickshell import Quickshell
import Quickshell.Widgets import Quickshell.Widgets
import Quickshell.Services.Mpris import Quickshell.Services.Mpris

View file

@ -2,7 +2,7 @@ import qs.components
import qs.services import qs.services
import qs.config import qs.config
import qs.utils import qs.utils
import Caelestia import Caelestia.Services
import QtQuick import QtQuick
import QtQuick.Shapes import QtQuick.Shapes

View file

@ -3,7 +3,7 @@ import qs.components.effects
import qs.components.images import qs.components.images
import qs.services import qs.services
import qs.config import qs.config
import Caelestia import Caelestia.Models
import Quickshell import Quickshell
import QtQuick import QtQuick

View file

@ -8,25 +8,16 @@ pkg_check_modules(Cava IMPORTED_TARGET cava REQUIRED)
set(QT_QML_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/qml") set(QT_QML_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/qml")
qt_standard_project_setup(REQUIRES 6.9) qt_standard_project_setup(REQUIRES 6.9)
qt_add_qml_module(caelestia function(qml_module arg_TARGET)
URI Caelestia cmake_parse_arguments(PARSE_ARGV 1 arg "" "URI" "SOURCES;LIBRARIES")
qt_add_qml_module(${arg_TARGET}
URI ${arg_URI}
VERSION ${VERSION} VERSION ${VERSION}
SOURCES SOURCES ${arg_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
) )
qt_query_qml_module(caelestia qt_query_qml_module(${arg_TARGET}
URI module_uri URI module_uri
VERSION module_version VERSION module_version
PLUGIN_TARGET module_plugin_target PLUGIN_TARGET module_plugin_target
@ -38,20 +29,28 @@ qt_query_qml_module(caelestia
message(STATUS "Created QML module ${module_uri}, version ${module_version}") message(STATUS "Created QML module ${module_uri}, version ${module_version}")
set(module_dir "${INSTALL_QMLDIR}/${module_target_path}") set(module_dir "${INSTALL_QMLDIR}/${module_target_path}")
install(TARGETS caelestia LIBRARY DESTINATION "${module_dir}" RUNTIME DESTINATION "${module_dir}") 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(TARGETS "${module_plugin_target}" LIBRARY DESTINATION "${module_dir}" RUNTIME DESTINATION "${module_dir}")
install(FILES "${module_qmldir}" DESTINATION "${module_dir}") install(FILES "${module_qmldir}" DESTINATION "${module_dir}")
install(FILES "${module_typeinfo}" DESTINATION "${module_dir}") install(FILES "${module_typeinfo}" DESTINATION "${module_dir}")
target_link_libraries(caelestia PRIVATE target_link_libraries(${arg_TARGET} PRIVATE Qt::Core Qt::Qml ${arg_LIBRARIES})
Qt::Core endfunction()
Qt::Qml
qml_module(caelestia
URI Caelestia
SOURCES
cutils.hpp cutils.cpp
qalculator.hpp qalculator.cpp
appdb.hpp appdb.cpp
requests.hpp requests.cpp
LIBRARIES
Qt::Gui Qt::Gui
Qt::Quick Qt::Quick
Qt::Concurrent
Qt::Sql Qt::Sql
PkgConfig::Qalculate PkgConfig::Qalculate
PkgConfig::Pipewire
PkgConfig::Aubio
PkgConfig::Cava
) )
add_subdirectory(Managers)
add_subdirectory(Models)
add_subdirectory(Services)

View file

@ -0,0 +1,9 @@
qml_module(caelestia-managers
URI Caelestia.Managers
SOURCES
cachingimagemanager.hpp cachingimagemanager.cpp
LIBRARIES
Qt::Gui
Qt::Quick
Qt::Concurrent
)

View file

@ -0,0 +1,8 @@
qml_module(caelestia-models
URI Caelestia.Models
SOURCES
filesystemmodel.hpp filesystemmodel.cpp
LIBRARIES
Qt::Gui
Qt::Concurrent
)

View file

@ -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
)

View file

@ -1,7 +1,7 @@
pragma Singleton pragma Singleton
import qs.config import qs.config
import Caelestia import Caelestia.Services
import Quickshell import Quickshell
import Quickshell.Services.Pipewire import Quickshell.Services.Pipewire

View file

@ -2,7 +2,7 @@ pragma Singleton
import qs.config import qs.config
import qs.utils import qs.utils
import Caelestia import Caelestia.Models
import Quickshell import Quickshell
import Quickshell.Io import Quickshell.Io
import QtQuick import QtQuick