~josharenson/unity8/fix-greeter-password-focus

« back to all changes in this revision

Viewing changes to qml/Dash/Filters/FilterWidgetFactory.qml

  • Committer: Josh Arenson
  • Date: 2016-03-25 19:53:42 UTC
  • mfrom: (1978.1.6 sessions-model)
  • mto: This revision was merged to the branch mainline in revision 1986.
  • Revision ID: joshua.arenson@canonical.com-20160325195342-ibax564aavo3lk2i
merge prereq

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright (C) 2015 Canonical, Ltd.
 
3
 *
 
4
 * This program is free software; you can redistribute it and/or modify
 
5
 * it under the terms of the GNU General Public License as published by
 
6
 * the Free Software Foundation; version 3.
 
7
 *
 
8
 * This program is distributed in the hope that it will be useful,
 
9
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
10
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
11
 * GNU General Public License for more details.
 
12
 *
 
13
 * You should have received a copy of the GNU General Public License
 
14
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
15
 */
 
16
 
 
17
import QtQuick 2.4
 
18
import Ubuntu.Components 1.3
 
19
import Unity 0.2
 
20
 
 
21
//! \brief This component loads the widgets based on widgetType.
 
22
 
 
23
Item {
 
24
    id: root
 
25
    //! Identifier of the widget.
 
26
    property string widgetId: ""
 
27
 
 
28
    //! Type of the widget to display.
 
29
    property int widgetType
 
30
 
 
31
    //! Widget data, forwarded to the widget as is.
 
32
    property var widgetData: null
 
33
 
 
34
    implicitHeight: title.height + title.anchors.topMargin + loader.height
 
35
 
 
36
    Label {
 
37
        id: title
 
38
        text: widgetData ? widgetData.title : ""
 
39
        height: text != "" ? implicitHeight : 0
 
40
 
 
41
        anchors {
 
42
            top: parent.top
 
43
            left: parent.left
 
44
            right: parent.right
 
45
 
 
46
            topMargin: height > 0 ? units.gu(1) : 0
 
47
            leftMargin: units.gu(2)
 
48
            rightMargin: anchors.leftMargin
 
49
        }
 
50
    }
 
51
 
 
52
    property alias active: loader.active
 
53
 
 
54
    Loader {
 
55
        id: loader
 
56
        objectName: "loader"
 
57
 
 
58
        anchors {
 
59
            top: title.bottom
 
60
            left: parent.left
 
61
            right: parent.right
 
62
        }
 
63
 
 
64
        source: widgetSource
 
65
 
 
66
        readonly property url widgetSource: {
 
67
            switch (widgetType) {
 
68
                case Filters.OptionSelectorFilter: return "FilterOptionSelector.qml";
 
69
                case Filters.RangeInputFilter: return "FilterRangeInput.qml";
 
70
                case Filters.ValueSliderFilter: return "FilterValueSlider.qml";
 
71
                default: return "";
 
72
            }
 
73
        }
 
74
 
 
75
        onLoaded: {
 
76
            item.widgetId = Qt.binding(function() { return root.widgetId } )
 
77
            item.widgetData = Qt.binding(function() { return root.widgetData } )
 
78
        }
 
79
    }
 
80
}