2022-06-17 04:48:53 +00:00
|
|
|
// SPDX-FileCopyrightText: 2015 Marco Martin <mart@kde.org>
|
|
|
|
|
// SPDX-FileCopyrightText: 2022 Devin Lin <devin@kde.org>
|
|
|
|
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
2015-05-14 16:05:01 +00:00
|
|
|
|
2022-04-06 02:06:05 +00:00
|
|
|
#pragma once
|
2015-05-14 16:05:01 +00:00
|
|
|
|
|
|
|
|
#include <Plasma/Containment>
|
2022-06-17 04:48:53 +00:00
|
|
|
#include <QSortFilterProxyModel>
|
|
|
|
|
|
2024-06-21 04:42:14 +00:00
|
|
|
#include "applicationlistmodel.h"
|
|
|
|
|
#include "delegatetoucharea.h"
|
|
|
|
|
#include "favouritesmodel.h"
|
|
|
|
|
#include "folioapplication.h"
|
|
|
|
|
#include "folioapplicationfolder.h"
|
|
|
|
|
#include "foliodelegate.h"
|
|
|
|
|
#include "foliosettings.h"
|
|
|
|
|
#include "foliowidget.h"
|
|
|
|
|
#include "homescreenstate.h"
|
|
|
|
|
#include "pagelistmodel.h"
|
|
|
|
|
#include "pagemodel.h"
|
|
|
|
|
#include "widgetcontainer.h"
|
|
|
|
|
#include "widgetsmanager.h"
|
|
|
|
|
|
|
|
|
|
class FolioSettings;
|
|
|
|
|
class PageListModel;
|
|
|
|
|
class WidgetsManager;
|
|
|
|
|
class HomeScreenState;
|
|
|
|
|
class FavouritesModel;
|
|
|
|
|
class ApplicationListModel;
|
2024-07-01 16:04:32 +00:00
|
|
|
class ApplicationListSearchModel;
|
2024-06-21 04:42:14 +00:00
|
|
|
|
2015-05-14 16:05:01 +00:00
|
|
|
class HomeScreen : public Plasma::Containment
|
|
|
|
|
{
|
|
|
|
|
Q_OBJECT
|
2025-07-16 17:02:18 +00:00
|
|
|
QML_ELEMENT
|
|
|
|
|
|
2024-06-21 04:42:14 +00:00
|
|
|
Q_PROPERTY(FolioSettings *FolioSettings READ folioSettings CONSTANT)
|
|
|
|
|
Q_PROPERTY(HomeScreenState *HomeScreenState READ homeScreenState CONSTANT)
|
|
|
|
|
Q_PROPERTY(WidgetsManager *WidgetsManager READ widgetsManager CONSTANT)
|
|
|
|
|
Q_PROPERTY(ApplicationListModel *ApplicationListModel READ applicationListModel CONSTANT)
|
2024-07-01 16:04:32 +00:00
|
|
|
Q_PROPERTY(ApplicationListSearchModel *ApplicationListSearchModel READ applicationListSearchModel CONSTANT)
|
2024-06-21 04:42:14 +00:00
|
|
|
Q_PROPERTY(FavouritesModel *FavouritesModel READ favouritesModel CONSTANT)
|
|
|
|
|
Q_PROPERTY(PageListModel *PageListModel READ pageListModel CONSTANT)
|
2015-05-14 16:05:01 +00:00
|
|
|
|
|
|
|
|
public:
|
2022-04-24 11:44:41 +00:00
|
|
|
HomeScreen(QObject *parent, const KPluginMetaData &data, const QVariantList &args);
|
2018-12-31 03:13:55 +00:00
|
|
|
~HomeScreen() override;
|
2015-05-14 16:05:01 +00:00
|
|
|
|
2019-09-17 11:00:07 +00:00
|
|
|
void configChanged() override;
|
|
|
|
|
|
2026-04-09 08:15:14 +00:00
|
|
|
Q_INVOKABLE void triggerOverview() const;
|
|
|
|
|
|
2024-06-21 04:42:14 +00:00
|
|
|
FolioSettings *folioSettings();
|
|
|
|
|
HomeScreenState *homeScreenState();
|
|
|
|
|
WidgetsManager *widgetsManager();
|
|
|
|
|
ApplicationListModel *applicationListModel();
|
2024-07-01 16:04:32 +00:00
|
|
|
ApplicationListSearchModel *applicationListSearchModel();
|
2024-06-21 04:42:14 +00:00
|
|
|
FavouritesModel *favouritesModel();
|
|
|
|
|
PageListModel *pageListModel();
|
|
|
|
|
|
2021-10-16 03:17:32 +00:00
|
|
|
Q_SIGNALS:
|
|
|
|
|
void showingDesktopChanged(bool showingDesktop);
|
2023-11-05 05:14:39 +00:00
|
|
|
|
|
|
|
|
private Q_SLOTS:
|
|
|
|
|
void onAppletAdded(Plasma::Applet *applet, const QRectF &geometryHint);
|
|
|
|
|
void onAppletAboutToBeRemoved(Plasma::Applet *applet);
|
2024-06-21 04:42:14 +00:00
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
FolioSettings *m_folioSettings{nullptr};
|
|
|
|
|
HomeScreenState *m_homeScreenState{nullptr};
|
|
|
|
|
WidgetsManager *m_widgetsManager{nullptr};
|
|
|
|
|
ApplicationListModel *m_applicationListModel{nullptr};
|
2024-07-01 16:04:32 +00:00
|
|
|
ApplicationListSearchModel *m_applicationListSearchModel{nullptr};
|
2024-06-21 04:42:14 +00:00
|
|
|
FavouritesModel *m_favouritesModel{nullptr};
|
|
|
|
|
PageListModel *m_pageListModel{nullptr};
|
2015-05-14 16:05:01 +00:00
|
|
|
};
|