~ci-train-bot/ubuntu-settings-components/ubuntu-settings-components-ubuntu-zesty-2202

« back to all changes in this revision

Viewing changes to plugins/Ubuntu/Settings/Menus/BaseMenu.qml

  • Committer: Bileto Bot
  • Date: 2016-11-16 18:52:43 UTC
  • mfrom: (146.4.57 touch+pointer-styles)
  • Revision ID: ci-train-bot@canonical.com-20161116185243-o399ryjh002umz1a
* Menus: add Pointer and Touch styles to be used depending on the user
  interaction with components
  Menu items now have a new Style property that defines some common properties
  such as shared colors and sizes that change depending on the UX journey. I'm
  only defining Pointer and TouchStyles for now, but they can be easily
  overridden in case.
  Removed some deprecated properties and adapted colors and sizes to new
  style.
* Bump package version as there's a new API for various components

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
 
19
19
import QtQuick 2.4
20
20
import Ubuntu.Components 1.3
 
21
import Ubuntu.Settings.Menus.Style 0.1
21
22
 
22
23
ListItem {
23
24
    id: menu
24
25
 
 
26
    property bool pointerMode: false
25
27
    property bool highlightWhenPressed: true
26
 
    property color foregroundColor: theme.palette.normal.baseText
 
28
    property real menuHeight: -1
 
29
    property BaseStyle menuStyle: pointerMode ? PointerStyle : TouchStyle
27
30
    property alias backColor: menu.color
28
 
 
29
 
    // Can't create an alias for divider.visible here, see QTBUG-50407
30
 
    // Thus this hack is needed not to override the default divider.visible value
31
 
    property bool showDivider: false
32
 
    divider.visible: false
33
 
    Component.onCompleted: {
34
 
        if (showDivider != divider.visible)
35
 
            showDivider = divider.visible;
36
 
 
37
 
        divider.visible = Qt.binding(function() { return showDivider })
38
 
        showDivider = Qt.binding(function() { return divider.visible })
39
 
    }
40
 
 
41
 
    highlightColor: highlightWhenPressed ? theme.palette.highlighted.background : backColor
 
31
    property color foregroundColor: menuStyle.foregroundColor
42
32
 
43
33
    // This is for retro-compatibility with ListItem.Empty, adding support to override the callback
44
34
    signal triggered(var value)
50
40
    onConfirmRemovalChanged: console.error(menu+": confirmRemoval property is deprecated")
51
41
    signal itemRemoved()
52
42
 
 
43
    divider.visible: false
 
44
 
 
45
    // FIXME: this is should use implicitHeight, but we can't yet due to lp:1630683
 
46
    Binding on height {
 
47
        when: menuHeight >= 0
 
48
        value: Math.max(menuStyle.minimumHeight, menuHeight) + (divider.visible ? divider.height : 0)
 
49
    }
 
50
 
 
51
    Binding on highlightColor {
 
52
        when: !highlightWhenPressed
 
53
        value: backColor
 
54
    }
 
55
 
 
56
    Binding on highlightColor {
 
57
        when: highlightWhenPressed && menuStyle
 
58
        value: menuStyle.highlightColor
 
59
    }
 
60
 
53
61
    ListItemActions {
54
62
        id: removeAction
55
63
        actions: [