summaryrefslogtreecommitdiff
path: root/raveos-calamares-module/desktopselect/DesktopBackend.cpp
blob: 9fd1cc262e43b49135157456bd9a86db3b047b65 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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;
}