import QtQuick 1.0 import com.nokia.meego 1.0 import com.nokia.extras 1.0 PageStackWindow { id: window initialPage: categoryPage signal longPressCategory(string catid) signal longPressFeed(string key) signal categoryReloadRequest() signal feedReloadRequest() property string feedid property string catid Component.onCompleted: theme.inverted= true onLongPressFeed: { unsubscribeFeedMenu.key = key unsubscribeFeedMenu.open() } onLongPressCategory: { unsubscribeCategoryMenu.catid = catid unsubscribeCategoryMenu.open() } ToolBarLayout { id: commonTools visible: false ToolIcon { iconId: "toolbar-back"; onClicked: { myMenu.close(); pageStack.pop(); } visible: pageStack.depth>1 } ToolIcon { platformIconId: "toolbar-view-menu" anchors.right: (parent === undefined) ? undefined : parent.right onClicked: (myMenu.status == DialogStatus.Closed) ? myMenu.open() : myMenu.close() } } Menu { id: myMenu visualParent: pageStack MenuLayout { MenuItem { text: qsTr("Settings"); onClicked: {} } MenuItem { text: qsTr("Export Feeds"); onClicked: { var file=controller.exportOpml(); banner.text=qsTr("Feeds exported as "+file); banner.open() } } MenuItem { text: qsTr("Invert Theme"); onClicked: { theme.inverted = !theme.inverted } } MenuItem { text: qsTr("Add Feeds"); onClicked: { pageStack.push(addFeedPage) } } MenuItem { text: qsTr("Update All Categories"); onClicked: controller.updateAll(); } MenuItem { text: qsTr("About FeedingIt"); onClicked: query.open(); } } } Menu { id: myFeedsMenu visualParent: pageStack MenuLayout { MenuItem { text: qsTr("Update All Feeds"); onClicked: controller.updateCategory(catid); } //MenuItem { text: qsTr("About FeedingIt"); onClicked: query.open(); } } } Menu { id: myArticlesMenu visualParent: pageStack MenuLayout { MenuItem { text: qsTr("Mark All As Read"); onClicked: controller.markAllAsRead(feedid); } MenuItem { text: qsTr("Update Feed"); onClicked: controller.updateFeed(feedid); } //MenuItem { text: qsTr("About FeedingIt"); onClicked: query.open(); } } } Menu { id: unsubscribeFeedMenu visualParent: pageStack property string key MenuLayout { //MenuItem { text: qsTr("Update"); onClicked: controller.updateFeed(parent.feedid); } MenuItem { text: qsTr("Delete"); onClicked: { feedConfirm.open() unsubscribeFeedMenu.close() } } } QueryDialog { id: feedConfirm //icon: "common/images/feedingit.png" //titleText: "Delete Feed?" message: "Delete this feed?" acceptButtonText: "OK" rejectButtonText: "Cancel" onAccepted: { controller.removeFeed(unsubscribeFeedMenu.key); window.feedReloadRequest() } } } Menu { id: unsubscribeCategoryMenu visualParent: pageStack property string catid MenuLayout { //MenuItem { text: qsTr("Update"); onClicked: controller.updateFeed(parent.feedid); } MenuItem { text: qsTr("Delete"); onClicked: { categoryConfirm.open() unsubscribeFeedMenu.close() } } } QueryDialog { id: categoryConfirm //icon: "common/images/feedingit.png" //titleText: "Delete Feed?" message: "Delete this category?" acceptButtonText: "OK" rejectButtonText: "Cancel" onAccepted: { controller.removeCategory(unsubscribeCategoryMenu.catid); window.categoryReloadRequest() } } } QueryDialog { id: query icon: "common/images/feedingit.png" titleText: "Feedingit RSS Reader" message: "Version: 0.0.9" +"

FeedingIt RSS Reader.
" +"
© 2011 feedingit.marcoz.org" +"
http://feedingit.marcoz.org" acceptButtonText: "OK" } Component { id: categoryPage Page { tools: commonTools Categories { id: categoriesItem onCategoryClicked: { window.catid = cat pageStack.push(feedsPage) } } Connections { target: window onCategoryReloadRequest: { console.log("category reloaded") categoriesItem.reload() } } } } Component { id: feedsPage Page { tools: feedsTools anchors.fill: parent property string catid: window.catid Feeds { id: feedsItem onFeedClicked: { window.feedid = feedid pageStack.push(articlesPage) } } ToolBarLayout { id: feedsTools visible: false ToolIcon { iconId: "toolbar-back"; onClicked: { myArticlesMenu.close(); window.categoryReloadRequest() pageStack.pop(); } } ToolIcon { platformIconId: "toolbar-view-menu" anchors.right: (parent === undefined) ? undefined : parent.right onClicked: (myFeedsMenu.status == DialogStatus.Closed) ? myFeedsMenu.open() : myFeedsMenu.close() } } Connections { target: window onFeedReloadRequest: feedsItem.reload() } } } Component { id: articlesPage Page { tools: articleTools property string feedid: window.feedid ArticleViewer { id: flipper } ToolBarLayout { id: articleTools visible: false ToolIcon { iconId: "toolbar-back"; onClicked: { myArticlesMenu.close(); if (flipper.articleShown) { flipper.articleShown = false; flipper.reload() } else { window.feedReloadRequest(); pageStack.pop(); } } } ToolIcon { platformIconId: "toolbar-previous" visible: flipper.articleShown //anchors.right: (parent === undefined) ? undefined : parent.right onClicked: flipper.prev(); } ToolIcon { platformIconId: "toolbar-next" visible: flipper.articleShown //anchors.right: (parent === undefined) ? undefined : parent.right onClicked: flipper.next() } ToolIcon { platformIconId: "toolbar-view-menu" anchors.right: (parent === undefined) ? undefined : parent.right onClicked: (myArticlesMenu.status == DialogStatus.Closed) ? myArticlesMenu.open() : myArticlesMenu.close() } } } } Component { id: addFeedPage AddFeed {} } Settings { id: settings } InfoBanner { id: banner //text: "This is an info banner with no icon" } }