1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2025-12-06 05:25:41 -05:00

network: big feature enrichment

- Dedicated view in settings
- VPN profile management
- Ethernet disconnection
- Turn prompts into floating windows
This commit is contained in:
bbedward
2025-11-29 10:00:05 -05:00
parent 9c887fbe63
commit 1d3fe81ff7
51 changed files with 9807 additions and 2500 deletions

View File

@@ -3,6 +3,7 @@ pragma ComponentBehavior: Bound
import QtQuick
import qs.Common
import qs.Modals.Settings
import qs.Services
import qs.Widgets
Rectangle {
@@ -10,59 +11,81 @@ Rectangle {
property int currentIndex: 0
property var parentModal: null
readonly property var sidebarItems: [
readonly property var allSidebarItems: [
{
"text": I18n.tr("Personalization"),
"icon": "person"
"icon": "person",
"tabIndex": 0
},
{
"text": I18n.tr("Time & Weather"),
"icon": "schedule"
"icon": "schedule",
"tabIndex": 1
},
{
"text": I18n.tr("Dank Bar"),
"icon": "toolbar"
"icon": "toolbar",
"tabIndex": 2
},
{
"text": I18n.tr("Widgets"),
"icon": "widgets"
"icon": "widgets",
"tabIndex": 3
},
{
"text": I18n.tr("Dock"),
"icon": "dock_to_bottom"
"icon": "dock_to_bottom",
"tabIndex": 4
},
{
"text": I18n.tr("Displays"),
"icon": "monitor"
"icon": "monitor",
"tabIndex": 5
},
{
"text": I18n.tr("Network"),
"icon": "wifi",
"dmsOnly": true,
"tabIndex": 6
},
{
"text": I18n.tr("Launcher"),
"icon": "apps"
"icon": "apps",
"tabIndex": 7
},
{
"text": I18n.tr("Theme & Colors"),
"icon": "palette"
"icon": "palette",
"tabIndex": 8
},
{
"text": I18n.tr("Power & Security"),
"icon": "power"
"icon": "power",
"tabIndex": 9
},
{
"text": I18n.tr("Plugins"),
"icon": "extension"
"icon": "extension",
"tabIndex": 10
},
{
"text": I18n.tr("About"),
"icon": "info"
"icon": "info",
"tabIndex": 11
}
]
readonly property var sidebarItems: allSidebarItems.filter(item => !item.dmsOnly || !NetworkService.usingLegacy)
function navigateNext() {
currentIndex = (currentIndex + 1) % sidebarItems.length;
const currentItemIndex = sidebarItems.findIndex(item => item.tabIndex === currentIndex);
const nextIndex = (currentItemIndex + 1) % sidebarItems.length;
currentIndex = sidebarItems[nextIndex].tabIndex;
}
function navigatePrevious() {
currentIndex = (currentIndex - 1 + sidebarItems.length) % sidebarItems.length;
const currentItemIndex = sidebarItems.findIndex(item => item.tabIndex === currentIndex);
const prevIndex = (currentItemIndex - 1 + sidebarItems.length) % sidebarItems.length;
currentIndex = sidebarItems[prevIndex].tabIndex;
}
width: 270
@@ -111,7 +134,7 @@ Rectangle {
required property int index
required property var modelData
property bool isActive: sidebarContainer.currentIndex === index
property bool isActive: sidebarContainer.currentIndex === modelData.tabIndex
width: parent.width - parent.leftPadding - parent.rightPadding
height: 44
@@ -147,7 +170,7 @@ Rectangle {
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onClicked: () => {
sidebarContainer.currentIndex = index;
sidebarContainer.currentIndex = modelData.tabIndex;
}
}