moved sidebar to own file
This commit is contained in:
parent
cc59671ff4
commit
ee6ba89ab4
7 changed files with 90 additions and 46 deletions
44
Content.qml
44
Content.qml
|
@ -1,18 +1,42 @@
|
|||
import QtWebKit 3.0
|
||||
import QtWebKit.experimental 1.0
|
||||
import QtQuick.Controls 1.3
|
||||
import QtQuick.Layouts 1.1
|
||||
import TTRSS 1.0
|
||||
|
||||
WebView {
|
||||
url: "content.html"
|
||||
ScrollView {
|
||||
id: content
|
||||
property Post post
|
||||
Layout.minimumWidth: 400
|
||||
|
||||
// Enable communication between QML and WebKit
|
||||
experimental.preferences.navigatorQtObjectEnabled: true;
|
||||
WebView {
|
||||
id: webView
|
||||
url: "content.html"
|
||||
|
||||
onNavigationRequested: {
|
||||
if (request.navigationType != WebView.LinkClickedNavigation) {
|
||||
request.action = WebView.AcceptRequest;
|
||||
} else {
|
||||
request.action = WebView.IgnoreRequest;
|
||||
Qt.openUrlExternally(request.url);
|
||||
property Post post: content.post
|
||||
|
||||
function setPost() {
|
||||
experimental.evaluateJavaScript("setArticle(" + post.jsonString + ")")
|
||||
}
|
||||
|
||||
// Enable communication between QML and WebKit
|
||||
experimental.preferences.navigatorQtObjectEnabled: true;
|
||||
|
||||
onNavigationRequested: {
|
||||
if (request.navigationType != WebView.LinkClickedNavigation) {
|
||||
request.action = WebView.AcceptRequest;
|
||||
} else {
|
||||
request.action = WebView.IgnoreRequest;
|
||||
Qt.openUrlExternally(request.url);
|
||||
}
|
||||
}
|
||||
|
||||
onLoadingChanged: {
|
||||
setPost()
|
||||
}
|
||||
|
||||
onPostChanged: {
|
||||
setPost();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
34
Sidebar.qml
Normal file
34
Sidebar.qml
Normal file
|
@ -0,0 +1,34 @@
|
|||
import QtQuick 2.0
|
||||
import TTRSS 1.0
|
||||
import QtQuick.Controls 1.3
|
||||
import QtQuick.Layouts 1.1
|
||||
|
||||
ScrollView {
|
||||
id: item
|
||||
|
||||
property Server server
|
||||
property Content content
|
||||
|
||||
Layout.minimumWidth: 400
|
||||
|
||||
ListView {
|
||||
|
||||
focus: true
|
||||
anchors.fill: parent
|
||||
spacing: 1
|
||||
model: item.server.posts
|
||||
|
||||
delegate: Component {
|
||||
PostListItem {}
|
||||
}
|
||||
|
||||
highlight: Rectangle {
|
||||
color: "lightblue"
|
||||
opacity: 0.5
|
||||
}
|
||||
|
||||
onCurrentItemChanged: {
|
||||
item.content.post = server.posts[currentIndex]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,10 +1,10 @@
|
|||
import QtQuick.Controls 1.2
|
||||
import TTRSS 1.0
|
||||
|
||||
MenuBar {
|
||||
|
||||
function loggedIn() {
|
||||
return false;
|
||||
}
|
||||
property bool loggedIn: false
|
||||
property Server server
|
||||
|
||||
Menu {
|
||||
title: qsTr("File")
|
||||
|
@ -14,7 +14,7 @@ MenuBar {
|
|||
}
|
||||
MenuItem {
|
||||
text: qsTr("Log Out")
|
||||
enabled: loggedIn()
|
||||
enabled: loggedIn
|
||||
}
|
||||
MenuSeparator { }
|
||||
MenuItem {
|
||||
|
@ -29,37 +29,37 @@ MenuBar {
|
|||
MenuItem {
|
||||
text: qsTr("Reload")
|
||||
shortcut: "R"
|
||||
enabled: loggedIn()
|
||||
enabled: loggedIn
|
||||
}
|
||||
MenuItem {
|
||||
text: qsTr("Show &Starred")
|
||||
shortcut: "Ctrl+S"
|
||||
enabled: loggedIn()
|
||||
enabled: loggedIn
|
||||
}
|
||||
MenuItem {
|
||||
text: qsTr("Set &Starred")
|
||||
shortcut: "S"
|
||||
enabled: loggedIn()
|
||||
enabled: loggedIn
|
||||
}
|
||||
MenuItem {
|
||||
text: qsTr("Set &Unread")
|
||||
shortcut: "U"
|
||||
enabled: loggedIn()
|
||||
enabled: loggedIn
|
||||
}
|
||||
MenuItem {
|
||||
text: qsTr("Next")
|
||||
shortcut: "J"
|
||||
enabled: loggedIn()
|
||||
enabled: loggedIn
|
||||
}
|
||||
MenuItem {
|
||||
text: qsTr("Previous")
|
||||
shortcut: "K"
|
||||
enabled: loggedIn()
|
||||
enabled: loggedIn
|
||||
}
|
||||
MenuItem {
|
||||
text: qsTr("Open in Browser")
|
||||
shortcut: "N"
|
||||
enabled: loggedIn()
|
||||
enabled: loggedIn
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
body {
|
||||
font-family: "Ubuntu", "Lucida Grande", "Tahoma", sans-serif;
|
||||
padding: 1em 2em 1em 2em;
|
||||
font-size: 1.6em;
|
||||
background: transpatent;
|
||||
}
|
||||
body.darwin {
|
||||
font-family: "LucidaGrande", sans-serif;
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
<title>TTRSS</title>
|
||||
<link href="content.css" media="all" rel="stylesheet" />
|
||||
<script type="text/javascript" src="content.js"></script>
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no">
|
||||
</head>
|
||||
<body class=''>
|
||||
<header>
|
||||
|
|
32
main.qml
32
main.qml
|
@ -9,9 +9,13 @@ ApplicationWindow {
|
|||
width: 1024
|
||||
height: 800
|
||||
|
||||
menuBar: TheMenuBar {}
|
||||
menuBar: TheMenuBar {
|
||||
id: menu
|
||||
server: server
|
||||
}
|
||||
|
||||
function loggedIn() {
|
||||
menu.loggedIn = true;
|
||||
login.visible = false;
|
||||
server.initialize(serverLogin.serverUrl, serverLogin.sessionId);
|
||||
}
|
||||
|
@ -20,24 +24,9 @@ ApplicationWindow {
|
|||
anchors.fill: parent
|
||||
orientation: Qt.Horizontal
|
||||
|
||||
ScrollView {
|
||||
Layout.minimumWidth: 400
|
||||
|
||||
ListView {
|
||||
id: listView
|
||||
anchors.fill: parent
|
||||
spacing: 1
|
||||
model: server.posts
|
||||
delegate: delegate
|
||||
highlight: Rectangle {
|
||||
color: "lightblue"
|
||||
opacity: 0.5
|
||||
}
|
||||
focus: true
|
||||
onCurrentItemChanged: {
|
||||
content.experimental.evaluateJavaScript("setArticle(" + server.posts[currentIndex].jsonString + ")")
|
||||
}
|
||||
}
|
||||
Sidebar {
|
||||
server: server
|
||||
content: content
|
||||
}
|
||||
|
||||
Content {
|
||||
|
@ -66,11 +55,6 @@ ApplicationWindow {
|
|||
id: server
|
||||
}
|
||||
|
||||
Component {
|
||||
id: delegate
|
||||
PostListItem {}
|
||||
}
|
||||
|
||||
Component.onCompleted: {
|
||||
if(serverLogin.loggedIn()) {
|
||||
loggedIn();
|
||||
|
|
1
qml.qrc
1
qml.qrc
|
@ -5,5 +5,6 @@
|
|||
<file>Content.qml</file>
|
||||
<file>Login.qml</file>
|
||||
<file>PostListItem.qml</file>
|
||||
<file>Sidebar.qml</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue