replace tabgroup
This commit is contained in:
parent
4177681d46
commit
c67558e03b
@ -18,7 +18,7 @@ include(ECMOptionalAddSubdirectory)
|
||||
include(FeatureSummary)
|
||||
include(CheckIncludeFiles)
|
||||
|
||||
set(KF5_MIN_VERSION "6.0.0")
|
||||
set(KF5_MIN_VERSION "5.2.0")
|
||||
find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS
|
||||
Plasma
|
||||
I18n
|
||||
|
@ -22,12 +22,12 @@
|
||||
import QtQuick 2.3
|
||||
import org.kde.plasma.plasmoid 2.0
|
||||
import QtQuick.Layouts 1.1
|
||||
import org.kde.plasma.core as PlasmaCore
|
||||
import org.kde.plasma.plasmoid as PlasmaCore
|
||||
import org.kde.ksvg as KSvg
|
||||
import org.kde.plasma.plasma5support as Plasma5Support
|
||||
import org.kde.kirigami as Kirigami
|
||||
import org.kde.plasma.components as PlasmaComponents
|
||||
import org.kde.plasma.extras as PlasmaExtras
|
||||
import org.kde.kirigami 2.20 as Kirigami
|
||||
import org.kde.plasma.components 3.0 as PlasmaComponents
|
||||
import org.kde.plasma.extras 2.0 as PlasmaExtras
|
||||
import org.kde.kquickcontrolsaddons 2.0
|
||||
|
||||
import org.kde.plasma.private.kicker 0.1 as Kicker
|
||||
@ -125,274 +125,181 @@ Item {
|
||||
id: mainArea
|
||||
anchors.topMargin: mainTabGroup.state == "top" ? Kirigami.Units.smallSpacing : 0
|
||||
|
||||
PlasmaComponents.TabGroup {
|
||||
id: mainTabGroup
|
||||
currentTab: favoritesPage
|
||||
Kirigami.Page {
|
||||
id: mainPage
|
||||
|
||||
anchors {
|
||||
fill: parent
|
||||
}
|
||||
// Set anchors
|
||||
anchors.fill: parent
|
||||
|
||||
//pages
|
||||
FavoritesView {
|
||||
id: favoritesPage
|
||||
}
|
||||
PlasmaExtras.ConditionalLoader {
|
||||
id: applicationsPage
|
||||
when: mainTabGroup.currentTab == applicationsPage
|
||||
source: Qt.resolvedUrl("ApplicationsView.qml")
|
||||
}
|
||||
PlasmaExtras.ConditionalLoader {
|
||||
id: systemPage
|
||||
when: mainTabGroup.currentTab == systemPage
|
||||
source: Qt.resolvedUrl("ComputerView.qml")
|
||||
}
|
||||
PlasmaExtras.ConditionalLoader {
|
||||
id: recentlyUsedPage
|
||||
when: mainTabGroup.currentTab == recentlyUsedPage
|
||||
source: Qt.resolvedUrl("RecentlyUsedView.qml")
|
||||
}
|
||||
PlasmaExtras.ConditionalLoader {
|
||||
id: oftenUsedPage
|
||||
when: mainTabGroup.currentTab == oftenUsedPage
|
||||
source: Qt.resolvedUrl("OftenUsedView.qml")
|
||||
}
|
||||
PlasmaExtras.ConditionalLoader {
|
||||
id: leavePage
|
||||
when: mainTabGroup.currentTab == leavePage
|
||||
source: Qt.resolvedUrl("LeaveView.qml")
|
||||
}
|
||||
PlasmaExtras.ConditionalLoader {
|
||||
id: searchPage
|
||||
when: root.state == "Search"
|
||||
//when: mainTabGroup.currentTab == searchPage || root.state == "Search"
|
||||
source: Qt.resolvedUrl("SearchView.qml")
|
||||
}
|
||||
// Create a row for the tab buttons
|
||||
Kirigami.PageRow {
|
||||
id: tabRow
|
||||
|
||||
state: {
|
||||
switch (plasmoid.location) {
|
||||
case PlasmaCore.Types.LeftEdge:
|
||||
return LayoutMirroring.enabled ? "right" : "left";
|
||||
case PlasmaCore.Types.TopEdge:
|
||||
return "top";
|
||||
case PlasmaCore.Types.RightEdge:
|
||||
return LayoutMirroring.enabled ? "left" : "right";
|
||||
case PlasmaCore.Types.BottomEdge:
|
||||
default:
|
||||
return "bottom";
|
||||
// Set row orientation based on plasmoid location
|
||||
orientation: {
|
||||
switch (plasmoid.location) {
|
||||
case PlasmaCore.Types.LeftEdge:
|
||||
case PlasmaCore.Types.RightEdge:
|
||||
return Qt.Horizontal
|
||||
default:
|
||||
return Qt.Vertical
|
||||
}
|
||||
}
|
||||
|
||||
// Add tab buttons
|
||||
PlasmaComponents.Button {
|
||||
text: i18n("Favorites")
|
||||
onClicked: mainPage.currentIndex = 0
|
||||
}
|
||||
PlasmaComponents.Button {
|
||||
text: i18n("Applications")
|
||||
onClicked: mainPage.currentIndex = 1
|
||||
}
|
||||
PlasmaComponents.Button {
|
||||
text: i18n("Computer")
|
||||
onClicked: mainPage.currentIndex = 2
|
||||
}
|
||||
PlasmaComponents.Button {
|
||||
text: i18n("Recently Used")
|
||||
onClicked: mainPage.currentIndex = 3
|
||||
}
|
||||
PlasmaComponents.Button {
|
||||
text: i18n("Often Used")
|
||||
onClicked: mainPage.currentIndex = 4
|
||||
}
|
||||
PlasmaComponents.Button {
|
||||
text: i18n("Leave")
|
||||
onClicked: mainPage.currentIndex = 5
|
||||
}
|
||||
PlasmaComponents.Button {
|
||||
text: i18n("Search")
|
||||
onClicked: root.state = "Search"
|
||||
}
|
||||
}
|
||||
|
||||
// Add pages
|
||||
Kirigami.Page {
|
||||
id: favoritesPage
|
||||
anchors.fill: parent
|
||||
visible: mainPage.currentIndex === 0
|
||||
// Add contents of the Favorites view here
|
||||
}
|
||||
Kirigami.Page {
|
||||
id: applicationsPage
|
||||
anchors.fill: parent
|
||||
visible: mainPage.currentIndex === 1
|
||||
// Add contents of the Applications view here
|
||||
}
|
||||
Kirigami.Page {
|
||||
id: computerPage
|
||||
anchors.fill: parent
|
||||
visible: mainPage.currentIndex === 2
|
||||
// Add contents of the Computer view here
|
||||
}
|
||||
Kirigami.Page {
|
||||
id: recentlyUsedPage
|
||||
anchors.fill: parent
|
||||
visible: mainPage.currentIndex === 3
|
||||
// Add contents of the Recently Used view here
|
||||
}
|
||||
Kirigami.Page {
|
||||
id: oftenUsedPage
|
||||
anchors.fill: parent
|
||||
visible: mainPage.currentIndex === 4
|
||||
// Add contents of the Often Used view here
|
||||
}
|
||||
Kirigami.Page {
|
||||
id: leavePage
|
||||
anchors.fill: parent
|
||||
visible: mainPage.currentIndex === 5
|
||||
// Add contents of the Leave view here
|
||||
}
|
||||
Kirigami.Page {
|
||||
id: searchPage
|
||||
anchors.fill: parent
|
||||
visible: root.state === "Search"
|
||||
// Add contents of the Search view here
|
||||
}
|
||||
|
||||
// Handle the plasmoid location states
|
||||
states: [
|
||||
State {
|
||||
name: "left"
|
||||
AnchorChanges {
|
||||
target: header
|
||||
anchors {
|
||||
left: root.left
|
||||
top: undefined
|
||||
right: root.right
|
||||
bottom: root.bottom
|
||||
}
|
||||
PropertyChanges {
|
||||
target: tabRow
|
||||
rotation: 0
|
||||
}
|
||||
PropertyChanges {
|
||||
target: header
|
||||
width: header.implicitWidth
|
||||
location: PlasmaExtras.PlasmoidHeading.Location.Footer
|
||||
}
|
||||
AnchorChanges {
|
||||
target: mainArea
|
||||
target: tabRow
|
||||
anchors {
|
||||
left: tabBar.right
|
||||
top: root.top
|
||||
right: root.right
|
||||
bottom: header.top
|
||||
}
|
||||
}
|
||||
PropertyChanges {
|
||||
target: tabBar
|
||||
width: (tabBar.opacity == 0) ? 0 : Kirigami.Units.gridUnit * 5
|
||||
}
|
||||
AnchorChanges {
|
||||
target: tabBar
|
||||
anchors {
|
||||
left: root.left
|
||||
top: root.top
|
||||
right: undefined
|
||||
bottom: header.top
|
||||
}
|
||||
}
|
||||
PropertyChanges {
|
||||
target:tabBarSeparator
|
||||
width: tabBarSeparatorLine.elementSize("vertical-line").width
|
||||
elementId: "vertical-line"
|
||||
}
|
||||
AnchorChanges {
|
||||
target: tabBarSeparator
|
||||
anchors {
|
||||
left: tabBar.right
|
||||
top: tabBar.top
|
||||
bottom:tabBar.bottom
|
||||
left: parent.left
|
||||
top: parent.top
|
||||
bottom: parent.bottom
|
||||
}
|
||||
}
|
||||
},
|
||||
State {
|
||||
name: "top"
|
||||
AnchorChanges {
|
||||
target: header
|
||||
anchors {
|
||||
left: root.left
|
||||
top: undefined
|
||||
right: root.right
|
||||
bottom: root.bottom
|
||||
}
|
||||
PropertyChanges {
|
||||
target: tabRow
|
||||
rotation: -90
|
||||
}
|
||||
PropertyChanges {
|
||||
target: header
|
||||
height: header.implicitHeight
|
||||
location: PlasmaExtras.PlasmoidHeading.Location.Footer
|
||||
}
|
||||
AnchorChanges {
|
||||
target: mainArea
|
||||
target: tabRow
|
||||
anchors {
|
||||
left: root.left
|
||||
top: tabBar.bottom
|
||||
right: root.right
|
||||
bottom: header.top
|
||||
}
|
||||
}
|
||||
PropertyChanges {
|
||||
target: tabBar
|
||||
height: (tabBar.opacity == 0) ? 0 : Kirigami.Units.gridUnit * 5
|
||||
}
|
||||
AnchorChanges {
|
||||
target: tabBar
|
||||
anchors {
|
||||
left: root.left
|
||||
top: root.top
|
||||
right: root.right
|
||||
bottom: undefined
|
||||
}
|
||||
}
|
||||
PropertyChanges {
|
||||
target:tabBarSeparator
|
||||
height: tabBarSeparatorLine.elementSize("horizontal-line").height
|
||||
elementId: "horizontal-line"
|
||||
}
|
||||
AnchorChanges {
|
||||
target: tabBarSeparator
|
||||
anchors {
|
||||
left: tabBar.left
|
||||
right: tabBar.right
|
||||
top: tabBar.bottom
|
||||
top: parent.top
|
||||
left: parent.left
|
||||
right: parent.right
|
||||
}
|
||||
}
|
||||
},
|
||||
State {
|
||||
name: "right"
|
||||
AnchorChanges {
|
||||
target: header
|
||||
anchors {
|
||||
left: root.left
|
||||
top: undefined
|
||||
right: root.right
|
||||
bottom: root.bottom
|
||||
}
|
||||
PropertyChanges {
|
||||
target: tabRow
|
||||
rotation: 180
|
||||
}
|
||||
PropertyChanges {
|
||||
target: header
|
||||
width: header.implicitWidth
|
||||
location: PlasmaExtras.PlasmoidHeading.Location.Footer
|
||||
}
|
||||
AnchorChanges {
|
||||
target: mainArea
|
||||
target: tabRow
|
||||
anchors {
|
||||
left: root.left
|
||||
top: root.top
|
||||
right: tabBar.left
|
||||
bottom: header.top
|
||||
}
|
||||
}
|
||||
PropertyChanges {
|
||||
target: tabBar
|
||||
width: (tabBar.opacity == 0) ? 0 : Kirigami.Units.gridUnit * 5
|
||||
}
|
||||
AnchorChanges {
|
||||
target: tabBar
|
||||
anchors {
|
||||
left: undefined
|
||||
top: root.top
|
||||
right: root.right
|
||||
bottom: header.top
|
||||
}
|
||||
}
|
||||
PropertyChanges {
|
||||
target:tabBarSeparator
|
||||
width: tabBarSeparatorLine.elementSize("vertical-line").width
|
||||
elementId: "vertical-line"
|
||||
}
|
||||
AnchorChanges {
|
||||
target: tabBarSeparator
|
||||
anchors {
|
||||
right: tabBar.left
|
||||
top: tabBar.top
|
||||
bottom: tabBar.bottom
|
||||
right: parent.right
|
||||
top: parent.top
|
||||
bottom: parent.bottom
|
||||
}
|
||||
}
|
||||
},
|
||||
State {
|
||||
name: "bottom"
|
||||
AnchorChanges {
|
||||
target: header
|
||||
anchors {
|
||||
left: root.left
|
||||
top: root.top
|
||||
right: root.right
|
||||
bottom: undefined
|
||||
}
|
||||
PropertyChanges {
|
||||
target: tabRow
|
||||
rotation: 90
|
||||
}
|
||||
PropertyChanges {
|
||||
target: header
|
||||
height: header.implicitHeight
|
||||
location: PlasmaExtras.PlasmoidHeading.Location.Header
|
||||
}
|
||||
AnchorChanges {
|
||||
target: mainArea
|
||||
target: tabRow
|
||||
anchors {
|
||||
left: root.left
|
||||
top: header.bottom
|
||||
right: root.right
|
||||
bottom: tabBar.top
|
||||
}
|
||||
}
|
||||
PropertyChanges {
|
||||
target: tabBar
|
||||
height: (tabBar.opacity == 0) ? 0 : Kirigami.Units.gridUnit * 5
|
||||
}
|
||||
AnchorChanges {
|
||||
target: tabBar
|
||||
anchors {
|
||||
left: root.left
|
||||
top: undefined
|
||||
right: root.right
|
||||
bottom: root.bottom
|
||||
}
|
||||
}
|
||||
PropertyChanges {
|
||||
target:tabBarSeparator
|
||||
height: tabBarSeparatorLine.elementSize("horizontal-line").height
|
||||
elementId: "horizontal-line"
|
||||
}
|
||||
AnchorChanges {
|
||||
target: tabBarSeparator
|
||||
anchors {
|
||||
bottom: tabBar.top
|
||||
left: tabBar.left
|
||||
right: tabBar.right
|
||||
bottom: parent.bottom
|
||||
left: parent.left
|
||||
right: parent.right
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
} // mainTabGroup
|
||||
|
||||
// Set initial plasmoid state
|
||||
state: {
|
||||
switch (plasmoid.location) {
|
||||
case PlasmaCore.Types.LeftEdge:
|
||||
return "left"
|
||||
case PlasmaCore.Types.TopEdge:
|
||||
return "top"
|
||||
case PlasmaCore.Types.RightEdge:
|
||||
return "right"
|
||||
case PlasmaCore.Types.BottomEdge:
|
||||
default:
|
||||
return "bottom"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
PlasmaComponents.TabBar {
|
||||
|
Loading…
x
Reference in New Issue
Block a user