Merge lp:~ibelieve/lang/layout_improvements into lp:lang

Proposed by Michael Spencer
Status: Merged
Approved by: Bogdan
Approved revision: 13
Merged at revision: 11
Proposed branch: lp:~ibelieve/lang/layout_improvements
Merge into: lp:lang
Diff against target: 959 lines (+310/-575)
9 files modified
.bzrignore (+1/-0)
Lang.qmlproject (+2/-2)
Lang.qmlproject.user (+0/-407)
QML/AddCollectionDialog.qml (+83/-0)
QML/CollectionsPage.qml (+77/-0)
QML/DeleteCollectionDialog.qml (+28/-0)
QML/Lang.qml (+5/-166)
components/ConfirmDialog.qml (+47/-0)
components/DialogButtonRow.qml (+67/-0)
To merge this branch: bzr merge lp:~ibelieve/lang/layout_improvements
Reviewer Review Type Date Requested Status
Bogdan Approve
Review via email: mp+233090@code.launchpad.net

Commit message

Improve the layout of the collections page and some of the dialogs

Description of the change

Improve the layout of the collections page and some of the dialogs

- Use a grid view on the collections page with auto-resizing cells so the padding is always even on all sides
- Add an empty placeholder label to the colections page when there are no vocabulary collections
- Move the collections page into a separate file
- Move the add collection dialog into a separate file and improve the layout
- Move the delete collection into a separate file and improve the layout

To post a comment you must log in.
Revision history for this message
Bogdan (boghison) wrote :

Thank you very much.

review: Approve
Revision history for this message
Michael Spencer (ibelieve) wrote :

I'm not entirely sure of the process outside of the Ubuntu core apps, but since you don't have a ubuntu bot running Jenkins and automatically doing the merges, I think you're going to have to merge my branch from the command line, push the new commit to Launchpad, and then mark the Status as Merged.

