mirror of
https://invent.kde.org/graphics/okular
synced 2024-10-02 14:14:10 +00:00
Browser in left panel
remove toolbar text when doesn't fit
This commit is contained in:
parent
ab700b2453
commit
933e72ec03
|
@ -26,221 +26,225 @@ import org.kde.kquickcontrolsaddons 2.0
|
|||
import org.kde.okular 2.0 as Okular
|
||||
|
||||
|
||||
MobileComponents.OverlayDrawer {
|
||||
id: resourceBrowser
|
||||
property string currentUdi
|
||||
MobileComponents.SplitDrawer {
|
||||
id: mainDrawer
|
||||
anchors.fill: parent
|
||||
visible: true
|
||||
drawer: Documents {
|
||||
implicitWidth: mainDrawer.width/4 * 3
|
||||
}
|
||||
|
||||
MouseEventListener {
|
||||
id: pageArea
|
||||
MobileComponents.OverlayDrawer {
|
||||
id: resourceBrowser
|
||||
anchors.fill: parent
|
||||
//enabled: !delegate.interactive
|
||||
property Item delegate: delegate1
|
||||
property Item oldDelegate: delegate2
|
||||
property bool incrementing: delegate.delta > 0
|
||||
Connections {
|
||||
target: pageArea.delegate
|
||||
onDeltaChanged: {
|
||||
pageArea.oldDelegate.delta = pageArea.delegate.delta
|
||||
if (pageArea.delegate.delta > 0) {
|
||||
pageArea.oldDelegate.visible = true
|
||||
pageArea.oldDelegate.pageNumber = pageArea.delegate.pageNumber + 1
|
||||
documentItem.currentPage = pageArea.oldDelegate.pageNumber
|
||||
pageArea.oldDelegate.visible = !(pageArea.delegate.pageNumber == documentItem.pageCount-1)
|
||||
} else if (pageArea.delegate.delta < 0) {
|
||||
pageArea.oldDelegate.pageNumber = pageArea.delegate.pageNumber - 1
|
||||
documentItem.currentPage = pageArea.oldDelegate.pageNumber
|
||||
visible: true
|
||||
|
||||
pageArea.oldDelegate.visible = pageArea.delegate.pageNumber != 0
|
||||
MouseEventListener {
|
||||
id: pageArea
|
||||
anchors.fill: parent
|
||||
clip: true
|
||||
//enabled: !delegate.interactive
|
||||
property Item delegate: delegate1
|
||||
property Item oldDelegate: delegate2
|
||||
property bool incrementing: delegate.delta > 0
|
||||
Connections {
|
||||
target: pageArea.delegate
|
||||
onDeltaChanged: {
|
||||
pageArea.oldDelegate.delta = pageArea.delegate.delta
|
||||
if (pageArea.delegate.delta > 0) {
|
||||
pageArea.oldDelegate.visible = true
|
||||
pageArea.oldDelegate.pageNumber = pageArea.delegate.pageNumber + 1
|
||||
documentItem.currentPage = pageArea.oldDelegate.pageNumber
|
||||
pageArea.oldDelegate.visible = !(pageArea.delegate.pageNumber == documentItem.pageCount-1)
|
||||
} else if (pageArea.delegate.delta < 0) {
|
||||
pageArea.oldDelegate.pageNumber = pageArea.delegate.pageNumber - 1
|
||||
documentItem.currentPage = pageArea.oldDelegate.pageNumber
|
||||
|
||||
pageArea.oldDelegate.visible = pageArea.delegate.pageNumber != 0
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
property int startMouseScreenX
|
||||
property int startMouseScreenY
|
||||
onPressed: {
|
||||
startMouseScreenX = mouse.screenX
|
||||
startMouseScreenY = mouse.screenY
|
||||
}
|
||||
onPositionChanged: {
|
||||
if (Math.abs(mouse.screenX - startMouseScreenX) > width/5) {
|
||||
delegate.pageSwitchEnabled = true
|
||||
property int startMouseScreenX
|
||||
property int startMouseScreenY
|
||||
onPressed: {
|
||||
startMouseScreenX = mouse.screenX
|
||||
startMouseScreenY = mouse.screenY
|
||||
}
|
||||
}
|
||||
onReleased: {
|
||||
delegate.pageSwitchEnabled = false
|
||||
if (Math.abs(mouse.screenX - startMouseScreenX) < 20 &&
|
||||
Math.abs(mouse.screenY - startMouseScreenY) < 20) {
|
||||
if (browserFrame.state == "Closed") {
|
||||
browserFrame.state = "Hidden"
|
||||
} else {
|
||||
browserFrame.state = "Closed"
|
||||
}
|
||||
|
||||
} else if (oldDelegate.visible && delegate.delta != 0 &&
|
||||
(Math.abs(mouse.screenX - startMouseScreenX) > width/5) &&
|
||||
Math.abs(mouse.screenX - startMouseScreenX) > Math.abs(mouse.screenY - startMouseScreenY)) {
|
||||
oldDelegate = delegate
|
||||
delegate = (delegate == delegate1) ? delegate2 : delegate1
|
||||
switchAnimation.running = true
|
||||
}
|
||||
}
|
||||
FullScreenDelegate {
|
||||
id: delegate2
|
||||
width: parent.width
|
||||
height: parent.height
|
||||
}
|
||||
FullScreenDelegate {
|
||||
id: delegate1
|
||||
width: parent.width
|
||||
height: parent.height
|
||||
Component.onCompleted: pageNumber = documentItem.currentPage
|
||||
}
|
||||
|
||||
SequentialAnimation {
|
||||
id: switchAnimation
|
||||
NumberAnimation {
|
||||
target: pageArea.oldDelegate
|
||||
properties: "x"
|
||||
to: pageArea.incrementing ? -pageArea.oldDelegate.width : pageArea.oldDelegate.width
|
||||
easing.type: Easing.InQuad
|
||||
duration: 250
|
||||
}
|
||||
ScriptAction {
|
||||
script: {
|
||||
pageArea.oldDelegate.z = 0
|
||||
pageArea.delegate.z = 10
|
||||
pageArea.oldDelegate.x = 0
|
||||
pageArea.delegate.x = 0
|
||||
onPositionChanged: {
|
||||
if (Math.abs(mouse.screenX - startMouseScreenX) > width/5) {
|
||||
delegate.pageSwitchEnabled = true
|
||||
}
|
||||
}
|
||||
ScriptAction {
|
||||
script: delegate1.delta = delegate2.delta = 0
|
||||
onReleased: {
|
||||
delegate.pageSwitchEnabled = false
|
||||
if (Math.abs(mouse.screenX - startMouseScreenX) < 20 &&
|
||||
Math.abs(mouse.screenY - startMouseScreenY) < 20) {
|
||||
if (browserFrame.state == "Closed") {
|
||||
browserFrame.state = "Hidden"
|
||||
} else {
|
||||
browserFrame.state = "Closed"
|
||||
}
|
||||
|
||||
} else if (oldDelegate.visible && delegate.delta != 0 &&
|
||||
(Math.abs(mouse.screenX - startMouseScreenX) > width/5) &&
|
||||
Math.abs(mouse.screenX - startMouseScreenX) > Math.abs(mouse.screenY - startMouseScreenY)) {
|
||||
oldDelegate = delegate
|
||||
delegate = (delegate == delegate1) ? delegate2 : delegate1
|
||||
switchAnimation.running = true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
PlasmaComponents.ScrollBar {
|
||||
flickableItem: pageArea.delegate.flickable
|
||||
orientation: Qt.Vertical
|
||||
anchors {
|
||||
right: pageArea.right
|
||||
top: pageArea.top
|
||||
bottom: pageArea.bottom
|
||||
left: undefined
|
||||
}
|
||||
}
|
||||
PlasmaComponents.ScrollBar {
|
||||
flickableItem: pageArea.delegate.flickable
|
||||
orientation: Qt.Horizontal
|
||||
anchors {
|
||||
left: pageArea.left
|
||||
right: pageArea.right
|
||||
bottom: pageArea.bottom
|
||||
top: undefined
|
||||
}
|
||||
}
|
||||
|
||||
drawer: Item {
|
||||
id: browserFrame
|
||||
anchors.fill: parent
|
||||
state: "Hidden"
|
||||
|
||||
PlasmaComponents.ToolBar {
|
||||
id: mainToolBar
|
||||
|
||||
height: units.gridUnit * 2
|
||||
y: pageStack.currentPage.contentY <= 0 ? 0 : -height
|
||||
transform: Translate {
|
||||
y: Math.max(0, -pageStack.currentPage.contentY)
|
||||
FullScreenDelegate {
|
||||
id: delegate2
|
||||
width: parent.width
|
||||
height: parent.height
|
||||
}
|
||||
tools: pageStack.currentPage.tools
|
||||
Behavior on y {
|
||||
FullScreenDelegate {
|
||||
id: delegate1
|
||||
width: parent.width
|
||||
height: parent.height
|
||||
Component.onCompleted: pageNumber = documentItem.currentPage
|
||||
}
|
||||
|
||||
SequentialAnimation {
|
||||
id: switchAnimation
|
||||
NumberAnimation {
|
||||
target: pageArea.oldDelegate
|
||||
properties: "x"
|
||||
to: pageArea.incrementing ? -pageArea.oldDelegate.width : pageArea.oldDelegate.width
|
||||
easing.type: Easing.InQuad
|
||||
duration: 250
|
||||
}
|
||||
}
|
||||
anchors {
|
||||
left: parent.left
|
||||
right: parent.right
|
||||
ScriptAction {
|
||||
script: {
|
||||
pageArea.oldDelegate.z = 0
|
||||
pageArea.delegate.z = 10
|
||||
pageArea.oldDelegate.x = 0
|
||||
pageArea.delegate.x = 0
|
||||
}
|
||||
}
|
||||
ScriptAction {
|
||||
script: delegate1.delta = delegate2.delta = 0
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
PlasmaComponents.PageStack {
|
||||
id: pageStack
|
||||
PlasmaComponents.ScrollBar {
|
||||
flickableItem: pageArea.delegate.flickable
|
||||
orientation: Qt.Vertical
|
||||
anchors {
|
||||
left: parent.left
|
||||
top: mainToolBar.bottom
|
||||
right: parent.right
|
||||
bottom: tabsToolbar.top
|
||||
}
|
||||
clip: true
|
||||
toolBar: mainToolBar
|
||||
}
|
||||
|
||||
Connections {
|
||||
id: scrollConnection
|
||||
property int oldContentY:0
|
||||
target: pageStack.currentPage
|
||||
|
||||
onContentYChanged: {
|
||||
scrollConnection.oldContentY = pageStack.currentPage.contentY
|
||||
right: pageArea.right
|
||||
top: pageArea.top
|
||||
bottom: pageArea.bottom
|
||||
left: undefined
|
||||
}
|
||||
}
|
||||
|
||||
PlasmaComponents.ToolBar {
|
||||
id: tabsToolbar
|
||||
y: parent.height - tabsToolbar.height*5
|
||||
height: mainTabBar.height
|
||||
PlasmaComponents.ScrollBar {
|
||||
flickableItem: pageArea.delegate.flickable
|
||||
orientation: Qt.Horizontal
|
||||
anchors {
|
||||
left: pageArea.left
|
||||
right: pageArea.right
|
||||
bottom: pageArea.bottom
|
||||
top: undefined
|
||||
bottom: browserFrame.bottom
|
||||
left: parent.left
|
||||
right: parent.right
|
||||
}
|
||||
tools: Item {
|
||||
width: parent.width
|
||||
height: childrenRect.height
|
||||
PlasmaComponents.TabBar {
|
||||
id: mainTabBar
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
width: Math.min(parent.width, implicitWidth)
|
||||
tabPosition: Qt.BottomEdge
|
||||
PlasmaComponents.TabButton {
|
||||
id: documentsButton
|
||||
text: i18n("Documents")
|
||||
onCheckedChanged: {
|
||||
if (checked) {
|
||||
pageStack.replace(Qt.createComponent("Documents.qml"))
|
||||
}
|
||||
|
||||
drawer: Item {
|
||||
id: browserFrame
|
||||
anchors.fill: parent
|
||||
state: "Hidden"
|
||||
|
||||
PlasmaComponents.ToolBar {
|
||||
id: mainToolBar
|
||||
|
||||
height: units.gridUnit * 2
|
||||
y: pageStack.currentPage.contentY <= 0 ? 0 : -height
|
||||
transform: Translate {
|
||||
y: Math.max(0, -pageStack.currentPage.contentY)
|
||||
}
|
||||
tools: pageStack.currentPage.tools
|
||||
Behavior on y {
|
||||
NumberAnimation {
|
||||
duration: 250
|
||||
}
|
||||
}
|
||||
anchors {
|
||||
left: parent.left
|
||||
right: parent.right
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
PlasmaComponents.PageStack {
|
||||
id: pageStack
|
||||
anchors {
|
||||
left: parent.left
|
||||
top: mainToolBar.bottom
|
||||
right: parent.right
|
||||
bottom: tabsToolbar.top
|
||||
}
|
||||
clip: true
|
||||
toolBar: mainToolBar
|
||||
}
|
||||
|
||||
Connections {
|
||||
id: scrollConnection
|
||||
property int oldContentY:0
|
||||
target: pageStack.currentPage
|
||||
|
||||
onContentYChanged: {
|
||||
scrollConnection.oldContentY = pageStack.currentPage.contentY
|
||||
}
|
||||
}
|
||||
|
||||
PlasmaComponents.ToolBar {
|
||||
id: tabsToolbar
|
||||
y: parent.height - tabsToolbar.height*5
|
||||
height: mainTabBar.height
|
||||
anchors {
|
||||
top: undefined
|
||||
bottom: browserFrame.bottom
|
||||
left: parent.left
|
||||
right: parent.right
|
||||
}
|
||||
tools: Item {
|
||||
width: parent.width
|
||||
height: childrenRect.height
|
||||
PlasmaComponents.TabBar {
|
||||
id: mainTabBar
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
width: Math.min(parent.width, implicitWidth)
|
||||
tabPosition: Qt.BottomEdge
|
||||
PlasmaComponents.TabButton {
|
||||
id: thumbnailsButton
|
||||
text: tabsToolbar.width > units.gridUnit * 30 ? i18n("Thumbnails") : ""
|
||||
iconSource: "view-preview"
|
||||
onCheckedChanged: {
|
||||
if (checked) {
|
||||
pageStack.replace(Qt.createComponent("Thumbnails.qml"))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
PlasmaComponents.TabButton {
|
||||
id: thumbnailsButton
|
||||
text: i18n("Thumbnails")
|
||||
onCheckedChanged: {
|
||||
if (checked) {
|
||||
pageStack.replace(Qt.createComponent("Thumbnails.qml"))
|
||||
PlasmaComponents.TabButton {
|
||||
id: tocButton
|
||||
enabled: documentItem.tableOfContents.count > 0
|
||||
text: tabsToolbar.width > units.gridUnit * 30 ? i18n("Table of contents") : ""
|
||||
iconSource: "view-table-of-contents-ltr"
|
||||
onCheckedChanged: {
|
||||
if (checked) {
|
||||
pageStack.replace(Qt.createComponent("TableOfContents.qml"))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
PlasmaComponents.TabButton {
|
||||
id: tocButton
|
||||
enabled: documentItem.tableOfContents.count > 0
|
||||
text: i18n("Table of contents")
|
||||
onCheckedChanged: {
|
||||
if (checked) {
|
||||
pageStack.replace(Qt.createComponent("TableOfContents.qml"))
|
||||
}
|
||||
}
|
||||
}
|
||||
PlasmaComponents.TabButton {
|
||||
id: bookmarksButton
|
||||
enabled: documentItem.bookmarkedPages.length > 0
|
||||
text: i18n("Bookmarks")
|
||||
onCheckedChanged: {
|
||||
if (checked) {
|
||||
pageStack.replace(Qt.createComponent("Bookmarks.qml"))
|
||||
PlasmaComponents.TabButton {
|
||||
id: bookmarksButton
|
||||
enabled: documentItem.bookmarkedPages.length > 0
|
||||
text: tabsToolbar.width > units.gridUnit * 30 ? i18n("Bookmarks") : ""
|
||||
iconSource: "bookmarks-organize"
|
||||
onCheckedChanged: {
|
||||
if (checked) {
|
||||
pageStack.replace(Qt.createComponent("Bookmarks.qml"))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -249,4 +253,3 @@ MobileComponents.OverlayDrawer {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -27,6 +27,7 @@ import Qt.labs.folderlistmodel 2.1
|
|||
PlasmaComponents.Page {
|
||||
id: root
|
||||
anchors.fill: parent
|
||||
visible: true
|
||||
property Item view: filesView
|
||||
property alias contentY: filesView.contentY
|
||||
property alias contentHeight: filesView.contentHeight
|
||||
|
@ -38,7 +39,6 @@ PlasmaComponents.Page {
|
|||
height: searchField.height
|
||||
PlasmaComponents.TextField {
|
||||
id: searchField
|
||||
enabled: documentItem.supportsSearch
|
||||
anchors.centerIn: parent
|
||||
onTextChanged: {
|
||||
if (text.length > 2) {
|
||||
|
@ -96,7 +96,7 @@ PlasmaComponents.Page {
|
|||
}
|
||||
onClicked: {
|
||||
documentItem.path = model.filePath;
|
||||
resourceBrowser.open = false;
|
||||
mainDrawer.open = false;
|
||||
mainTabBar.currentTab = thumbnailsButton;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue