moved sidebar to own file

This commit is contained in:
Jeena 2015-02-03 01:55:54 +01:00
parent cc59671ff4
commit ee6ba89ab4
7 changed files with 90 additions and 46 deletions

View file

@ -1,9 +1,24 @@
import QtWebKit 3.0 import QtWebKit 3.0
import QtWebKit.experimental 1.0 import QtWebKit.experimental 1.0
import QtQuick.Controls 1.3
import QtQuick.Layouts 1.1
import TTRSS 1.0
ScrollView {
id: content
property Post post
Layout.minimumWidth: 400
WebView { WebView {
id: webView
url: "content.html" url: "content.html"
property Post post: content.post
function setPost() {
experimental.evaluateJavaScript("setArticle(" + post.jsonString + ")")
}
// Enable communication between QML and WebKit // Enable communication between QML and WebKit
experimental.preferences.navigatorQtObjectEnabled: true; experimental.preferences.navigatorQtObjectEnabled: true;
@ -15,4 +30,13 @@ WebView {
Qt.openUrlExternally(request.url); Qt.openUrlExternally(request.url);
} }
} }
onLoadingChanged: {
setPost()
}
onPostChanged: {
setPost();
}
}
} }

34
Sidebar.qml Normal file
View 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]
}
}
}

View file

@ -1,10 +1,10 @@
import QtQuick.Controls 1.2 import QtQuick.Controls 1.2
import TTRSS 1.0
MenuBar { MenuBar {
function loggedIn() { property bool loggedIn: false
return false; property Server server
}
Menu { Menu {
title: qsTr("File") title: qsTr("File")
@ -14,7 +14,7 @@ MenuBar {
} }
MenuItem { MenuItem {
text: qsTr("Log Out") text: qsTr("Log Out")
enabled: loggedIn() enabled: loggedIn
} }
MenuSeparator { } MenuSeparator { }
MenuItem { MenuItem {
@ -29,37 +29,37 @@ MenuBar {
MenuItem { MenuItem {
text: qsTr("Reload") text: qsTr("Reload")
shortcut: "R" shortcut: "R"
enabled: loggedIn() enabled: loggedIn
} }
MenuItem { MenuItem {
text: qsTr("Show &Starred") text: qsTr("Show &Starred")
shortcut: "Ctrl+S" shortcut: "Ctrl+S"
enabled: loggedIn() enabled: loggedIn
} }
MenuItem { MenuItem {
text: qsTr("Set &Starred") text: qsTr("Set &Starred")
shortcut: "S" shortcut: "S"
enabled: loggedIn() enabled: loggedIn
} }
MenuItem { MenuItem {
text: qsTr("Set &Unread") text: qsTr("Set &Unread")
shortcut: "U" shortcut: "U"
enabled: loggedIn() enabled: loggedIn
} }
MenuItem { MenuItem {
text: qsTr("Next") text: qsTr("Next")
shortcut: "J" shortcut: "J"
enabled: loggedIn() enabled: loggedIn
} }
MenuItem { MenuItem {
text: qsTr("Previous") text: qsTr("Previous")
shortcut: "K" shortcut: "K"
enabled: loggedIn() enabled: loggedIn
} }
MenuItem { MenuItem {
text: qsTr("Open in Browser") text: qsTr("Open in Browser")
shortcut: "N" shortcut: "N"
enabled: loggedIn() enabled: loggedIn
} }
} }

View file

@ -1,7 +1,7 @@
body { body {
font-family: "Ubuntu", "Lucida Grande", "Tahoma", sans-serif; font-family: "Ubuntu", "Lucida Grande", "Tahoma", sans-serif;
padding: 1em 2em 1em 2em; padding: 1em 2em 1em 2em;
font-size: 1.6em; background: transpatent;
} }
body.darwin { body.darwin {
font-family: "LucidaGrande", sans-serif; font-family: "LucidaGrande", sans-serif;

View file

@ -5,6 +5,7 @@
<title>TTRSS</title> <title>TTRSS</title>
<link href="content.css" media="all" rel="stylesheet" /> <link href="content.css" media="all" rel="stylesheet" />
<script type="text/javascript" src="content.js"></script> <script type="text/javascript" src="content.js"></script>
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no">
</head> </head>
<body class=''> <body class=''>
<header> <header>

View file

@ -9,9 +9,13 @@ ApplicationWindow {
width: 1024 width: 1024
height: 800 height: 800
menuBar: TheMenuBar {} menuBar: TheMenuBar {
id: menu
server: server
}
function loggedIn() { function loggedIn() {
menu.loggedIn = true;
login.visible = false; login.visible = false;
server.initialize(serverLogin.serverUrl, serverLogin.sessionId); server.initialize(serverLogin.serverUrl, serverLogin.sessionId);
} }
@ -20,24 +24,9 @@ ApplicationWindow {
anchors.fill: parent anchors.fill: parent
orientation: Qt.Horizontal orientation: Qt.Horizontal
ScrollView { Sidebar {
Layout.minimumWidth: 400 server: server
content: content
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 + ")")
}
}
} }
Content { Content {
@ -66,11 +55,6 @@ ApplicationWindow {
id: server id: server
} }
Component {
id: delegate
PostListItem {}
}
Component.onCompleted: { Component.onCompleted: {
if(serverLogin.loggedIn()) { if(serverLogin.loggedIn()) {
loggedIn(); loggedIn();

View file

@ -5,5 +5,6 @@
<file>Content.qml</file> <file>Content.qml</file>
<file>Login.qml</file> <file>Login.qml</file>
<file>PostListItem.qml</file> <file>PostListItem.qml</file>
<file>Sidebar.qml</file>
</qresource> </qresource>
</RCC> </RCC>