Warning, file /plasma/plasma-mobile/containments/homescreens/halcyon/homescreen.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 // SPDX-FileCopyrightText: 2022 Devin Lin <devin@kde.org>
0002 // SPDX-License-Identifier: GPL-2.0-or-later
0003 
0004 #include "homescreen.h"
0005 #include "application.h"
0006 #include "applicationfolder.h"
0007 #include "pinnedmodel.h"
0008 #include "windowlistener.h"
0009 
0010 #include <KIO/ApplicationLauncherJob>
0011 #include <KWindowSystem>
0012 
0013 #include <QDebug>
0014 #include <QQuickItem>
0015 #include <QtQml>
0016 
0017 HomeScreen::HomeScreen(QObject *parent, const KPluginMetaData &data, const QVariantList &args)
0018     : Plasma::Containment{parent, data, args}
0019 {
0020     setHasConfigurationInterface(true);
0021 
0022     WindowListener::instance(); // ensure it is created
0023 
0024     ApplicationListModel *applicationListModel = new ApplicationListModel{this};
0025     qmlRegisterSingletonType<ApplicationListModel>("org.kde.phone.homescreen.halcyon",
0026                                                    1,
0027                                                    0,
0028                                                    "ApplicationListModel",
0029                                                    [applicationListModel](QQmlEngine *, QJSEngine *) -> QObject * {
0030                                                        return applicationListModel;
0031                                                    });
0032 
0033     PinnedModel *pinnedModel = new PinnedModel{this, this};
0034     qmlRegisterSingletonType<PinnedModel>("org.kde.phone.homescreen.halcyon", 1, 0, "PinnedModel", [pinnedModel](QQmlEngine *, QJSEngine *) -> QObject * {
0035         return pinnedModel;
0036     });
0037 
0038     qmlRegisterType<Application>("org.kde.phone.homescreen.halcyon", 1, 0, "Application");
0039     qmlRegisterType<ApplicationFolder>("org.kde.phone.homescreen.halcyon", 1, 0, "ApplicationFolder");
0040 }
0041 
0042 HomeScreen::~HomeScreen() = default;
0043 
0044 bool HomeScreen::showingDesktop() const
0045 {
0046     return KWindowSystem::showingDesktop();
0047 }
0048 
0049 void HomeScreen::setShowingDesktop(bool showingDesktop)
0050 {
0051     KWindowSystem::setShowingDesktop(showingDesktop);
0052 }
0053 
0054 K_PLUGIN_CLASS_WITH_JSON(HomeScreen, "package/metadata.json")
0055 
0056 #include "homescreen.moc"