panels: Port to plasma-framework changes

This commit is contained in:
Devin Lin 2023-06-12 20:49:54 -04:00
parent 8a577f9a57
commit 25a513d829
5 changed files with 57 additions and 53 deletions

View file

@ -19,7 +19,7 @@ ContainmentItem {
Component.onCompleted: {
Halcyon.ApplicationListModel.loadApplications();
Halcyon.PinnedModel.applet = Plasmoid.nativeInterface;
Halcyon.PinnedModel.applet = root.plasmoid;
forceActiveFocus();
}

View file

@ -1,18 +1,15 @@
/*
* SPDX-FileCopyrightText: 2021 Devin Lin <devin@kde.org>
* SPDX-FileCopyrightText: 2015 Marco Martin <mart@kde.org>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
// SPDX-FileCopyrightText: 2021-2023 Devin Lin <devin@kde.org>
// SPDX-FileCopyrightText: 2015 Marco Martin <mart@kde.org>
// SPDX-License-Identifier: GPL-2.0-or-later
import QtQuick 2.12
import QtQuick.Layouts 1.3
import QtQuick.Window 2.15
import QtQml.Models 2.12
import QtQuick
import QtQuick.Layouts
import QtQuick.Window
import QtQml.Models
import org.kde.kirigami 2.12 as Kirigami
import org.kde.kirigami as Kirigami
import org.kde.plasma.plasmoid 2.0
import org.kde.plasma.plasmoid
import org.kde.plasma.core 2.0 as PlasmaCore
import org.kde.plasma.components 3.0 as PlasmaComponents
@ -20,28 +17,24 @@ import org.kde.plasma.private.mobileshell as MobileShell
import org.kde.plasma.private.mobileshell.state as MobileShellState
import org.kde.plasma.private.mobileshell.windowplugin as WindowPlugin
import org.kde.taskmanager 0.1 as TaskManager
import org.kde.notificationmanager 1.0 as NotificationManager
import org.kde.taskmanager as TaskManager
import org.kde.notificationmanager as NotificationManager
Item {
ContainmentItem {
id: root
Plasmoid.backgroundHints: PlasmaCore.Types.NoBackground
// only opaque if there are no maximized windows on this screen
readonly property bool showingApp: WindowPlugin.WindowMaximizedTracker.showingWindow
readonly property color backgroundColor: topPanel.colorScopeColor
Plasmoid.backgroundHints: PlasmaCore.Types.NoBackground
width: 480
height: PlasmaCore.Units.gridUnit
// enforce thickness
Binding {
target: plasmoid.Window.window // assumed to be plasma-workspace "PanelView" component
target: Plasmoid.Window.window // assumed to be plasma-workspace "PanelView" component
property: "thickness"
value: PlasmaCore.Units.gridUnit + PlasmaCore.Units.smallSpacing
}
//BEGIN API implementation
Connections {
@ -78,28 +71,28 @@ Item {
// initialize the volume osd, and volume keys
MobileShell.VolumeOSDProviderLoader.load();
}
// top panel component
MobileShell.StatusBar {
id: topPanel
anchors.fill: parent
showDropShadow: !root.showingApp
colorGroup: root.showingApp ? PlasmaCore.Theme.HeaderColorGroup : PlasmaCore.Theme.ComplementaryColorGroup
backgroundColor: !root.showingApp ? "transparent" : root.backgroundColor
}
// swiping area for swipe-down drawer
MobileShell.ActionDrawerOpenSurface {
id: swipeArea
actionDrawer: drawer.actionDrawer
anchors.fill: parent
}
// swipe-down drawer component
MobileShell.ActionDrawerWindow {
id: drawer
actionDrawer.notificationSettings: NotificationManager.Settings {}
actionDrawer.notificationModel: NotificationManager.Notifications {
showExpired: true

View file

@ -60,7 +60,7 @@ MobileShell.NavigationPanel {
iconSizeFactor: 0.75
onTriggered: {
plasmoid.nativeInterface.triggerTaskSwitcher();
Plasmoid.triggerTaskSwitcher();
}
}

View file

@ -1,9 +1,6 @@
/*
* SPDX-FileCopyrightText: 2015 Marco Martin <mart@kde.org>
* SPDX-FileCopyrightText: 2021 Devin Lin <devin@kde.org>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
// SPDX-FileCopyrightText: 2015 Marco Martin <mart@kde.org>
// SPDX-FileCopyrightText: 2021-2023 Devin Lin <devin@kde.org>
// SPDX-License-Identifier: GPL-2.0-or-later
import QtQuick 2.4
import QtQuick.Layouts 1.1
@ -18,13 +15,10 @@ import org.kde.plasma.private.mobileshell as MobileShell
import org.kde.plasma.private.mobileshell.shellsettingsplugin as ShellSettings
import org.kde.plasma.private.mobileshell.windowplugin as WindowPlugin
PlasmaCore.ColorScope {
ContainmentItem {
id: root
Plasmoid.backgroundHints: PlasmaCore.Types.NoBackground
width: 480
height: PlasmaCore.Units.gridUnit * 2
// toggle visibility of navigation bar (show, or use gestures only)
Binding {
target: plasmoid.Window.window // assumed to be plasma-workspace "PanelView" component
@ -111,16 +105,20 @@ PlasmaCore.ColorScope {
// only opaque if there are no maximized windows on this screen
readonly property bool opaqueBar: WindowPlugin.WindowMaximizedTracker.showingWindow
// contrasting colour
colorGroup: opaqueBar ? PlasmaCore.Theme.NormalColorGroup : PlasmaCore.Theme.ComplementaryColorGroup
// load appropriate system navigation component
Loader {
id: navigationLoader
active: ShellSettings.Settings.navigationPanelEnabled
PlasmaCore.ColorScope {
anchors.fill: parent
sourceComponent: NavigationPanelComponent {
opaqueBar: root.opaqueBar
// contrasting colour
colorGroup: opaqueBar ? PlasmaCore.Theme.NormalColorGroup : PlasmaCore.Theme.ComplementaryColorGroup
// load appropriate system navigation component
Loader {
id: navigationLoader
active: ShellSettings.Settings.navigationPanelEnabled
anchors.fill: parent
sourceComponent: NavigationPanelComponent {
opaqueBar: root.opaqueBar
}
}
}
}

View file

@ -4,10 +4,10 @@
* SPDX-License-Identifier: GPL-2.0-or-later
*/
import QtQuick 2.0
import QtQuick.Layouts 1.1
import QtQuick
import QtQuick.Layouts
import org.kde.plasma.core 2.0 as PlasmaCore
import org.kde.plasma.core as PlasmaCore
Rectangle {
id: root
@ -15,13 +15,26 @@ Rectangle {
visible: false //adjust borders is run during setup. We want to avoid painting till completed
property Item containment
color: !containment || containment.backgroundHints == PlasmaCore.Types.NoBackground ? "transparent" : PlasmaCore.Theme.textColor
color: !containment || containment.plasmoid.backgroundHints == PlasmaCore.Types.NoBackground ? "transparent" : PlasmaCore.Theme.textColor
onContainmentChanged: {
containment.parent = root;
containment.visible = true;
containment.anchors.fill = root;
panel.backgroundHints = containment.backgroundHints;
}
Binding {
target: panel
property: "backgroundHints"
when: containment
value: {
if (!containment) {
return;
}
return containment.plasmoid.backgroundHints;
}
restoreMode: Binding.RestoreBinding
}
Component.onCompleted: {