import QtQuick 1.0
import com.nokia.meego 1.0
-
PageStackWindow {
id: window
initialPage: categoryPage
- signal articleClosed()
+ signal longPressCategory(string catid)
+ signal longPressFeed(string key)
+ signal categoryReloadRequest()
+ signal feedReloadRequest()
+ signal addFileSignal(string fullname, string filename)
+
property string feedid
property string catid
+ function addFileNotification(fullname, filename) {
+ window.addFileSignal(fullname,filename)
+ }
+
+ function updateStarted() {
+ banner.show(qsTr("Update Started"))
+ }
+
+ function updateFinished() {
+ banner.show(qsTr("Updated Completed"))
+ }
+
+ onLongPressFeed: {
+ unsubscribeFeedMenu.key = key
+ unsubscribeFeedMenu.open()
+ }
+
+ onLongPressCategory: {
+ unsubscribeCategoryMenu.catid = catid
+ unsubscribeCategoryMenu.open()
+ }
+
ToolBarLayout {
id: commonTools
visible: false
id: myMenu
visualParent: pageStack
MenuLayout {
- MenuItem { text: qsTr("Settings"); onClicked: {} }
- MenuItem { text: qsTr("Add Feeds"); onClicked: { pageStack.push(addFeedPage) } }
- MenuItem { text: qsTr("Update All Categories"); visible: pageStack.depth==3; onClicked: controller.updateAll(); }
+ MenuItem { text: qsTr("Settings"); onClicked: {pageStack.push(settingsPage)} }
+ MenuItem { text: qsTr("Manage Subscriptions"); onClicked: { pageStack.push(addFeedPage) } }
+ MenuItem { text: qsTr("Update All Categories"); onClicked: controller.updateAll(); }
MenuItem { text: qsTr("About FeedingIt"); onClicked: query.open(); }
}
}
id: myFeedsMenu
visualParent: pageStack
MenuLayout {
- MenuItem { text: qsTr("Update All Feeds"); onClicked: controller.updateAll(); }
- MenuItem { text: qsTr("About FeedingIt"); onClicked: query.open(); }
+ MenuItem { text: qsTr("Update All Feeds"); onClicked: controller.updateCategory(catid); }
+ //MenuItem { text: qsTr("About FeedingIt"); onClicked: query.open(); }
}
}
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(); }
+ //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()
+ }
}
}
acceptButtonText: "OK"
}
-// Page{
-// id: mainPage
-// Component.onCompleted: {
-// var main = Qt.createComponent("FeedingIt.qml");
-// main.createObject(mainPage);
-// }
-// }
-
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()
+ }
}
}
}
window.feedid = feedid
pageStack.push(articlesPage)
}
+
}
ToolBarLayout {
id: feedsTools
ToolIcon { iconId: "toolbar-back";
onClicked: {
myArticlesMenu.close();
+ window.categoryReloadRequest()
pageStack.pop();
}
}
}
Connections {
target: window
- onArticleClosed: feedsItem.reload()
+ onFeedReloadRequest: feedsItem.reload()
}
}
}
flipper.articleShown = false;
flipper.reload()
} else {
- window.articleClosed();
+ window.feedReloadRequest();
pageStack.pop();
}
}
}
ToolIcon {
- platformIconId: "toolbar-prev"
+ 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()
}
Component {
id: addFeedPage
- AddFeed {}
+ AddFeed {
+ id: addFeedItem
+
+ Connections {
+ target: window
+ onAddFileSignal: addFeedItem.addFileToDialog(fullname, filename)
+ }
+ }
+ }
+
+ Component {
+ id: settingsPage
+ SettingsPage {
+ id: settingsItem
+ tools: commonTools
+ }
+ }
+
+ Settings {
+ id: settings
+ }
+
+ Rectangle {
+ id: banner
+ x: 10
+ width: parent.width - 20
+ height: bannerText.height + 20
+ y: 50
+ z:8
+
+ visible: false
+ radius: 4
+ border.color: "white"
+ color: "black"
+
+ Text {
+ id: bannerText
+ anchors.centerIn: parent
+ font.pixelSize: 24
+ //text: "Test"
+ color: "white"
+ wrapMode: Text.WordWrap;
+ }
+
+ Timer {
+ id: bannerTimer
+ interval: 3000
+ repeat: false
+ running: false
+ onTriggered: banner.visible = false
+ }
+
+ function show(str) {
+ bannerText.text = str;
+ banner.visible = true
+ bannerTimer.start()
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: {
+ bannerTimer.stop()
+ banner.visible= false
+ }
+ }
+
+ //text: "This is an info banner with no icon"
+ }
+
+ Item {
+ AutomaticUpdate {
+ id: autoUpdate
+ }
+
+ Connections {
+ target: settings
+ onAutoUpdateEnabledChanged: {
+ if (!settings.autoUpdateEnabled) {
+ autoUpdate.stop();
+ } else {
+ autoUpdate.start();
+ }
+ }
+ }
}
}