• Alan Alpert's avatar
    Work again. · 36a83948
    Alan Alpert authored
    Well, a little. At least one person can now run Gallery.qml again.
    
    Removes all menu related stuff, removes Window (uses the
    Window in QtQuick.Window instead, despite reduced functionality now).
    
    Updates to work with the quick module split, and the xmllistmodel
    module split.
    
    Updates version number to 0.2 as well.
    36a83948
Menu.qml 1.40 KiB
import QtQuick 2.0
import "../components/plugin"
MenuBase {
    property ListModel model
    property string selectedText: itemTextAt(selectedIndex)
    property string hoveredText: itemTextAt(hoveredIndex)
    // 'centerSelectedText' means that the menu will be positioned
    //  so that the selected text' top left corner will be at x, y.
    property bool centerSelectedText: true
    // Show, or hide, the popup by setting the 'visible' property:
    visible: false
    onMenuClosed: visible = false
    onModelChanged: if (Component.status === Component.Ready) rebuildMenu()
    Component.onCompleted: rebuildMenu()
    onHoveredIndexChanged: {
        if (hoveredIndex < menuItems.length)
            menuItems[hoveredIndex].emitHovered()
    onSelectedIndexChanged: {
        if (hoveredIndex < menuItems.length)
            menuItems[hoveredIndex].emitSelected()
    onVisibleChanged: {
        if (visible) {
            var globalPos = parent.mapToItem(null, x, y)
            showPopup(globalPos.x, globalPos.y, centerSelectedText ? selectedIndex : 0)
        } else {
            closePopup()
    function rebuildMenu()
        clearMenuItems();
        for (var i=0; i<menuItems.length; ++i)
            addMenuItem(menuItems[i].text)
        if (model != undefined) {
            for (var j=0; j<model.count; ++j)
                addMenuItem(model.get(j).text)