See the "Making the Merge" section here: https://help.launchpad.net/Code/Review

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== added file '.bzrignore'
--- .bzrignore 1970-01-01 00:00:00 +0000
+++ .bzrignore 2014-09-02 16:35:07 +0000
@@ -0,0 +1,1 @@
1*.qmlproject.user*
02
=== modified file 'Lang.qmlproject'
--- Lang.qmlproject 2014-08-27 12:09:40 +0000
+++ Lang.qmlproject 2014-09-02 16:35:07 +0000
@@ -4,13 +4,13 @@
4 mainFile: "QML/Lang.qml"4 mainFile: "QML/Lang.qml"
55
6 QmlFiles {6 QmlFiles {
7 directory: "QML"7 directory: "."
8 }8 }
9 JavaScriptFiles {9 JavaScriptFiles {
10 directory: "."10 directory: "."
11 }11 }
12 ImageFiles {12 ImageFiles {
13 directory: "IMG"13 directory: "."
14 }14 }
15 Files {15 Files {
16 filter: "*.desktop"16 filter: "*.desktop"
1717
=== removed file 'Lang.qmlproject.user'
--- Lang.qmlproject.user 2014-08-31 11:06:51 +0000
+++ Lang.qmlproject.user 1970-01-01 00:00:00 +0000
@@ -1,407 +0,0 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE QtCreatorProject>
3<!-- Written by QtCreator 3.1.1, 2014-08-31T14:06:16. -->
4<qtcreator>
5 <data>
6 <variable>ProjectExplorer.Project.ActiveTarget</variable>
7 <value type="int">1</value>
8 </data>
9 <data>
10 <variable>ProjectExplorer.Project.EditorSettings</variable>
11 <valuemap type="QVariantMap">
12 <value type="bool" key="EditorConfiguration.AutoIndent">true</value>
13 <value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
14 <value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
15 <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
16 <value type="QString" key="language">Cpp</value>
17 <valuemap type="QVariantMap" key="value">
18 <value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
19 </valuemap>
20 </valuemap>
21 <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
22 <value type="QString" key="language">QmlJS</value>
23 <valuemap type="QVariantMap" key="value">
24 <value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
25 </valuemap>
26 </valuemap>
27 <value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
28 <value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
29 <value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
30 <value type="int" key="EditorConfiguration.IndentSize">4</value>
31 <value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
32 <value type="int" key="EditorConfiguration.MarginColumn">80</value>
33 <value type="bool" key="EditorConfiguration.MouseHiding">true</value>
34 <value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
35 <value type="int" key="EditorConfiguration.PaddingMode">1</value>
36 <value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
37 <value type="bool" key="EditorConfiguration.ShowMargin">false</value>
38 <value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
39 <value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
40 <value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
41 <value type="int" key="EditorConfiguration.TabSize">8</value>
42 <value type="bool" key="EditorConfiguration.UseGlobal">true</value>
43 <value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
44 <value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
45 <value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
46 <value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
47 <value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
48 </valuemap>
49 </data>
50 <data>
51 <variable>ProjectExplorer.Project.PluginSettings</variable>
52 <valuemap type="QVariantMap"/>
53 </data>
54 <data>
55 <variable>ProjectExplorer.Project.Target.0</variable>
56 <valuemap type="QVariantMap">
57 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop</value>
58 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop</value>
59 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{4f363ae6-5c8c-4713-89e7-07655994b0fa}</value>
60 <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
61 <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
62 <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">2</value>
63 <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
64 <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/boghison/Projects/build-Lang-Desktop-default</value>
65 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
66 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
67 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
68 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
69 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
70 </valuemap>
71 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
72 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
73 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
74 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
75 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
76 </valuemap>
77 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
78 <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
79 <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
80 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Default</value>
81 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
82 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">UbuntuProjectManager.UbuntuQml.BuildConfiguration</value>
83 </valuemap>
84 <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">1</value>
85 <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
86 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
87 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
88 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
89 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
90 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
91 </valuemap>
92 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
93 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy locally</value>
94 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
95 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
96 </valuemap>
97 <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
98 <valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
99 <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
100 <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
101 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
102 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
103 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
104 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
105 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
106 <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
107 <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
108 <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
109 <value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
110 <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
111 <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
112 <value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
113 <value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
114 <value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
115 <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
116 <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
117 <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
118 <value type="int">0</value>
119 <value type="int">1</value>
120 <value type="int">2</value>
121 <value type="int">3</value>
122 <value type="int">4</value>
123 <value type="int">5</value>
124 <value type="int">6</value>
125 <value type="int">7</value>
126 <value type="int">8</value>
127 <value type="int">9</value>
128 <value type="int">10</value>
129 <value type="int">11</value>
130 <value type="int">12</value>
131 <value type="int">13</value>
132 <value type="int">14</value>
133 </valuelist>
134 <value type="int" key="PE.EnvironmentAspect.Base">0</value>
135 <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
136 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName"></value>
137 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">QML Scene</value>
138 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QmlProjectManager.QmlRunConfiguration.QmlScene</value>
139 <value type="QString" key="QmlProjectManager.QmlRunConfiguration.MainScript">CurrentFile</value>
140 <value type="QString" key="QmlProjectManager.QmlRunConfiguration.QDeclarativeViewerArguments"></value>
141 <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
142 <value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
143 <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
144 <value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
145 <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
146 <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
147 </valuemap>
148 <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.1">
149 <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
150 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
151 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
152 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
153 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
154 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
155 <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
156 <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
157 <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
158 <value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
159 <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
160 <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
161 <value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
162 <value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
163 <value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
164 <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
165 <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
166 <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
167 <value type="int">0</value>
168 <value type="int">1</value>
169 <value type="int">2</value>
170 <value type="int">3</value>
171 <value type="int">4</value>
172 <value type="int">5</value>
173 <value type="int">6</value>
174 <value type="int">7</value>
175 <value type="int">8</value>
176 <value type="int">9</value>
177 <value type="int">10</value>
178 <value type="int">11</value>
179 <value type="int">12</value>
180 <value type="int">13</value>
181 <value type="int">14</value>
182 </valuelist>
183 <value type="int" key="PE.EnvironmentAspect.Base">-1</value>
184 <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
185 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName"></value>
186 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">QML Viewer</value>
187 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QmlProjectManager.QmlRunConfiguration</value>
188 <value type="QString" key="QmlProjectManager.QmlRunConfiguration.MainScript">CurrentFile</value>
189 <value type="QString" key="QmlProjectManager.QmlRunConfiguration.QDeclarativeViewerArguments"></value>
190 <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
191 <value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
192 <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
193 <value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
194 <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
195 <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
196 </valuemap>
197 <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.2">
198 <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
199 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
200 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
201 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
202 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
203 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
204 <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
205 <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
206 <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
207 <value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
208 <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
209 <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
210 <value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
211 <value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
212 <value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
213 <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
214 <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
215 <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
216 <value type="int">0</value>
217 <value type="int">1</value>
218 <value type="int">2</value>
219 <value type="int">3</value>
220 <value type="int">4</value>
221 <value type="int">5</value>
222 <value type="int">6</value>
223 <value type="int">7</value>
224 <value type="int">8</value>
225 <value type="int">9</value>
226 <value type="int">10</value>
227 <value type="int">11</value>
228 <value type="int">12</value>
229 <value type="int">13</value>
230 <value type="int">14</value>
231 </valuelist>
232 <value type="int" key="PE.EnvironmentAspect.Base">2</value>
233 <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
234 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName"></value>
235 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Lang</value>
236 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">UbuntuProjectManager.UbuntuRunConfigurationLang</value>
237 <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
238 <value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
239 <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
240 <value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
241 <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
242 <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
243 </valuemap>
244 <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">3</value>
245 </valuemap>
246 </data>
247 <data>
248 <variable>ProjectExplorer.Project.Target.1</variable>
249 <valuemap type="QVariantMap">
250 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">UbuntuSDK for armhf (GCC ubuntu-sdk-14.10-utopic)</value>
251 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">UbuntuSDK for armhf (GCC ubuntu-sdk-14.10-utopic)</value>
252 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{a37e5551-8273-42ae-978c-2364c32a933a}</value>
253 <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
254 <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
255 <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
256 <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
257 <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/boghison/Projects/build-Lang-UbuntuSDK_for_armhf_GCC_ubuntu_sdk_14_10_utopic-default</value>
258 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
259 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
260 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
261 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
262 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
263 </valuemap>
264 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
265 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
266 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
267 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
268 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
269 </valuemap>
270 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
271 <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
272 <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
273 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Default</value>
274 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
275 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">UbuntuProjectManager.UbuntuQml.BuildConfiguration</value>
276 </valuemap>
277 <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">1</value>
278 <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
279 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
280 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
281 <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
282 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">UbuntuSDK Click build</value>
283 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
284 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">UbuntuProjectManager.ClickPackageStep</value>
285 <value type="int" key="Ubuntu.UbuntuPackageStep.PackageMode">0</value>
286 </valuemap>
287 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
288 <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
289 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Upload files to Ubuntu Device</value>
290 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
291 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">UbuntuProjectManager.UploadStep</value>
292 <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedFiles">
293 <value type="QString">/home/boghison/Projects/build-Lang-UbuntuSDK_for_armhf_GCC_ubuntu_sdk_14_10_utopic-default/com.ubuntu.developer.boghison.lang_0.1_all.click</value>
294 <value type="QString">/home/boghison/Projects/build-Lang-UbuntuSDK_for_armhf_GCC_ubuntu_sdk_14_10_utopic-default/com.ubuntu.developer.boghison.lang_0.5_all.click</value>
295 <value type="QString">/home/boghison/Projects/build-Lang-UbuntuSDK_for_armhf_GCC_ubuntu_sdk_14_10_utopic-default/com.ubuntu.developer.boghison.lang_0.4_all.click</value>
296 <value type="QString">/usr/share/qtcreator/ubuntu/scripts/qtc_device_applaunch.py</value>
297 <value type="QString">/home/boghison/Projects/build-Lang-UbuntuSDK_for_armhf_GCC_ubuntu_sdk_14_10_utopic-default/com.ubuntu.developer.boghison.lang_0.3_all.click</value>
298 <value type="QString">/home/boghison/Projects/build-Lang-UbuntuSDK_for_armhf_GCC_ubuntu_sdk_14_10_utopic-default/com.ubuntu.developer.boghison.lang_0.6_all.click</value>
299 </valuelist>
300 <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedHosts">
301 <value type="QString">127.0.0.1</value>
302 <value type="QString">127.0.0.1</value>
303 <value type="QString">127.0.0.1</value>
304 <value type="QString">127.0.0.1</value>
305 <value type="QString">127.0.0.1</value>
306 <value type="QString">127.0.0.1</value>
307 </valuelist>
308 <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedRemotePaths">
309 <value type="QString">/tmp</value>
310 <value type="QString">/tmp</value>
311 <value type="QString">/tmp</value>
312 <value type="QString">/tmp</value>
313 <value type="QString">/tmp</value>
314 <value type="QString">/tmp</value>
315 </valuelist>
316 <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedSysroots">
317 <value type="QString">/var/lib/schroot/chroots/click-ubuntu-sdk-14.10-armhf</value>
318 <value type="QString">/var/lib/schroot/chroots/click-ubuntu-sdk-14.10-armhf</value>
319 <value type="QString">/var/lib/schroot/chroots/click-ubuntu-sdk-14.10-armhf</value>
320 <value type="QString">/var/lib/schroot/chroots/click-ubuntu-sdk-14.10-armhf</value>
321 <value type="QString">/var/lib/schroot/chroots/click-ubuntu-sdk-14.10-armhf</value>
322 <value type="QString">/var/lib/schroot/chroots/click-ubuntu-sdk-14.10-armhf</value>
323 </valuelist>
324 <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedTimes">
325 <value type="QDateTime">2014-08-27T15:05:28</value>
326 <value type="QDateTime">2014-08-31T12:44:01</value>
327 <value type="QDateTime">2014-08-30T15:04:19</value>
328 <value type="QDateTime">2014-08-31T13:59:11</value>
329 <value type="QDateTime">2014-08-28T16:25:06</value>
330 <value type="QDateTime">2014-08-31T13:59:11</value>
331 </valuelist>
332 </valuemap>
333 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
334 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
335 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
336 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
337 </valuemap>
338 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
339 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy to Ubuntu Device</value>
340 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
341 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">UbuntuProjectManager.DeployConfiguration</value>
342 </valuemap>
343 <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
344 <valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
345 <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
346 <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
347 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
348 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
349 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
350 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
351 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
352 <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
353 <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
354 <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
355 <value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
356 <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
357 <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
358 <value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
359 <value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
360 <value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
361 <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
362 <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
363 <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
364 <value type="int">0</value>
365 <value type="int">1</value>
366 <value type="int">2</value>
367 <value type="int">3</value>
368 <value type="int">4</value>
369 <value type="int">5</value>
370 <value type="int">6</value>
371 <value type="int">7</value>
372 <value type="int">8</value>
373 <value type="int">9</value>
374 <value type="int">10</value>
375 <value type="int">11</value>
376 <value type="int">12</value>
377 <value type="int">13</value>
378 <value type="int">14</value>
379 </valuelist>
380 <value type="int" key="PE.EnvironmentAspect.Base">1</value>
381 <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
382 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName"></value>
383 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Lang</value>
384 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">UbuntuProjectManager.RemoteRunConfigurationLang</value>
385 <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
386 <value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
387 <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
388 <value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
389 <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
390 <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
391 </valuemap>
392 <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
393 </valuemap>
394 </data>
395 <data>
396 <variable>ProjectExplorer.Project.TargetCount</variable>
397 <value type="int">2</value>
398 </data>
399 <data>
400 <variable>ProjectExplorer.Project.Updater.EnvironmentId</variable>
401 <value type="QByteArray">{933be325-2d5b-4358-a163-774b77eeb676}</value>
402 </data>
403 <data>
404 <variable>ProjectExplorer.Project.Updater.FileVersion</variable>
405 <value type="int">15</value>
406 </data>
407</qtcreator>
4080
=== added file 'QML/AddCollectionDialog.qml'
--- QML/AddCollectionDialog.qml 1970-01-01 00:00:00 +0000
+++ QML/AddCollectionDialog.qml 2014-09-02 16:35:07 +0000
@@ -0,0 +1,83 @@
1import QtQuick 2.0
2
3import Ubuntu.Components 1.1
4import Ubuntu.Components.Popups 1.0
5
6import "../components"
7
8Dialog {
9 id: dialog
10
11 title: i18n.tr("Add Vocabulary Collection")
12
13 text: i18n.tr("Enter the name of the language and pick a color for it:")
14
15 TextField {
16 id: langField
17 width: parent.width
18
19 placeholderText: i18n.tr("Language name")
20
21 validator: RegExpValidator {
22 regExp: /.+/
23 }
24 }
25
26 Label {
27 text: i18n.tr("Preview (tap to change color)")
28 }
29
30
31 Item {
32 height: units.gu(20)
33
34 // The UbuntuShape is within a wrapper Item because the Dialog forces all children items
35 // to be full-width.
36 UbuntuShape {
37 id: colorShape
38 width: units.gu(15)
39 height: units.gu(20)
40 color: "#0000ff"
41
42 anchors.horizontalCenter: parent.horizontalCenter
43
44 MouseArea {
45 anchors.fill: parent
46 onClicked: {
47 var colorArray = ["#0000ff", "#800080", "#ffa500", "#00ff00", "#30d5c8", "#000000", "#ff0000", "#ffc0cb", "#a5682a"];
48 colorShape.color = (String(colorShape.color) !== colorArray[colorArray.length - 1]) ? colorArray[colorArray.indexOf(String(colorShape.color)) + 1] : colorArray[0]
49 }
50 }
51
52 Label {
53 text: langField.text
54 color: "white"
55 anchors.centerIn: parent
56 }
57 }
58 }
59
60 DialogButtonRow {
61 enabled: langField.acceptableInput
62
63 onAccepted: {
64 PopupUtils.close(dialog)
65
66 var tempContents = {};
67 tempContents = vocabDB.contents;
68 var existing;
69 for (var i = 0; i < tempContents["vocabularies"].length; i++) {
70 if (tempContents["vocabularies"][i].color == colorShape.color && tempContents["vocabularies"][i].name == langField.text) existing = true
71 }
72 if (existing == null) {
73 tempContents["vocabularies"].push({"name": langField.text, "color": colorShape.color, "translations": [], "definitions": []});
74 vocabDB.contents = tempContents;
75 PopupUtils.close(addVocabDialog);
76 mainStack.clear();
77 mainStack.push(vocabPage);
78 }
79 }
80
81 onRejected: PopupUtils.close(dialog)
82 }
83}
084
=== added file 'QML/CollectionsPage.qml'
--- QML/CollectionsPage.qml 1970-01-01 00:00:00 +0000
+++ QML/CollectionsPage.qml 2014-09-02 16:35:07 +0000
@@ -0,0 +1,77 @@
1import QtQuick 2.0
2
3import Ubuntu.Components 1.1
4import Ubuntu.Components.Popups 1.0
5import Ubuntu.Components.ListItems 1.0 as ListItem
6
7
8Page {
9 id: page
10 title: i18n.tr("Vocabulary Collections")
11
12 head.actions: [
13 Action {
14 text: i18n.tr("Add Collection")
15 iconName: "add"
16 onTriggered: PopupUtils.open(addVocab)
17 }
18 ]
19
20 property int columns: width/units.gu(20)
21
22 property int padding: units.gu(2)
23 property int columnWidth: gridView.count < columns ? units.gu(20) : (width - padding * (columns + 1))/columns
24
25 // We must set this to null when displaying the empty label so the label is centered
26 // correctly under the header
27 flickable: gridView.count == 0 ? null : gridView
28
29 GridView {
30 id: gridView
31
32 anchors {
33 fill: parent
34 margins: page.padding/2
35 }
36
37 cellWidth: columnWidth + padding
38 cellHeight: columnWidth * 4/3 + padding
39
40 model: vocabDB.contents["vocabularies"]
41 delegate: Item {
42 width: gridView.cellWidth
43 height: gridView.cellHeight
44
45 UbuntuShape {
46 anchors.centerIn: parent
47
48 width: columnWidth
49 height: width * 4/3
50 color: modelData.color
51
52 Label {
53 anchors.centerIn: parent
54 text: modelData.name
55 color: "white"
56 }
57 MouseArea {
58 anchors.fill: parent
59 onClicked: handleShape(parent.color, parent.children[0].text)
60 }
61 }
62 }
63 }
64
65 Scrollbar {
66 flickableItem: gridView
67 }
68
69 Label {
70 anchors.centerIn: parent
71 fontSize: "large"
72 opacity: 0.5
73 visible: gridView.count == 0
74
75 text: "No vocabulary collections yet"
76 }
77}
078
=== added file 'QML/DeleteCollectionDialog.qml'
--- QML/DeleteCollectionDialog.qml 1970-01-01 00:00:00 +0000
+++ QML/DeleteCollectionDialog.qml 2014-09-02 16:35:07 +0000
@@ -0,0 +1,28 @@
1import QtQuick 2.0
2
3import "../components"
4
5ConfirmDialog {
6 title: i18n.tr("Delete Vocabulary Collection")
7 text: i18n.tr("Are you sure you want to delete '%1'?").arg(name)
8
9 acceptText: i18n.tr("Delete")
10 acceptColor: "#d9534f"
11
12 property string name
13
14 onAccepted: {
15 var tempContents = vocabDB.contents;
16 var newArray = [];
17 for (var y = 0; y < tempContents.vocabularies.length; y++){
18 if (String(tempContents.vocabularies[y].name) == String(name)){
19 continue;
20 }
21 newArray.push(tempContents.vocabularies[y]);
22 }
23 tempContents.vocabularies = newArray;
24 vocabDB.contents = tempContents;
25
26 mainStack.pop(mainPage);
27 }
28}
029
=== modified file 'QML/Lang.qml'
--- QML/Lang.qml 2014-08-31 11:06:51 +0000
+++ QML/Lang.qml 2014-09-02 16:35:07 +0000
@@ -65,140 +65,13 @@
65 Component {65 Component {
66 id: vocabPage66 id: vocabPage
6767
68 Page {68 CollectionsPage {}
69 title: i18n.tr("Your Vocabularies")
70 head.actions: [
71 Action {
72 text: i18n.tr("Add")
73 iconName: "add"
74 onTriggered: PopupUtils.open(addVocab)
75 }
76 ]
77
78 Flickable{
79 anchors.fill: parent
80 clip: true
81 interactive: contentHeight > height
82 contentHeight: vocabFlow.height
83
84 Flow {
85 id: vocabFlow
86 width: parent.parent.width
87 spacing: units.gu(5)
88
89 Repeater{
90 model: vocabDB.contents["vocabularies"]
91 delegate: UbuntuShape {
92 width: units.gu(15)
93 height: units.gu(20)
94 color: modelData.color
95
96 Label {
97 anchors.centerIn: parent
98 text: modelData.name
99 color: "white"
100 }
101 MouseArea {
102 anchors.fill: parent
103 onClicked: handleShape(parent.color, parent.children[0].text)
104 }
105 }
106 }
107
108 }
109 }
110 }
111 }69 }
11270
113 Component {71 Component {
114 id: addVocab72 id: addVocab
11573
116 Dialog {74 AddCollectionDialog {}
117 id: addVocabDialog
118 title: i18n.tr("Add a new vocabulary")
119
120 Item {
121 width: parent.width
122 height: units.gu(40)
123
124 Flickable {
125 width: parent.width
126 height: parent.height
127 clip: true
128 interactive: contentHeight > height
129 contentHeight: vocabColumn.height
130
131 Column {
132 id: vocabColumn
133 width: parent.width
134 spacing: units.gu(1)
135
136 Label {
137 text: i18n.tr("Language: ")
138 }
139 TextField {
140 id: langField
141 width: parent.width
142 }
143 Label {
144 text: i18n.tr("Preview (tap to change color)")
145 }
146 UbuntuShape {
147 id: colorShape
148 width: units.gu(15)
149 height: units.gu(20)
150 color: "#0000ff"
151
152 MouseArea {
153 anchors.fill: parent
154 onClicked: {
155 var colorArray = ["#0000ff", "#800080", "#ffa500", "#00ff00", "#30d5c8", "#000000", "#ff0000", "#ffc0cb", "#a5682a"];
156 colorShape.color = (String(colorShape.color) !== colorArray[colorArray.length - 1]) ? colorArray[colorArray.indexOf(String(colorShape.color)) + 1] : colorArray[0]
157 }
158 }
159 Label {
160 text: langField.text
161 color: "white"
162 anchors.centerIn: parent
163 }
164 }
165 Row{
166 width: parent.width
167 Button {
168 text: i18n.tr("Save")
169 width: parent.width/2
170 action: Action {
171 onTriggered: {
172 if (langField.text != "") {
173 var tempContents = {};
174 tempContents = vocabDB.contents;
175 var existing;
176 for (var i = 0; i < tempContents["vocabularies"].length; i++) {
177 if (tempContents["vocabularies"][i].color == colorShape.color && tempContents["vocabularies"][i].name == langField.text) existing = true
178 }
179 if (existing == null) {
180 tempContents["vocabularies"].push({"name": langField.text, "color": colorShape.color, "translations": [], "definitions": []});
181 vocabDB.contents = tempContents;
182 PopupUtils.close(addVocabDialog);
183 mainStack.clear();
184 mainStack.push(vocabPage);
185 }
186 }
187 }
188 }
189 }
190 Button {
191 text: i18n.tr("Cancel")
192 width: parent.width/2
193 action: Action{
194 onTriggered: PopupUtils.close(addVocabDialog)
195 }
196 }
197 }
198 }
199 }
200 }
201 }
202 }75 }
203 Component {76 Component {
204 id: mainPage77 id: mainPage
@@ -246,43 +119,9 @@
246 Component {119 Component {
247 id: deleteVocab120 id: deleteVocab
248121
249 Dialog {122 DeleteCollectionDialog {
250 id: deleteVocabDialog123 name: propertyPage.title
251 title: i18n.tr("Are you sure?")124 }
252
253 Column {
254 spacing: units.gu(1)
255 width: parent.width
256
257 Button {
258 width: parent.width
259 text: i18n.tr("Yes")
260 action: Action {
261 onTriggered: {
262 var tempContents = vocabDB.contents;
263 var newArray = [];
264 for (var y = 0; y < tempContents.vocabularies.length; y++){
265 if (String(tempContents.vocabularies[y].name) == String(propertyPage.title)){
266 continue;
267 }
268 newArray.push(tempContents.vocabularies[y]);
269 }
270 tempContents.vocabularies = newArray;
271 vocabDB.contents = tempContents;
272 PopupUtils.close(deleteVocabDialog);
273 mainStack.pop(mainPage);
274 }
275 }
276 }
277 Button {
278 width: parent.width
279 text: i18n.tr("Cancel")
280 action: Action {
281 onTriggered: PopupUtils.close(deleteVocabDialog)
282 }
283 }
284 }
285 }
286 }125 }
287126
288 Component {127 Component {
289128
=== added directory 'components'
=== added file 'components/ConfirmDialog.qml'
--- components/ConfirmDialog.qml 1970-01-01 00:00:00 +0000
+++ components/ConfirmDialog.qml 2014-09-02 16:35:07 +0000
@@ -0,0 +1,47 @@
1/*
2 * Ubuntu UI Extras - A collection of QML widgets not available
3 * in the default Ubuntu UI Toolkit
4 * Copyright (C) 2014 Michael Spencer
5 *
6 * This program is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 */
19
20import QtQuick 2.0
21import Ubuntu.Components 1.1
22import Ubuntu.Components.Popups 1.0
23import Ubuntu.Components.ListItems 1.0 as ListItem
24
25Dialog {
26 id: dialog
27
28 signal accepted
29 signal rejected
30
31 property alias acceptText: buttons.acceptText
32 property alias acceptColor: buttons.acceptColor
33
34 DialogButtonRow {
35 id: buttons
36
37 onAccepted: {
38 PopupUtils.close(dialog)
39 dialog.accepted()
40 }
41
42 onRejected: {
43 PopupUtils.close(dialog)
44 dialog.rejected()
45 }
46 }
47}
048
=== added file 'components/DialogButtonRow.qml'
--- components/DialogButtonRow.qml 1970-01-01 00:00:00 +0000
+++ components/DialogButtonRow.qml 2014-09-02 16:35:07 +0000
@@ -0,0 +1,67 @@
1/*
2 * Ubuntu UI Extras - A collection of QML widgets not available
3 * in the default Ubuntu UI Toolkit
4 * Copyright (C) 2014 Michael Spencer
5 *
6 * This program is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 */
19
20import QtQuick 2.0
21import Ubuntu.Components 1.1
22
23Item {
24 width: parent.width
25 height: childrenRect.height
26
27 signal accepted
28 signal rejected
29
30 property alias enabled: okButton.enabled
31
32 property alias acceptText: okButton.text
33 property alias acceptColor: okButton.color
34
35 Button {
36 objectName: "cancelButton"
37 text: i18n.tr("Cancel")
38
39 anchors {
40 left: parent.left
41 right: parent.horizontalCenter
42 rightMargin: units.gu(1)
43 }
44
45 onTriggered: {
46 rejected()
47 }
48 }
49
50 Button {
51 id: okButton
52 objectName: "okButton"
53
54 anchors {
55 left: parent.horizontalCenter
56 right: parent.right
57 leftMargin: units.gu(1)
58 }
59
60 text: i18n.tr("Ok")
61 color: UbuntuColors.orange
62
63 onTriggered: {
64 accepted()
65 }
66 }
67}

Subscribers

People subscribed via source and target branches

to all changes: