replace tabgroup
This commit is contained in:
parent
4177681d46
commit
c67558e03b
@ -18,7 +18,7 @@ include(ECMOptionalAddSubdirectory)
|
|||||||
include(FeatureSummary)
|
include(FeatureSummary)
|
||||||
include(CheckIncludeFiles)
|
include(CheckIncludeFiles)
|
||||||
|
|
||||||
set(KF5_MIN_VERSION "6.0.0")
|
set(KF5_MIN_VERSION "5.2.0")
|
||||||
find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS
|
find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS
|
||||||
Plasma
|
Plasma
|
||||||
I18n
|
I18n
|
||||||
|
@ -22,12 +22,12 @@
|
|||||||
import QtQuick 2.3
|
import QtQuick 2.3
|
||||||
import org.kde.plasma.plasmoid 2.0
|
import org.kde.plasma.plasmoid 2.0
|
||||||
import QtQuick.Layouts 1.1
|
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.ksvg as KSvg
|
||||||
import org.kde.plasma.plasma5support as Plasma5Support
|
import org.kde.plasma.plasma5support as Plasma5Support
|
||||||
import org.kde.kirigami as Kirigami
|
import org.kde.kirigami 2.20 as Kirigami
|
||||||
import org.kde.plasma.components as PlasmaComponents
|
import org.kde.plasma.components 3.0 as PlasmaComponents
|
||||||
import org.kde.plasma.extras as PlasmaExtras
|
import org.kde.plasma.extras 2.0 as PlasmaExtras
|
||||||
import org.kde.kquickcontrolsaddons 2.0
|
import org.kde.kquickcontrolsaddons 2.0
|
||||||
|
|
||||||
import org.kde.plasma.private.kicker 0.1 as Kicker
|
import org.kde.plasma.private.kicker 0.1 as Kicker
|
||||||
@ -125,274 +125,181 @@ Item {
|
|||||||
id: mainArea
|
id: mainArea
|
||||||
anchors.topMargin: mainTabGroup.state == "top" ? Kirigami.Units.smallSpacing : 0
|
anchors.topMargin: mainTabGroup.state == "top" ? Kirigami.Units.smallSpacing : 0
|
||||||
|
|
||||||
PlasmaComponents.TabGroup {
|
Kirigami.Page {
|
||||||
id: mainTabGroup
|
id: mainPage
|
||||||
currentTab: favoritesPage
|
|
||||||
|
|
||||||
anchors {
|
// Set anchors
|
||||||
fill: parent
|
anchors.fill: parent
|
||||||
}
|
|
||||||
|
|
||||||
//pages
|
// Create a row for the tab buttons
|
||||||
FavoritesView {
|
Kirigami.PageRow {
|
||||||
id: favoritesPage
|
id: tabRow
|
||||||
}
|
|
||||||
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")
|
|
||||||
}
|
|
||||||
|
|
||||||
state: {
|
// Set row orientation based on plasmoid location
|
||||||
switch (plasmoid.location) {
|
orientation: {
|
||||||
case PlasmaCore.Types.LeftEdge:
|
switch (plasmoid.location) {
|
||||||
return LayoutMirroring.enabled ? "right" : "left";
|
case PlasmaCore.Types.LeftEdge:
|
||||||
case PlasmaCore.Types.TopEdge:
|
case PlasmaCore.Types.RightEdge:
|
||||||
return "top";
|
return Qt.Horizontal
|
||||||
case PlasmaCore.Types.RightEdge:
|
default:
|
||||||
return LayoutMirroring.enabled ? "left" : "right";
|
return Qt.Vertical
|
||||||
case PlasmaCore.Types.BottomEdge:
|
}
|
||||||
default:
|
}
|
||||||
return "bottom";
|
|
||||||
|
// 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: [
|
states: [
|
||||||
State {
|
State {
|
||||||
name: "left"
|
name: "left"
|
||||||
AnchorChanges {
|
PropertyChanges {
|
||||||
target: header
|
target: tabRow
|
||||||
anchors {
|
rotation: 0
|
||||||
left: root.left
|
|
||||||
top: undefined
|
|
||||||
right: root.right
|
|
||||||
bottom: root.bottom
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
PropertyChanges {
|
PropertyChanges {
|
||||||
target: header
|
target: tabRow
|
||||||
width: header.implicitWidth
|
|
||||||
location: PlasmaExtras.PlasmoidHeading.Location.Footer
|
|
||||||
}
|
|
||||||
AnchorChanges {
|
|
||||||
target: mainArea
|
|
||||||
anchors {
|
anchors {
|
||||||
left: tabBar.right
|
left: parent.left
|
||||||
top: root.top
|
top: parent.top
|
||||||
right: root.right
|
bottom: parent.bottom
|
||||||
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
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
State {
|
State {
|
||||||
name: "top"
|
name: "top"
|
||||||
AnchorChanges {
|
PropertyChanges {
|
||||||
target: header
|
target: tabRow
|
||||||
anchors {
|
rotation: -90
|
||||||
left: root.left
|
|
||||||
top: undefined
|
|
||||||
right: root.right
|
|
||||||
bottom: root.bottom
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
PropertyChanges {
|
PropertyChanges {
|
||||||
target: header
|
target: tabRow
|
||||||
height: header.implicitHeight
|
|
||||||
location: PlasmaExtras.PlasmoidHeading.Location.Footer
|
|
||||||
}
|
|
||||||
AnchorChanges {
|
|
||||||
target: mainArea
|
|
||||||
anchors {
|
anchors {
|
||||||
left: root.left
|
top: parent.top
|
||||||
top: tabBar.bottom
|
left: parent.left
|
||||||
right: root.right
|
right: parent.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
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
State {
|
State {
|
||||||
name: "right"
|
name: "right"
|
||||||
AnchorChanges {
|
PropertyChanges {
|
||||||
target: header
|
target: tabRow
|
||||||
anchors {
|
rotation: 180
|
||||||
left: root.left
|
|
||||||
top: undefined
|
|
||||||
right: root.right
|
|
||||||
bottom: root.bottom
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
PropertyChanges {
|
PropertyChanges {
|
||||||
target: header
|
target: tabRow
|
||||||
width: header.implicitWidth
|
|
||||||
location: PlasmaExtras.PlasmoidHeading.Location.Footer
|
|
||||||
}
|
|
||||||
AnchorChanges {
|
|
||||||
target: mainArea
|
|
||||||
anchors {
|
anchors {
|
||||||
left: root.left
|
right: parent.right
|
||||||
top: root.top
|
top: parent.top
|
||||||
right: tabBar.left
|
bottom: parent.bottom
|
||||||
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
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
State {
|
State {
|
||||||
name: "bottom"
|
name: "bottom"
|
||||||
AnchorChanges {
|
PropertyChanges {
|
||||||
target: header
|
target: tabRow
|
||||||
anchors {
|
rotation: 90
|
||||||
left: root.left
|
|
||||||
top: root.top
|
|
||||||
right: root.right
|
|
||||||
bottom: undefined
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
PropertyChanges {
|
PropertyChanges {
|
||||||
target: header
|
target: tabRow
|
||||||
height: header.implicitHeight
|
|
||||||
location: PlasmaExtras.PlasmoidHeading.Location.Header
|
|
||||||
}
|
|
||||||
AnchorChanges {
|
|
||||||
target: mainArea
|
|
||||||
anchors {
|
anchors {
|
||||||
left: root.left
|
bottom: parent.bottom
|
||||||
top: header.bottom
|
left: parent.left
|
||||||
right: root.right
|
right: parent.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
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
} // 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 {
|
PlasmaComponents.TabBar {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user