/* * Copyright (C) 2016 Morgan McMillian * * This file is apart of the Goober application, a client for pnut.io * * 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 3 of the License, 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, see . */ import bb.cascades 1.4 TabbedPane { id: main Menu.definition: MenuDefinition { settingsAction: SettingsActionItem { onTriggered: { var page = settingsPage.createObject() page.reload.connect(activePane.reload) activePane.push(page) } } actions: [ ActionItem { title: qsTr("Logout") imageSource: "asset:///icons/sign-out.png" onTriggered: { activePane.logout(); } }, ActionItem { title: qsTr("About") imageSource: "asset:///icons/ic_info.png" onTriggered: { var page = aboutPage.createObject() page.appversion = _app.appversion() activePane.push(page) } } ] } activeTab: { switch(_app.setting("activetab")) { case "GlobalTab": return globalStream break; case "HomeTab": return homeStream break; case "MentionTab": return mentionStream break; case "BookmarksTab": return bookmarksStream break; default: return globalStream } } Tab { id: homeStream title: qsTr("Home") objectName: "HomeTab" delegate: Delegate { StreamTab { title: qsTr("Home") stream_type: "Home" onOpenLogin: { loginSheet.open() } onCloseLogin: { loginSheet.close() } } } imageSource: "asset:///icons/home.png" onUnreadContentCountChanged: { _activeFrame.setGlobalUnread(unreadContentCount) } } Tab { id: mentionStream title: qsTr("Mentions") objectName: "MentionTab" delegate: Delegate { StreamTab { title: qsTr("Mentions") stream_type: "Mentions" onOpenLogin: { loginSheet.open() } onCloseLogin: { loginSheet.close() } } } imageSource: "asset:///icons/at.png" onUnreadContentCountChanged: { _activeFrame.setGlobalUnread(unreadContentCount) } } Tab { id: bookmarksStream title: qsTr("Bookmarks") objectName: "BookmarksTab" delegate: Delegate { StreamTab { title: qsTr("Bookmarks") stream_type: "Bookmarks" onOpenLogin: { loginSheet.open() } onCloseLogin: { loginSheet.close() } } } imageSource: "asset:///icons/bookmark.png" onUnreadContentCountChanged: { _activeFrame.setGlobalUnread(unreadContentCount) } } Tab { id: globalStream title: qsTr("Global") objectName: "GlobalTab" delegate: Delegate { StreamTab { title: qsTr("Global") stream_type: "Global" onOpenLogin: { loginSheet.open() } onCloseLogin: { loginSheet.close() } } } imageSource: "asset:///icons/globe.png" onUnreadContentCountChanged: { _activeFrame.setGlobalUnread(unreadContentCount) } } onActiveTabChanged: { _app.setSetting("activetab", activeTab.objectName) } attachedObjects: [ LoginSheet { id: loginSheet onLogin: { activePane.login() } }, ComponentDefinition { id: settingsPage source: "SettingsPage.qml" }, ComponentDefinition { id: aboutPage source: "AboutPage.qml" } ] onCreationCompleted: { var style = _app.setting("theme").toString() if (style === "1") { Application.themeSupport.setVisualStyle(VisualStyle.Bright) } else if (style === "2") { Application.themeSupport.setVisualStyle(VisualStyle.Dark) } _app.createPost.connect(activePane.createPost) } }