import QtQuick 1.0 import com.nokia.meego 1.0 import "feedSearch.js" as FeedJS Page { id: addFeedPage tools: tabTools anchors.margins: UiConstants.DefaultMargin anchors.fill: parent function addFileToDialog(fullname, filename) { fileDialog.model.append({name: filename, fullname: fullname}) } TabGroup { id: tabGroup anchors.fill: parent currentTab: searchTab Item { id: searchTab anchors.fill: parent Column { spacing: 10 width: parent.width Text { id: searchText font.pixelSize: 22 color: "white" text: qsTr("Add a feed by URL, or search by keyword") } TextInputClear { id: searchInput placeHolder: qsTr("Enter a URL or keywords") } Button { id: searchButton text: "Search" onClicked: { var key = searchInput.text if (key.substring(0, 4) === "http") { categoryDialog.confirmCategory("", urlInput.text); } else { FeedJS.keywordSearch(searchInput.text) } } } } SelectionDialog { id: searchDialog titleText: qsTr("Select feed:") //model: [] onSelectedIndexChanged: { if (selectedIndex>=0) { var feedTitle = searchDialog.model.get(searchDialog.selectedIndex).name; var feedUrl = searchDialog.model.get(searchDialog.selectedIndex).url; //controller.addFeed(feedTitle,feedUrl,1); categoryDialog.confirmCategory(feedTitle, feedUrl); console.log("Adding feed "+feedTitle+" at " +feedUrl); } } } } //searchTab Item { id: categoryTab anchors.fill: parent Column { width: parent.width spacing: 10 Text { id: categoryText font.pixelSize: 22 color: "white" text: "Enter the category name" } TextInputClear { id: categoryInput placeHolder: "name" width: parent.width } Button { id: categoryButton text: "Add Category" onClicked: { if (categoryInput.text != "") { controller.addCategory(categoryInput.text) categoryDialog.reload() window.categoryReloadRequest() } } //width: 150 } } } //categoryTab ToolBarLayout { id: tabTools ToolIcon { iconId: "toolbar-back" onClicked: { if (tabGroup.currentTab.depth > 1) { tabGroup.currentTab.pop() } else { pageStack.pop() } window.feedReloadRequest() window.categoryReloadRequest() } } ButtonRow { TabButton { text: "Search" tab: searchTab } TabButton { text: "Categories" tab: categoryTab } } ToolIcon { platformIconId: "toolbar-view-menu" anchors.right: (parent === undefined) ? undefined : parent.right onClicked: (manageFeedsMenu.status == DialogStatus.Closed) ? manageFeedsMenu.open() : manageFeedsMenu.close() } } } Menu { id: manageFeedsMenu visualParent: pageStack MenuLayout { MenuItem { text: qsTr("Import Feeds From File"); onClicked: { fileDialog.model.clear() controller.populateFileDialog("/home/user/MyDocs/","*.*ml") fileDialog.open() } } MenuItem { text: qsTr("Export Feeds"); onClicked: { var file=controller.exportOpml("/home/user/MyDocs/feedingit-export.opml"); banner.show(qsTr("Feeds exported as %1").arg(file)) } } } } SelectionDialog { id: categoryDialog titleText: qsTr("Select category:") property string feedTitle property string feedUrl //property variant listModel: ListModel {} function createListModel() { var listModel = Qt.createQmlObject('import QtQuick 1.0; ListModel {}', categoryDialog); for (var i=0;i=0) { controller.addFeed(feedTitle,feedUrl,categoryDialog.model.get(categoryDialog.selectedIndex).catid); console.log("Adding feed "+feedTitle+" at " +feedUrl + " in " + categoryDialog.model.get(categoryDialog.selectedIndex).catid); } categoryDialog.selectedIndex = -1; } } SelectionDialog { id: fileDialog titleText: qsTr("Select a file to import") model: ListModel { id: fileList } onSelectedIndexChanged: { var num = controller.importOpml(fileDialog.model.get(fileDialog.selectedIndex).fullname); console.log("Import "+fileDialog.model.get(fileDialog.selectedIndex).fullname) banner.show(qsTr("Successfully imported %1 feeds.").args(num)); } } }