/*
 *   Copyright (C) 2012 Aleix Pol Gonzalez <aleixpol@blue-systems.com>
 *
 *   This program is free software; you can redistribute it and/or modify
 *   it under the terms of the GNU Library/Lesser General Public License
 *   version 2, or (at your option) any later version, as published by the
 *   Free Software Foundation
 *
 *   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 Library/Lesser General Public
 *   License along with this program; if not, write to the
 *   Free Software Foundation, Inc.,
 *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 */

function clearStack()
{
    window.currentTopLevel = ""
    window.stack.clear();
}

function openApplicationListSource(origin) {
    openApplicationList({ originFilter: origin, title: origin, allBackends: true })
}

function openApplicationMime(mime) {
    clearStack()
    openApplicationList({ mimeTypeFilter: mime, title: i18n("Resources for '%1'", mime) })
}

function openApplicationList(props) {
    var page = window.stack.push("qrc:/qml/ApplicationsListPage.qml", props)
    if (props.search === "")
        page.clearSearch();
}

function openCategory(cat, search) {
    clearStack()
    openApplicationList({ category: cat, search: search })
}

function openApplication(app) {
    console.assert(app)
    window.stack.push("qrc:/qml/ApplicationPage.qml", { application: app })
}

function openReviews(model) {
    window.stack.push("qrc:/qml/ReviewsPage.qml", { model: model })
}

function openExtends(ext) {
    window.stack.push("qrc:/qml/ApplicationsListPage.qml", { extending: ext, title: i18n("Extensions...") })
}

function openHome() {
    if (window.globalDrawer.currentSubMenu)
        window.globalDrawer.resetMenu();
    clearStack()
    var page = window.stack.push(topBrowsingComp)
    page.clearSearch()
}
