2 import com.nokia.meego 1.0
3 import "feedSearch.js" as FeedJS
8 anchors.margins: UiConstants.DefaultMargin
11 function addFileToDialog(fullname, filename) {
12 fileDialog.model.append({name: filename,
33 text: qsTr("Add a feed by URL, or search by keyword")
38 placeHolder: qsTr("Enter a URL or keywords")
45 var key = searchInput.text
46 if (key.substring(0, 4) === "http") {
47 categoryDialog.confirmCategory("", urlInput.text);
49 FeedJS.keywordSearch(searchInput.text)
57 titleText: qsTr("Select feed:")
59 onSelectedIndexChanged: {
60 if (selectedIndex>=0) {
61 var feedTitle = searchDialog.model.get(searchDialog.selectedIndex).name;
62 var feedUrl = searchDialog.model.get(searchDialog.selectedIndex).url;
63 //controller.addFeed(feedTitle,feedUrl,1);
64 categoryDialog.confirmCategory(feedTitle, feedUrl);
65 console.log("Adding feed "+feedTitle+" at " +feedUrl);
83 text: "Enter the category name"
96 if (categoryInput.text != "") {
97 controller.addCategory(categoryInput.text)
98 categoryDialog.reload()
99 window.categoryReloadRequest()
111 iconId: "toolbar-back"
113 if (tabGroup.currentTab.depth > 1) {
114 tabGroup.currentTab.pop()
118 window.feedReloadRequest()
119 window.categoryReloadRequest()
133 platformIconId: "toolbar-view-menu"
134 anchors.right: (parent === undefined) ? undefined : parent.right
135 onClicked: (manageFeedsMenu.status == DialogStatus.Closed) ? manageFeedsMenu.open() : manageFeedsMenu.close()
143 visualParent: pageStack
145 MenuItem { text: qsTr("Import Feeds From File"); onClicked: {
146 fileDialog.model.clear()
147 controller.populateFileDialog("/home/user/MyDocs/","*.*ml")
151 text: qsTr("Export Feeds");
152 onClicked: { var file=controller.exportOpml("/home/user/MyDocs/feedingit-export.opml"); banner.show(qsTr("Feeds exported as %1").arg(file)) }
159 titleText: qsTr("Select category:")
160 property string feedTitle
161 property string feedUrl
163 //property variant listModel: ListModel {}
165 function createListModel() {
166 var listModel = Qt.createQmlObject('import QtQuick 1.0; ListModel {}', categoryDialog);
167 for (var i=0;i<categories.count;i++) {
168 listModel.append({"name": categories.get(i).title, "catid": categories.get(i).catid });
171 //console.log(listModel.count)
174 function confirmCategory(title, url) {
175 //categoryDialog.selectedIndex = -1;
183 //categories.reload()
184 categories.xml = controller.getCategoryXml()
192 xml: controller.getCategoryXml()
193 query: "/xml/category"
194 XmlRole { name: "title"; query: "catname/string()" }
195 XmlRole { name: "catid"; query: "catid/string()"; isKey: true }
198 onSelectedIndexChanged: {
199 if (selectedIndex>=0) {
200 controller.addFeed(feedTitle,feedUrl,categoryDialog.model.get(categoryDialog.selectedIndex).catid);
201 console.log("Adding feed "+feedTitle+" at " +feedUrl + " in " + categoryDialog.model.get(categoryDialog.selectedIndex).catid);
203 categoryDialog.selectedIndex = -1;
209 titleText: qsTr("Select a file to import")
214 onSelectedIndexChanged: {
215 var num = controller.importOpml(fileDialog.model.get(fileDialog.selectedIndex).fullname);
216 console.log("Import "+fileDialog.model.get(fileDialog.selectedIndex).fullname)
217 banner.show(qsTr("Successfully imported %1 feeds.").args(num));