diff options
Diffstat (limited to 'raveos-calamares-module/desktopselect/DesktopBackend.cpp')
| -rw-r--r-- | raveos-calamares-module/desktopselect/DesktopBackend.cpp | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/raveos-calamares-module/desktopselect/DesktopBackend.cpp b/raveos-calamares-module/desktopselect/DesktopBackend.cpp new file mode 100644 index 0000000..9fd1cc2 --- /dev/null +++ b/raveos-calamares-module/desktopselect/DesktopBackend.cpp @@ -0,0 +1,35 @@ +#include "DesktopBackend.h" + +DesktopBackend::DesktopBackend(QObject* parent) + : QObject(parent) +{} + +void DesktopBackend::setDesktops(const QVariantList& desktops) +{ + m_desktops = desktops; + m_selectedIndex = -1; + emit desktopsChanged(); + emit selectedIndexChanged(); +} + +void DesktopBackend::selectDesktop(int index) +{ + if (index == m_selectedIndex) + return; + if (index < 0 || index >= m_desktops.size()) + return; + m_selectedIndex = index; + emit selectedIndexChanged(); + emit selectionMade(); +} + +QStringList DesktopBackend::selectedPackages() const +{ + if (m_selectedIndex < 0 || m_selectedIndex >= m_desktops.size()) + return {}; + const QVariantMap desktop = m_desktops[m_selectedIndex].toMap(); + QStringList pkgs; + for (const auto& v : desktop.value("packages").toList()) + pkgs << v.toString(); + return pkgs; +} |