~pkunal-parmar/ubuntu-calendar-app/ICalImport

« back to all changes in this revision

Viewing changes to WeekRibbon.qml

  • Committer: Launchpad Translations on behalf of ubuntu-calendar-dev
  • Date: 2013-08-30 05:25:11 UTC
  • Revision ID: launchpad_translations_on_behalf_of_ubuntu-calendar-dev-20130830052511-yvisk7eao427cp9w
Launchpad automatic translations update.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
import QtQuick 2.0
 
2
import Ubuntu.Components 0.1
 
3
 
 
4
import "dateExt.js" as DateExt
 
5
import "colorUtils.js" as Color
 
6
 
 
7
PathViewBase{
 
8
    id: weekRibbonRoot
 
9
 
 
10
    property int weekWidth:0;
 
11
    property var visibleWeek: intern.now
 
12
 
 
13
    signal daySelected(var day);
 
14
    signal weekChanged(var visibleWeek);
 
15
 
 
16
    QtObject{
 
17
        id: intern
 
18
        property var now: new Date();
 
19
        property int weekstartDay: Qt.locale().firstDayOfWeek
 
20
        property var weekStart: visibleWeek.addDays(-7)
 
21
        property var selectedDate: visibleWeek
 
22
    }
 
23
 
 
24
    onNextItemHighlighted: {
 
25
        nextWeek();
 
26
    }
 
27
 
 
28
    onPreviousItemHighlighted: {
 
29
        previousWeek();
 
30
    }
 
31
 
 
32
    onVisibleWeekChanged: {
 
33
        setSelectedDay();
 
34
    }
 
35
 
 
36
    Component.onCompleted: {
 
37
        setSelectedDay();
 
38
    }
 
39
 
 
40
    function nextWeek() {
 
41
        var weekStartDay= visibleWeek.weekStart(intern.weekstartDay);
 
42
        visibleWeek = weekStartDay.addDays(7);
 
43
        setSelectedDay();
 
44
 
 
45
        weekChanged( visibleWeek );
 
46
    }
 
47
 
 
48
    function previousWeek(){
 
49
        var weekStartDay = visibleWeek.weekStart(intern.weekstartDay);
 
50
        visibleWeek = weekStartDay.addDays(-7);
 
51
        setSelectedDay();
 
52
 
 
53
        weekChanged( visibleWeek );
 
54
    }
 
55
 
 
56
    function setSelectedDay(date) {
 
57
 
 
58
        if( date !== undefined && date !== null) {
 
59
            intern.selectedDate = date;
 
60
            return;
 
61
        }
 
62
 
 
63
        if( intern.now.weekStart(intern.weekstartDay).isSameDay(visibleWeek) ) {
 
64
            intern.selectedDate =  intern.now
 
65
        } else {
 
66
            intern.selectedDate = visibleWeek
 
67
        }
 
68
    }
 
69
 
 
70
    delegate: Row{
 
71
        id: dayLabelRow
 
72
        width: parent.width
 
73
 
 
74
        function getWeekStart() {
 
75
            if (index === weekRibbonRoot.currentIndex) {
 
76
                return intern.weekStart;
 
77
            }
 
78
            var previousIndex = weekRibbonRoot.currentIndex > 0 ? weekRibbonRoot.currentIndex - 1 : 2
 
79
 
 
80
            if ( index === previousIndex ) {
 
81
                var weekStartDay= intern.weekStart.weekStart( Qt.locale().firstDayOfWeek);
 
82
                return weekStartDay.addDays(-7);
 
83
            }
 
84
 
 
85
            var weekStartDay = intern.weekStart.weekStart( Qt.locale().firstDayOfWeek);
 
86
            return weekStartDay.addDays(7);
 
87
        }
 
88
 
 
89
        property var weekStart: getWeekStart();
 
90
 
 
91
        Repeater{
 
92
            id: dayLabelRepeater
 
93
            model:7
 
94
            delegate: dafaultDayLabelComponent
 
95
        }
 
96
    }
 
97
 
 
98
    Component{
 
99
        id: dafaultDayLabelComponent
 
100
 
 
101
        Rectangle{
 
102
            id: weekDay
 
103
 
 
104
            width: column.width
 
105
            height: column.height
 
106
 
 
107
            color: intern.selectedDate.isSameDay(day) ? Color.ubuntuOrange : "white"
 
108
 
 
109
            property var weekStartDay: parent.weekStart.weekStart( Qt.locale().firstDayOfWeek);
 
110
            property var day : weekStartDay.addDays(index)
 
111
 
 
112
            Column {
 
113
                id: column
 
114
                width: weekWidth
 
115
                Label{
 
116
                    text: Qt.locale().standaloneDayName(( intern.weekstartDay + index), Locale.ShortFormat)
 
117
                    horizontalAlignment: Text.AlignHCenter
 
118
                    width: column.width
 
119
                    fontSize: "medium"
 
120
                }
 
121
                Label{
 
122
                    text: weekDay.day.getDate()
 
123
                    horizontalAlignment: Text.AlignHCenter
 
124
                    width: column.width
 
125
                    fontSize: "large"
 
126
                }
 
127
            }
 
128
 
 
129
            MouseArea{
 
130
                anchors.fill: parent
 
131
 
 
132
                onClicked: {
 
133
                    weekRibbonRoot.setSelectedDay(day);
 
134
                    weekRibbonRoot.daySelected(day);
 
135
                }
 
136
            }
 
137
        }
 
138
    }
 
139
}