parent
f9917aa9fe
commit
eb1f73800e
9 changed files with 160 additions and 316 deletions
@ -1,174 +0,0 @@ |
|||||||
/* |
|
||||||
* Copyright 2012 Marco Martin <mart@kde.org> |
|
||||||
* |
|
||||||
* This program is free software; you can redistribute it and/or modify |
|
||||||
* it under the terms of the GNU General Public License as |
|
||||||
* published by the Free Software Foundation; either version 2, |
|
||||||
* or (at your option) any later version. |
|
||||||
* |
|
||||||
* This program is distributed in the hope that it will be useful, |
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
||||||
* GNU General Public License for more details |
|
||||||
* |
|
||||||
* You should have received a copy of the GNU General Public |
|
||||||
* License along with this program; if not, write to the |
|
||||||
* Free Software Foundation, Inc., |
|
||||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
|
||||||
*/ |
|
||||||
|
|
||||||
import QtQuick 2.1 |
|
||||||
import org.kde.plasma.components 2.0 as PlasmaComponents |
|
||||||
import org.kde.plasma.extras 2.0 as PlasmaExtras |
|
||||||
import org.kde.plasma.core 2.0 as PlasmaCore |
|
||||||
import org.kde.plasma.mobilecomponents 0.2 as MobileComponents |
|
||||||
import org.kde.kquickcontrolsaddons 2.0 |
|
||||||
import org.kde.okular 2.0 as Okular |
|
||||||
|
|
||||||
|
|
||||||
MobileComponents.SplitDrawer { |
|
||||||
id: splitDrawer |
|
||||||
anchors.fill: parent |
|
||||||
visible: true |
|
||||||
|
|
||||||
property alias splitDrawerOpen: splitDrawer.opened |
|
||||||
property alias overlayDrawerOpen: resourceBrowser.opened |
|
||||||
property Item globalDrawer: splitDrawer |
|
||||||
property Item contextDrawer: resourceDrawer |
|
||||||
|
|
||||||
//An alias doesn't work |
|
||||||
property bool bookmarked: false |
|
||||||
onBookmarkedChanged: { |
|
||||||
pageArea.page.bookmarked = bookmarked |
|
||||||
} |
|
||||||
|
|
||||||
contentItem: Documents { |
|
||||||
implicitWidth: units.gridUnit * 25 |
|
||||||
} |
|
||||||
|
|
||||||
MobileComponents.OverlayDrawer { |
|
||||||
id: resourceBrowser |
|
||||||
anchors.fill: parent |
|
||||||
edge: Qt.RightEdge |
|
||||||
|
|
||||||
Okular.DocumentView { |
|
||||||
id: pageArea |
|
||||||
document: documentItem |
|
||||||
anchors.fill: parent |
|
||||||
|
|
||||||
onPageChanged: { |
|
||||||
bookmarkConnection.target = page |
|
||||||
splitDrawer.bookmarked = page.bookmarked |
|
||||||
} |
|
||||||
} |
|
||||||
//HACK |
|
||||||
Connections { |
|
||||||
id: bookmarkConnection |
|
||||||
target: pageArea.page |
|
||||||
onBookmarkedChanged: splitDrawer.bookmarked = pageArea.page.bookmarked |
|
||||||
} |
|
||||||
|
|
||||||
contentItem: 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: 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: 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")) |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
@ -0,0 +1,53 @@ |
|||||||
|
/* |
||||||
|
* Copyright 2012 Marco Martin <mart@kde.org> |
||||||
|
* |
||||||
|
* This program is free software; you can redistribute it and/or modify |
||||||
|
* it under the terms of the GNU General Public License as |
||||||
|
* published by the Free Software Foundation; either version 2, |
||||||
|
* or (at your option) any later version. |
||||||
|
* |
||||||
|
* This program is distributed in the hope that it will be useful, |
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||||
|
* GNU General Public License for more details |
||||||
|
* |
||||||
|
* You should have received a copy of the GNU General Public |
||||||
|
* License along with this program; if not, write to the |
||||||
|
* Free Software Foundation, Inc., |
||||||
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
||||||
|
*/ |
||||||
|
|
||||||
|
import QtQuick 2.1 |
||||||
|
import org.kde.okular 2.0 as Okular |
||||||
|
import org.kde.kirigami 1.0 as Kirigami |
||||||
|
|
||||||
|
Kirigami.Page { |
||||||
|
property alias document: pageArea.document |
||||||
|
leftPadding: 0 |
||||||
|
topPadding: 0 |
||||||
|
rightPadding: 0 |
||||||
|
bottomPadding: 0 |
||||||
|
|
||||||
|
actions.main: Kirigami.Action { |
||||||
|
iconName: "bookmarks-organize" |
||||||
|
checkable: true |
||||||
|
onCheckedChanged: pageArea.page.bookmarked = checked; |
||||||
|
} |
||||||
|
|
||||||
|
Okular.DocumentView { |
||||||
|
id: pageArea |
||||||
|
anchors.fill: parent |
||||||
|
|
||||||
|
onPageChanged: { |
||||||
|
bookmarkConnection.target = page |
||||||
|
actions.main.checked = page.bookmarked |
||||||
|
} |
||||||
|
onClicked: fileBrowserRoot.controlsVisible = !fileBrowserRoot.controlsVisible |
||||||
|
} |
||||||
|
|
||||||
|
Connections { |
||||||
|
id: bookmarkConnection |
||||||
|
target: pageArea.page |
||||||
|
onBookmarkedChanged: actions.main.checked = pageArea.page.bookmarked |
||||||
|
} |
||||||
|
} |
||||||
Loading…
Reference in new issue