moved sidebar to own file
This commit is contained in:
parent
cc59671ff4
commit
ee6ba89ab4
7 changed files with 90 additions and 46 deletions
26
Content.qml
26
Content.qml
|
@ -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
|
||||||
|
|
||||||
WebView {
|
ScrollView {
|
||||||
|
id: content
|
||||||
|
property Post post
|
||||||
|
Layout.minimumWidth: 400
|
||||||
|
|
||||||
|
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
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 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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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>
|
||||||
|
|
32
main.qml
32
main.qml
|
@ -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();
|
||||||
|
|
1
qml.qrc
1
qml.qrc
|
@ -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>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue