FeedTheMonkey/main.qml
2015-02-09 00:00:24 +01:00

122 lines
2.6 KiB
QML

import QtQuick 2.3
import QtQuick.Controls 1.3
import QtQuick.Layouts 1.1
import TTRSS 1.0
ApplicationWindow {
id: app
title: "FeedMonkey"
visible: true
contentItem.minimumWidth: 640
contentItem.minimumHeight: 480
contentItem.implicitWidth: 1024
contentItem.implicitHeight: 800
property Server server: server
property Sidebar sidebar: sidebar
property Content content: content
menuBar: TheMenuBar {
id: menu
server: server
sidebar: sidebar
}
function loggedIn() {
menu.loggedIn = true;
login.visible = false;
server.initialize(serverLogin.serverUrl, serverLogin.sessionId);
}
function keyPressed(event) {
switch (event.key) {
case Qt.Key_Right:
case Qt.Key_J:
case Qt.Key_j:
sidebar.next()
break
case Qt.Key_Left:
case Qt.Key_K:
case Qt.Key_k:
sidebar.previous()
break
case Qt.Key_Home:
content.scrollUp()
break
case Qt.Key_End:
content.scrollDown()
break
case Qt.Key_PageUp:
content.scrollUp(content.pageJump)
break
case Qt.Key_PageDown:
case Qt.Key_Space:
content.scrollDown(content.pageJump)
break
case Qt.Key_Down:
content.scrollDown(content.scrollJump)
break
case Qt.Key_Up:
content.scrollUp(content.scrollJump)
break
case Qt.Key_Enter:
case Qt.Key_Return:
Qt.openUrlExternally(content.post.link)
break
default:
break
}
}
SplitView {
anchors.fill: parent
orientation: Qt.Horizontal
visible: serverLogin.loggedIn()
focus: true
Sidebar {
id: sidebar
content: content
server: server
Layout.minimumWidth: 200
implicitWidth: 300
}
Content {
id: content
app: app
Layout.minimumWidth: 200
implicitWidth: 624
}
Keys.onPressed: keyPressed(event)
}
Login {
id: login
anchors.fill: parent
visible: !serverLogin.loggedIn()
function login() {
serverLogin.login(serverUrl, userName, password)
}
}
ServerLogin {
id: serverLogin
onSessionIdChanged: loggedIn()
}
Server {
id: server
}
Component.onCompleted: {
if(serverLogin.loggedIn()) {
loggedIn();
}
}
}