Merge lp:~nik90/component-store/fix-debian-packaging into lp:~sil/component-store/community-components

Proposed by Nekhelesh Ramananthan on 2015-01-06
Status: Merged
Merged at revision: 66
Proposed branch: lp:~nik90/component-store/fix-debian-packaging
Merge into: lp:~sil/component-store/community-components
Diff against target: 1167 lines (+749/-53)
24 files modified
curated-store/ComponentStore/CircleImage/ubuntu_component_store.json (+6/-0)
curated-store/ComponentStore/EmptyState/ubuntu_component_store.json (+6/-0)
curated-store/ComponentStore/FastScroll/ubuntu_component_store.json (+6/-0)
curated-store/ComponentStore/ListItemWithActions/ListItemWithActions.qml (+100/-47)
curated-store/ComponentStore/ListItemWithActions/ubuntu_component_store.json (+6/-0)
curated-store/ComponentStore/PageWithBottomEdge/ubuntu_component_store.json (+6/-0)
curated-store/ComponentStore/RadialBottomEdge/RadialAction.qml (+1/-0)
curated-store/ComponentStore/RadialBottomEdge/RadialBottomEdge.qml (+35/-3)
curated-store/ComponentStore/RadialBottomEdge/ubuntu_component_store.json (+6/-0)
curated-store/ComponentStore/WelcomeWizard/Walkthrough.qml (+116/-0)
curated-store/ComponentStore/WelcomeWizard/ubuntu_component_store.json (+6/-0)
curated-store/GallerySRC/ListItemWithActionsWidget.qml (+6/-0)
curated-store/GallerySRC/RadialBottomEdgeWidget.qml (+2/-0)
curated-store/GallerySRC/Slide1.qml (+54/-0)
curated-store/GallerySRC/Slide2.qml (+42/-0)
curated-store/GallerySRC/WelcomeWizardWidget.qml (+41/-0)
curated-store/GallerySRC/WidgetsModel.qml (+5/-0)
docs/_components/listitemwithactions.rst (+25/-1)
docs/_components/radialbottomedge.rst (+15/-1)
docs/_components/welcomewizard.rst (+218/-0)
docs/index.rst (+1/-0)
docs/release.rst (+32/-0)
script/debian/changelog (+12/-0)
script/debian/control (+2/-1)
To merge this branch: bzr merge lp:~nik90/component-store/fix-debian-packaging
Reviewer Review Type Date Requested Status
Stuart Langridge 2015-01-06 Approve on 2015-04-13
Review via email: mp+245661@code.launchpad.net

Commit Message

Fixed debian packaging.

Description of the Change

Fixed debian packaging. I tested the deb install and works as expected.

To post a comment you must log in.
66. By Nekhelesh Ramananthan on 2015-04-13

merged lp:component-store

Stuart Langridge (sil) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added file 'curated-store/ComponentStore/CircleImage/ubuntu_component_store.json'
2--- curated-store/ComponentStore/CircleImage/ubuntu_component_store.json 1970-01-01 00:00:00 +0000
3+++ curated-store/ComponentStore/CircleImage/ubuntu_component_store.json 2015-04-13 17:45:57 +0000
4@@ -0,0 +1,6 @@
5+{
6+ "name": "CircleImage",
7+ "description": "This widget converts any image into a circular sized image which can be useful for showing user profile pictures.",
8+ "version": "1.0",
9+ "documentation_url": "http://ubuntu-component-store.readthedocs.org/en/latest/_components/circleimage.html"
10+}
11
12=== added file 'curated-store/ComponentStore/EmptyState/ubuntu_component_store.json'
13--- curated-store/ComponentStore/EmptyState/ubuntu_component_store.json 1970-01-01 00:00:00 +0000
14+++ curated-store/ComponentStore/EmptyState/ubuntu_component_store.json 2015-04-13 17:45:57 +0000
15@@ -0,0 +1,6 @@
16+{
17+ "name": "EmptyState",
18+ "description": "This widget provides a standardized way to show an empty state (approved by Canonical designers) to improve the user experience and avoid showing a blank page.",
19+ "version": "1.0",
20+ "documentation_url": "http://ubuntu-component-store.readthedocs.org/en/latest/_components/emptystate.html"
21+}
22
23=== added file 'curated-store/ComponentStore/FastScroll/ubuntu_component_store.json'
24--- curated-store/ComponentStore/FastScroll/ubuntu_component_store.json 1970-01-01 00:00:00 +0000
25+++ curated-store/ComponentStore/FastScroll/ubuntu_component_store.json 2015-04-13 17:45:57 +0000
26@@ -0,0 +1,6 @@
27+{
28+ "name": "FastScroll",
29+ "description": "This widget provides a quick way to navigate long list views by providing a fast scroll.",
30+ "version": "1.0",
31+ "documentation_url": "http://ubuntu-component-store.readthedocs.org/en/latest/_components/fastscroll.html"
32+}
33
34=== modified file 'curated-store/ComponentStore/ListItemWithActions/ListItemWithActions.qml'
35--- curated-store/ComponentStore/ListItemWithActions/ListItemWithActions.qml 2014-11-11 16:33:41 +0000
36+++ curated-store/ComponentStore/ListItemWithActions/ListItemWithActions.qml 2015-04-13 17:45:57 +0000
37@@ -15,7 +15,9 @@
38 */
39
40 import QtQuick 2.2
41+import QtFeedback 5.0
42 import Ubuntu.Components 1.1
43+import Ubuntu.Components.ListItems 1.0 as ListItem
44
45 Item {
46 id: root
47@@ -31,6 +33,9 @@
48 property color selectedColor: "#E6E6E6"
49 property bool selected: false
50 property bool selectionMode: false
51+ property bool showUnderscore: false
52+ property bool showDivider: false
53+ property bool enableHaptics: false
54 property alias internalAnchors: mainContents.anchors
55 default property alias contents: mainContents.children
56
57@@ -64,7 +69,7 @@
58 var xOffset = Math.abs(main.x)
59 var index = Math.min(Math.floor(xOffset / actionFullWidth), _visibleRightSideActions.length)
60 var newX = 0
61- if (index === _visibleRightSideActions.length) {
62+ if (index === _visibleRightSideActions.length) {
63 newX = -(rightActionsView.width - units.gu(2))
64 } else if (index >= 1) {
65 newX = -(actionFullWidth * index)
66@@ -96,7 +101,7 @@
67 var itemStartX = item.x - marginX
68 var itemEndX = item.x + item.width + marginX
69 return (point.x >= itemStartX) && (point.x <= itemEndX) &&
70- (point.y >= item.y) && (point.y <= (item.y + item.height));
71+ (point.y >= item.y) && (point.y <= (item.y + item.height));
72 }
73
74 function getActionAt(point)
75@@ -118,8 +123,8 @@
76 function updateActiveAction()
77 {
78 if (triggerActionOnMouseRelease &&
79- (main.x <= -(root.actionWidth + units.gu(2))) &&
80- (main.x > -(rightActionsView.width - units.gu(2)))) {
81+ (main.x <= -(root.actionWidth + units.gu(2))) &&
82+ (main.x > -(rightActionsView.width - units.gu(2)))) {
83 var actionFullWidth = actionWidth + units.gu(2)
84 var xOffset = Math.abs(main.x)
85 var index = Math.min(Math.floor(xOffset / actionFullWidth), _visibleRightSideActions.length)
86@@ -183,6 +188,16 @@
87 height: defaultHeight
88 clip: height !== defaultHeight
89
90+ HapticsEffect {
91+ id: clickEffect
92+ attackIntensity: 0.0
93+ attackTime: 50
94+ intensity: 1.0
95+ duration: 10
96+ fadeTime: 50
97+ fadeIntensity: 0.0
98+ }
99+
100 Rectangle {
101 id: leftActionView
102
103@@ -201,6 +216,7 @@
104 horizontalCenterOffset: actionThreshold / 2
105 }
106 name: leftSideAction && _showActions ? leftSideAction.iconName : ""
107+ source: leftSideAction && _showActions ? leftSideAction.iconSource : ""
108 color: Theme.palette.selected.field
109 height: units.gu(3)
110 width: units.gu(3)
111@@ -208,48 +224,66 @@
112 }
113
114 Rectangle {
115- id: rightActionsView
116-
117- anchors {
118- top: main.top
119- left: main.right
120- bottom: main.bottom
121- }
122- visible: _visibleRightSideActions.length > 0
123- width: rightActionsRepeater.count > 0 ? rightActionsRepeater.count * (root.actionWidth + units.gu(2)) + root.actionThreshold + units.gu(2) : 0
124- color: "white"
125- Row {
126- anchors{
127- top: parent.top
128- left: parent.left
129- leftMargin: units.gu(2)
130- right: parent.right
131- rightMargin: units.gu(2)
132- bottom: parent.bottom
133- }
134- spacing: units.gu(2)
135- Repeater {
136- id: rightActionsRepeater
137-
138- model: _showActions ? _visibleRightSideActions : []
139- Item {
140- property alias image: img
141-
142- height: rightActionsView.height
143- width: root.actionWidth
144-
145- Icon {
146- id: img
147-
148- anchors.centerIn: parent
149- width: units.gu(3)
150- height: units.gu(3)
151- name: modelData.iconName
152- color: root.activeAction === modelData ? UbuntuColors.lightAubergine : UbuntuColors.lightGrey
153- }
154- }
155- }
156- }
157+ id: rightActionsView
158+
159+ anchors {
160+ top: main.top
161+ left: main.right
162+ bottom: main.bottom
163+ }
164+ visible: _visibleRightSideActions.length > 0
165+ width: rightActionsRepeater.count > 0 ? rightActionsRepeater.count * (root.actionWidth + units.gu(2)) + root.actionThreshold + units.gu(2) : 0
166+ color: "white"
167+ Row {
168+ anchors{
169+ top: parent.top
170+ left: parent.left
171+ leftMargin: units.gu(2)
172+ right: parent.right
173+ rightMargin: units.gu(2)
174+ bottom: parent.bottom
175+ }
176+ spacing: units.gu(2)
177+ Repeater {
178+ id: rightActionsRepeater
179+
180+ model: _showActions ? _visibleRightSideActions : []
181+ Item {
182+ property alias image: img
183+
184+ height: rightActionsView.height
185+ width: root.actionWidth
186+
187+ Icon {
188+ id: img
189+ anchors.centerIn: parent
190+ width: units.gu(3)
191+ height: units.gu(3)
192+ name: modelData.iconName
193+ source: modelData.iconSource
194+ color: root.activeAction === modelData ? UbuntuColors.lightAubergine : UbuntuColors.lightGrey
195+ }
196+ Rectangle {
197+ id: underscore
198+ height: units.gu(0.2)
199+ anchors {
200+ left: parent.left
201+ right: parent.right
202+ bottom: parent.bottom
203+ bottomMargin: units.gu(1.5)
204+
205+ }
206+ color: UbuntuColors.lightAubergine
207+ visible: root.activeAction === modelData && showUnderscore
208+ onVisibleChanged: {
209+ if (visible && enableHaptics) {
210+ clickEffect.start()
211+ }
212+ }
213+ }
214+ }
215+ }
216+ }
217 }
218
219
220@@ -306,7 +340,7 @@
221 }
222 }
223 Behavior on color {
224- ColorAnimation {}
225+ ColorAnimation {}
226 }
227 }
228
229@@ -347,6 +381,7 @@
230 ScriptAction {
231 script: {
232 root.activeAction.triggered(root)
233+ root.activeAction = null
234 mouseArea.state = ""
235 }
236 }
237@@ -410,6 +445,9 @@
238
239 onReleased: {
240 if (root.triggerActionOnMouseRelease && root.activeAction) {
241+ if (enableHaptics) {
242+ clickEffect.start()
243+ }
244 triggerAction.start()
245 } else {
246 root.returnToBounds(direction)
247@@ -435,6 +473,10 @@
248 return
249 }
250 }
251+ if (enableHaptics) {
252+ clickEffect.start()
253+ }
254+
255 root.resetSwipe()
256 }
257
258@@ -450,5 +492,16 @@
259 }
260 z: -1
261 }
262+ ListItem.ThinDivider {
263+ id: divider
264+ visible: showDivider
265+ width: parent.width + units.gu(4)
266+ anchors {
267+ left: parent.left
268+ right: parent.right
269+ bottom: parent.bottom
270+ bottomMargin: units.gu(-0.15)
271+ }
272+ }
273 }
274
275
276=== added file 'curated-store/ComponentStore/ListItemWithActions/ubuntu_component_store.json'
277--- curated-store/ComponentStore/ListItemWithActions/ubuntu_component_store.json 1970-01-01 00:00:00 +0000
278+++ curated-store/ComponentStore/ListItemWithActions/ubuntu_component_store.json 2015-04-13 17:45:57 +0000
279@@ -0,0 +1,6 @@
280+{
281+ "name": "ListItemWithActions",
282+ "description": "This widget provides an updated listitem which is what the core apps currently use.",
283+ "version": "1.0",
284+ "documentation_url": "http://ubuntu-component-store.readthedocs.org/en/latest/_components/listitemwithactions.html"
285+}
286
287=== added file 'curated-store/ComponentStore/PageWithBottomEdge/ubuntu_component_store.json'
288--- curated-store/ComponentStore/PageWithBottomEdge/ubuntu_component_store.json 1970-01-01 00:00:00 +0000
289+++ curated-store/ComponentStore/PageWithBottomEdge/ubuntu_component_store.json 2015-04-13 17:45:57 +0000
290@@ -0,0 +1,6 @@
291+{
292+ "name": "PageWithBottomEdge",
293+ "description": "This component provides a bottom edge which can be used to house common actions.",
294+ "version": "1.0",
295+ "documentation_url": "http://ubuntu-component-store.readthedocs.org/en/latest/_components/pagewithbottomedge.html"
296+}
297
298=== modified file 'curated-store/ComponentStore/RadialBottomEdge/RadialAction.qml'
299--- curated-store/ComponentStore/RadialBottomEdge/RadialAction.qml 2014-11-15 13:52:44 +0000
300+++ curated-store/ComponentStore/RadialBottomEdge/RadialAction.qml 2015-04-13 17:45:57 +0000
301@@ -5,4 +5,5 @@
302 property string iconName: "add"
303 property color iconColor: "Black"
304 property color backgroundColor: "White"
305+ property bool enabled: true
306 }
307
308=== modified file 'curated-store/ComponentStore/RadialBottomEdge/RadialBottomEdge.qml'
309--- curated-store/ComponentStore/RadialBottomEdge/RadialBottomEdge.qml 2014-11-15 14:50:47 +0000
310+++ curated-store/ComponentStore/RadialBottomEdge/RadialBottomEdge.qml 2015-04-13 17:45:57 +0000
311@@ -1,4 +1,5 @@
312-import QtQuick 2.0
313+import QtQuick 2.2
314+import QtFeedback 5.0
315 import Ubuntu.Components 1.1
316
317 Item {
318@@ -11,7 +12,8 @@
319 property color hintIconColor: UbuntuColors.coolGrey
320 property bool bottomEdgeEnabled: true
321
322- property real expandedPosition: 0.6 * height
323+ property int expandAngle: 360
324+ property real expandedPosition: (0.85 - 0.25 * expandAngle/360) * height
325 property real collapsedPosition: height - hintSize/2
326
327 property list<RadialAction> actions
328@@ -20,6 +22,16 @@
329
330 anchors.fill: parent
331
332+ HapticsEffect {
333+ id: clickEffect
334+ attackIntensity: 0.0
335+ attackTime: 50
336+ intensity: 1.0
337+ duration: 10
338+ fadeTime: 50
339+ fadeIntensity: 0.0
340+ }
341+
342 Rectangle {
343 id: bgVisual
344
345@@ -41,6 +53,20 @@
346 anchors.horizontalCenter: parent.horizontalCenter
347 y: collapsedPosition
348 z: parent.z + 1
349+
350+ Rectangle {
351+ id: dropShadow
352+ width: parent.width
353+ height: parent.height
354+ border.color: "#B3B3B3"
355+ color: "Transparent"
356+ radius: parent.radius
357+ z: -1
358+ anchors {
359+ centerIn: parent
360+ verticalCenterOffset: units.gu(-0.3)
361+ }
362+ }
363
364 Icon {
365 id: hintIcon
366@@ -60,10 +86,13 @@
367
368 Repeater {
369 id: actionList
370+ readonly property real itemSpace: bottomEdge.expandAngle/actionList.count;
371+ readonly property real substractAngle: (bottomEdge.expandAngle == 360 || !actionList.count) ?
372+ 0 : (actionList.count-1)/2 * itemSpace
373 model: actions
374 delegate: Rectangle {
375 id: actionDelegate
376- readonly property real radAngle: (index % actionList.count * (360/actionList.count)) * Math.PI / 180
377+ readonly property real radAngle: (index % actionList.count * actionList.itemSpace - actionList.substractAngle) * Math.PI / 180
378 property real distance: bottomEdgeHint.actionListDistance
379 z: -1
380 width: actionButtonSize
381@@ -71,6 +100,7 @@
382 radius: width/2
383 anchors.centerIn: parent
384 color: modelData.backgroundColor
385+ opacity: modelData.enabled ? 1.0 : 0.7
386 transform: Translate {
387 x: distance * Math.sin(radAngle)
388 y: -distance * Math.cos(radAngle)
389@@ -85,8 +115,10 @@
390 }
391
392 MouseArea {
393+ enabled: modelData.enabled
394 anchors.fill: parent
395 onClicked: {
396+ clickEffect.start()
397 bottomEdgeHint.state = "collapsed"
398 modelData.triggered(null)
399 }
400
401=== added file 'curated-store/ComponentStore/RadialBottomEdge/ubuntu_component_store.json'
402--- curated-store/ComponentStore/RadialBottomEdge/ubuntu_component_store.json 1970-01-01 00:00:00 +0000
403+++ curated-store/ComponentStore/RadialBottomEdge/ubuntu_component_store.json 2015-04-13 17:45:57 +0000
404@@ -0,0 +1,6 @@
405+{
406+ "name": "RadialBottomEdge",
407+ "description": "This component provides a unique way to show actions buttons using the bottom edge. It allows app developers to decide how many actions they want to show and customize it to their liking.",
408+ "version": "1.1",
409+ "documentation_url": "http://ubuntu-component-store.readthedocs.org/en/latest/_components/radialbottomedge.html"
410+}
411
412=== added directory 'curated-store/ComponentStore/WelcomeWizard'
413=== added file 'curated-store/ComponentStore/WelcomeWizard/Walkthrough.qml'
414--- curated-store/ComponentStore/WelcomeWizard/Walkthrough.qml 1970-01-01 00:00:00 +0000
415+++ curated-store/ComponentStore/WelcomeWizard/Walkthrough.qml 2015-04-13 17:45:57 +0000
416@@ -0,0 +1,116 @@
417+import QtQuick 2.3
418+import Ubuntu.Components 1.1
419+import Ubuntu.Components.ListItems 1.0 as ListItem
420+
421+Page {
422+ id: walkthrough
423+
424+ // Property to set the app name used in the walkthrough
425+ property string appName
426+
427+ // Property to check if this is the first run or not
428+ property bool isFirstRun: true
429+
430+ // Property to store the slides shown in the walkthrough (Each slide is a component defined in a separate file for simplicity)
431+ property list<Component> model
432+
433+ // Property to set the color of bottom cirle to indicate the user's progress
434+ property color completeColor: "green"
435+
436+ // Property to set the color of the bottom circle to indicate the slide still left to cover
437+ property color inCompleteColor: "grey"
438+
439+ // Property to set the color of the skip welcome wizard text
440+ property color skipTextColor: "grey"
441+
442+ // Property to signal walkthrough completion
443+ signal finished
444+
445+ // ListView to show the slides
446+ ListView {
447+ id: listView
448+ anchors {
449+ left: parent.left
450+ right: parent.right
451+ top: skipLabel.bottom
452+ bottom: separator.top
453+ }
454+
455+ model: walkthrough.model
456+ snapMode: ListView.SnapOneItem
457+ orientation: Qt.Horizontal
458+ highlightMoveDuration: UbuntuAnimation.FastDuration
459+ highlightRangeMode: ListView.StrictlyEnforceRange
460+ highlightFollowsCurrentItem: true
461+
462+ delegate: Item {
463+ width: listView.width
464+ height: listView.height
465+ clip: true
466+
467+ Loader {
468+ anchors {
469+ fill: parent
470+ margins: units.gu(2)
471+ }
472+
473+ sourceComponent: modelData
474+ }
475+ }
476+ }
477+
478+ // Label to skip the walkthrough. Only visible on the first slide
479+ Label {
480+ id: skipLabel
481+
482+ color: skipTextColor
483+ fontSize: "small"
484+ width: contentWidth
485+ text: listView.currentIndex === 0 ? i18n.tr("Already used %1? <b>Skip the tutorial</b>").arg(appName) : i18n.tr("Skip")
486+
487+ anchors {
488+ top: parent.top
489+ left: parent.left
490+ margins: units.gu(2)
491+ }
492+
493+ MouseArea {
494+ anchors.fill: parent
495+ onClicked: walkthrough.finished()
496+ }
497+ }
498+
499+ // Separator between walkthrough slides and slide indicator
500+ ListItem.ThinDivider {
501+ id: separator
502+ anchors.bottom: slideIndicator.top
503+ }
504+
505+ // Indicator element to represent the current slide of the walkthrough
506+ Row {
507+ id: slideIndicator
508+ height: units.gu(6)
509+ spacing: units.gu(2)
510+ anchors {
511+ bottom: parent.bottom
512+ horizontalCenter: parent.horizontalCenter
513+ }
514+
515+ Repeater {
516+ model: walkthrough.model.length
517+ delegate: Rectangle {
518+ height: width
519+ radius: width/2
520+ width: units.gu(2)
521+ antialiasing: true
522+ anchors.verticalCenter: parent.verticalCenter
523+ color: listView.currentIndex >= index ? completeColor : inCompleteColor
524+ Behavior on color {
525+ ColorAnimation {
526+ duration: UbuntuAnimation.FastDuration
527+ }
528+ }
529+ }
530+ }
531+ }
532+}
533
534=== added file 'curated-store/ComponentStore/WelcomeWizard/ubuntu_component_store.json'
535--- curated-store/ComponentStore/WelcomeWizard/ubuntu_component_store.json 1970-01-01 00:00:00 +0000
536+++ curated-store/ComponentStore/WelcomeWizard/ubuntu_component_store.json 2015-04-13 17:45:57 +0000
537@@ -0,0 +1,6 @@
538+{
539+ "name": "WelcomeWizard",
540+ "description": "This widget adds a welcome wizard to help introduce the app to users.",
541+ "version": "1.0",
542+ "documentation_url": "http://ubuntu-component-store.readthedocs.org/en/latest/_components/welcomewizard.html"
543+}
544
545=== modified file 'curated-store/GallerySRC/ListItemWithActionsWidget.qml'
546--- curated-store/GallerySRC/ListItemWithActionsWidget.qml 2014-11-12 15:54:22 +0000
547+++ curated-store/GallerySRC/ListItemWithActionsWidget.qml 2015-04-13 17:45:57 +0000
548@@ -18,6 +18,9 @@
549 id: testModel
550 ListElement { title: "Slide me right to delete" }
551 ListElement { title: "Slide me left to show more options" }
552+ // TODO: not sure what the best wording for these additional properties should be [dpniel]
553+ ListElement { title: "With thin divider" }
554+ ListElement { title: "With haptic feedback and actions underscored" }
555 }
556
557 content: ListView {
558@@ -32,6 +35,9 @@
559 width: parent.width
560 color: "White"
561 triggerActionOnMouseRelease: true
562+ showDivider: index === 2
563+ enableHaptics: index === 3
564+ showUnderscore: index === 3
565
566 leftSideAction: Action {
567 iconName: "delete"
568
569=== modified file 'curated-store/GallerySRC/RadialBottomEdgeWidget.qml'
570--- curated-store/GallerySRC/RadialBottomEdgeWidget.qml 2014-11-15 14:50:47 +0000
571+++ curated-store/GallerySRC/RadialBottomEdgeWidget.qml 2015-04-13 17:45:57 +0000
572@@ -22,12 +22,14 @@
573 RadialAction {
574 iconName: "settings"
575 iconColor: UbuntuColors.coolGrey
576+ enabled: false
577 },
578
579 RadialAction {
580 iconName: "save"
581 iconColor: "white"
582 backgroundColor: UbuntuColors.green
583+ enabled: false
584 onTriggered: console.log("save")
585 },
586
587
588=== added file 'curated-store/GallerySRC/Slide1.qml'
589--- curated-store/GallerySRC/Slide1.qml 1970-01-01 00:00:00 +0000
590+++ curated-store/GallerySRC/Slide1.qml 2015-04-13 17:45:57 +0000
591@@ -0,0 +1,54 @@
592+import QtQuick 2.3
593+import Ubuntu.Components 1.1
594+
595+// Slide 1
596+Component {
597+ id: slide1
598+ Item {
599+ id: slide1Container
600+
601+ UbuntuShape {
602+ anchors {
603+ bottom: textColumn.top
604+ bottomMargin: units.gu(4)
605+ horizontalCenter: parent.horizontalCenter
606+ }
607+
608+ image: Image {
609+ smooth: true
610+ antialiasing: true
611+ fillMode: Image.PreserveAspectFit
612+ source: Qt.resolvedUrl("assets/flashback.png")
613+ }
614+ }
615+
616+ Column {
617+ id: textColumn
618+
619+ anchors.centerIn: parent
620+
621+ Label {
622+ text: "Welcome to"
623+ fontSize: "x-large"
624+ height: contentHeight
625+ anchors.horizontalCenter: parent.horizontalCenter
626+ }
627+ Label {
628+ text: "Component Store Gallery"
629+ font.bold: true
630+ height: contentHeight
631+ font.pixelSize: units.dp(50)
632+ anchors.horizontalCenter: parent.horizontalCenter
633+ }
634+ }
635+
636+ Label {
637+ id: swipeText
638+ text: "Swipe left to continue"
639+ horizontalAlignment: Text.AlignHCenter
640+ anchors.bottom: parent.bottom
641+ anchors.bottomMargin: units.gu(2)
642+ anchors.horizontalCenter: parent.horizontalCenter
643+ }
644+ }
645+}
646
647=== added file 'curated-store/GallerySRC/Slide2.qml'
648--- curated-store/GallerySRC/Slide2.qml 1970-01-01 00:00:00 +0000
649+++ curated-store/GallerySRC/Slide2.qml 2015-04-13 17:45:57 +0000
650@@ -0,0 +1,42 @@
651+import QtQuick 2.3
652+import Ubuntu.Components 1.1
653+
654+// Slide 2
655+Component {
656+ id: slide2
657+ Item {
658+ id: slide2Container
659+
660+ Column {
661+ id: mainColumn
662+ spacing: units.gu(4)
663+ anchors.fill: parent
664+
665+ Label {
666+ id: introductionText
667+ text: "Component Store Gallery"
668+ font.bold: true
669+ fontSize: "x-large"
670+ anchors.horizontalCenter: parent.horizontalCenter
671+ }
672+
673+ Image {
674+ id: centerImage
675+ height: parent.height - bodyText.contentHeight - introductionText.height - 4*mainColumn.spacing
676+ fillMode: Image.PreserveAspectFit
677+ anchors.horizontalCenter: parent.horizontalCenter
678+ source: Qt.resolvedUrl("assets/flashback.png")
679+ }
680+
681+ Label {
682+ id: bodyText
683+ anchors.left: parent.left
684+ anchors.right: parent.right
685+ wrapMode: Text.WordWrap
686+ font.pixelSize: units.dp(17)
687+ horizontalAlignment: Text.AlignHCenter
688+ text: "Component Store Gallery is a frontend app to the component store and provides a demo of all the components in the store. \n\nUbuntu Touch's first component store!"
689+ }
690+ }
691+ }
692+}
693
694=== added file 'curated-store/GallerySRC/WelcomeWizardWidget.qml'
695--- curated-store/GallerySRC/WelcomeWizardWidget.qml 1970-01-01 00:00:00 +0000
696+++ curated-store/GallerySRC/WelcomeWizardWidget.qml 2015-04-13 17:45:57 +0000
697@@ -0,0 +1,41 @@
698+import QtQuick 2.0
699+import Ubuntu.Components 1.1
700+import "../ComponentStore/WelcomeWizard"
701+
702+TemplateWidgetPage {
703+ id: welcomeWizardWidget
704+
705+ title: "Welcome Wizard"
706+ author: "Nekhelesh Ramananthan, Michael Spencer"
707+ email: "nik90@ubuntu.com"
708+ license: "GNU General Public License v3.0"
709+ description: "This widget adds a welcome wizard which helps showcase the \
710+app features to the user."
711+
712+ Component {
713+ id: pageComponent
714+ Walkthrough {
715+ id: walkthrough
716+
717+ appName: "Component Store Gallery"
718+
719+ onFinished: {
720+ console.log("Welcome Wizard Complete!")
721+ stack.pop()
722+ }
723+
724+ model: [
725+ Slide1{},
726+ Slide2{}
727+ ]
728+ }
729+ }
730+
731+ content: Button {
732+ text: "Preview Welcome Wizard Component"
733+ color: "Green"
734+ height: units.gu(6)
735+ onClicked: stack.push(pageComponent)
736+ anchors.centerIn: parent
737+ }
738+}
739
740=== modified file 'curated-store/GallerySRC/WidgetsModel.qml'
741--- curated-store/GallerySRC/WidgetsModel.qml 2014-11-15 13:52:44 +0000
742+++ curated-store/GallerySRC/WidgetsModel.qml 2015-04-13 17:45:57 +0000
743@@ -32,4 +32,9 @@
744 label: "Radial Bottom Edge"
745 source: "GallerySRC/RadialBottomEdgeWidget.qml"
746 }
747+
748+ ListElement {
749+ label: "Welcome Wizard"
750+ source: "GallerySRC/WelcomeWizardWidget.qml"
751+ }
752 }
753
754=== modified file 'docs/_components/listitemwithactions.rst'
755--- docs/_components/listitemwithactions.rst 2014-11-15 14:59:11 +0000
756+++ docs/_components/listitemwithactions.rst 2015-04-13 17:45:57 +0000
757@@ -83,6 +83,9 @@
758 - :ref:`rightSideActions`: Action <List>
759 - :ref:`locked`: boolean (false by default)
760 - :ref:`triggerActionOnMouseRelease`: boolean (false by default)
761+- :ref:`showDivider`: boolean (false by default)
762+- :ref:`showUnderscore`: boolean (false by default)
763+- :ref:`enableHaptics`: boolean (false by default)
764
765 Property Documentation
766 ----------------------
767@@ -116,7 +119,7 @@
768
769 Label {
770 id: subTitle
771- text: "SubTitle
772+ text: "SubTitle"
773 }
774 }
775
776@@ -184,3 +187,24 @@
777 This property affects the right side actions behavior. If set to true, the user can swipe left to
778 reveal the right side actions and execute an action by just hovering over it. By default, this is
779 set to false meaning that the user needs to press on the action to trigger it.
780+
781+.. _showDivider:
782+
783+showDivider
784+^^^^^^^^^^^
785+
786+This property can be used to display a thin divider along the bottom of the list item.
787+
788+.. _showUnderscore:
789+
790+showUnderscore
791+^^^^^^^^^^^^^^
792+
793+This property when enabled displays an underscore underneath the active action in the rightSideActions.
794+
795+.. _enableHaptics:
796+
797+enableHaptics
798+^^^^^^^^^^^^^
799+
800+This property enables haptic feedback when triggering actions in the list item.
801
802=== modified file 'docs/_components/radialbottomedge.rst'
803--- docs/_components/radialbottomedge.rst 2014-11-15 14:59:11 +0000
804+++ docs/_components/radialbottomedge.rst 2015-04-13 17:45:57 +0000
805@@ -35,6 +35,7 @@
806 RadialAction {
807 iconName: "save"
808 iconColor: "white"
809+ enabled: false
810 backgroundColor: UbuntuColors.green
811 onTriggered: console.log("save")
812 },
813@@ -42,6 +43,7 @@
814 RadialAction {
815 iconName: "delete"
816 iconColor: "white"
817+ enabled: false
818 backgroundColor: UbuntuColors.red
819 onTriggered: console.log("delete")
820 },
821@@ -74,6 +76,7 @@
822 - :ref:`actions`: RadialAction <list>
823 - :ref:`actionButtonSize`: int
824 - :ref:`actionButtonDistance`: int
825+- :ref:`expandAngle`: int (defaults to 360 deg)
826
827 .. note:: All properties except for *hintIconSource* have well defined defaults. As a developer, you could choose to go with the defaults or change them to your liking.
828
829@@ -132,11 +135,12 @@
830
831 This property is used to define a list of actions to be shown in the radial menu. The list takes
832 a **RadialAction** which inherits **Action**. A RadialAction adds 3 properties on top of what Action
833-provides which are iconName, iconColor and backgroundColor. ::
834+provides which are iconName, iconColor, enabled and backgroundColor. ::
835
836 RadialAction {
837 iconName: "add"
838 iconColor: "white"
839+ enabled: false
840 backgroundColor: "green"
841 }
842
843@@ -156,3 +160,13 @@
844 ^^^^^^^^^^^^^^^^^^^^
845
846 The distance (separation) between the action buttons and the center of the radial menu.
847+
848+.. _expandAngle:
849+
850+expandAngle
851+^^^^^^^^^^^
852+
853+The expand angle defines the spread angle. By default, it is set to 360 degrees which places the buttons
854+in a full circle pattern. If it was set to 180 degrees, then the buttons would follow a semi-circle
855+pattern.
856+
857
858=== added file 'docs/_components/welcomewizard.rst'
859--- docs/_components/welcomewizard.rst 1970-01-01 00:00:00 +0000
860+++ docs/_components/welcomewizard.rst 2015-04-13 17:45:57 +0000
861@@ -0,0 +1,218 @@
862+Welcome Wizard
863+==============
864+
865++----------+----------------------------------------+
866+| Author | Nekhelesh Ramananthan, Michael Spencer |
867++----------+-------------+--------------------------+
868+| License | BSD License |
869++----------+----------------------------------------+
870+| Contact | nik90@ubuntu.com |
871++----------+----------------------------------------+
872+| Framework| ubuntu-sdk-14.10 |
873++----------+----------------------------------------+
874+
875+This component shows users a welcome wizard which can be used to introduce
876+and showcase the features of the app to guide the user. The API of this
877+component is rather simple and provides a lot of freedom to the developer
878+to present his content.
879+
880+It is recommended to put the Walkthrough{} component inside a qml Component{}
881+since it is not run frequently. Walkthrough derives from a Page. So push it
882+into a pagestack to show the welcome wizard as shown below in the example.
883+
884+Example:
885+
886+MainView.qml
887+
888+.. code-block:: qml
889+
890+ MainView
891+ {
892+ Component {
893+ id: pageComponent
894+ Walkthrough {
895+ id: walkthrough
896+
897+ appName: "Component Store Gallery"
898+
899+ onFinished: {
900+ console.log("Welcome Wizard Complete!")
901+ // Here perhaps save isFirstRun variable to the disk
902+ stack.pop()
903+ }
904+
905+ model: [
906+ Slide1{},
907+ Slide2{}
908+ ]
909+ }
910+ }
911+
912+ component.onCompleted: pagestack.push(pageComponent)
913+ }
914+
915+Slide1.qml
916+
917+.. code-block:: qml
918+
919+ import QtQuick 2.3
920+ import Ubuntu.Components 1.1
921+
922+ // Slide 1
923+ Component {
924+ id: slide1
925+ Item {
926+ id: slide1Container
927+
928+ UbuntuShape {
929+ anchors {
930+ bottom: textColumn.top
931+ bottomMargin: units.gu(4)
932+ horizontalCenter: parent.horizontalCenter
933+ }
934+
935+ image: Image {
936+ smooth: true
937+ antialiasing: true
938+ fillMode: Image.PreserveAspectFit
939+ source: Qt.resolvedUrl("assets/flashback.png")
940+ }
941+ }
942+
943+ Column {
944+ id: textColumn
945+
946+ anchors.centerIn: parent
947+
948+ Label {
949+ text: "Welcome to"
950+ fontSize: "x-large"
951+ height: contentHeight
952+ anchors.horizontalCenter: parent.horizontalCenter
953+ }
954+ Label {
955+ text: "Component Store Gallery"
956+ font.bold: true
957+ height: contentHeight
958+ font.pixelSize: units.dp(50)
959+ anchors.horizontalCenter: parent.horizontalCenter
960+ }
961+ }
962+
963+ Label {
964+ id: swipeText
965+ text: "Swipe left to continue"
966+ horizontalAlignment: Text.AlignHCenter
967+ anchors.bottom: parent.bottom
968+ anchors.bottomMargin: units.gu(2)
969+ anchors.horizontalCenter: parent.horizontalCenter
970+ }
971+ }
972+ }
973+
974+.. image:: ../_images/welcomewizard.png
975+ :align: center
976+
977+Properties
978+----------
979+
980+- :ref:`appName`: string
981+- :ref:`isFirstRun`: boolean
982+- :ref:`model`: Item<list>
983+- :ref:`completeColor`: color
984+- :ref:`inCompleteColor`: color
985+- :ref:`skipTextColor`: color
986+
987+Signals
988+-------
989+
990+- :ref:`finished()`
991+
992+Property Documentation
993+----------------------
994+
995+.. _appName:
996+
997+appName
998+^^^^^^^
999+
1000+Name of the application that is shown in some parts of the welcome wizard.
1001+
1002+.. _isFirstRun:
1003+
1004+isFirstRun
1005+^^^^^^^^^^
1006+
1007+Boolean property to determine if the welcome wizard was run for the first time
1008+or not. It is recommended to store this variable to the disk using U1dB or Qt.labs.settings
1009+to remember the welcome wizard run state.
1010+
1011+.. _model:
1012+
1013+model
1014+^^^^^
1015+
1016+This property stores the welcome wizards slides that are shown to the user.
1017+Create your content and store them in separate files per slide. So if you
1018+have 3 slides in your welcome wizard, you could define them as Slide1.qml,
1019+Slide2.qml and Slide3.qml and then reference them as,
1020+
1021+.. code-block:: qml
1022+
1023+ model: [
1024+ Slide1{},
1025+ Slide2{},
1026+ Slide3{}
1027+ ]
1028+
1029+The slides should only contain the content you want to show. Everything else like the
1030+dots, divider, title etc are handled by the welcome wizard component itself. Think of these
1031+slides as delegates in a listview which only house the content itself.
1032+
1033+.. _completeColor:
1034+
1035+completeColor
1036+^^^^^^^^^^^^^
1037+
1038+This property sets the color of the bottom circle to indicate the progress of the user. By
1039+default it is green.
1040+
1041+.. _inCompleteColor:
1042+
1043+inCompleteColor
1044+^^^^^^^^^^^^^^^
1045+
1046+This property sets the color of the bottom circle to indicate the slides left in the wizard.
1047+By default it is grey.
1048+
1049+.. _skipTextColor:
1050+
1051+skipTextColor
1052+^^^^^^^^^^^^^
1053+
1054+This property sets the color of the skip text shown at the top of the welcome wizard.
1055+
1056+Signal Documentation
1057+--------------------
1058+
1059+.. _finished():
1060+
1061+finished()
1062+^^^^^^^^^^
1063+
1064+This signal is fired automatically when the user press the skip button. It can also be made
1065+to fire manually to exit the welcome wizard. You can perform exit tasks when this signal is fired
1066+like updating the :ref:`isFirstRun` variable and storing to disk etc.
1067+
1068+.. code-block:: qml
1069+
1070+ Button {
1071+ id: continueButton
1072+ color: "Green"
1073+ height: units.gu(5)
1074+ width: units.gu(25)
1075+ text: "Exit Welcome Wizard"
1076+ anchors.horizontalCenter: parent.horizontalCenter
1077+ onClicked: finished()
1078+ }
1079+
1080
1081=== added file 'docs/_images/welcomewizard.png'
1082Binary files docs/_images/welcomewizard.png 1970-01-01 00:00:00 +0000 and docs/_images/welcomewizard.png 2015-04-13 17:45:57 +0000 differ
1083=== modified file 'docs/index.rst'
1084--- docs/index.rst 2015-01-04 12:05:08 +0000
1085+++ docs/index.rst 2015-04-13 17:45:57 +0000
1086@@ -56,3 +56,4 @@
1087 _components/listitemwithactions
1088 _components/pagewithbottomedge
1089 _components/radialbottomedge
1090+ _components/welcomewizard
1091
1092=== modified file 'docs/release.rst'
1093--- docs/release.rst 2014-11-15 14:50:47 +0000
1094+++ docs/release.rst 2015-04-13 17:45:57 +0000
1095@@ -1,6 +1,38 @@
1096 Release Notes
1097 =============
1098
1099+**23rd March 2015**
1100+
1101+* Added haptic feedback to radial action buttons
1102+* Added drop shadow to radial bottom edge hint
1103+
1104+**13th March 2015**
1105+
1106+* Improved ListItemWithActions components by adding the following new properties,
1107+
1108+ * showDivider - mimics SDK ListItem property
1109+ * showUnderscore - Shows an underscore under the active right side action
1110+ * enableHaptics - enables haptic effects on actions triggered
1111+
1112+**11th March 2015**
1113+
1114+* Added expandAngle property to radial bottom edge component to allow developers to specify the spread angle.
1115+
1116+**3rd March 2015**
1117+
1118+* Added WelcomeWizard component
1119+* Fixed a typo in listitemwithactions documentation
1120+
1121+**23rd February 2015**
1122+
1123+* ListItemWithActions: Reset active action after executing it.
1124+* ListItemWithActions has been fixed to use actions's iconSource property
1125+ to allow using icons that are not in the theme
1126+
1127+**4th January 2015**
1128+
1129+* Add ubuntu_component_store.json metadata files for curated components
1130+
1131 **15th November 2014**
1132
1133 * Added radial bottom edge component
1134
1135=== modified file 'script/debian/changelog'
1136--- script/debian/changelog 2014-11-09 15:37:52 +0000
1137+++ script/debian/changelog 2015-04-13 17:45:57 +0000
1138@@ -1,3 +1,15 @@
1139+ucs (0.2) trusty; urgency=medium
1140+
1141+ [Stuart Langridge]
1142+ * Added community channel which allows developers to submit components
1143+ easily to ucs.
1144+ * Converted ucs script to python
1145+
1146+ [Nekhelesh Ramananthan]
1147+ * Fixed UCS Gallery app and debian packaging
1148+
1149+ -- Nekhelesh Ramananthan <krnekhelesh@gmail.com> Tue, 06 Jan 2015 15:57:14 +0100
1150+
1151 ucs (0.1.2) trusty; urgency=medium
1152
1153 * Improved install and update command to use less network bandwidth by only
1154
1155=== modified file 'script/debian/control'
1156--- script/debian/control 2014-11-08 22:37:17 +0000
1157+++ script/debian/control 2015-04-13 17:45:57 +0000
1158@@ -10,7 +10,8 @@
1159 Package: ucs
1160 Architecture: all
1161 Depends: ${misc:Depends},
1162- bzr
1163+ bzr,
1164+ python-bzrlib
1165 Description: Ubuntu Component Store
1166 Ubuntu Component Store is a library hosting a collection of component and
1167 modules that app developers can use as plug-and-play components instead of

Subscribers

People subscribed via source and target branches