summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--content/fireflix-panel.xul3
1 files changed, 2 insertions, 1 deletions
diff --git a/content/fireflix-panel.xul b/content/fireflix-panel.xul
index bf6df73..4a5ca36 100644
--- a/content/fireflix-panel.xul
+++ b/content/fireflix-panel.xul
@@ -1,287 +1,288 @@
1<?xml version="1.0"?> 1<?xml version="1.0"?>
2<?xml-stylesheet href="chrome://global/skin/" type="text/css"?> 2<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
3<?xml-stylesheet href="fireflix.css" type="text/css"?> 3<?xml-stylesheet href="fireflix.css" type="text/css"?>
4<!DOCTYPE page SYSTEM "chrome://fireflix/locale/fireflix.dtd"> 4<!DOCTYPE page SYSTEM "chrome://fireflix/locale/fireflix.dtd">
5<page 5<page
6 xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" 6 xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
7 id="fireflixwindow" title="Fireflix" 7 id="fireflixwindow" title="Fireflix"
8 onload="fireflix.init()" 8 onload="fireflix.init()"
9 orient="vertical" 9 orient="vertical"
10 ondragover="nsDragAndDrop.dragOver(event,fireflix.uploadObserver)" 10 ondragover="nsDragAndDrop.dragOver(event,fireflix.uploadObserver)"
11 ondragdrop="nsDragAndDrop.drop(event,fireflix.uploadObserver)" 11 ondragdrop="nsDragAndDrop.drop(event,fireflix.uploadObserver)"
12 > 12 >
13 13
14 <script src="chrome://global/content/nsDragAndDrop.js"/> 14 <script src="chrome://global/content/nsDragAndDrop.js"/>
15 <script src="chrome://global/content/nsTransferable.js"/> 15 <script src="chrome://global/content/nsTransferable.js"/>
16 <script type="application/x-javascript" src="md5.js" /> 16 <script type="application/x-javascript" src="md5.js" />
17 <script type="application/x-javascript" src="util.js" /> 17 <script type="application/x-javascript" src="util.js" />
18 <script type="application/x-javascript" src="flickr.js" /> 18 <script type="application/x-javascript" src="flickr.js" />
19 <script type="application/x-javascript" src="fireflix.js" /> 19 <script type="application/x-javascript" src="fireflix.js" />
20 20
21 <stringbundleset> 21 <stringbundleset>
22 <stringbundle id="loc_strings" src="chrome://fireflix/locale/fireflix.properties" /> 22 <stringbundle id="loc_strings" src="chrome://fireflix/locale/fireflix.properties" />
23 </stringbundleset> 23 </stringbundleset>
24 24
25 <commandset> 25 <commandset>
26 <command id="cmd_auth_auth" label="&panel.auth.auth.label;" 26 <command id="cmd_auth_auth" label="&panel.auth.auth.label;"
27 oncommand="fireflix.on_cmd_auth()"/> 27 oncommand="fireflix.on_cmd_auth()"/>
28 <command id="cmd_auth_done" label="&panel.auth.done.label;" 28 <command id="cmd_auth_done" label="&panel.auth.done.label;"
29 oncommand="fireflix.on_cmd_auth_done()" disabled="true"/> 29 oncommand="fireflix.on_cmd_auth_done()" disabled="true"/>
30 <command id="cmd_auth_open_flickr" label="&panel.auth.flickr.label;" 30 <command id="cmd_auth_open_flickr" label="&panel.auth.flickr.label;"
31 oncommand="fireflix.openTab('htp://www.flickr.com/')" /> 31 oncommand="fireflix.openTab('htp://www.flickr.com/')" />
32 <command id="cmd_auth_unauth" label="&panel.auth.unauth.label;" 32 <command id="cmd_auth_unauth" label="&panel.auth.unauth.label;"
33 oncommand="fireflix.on_cmd_auth_unauth()" /> 33 oncommand="fireflix.on_cmd_auth_unauth()" />
34 </commandset> 34 </commandset>
35 35
36 <popupset> 36 <popupset>
37 <popup id="auth_menu"> 37 <popup id="auth_menu">
38 <menuitem command="cmd_auth_auth"/> 38 <menuitem command="cmd_auth_auth"/>
39 <menuitem command="cmd_auth_done" hidden="true" id="menu_auth_done"/> 39 <menuitem command="cmd_auth_done" hidden="true" id="menu_auth_done"/>
40 <menuitem command="cmd_auth_unauth" /> 40 <menuitem command="cmd_auth_unauth" />
41 <menuseparator/> 41 <menuseparator/>
42 <menuitem command="cmd_auth_open_flickr"/> 42 <menuitem command="cmd_auth_open_flickr"/>
43 </popup> 43 </popup>
44 </popupset> 44 </popupset>
45 45
46 <commandset id="cmdset_search"> 46 <commandset id="cmdset_search">
47 <command id="cmd_search" label="&panel.search.cmd_search.label;" 47 <command id="cmd_search" label="&panel.search.cmd_search.label;"
48 oncommand="fireflix.foundphotos.search_photos()"/> 48 oncommand="fireflix.foundphotos.search_photos()"/>
49 <command id="cmd_search_open" label="&panel.search.cmd_search_open.label;" 49 <command id="cmd_search_open" label="&panel.search.cmd_search_open.label;"
50 oncommand="fireflix.foundphotos.on_cmd_open(event)" /> 50 oncommand="fireflix.foundphotos.on_cmd_open(event)" />
51 <command id="cmd_search_prev_page" 51 <command id="cmd_search_prev_page"
52 label="&panel.search.cmd_search_prev_page.label;" 52 label="&panel.search.cmd_search_prev_page.label;"
53 oncommand="fireflix.foundphotos.on_cmd_prev(event)" disabled="true"/> 53 oncommand="fireflix.foundphotos.on_cmd_prev(event)" disabled="true"/>
54 <command id="cmd_search_next_page" 54 <command id="cmd_search_next_page"
55 label="&panel.search.cmd_search_next_page.label;" 55 label="&panel.search.cmd_search_next_page.label;"
56 oncommand="fireflix.foundphotos.on_cmd_next(event)" disabled="true"/> 56 oncommand="fireflix.foundphotos.on_cmd_next(event)" disabled="true"/>
57 </commandset> 57 </commandset>
58 58
59 <commandset id="cmdset_sets"> 59 <commandset id="cmdset_sets">
60 <command id="cmd_refresh_sets" label="&panel.sets.cmd_refresh_sets;" 60 <command id="cmd_refresh_sets" label="&panel.sets.cmd_refresh_sets;"
61 oncommand="fireflix.on_refresh_sets()" /> 61 oncommand="fireflix.on_refresh_sets()" />
62 <command id="cmd_set_props" label="&panel.sets.cmd_properties;" 62 <command id="cmd_set_props" label="&panel.sets.cmd_properties;"
63 oncommand="fireflix.on_set_props()" disabled="true" /> 63 oncommand="fireflix.on_set_props()" disabled="true" />
64 </commandset> 64 </commandset>
65 65
66 <popupset> 66 <popupset>
67 <popup id="sets_menu"> 67 <popup id="sets_menu">
68 <menuitem command="cmd_set_props"/> 68 <menuitem command="cmd_set_props"/>
69 <menuitem command="cmd_refresh_sets"/> 69 <menuitem command="cmd_refresh_sets"/>
70 <menuseparator/> 70 <menuseparator/>
71 <menu label="&panel.sets.generate_html;" id="sets_html_menu"/> 71 <menu label="&panel.sets.generate_html;" id="sets_html_menu"/>
72 </popup> 72 </popup>
73 </popupset> 73 </popupset>
74 74
75 <commandset id="cmdset_uploads"> 75 <commandset id="cmdset_uploads">
76 <command id="cmd_uploads_clear" label="&panel.uploads.clear.label;" 76 <command id="cmd_uploads_clear" label="&panel.uploads.clear.label;"
77 oncommand="fireflix.uploads.on_clear()" /> 77 oncommand="fireflix.uploads.on_clear()" />
78 <command id="cmd_uploads_upload" label="&panel.uploads.upload.label;" 78 <command id="cmd_uploads_upload" label="&panel.uploads.upload.label;"
79 oncommand="fireflix.uploads.on_upload()" /> 79 oncommand="fireflix.uploads.on_upload()" />
80 <command id="cmd_uploads_remove" label="&panel.uploads.remove.label;" 80 <command id="cmd_uploads_remove" label="&panel.uploads.remove.label;"
81 oncommand="fireflix.uploads.on_remove()" /> 81 oncommand="fireflix.uploads.on_remove()" />
82 <command id="cmd_uploads_add" label="&panel.uploads.add.label;" 82 <command id="cmd_uploads_add" label="&panel.uploads.add.label;"
83 oncommand="fireflix.uploads.on_add()" /> 83 oncommand="fireflix.uploads.on_add()" />
84 </commandset> 84 </commandset>
85 85
86 <popupset> 86 <popupset>
87 <popup id="uploads_menu"> 87 <popup id="uploads_menu">
88 <menuitem command="cmd_uploads_add"/> 88 <menuitem command="cmd_uploads_add"/>
89 <menuitem command="cmd_uploads_clear"/> 89 <menuitem command="cmd_uploads_clear"/>
90 <menuitem command="cmd_uploads_remove"/> 90 <menuitem command="cmd_uploads_remove"/>
91 <menuseparator/> 91 <menuseparator/>
92 <menuitem command="cmd_uploads_upload"/> 92 <menuitem command="cmd_uploads_upload"/>
93 <menuseparator/> 93 <menuseparator/>
94 <menu label="&panel.uploads.generate_html;" id="uploads_html_menu"/> 94 <menu label="&panel.uploads.generate_html;" id="uploads_html_menu"/>
95 </popup> 95 </popup>
96 </popupset> 96 </popupset>
97 97
98 <vbox class="wholething" flex="1"> 98 <vbox class="wholething" flex="1">
99 99
100 <groupbox context="auth_menu"> 100 <groupbox context="auth_menu">
101 <caption label="&panel.auth_info;"/> 101 <caption label="&panel.auth_info;"/>
102 <hbox> 102 <hbox>
103 <label id="auth_info" value="&panel.no_auth_info;" flex="1" disabled="true" crop="end"/> 103 <label id="auth_info" value="&panel.no_auth_info;" flex="1" disabled="true" crop="end"/>
104 <button id="b_auth" command="cmd_auth_auth"/> 104 <button id="b_auth" command="cmd_auth_auth"/>
105 <button id="b_auth_done" command="cmd_auth_done" hidden="true"/> 105 <button id="b_auth_done" command="cmd_auth_done" hidden="true"/>
106 <button command="cmd_auth_open_flickr" 106 <button command="cmd_auth_open_flickr"
107 tooltiptext="&panel.auth.flickr.tip;"/> 107 tooltiptext="&panel.auth.flickr.tip;"/>
108 </hbox> 108 </hbox>
109 </groupbox> 109 </groupbox>
110 110
111 <tabbox flex="1" id="fireflix_tabs"> 111 <tabbox flex="1" id="fireflix_tabs">
112 112
113 <tabs> 113 <tabs>
114 <tab label="&panel.tabs.search;"/> 114 <tab label="&panel.tabs.search;"/>
115 <tab label="&panel.tabs.sets;"/> 115 <tab label="&panel.tabs.sets;"/>
116 <tab label="&panel.tabs.tags;" hidden="true"/> <!-- TODO: --> 116 <tab label="&panel.tabs.tags;" hidden="true"/> <!-- TODO: -->
117 <tab id="tab_upload" label="&panel.tabs.upload;"/> 117 <tab id="tab_upload" label="&panel.tabs.upload;"/>
118 </tabs> 118 </tabs>
119 119
120 <tabpanels flex="1"> 120 <tabpanels flex="1">
121 121
122 <tabpanel id="tabpanel_search" flex="1"> 122 <tabpanel id="tabpanel_search" flex="1">
123 <vbox flex="1"> 123 <vbox flex="1">
124 <groupbox class="search_params" orient="vertical" onkeypress="if(event.keyCode==event.DOM_VK_RETURN) fireflix.foundphotos.search_photos()"> 124 <groupbox class="search_params" orient="vertical" onkeypress="if(event.keyCode==event.DOM_VK_RETURN) fireflix.foundphotos.search_photos()">
125 <hbox> 125 <hbox>
126 <label control="search_for" value="&panel.search.search_for.label;" 126 <label control="search_for" value="&panel.search.search_for.label;"
127 accesskey="s"/> 127 accesskey="s"/>
128 <textbox id="search_for" flex="1"/> 128 <textbox id="search_for" flex="1"/>
129 </hbox> 129 </hbox>
130 <hbox> 130 <hbox>
131 <checkbox id="search_tags" label="&panel.search.mode.tagsonly.label;" 131 <checkbox id="search_tags" label="&panel.search.mode.tagsonly.label;"
132 tooltiptext="&panel.search.mode.tagsonly.tip;" checked="false" 132 tooltiptext="&panel.search.mode.tagsonly.tip;" checked="false"
133 accesskey="t" /> 133 accesskey="t" />
134 <checkbox id="search_mine" label="&panel.search.mode.mine.label;" checked="true" accesskey="m"/> 134 <checkbox id="search_mine" label="&panel.search.mode.mine.label;" checked="true" accesskey="m"/>
135 <spacer flex="1"/> 135 <spacer flex="1"/>
136 <button command="cmd_search"/> 136 <button command="cmd_search"/>
137 </hbox> 137 </hbox>
138 </groupbox> 138 </groupbox>
139 <hbox> 139 <hbox>
140 <button command="cmd_search_prev_page"/> 140 <button command="cmd_search_prev_page"/>
141 <spacer flex="1"/> 141 <spacer flex="1"/>
142 <label id="search_page" hidden="true"/> 142 <label id="search_page" hidden="true"/>
143 <spacer flex="1"/> 143 <spacer flex="1"/>
144 <button command="cmd_search_next_page"/> 144 <button command="cmd_search_next_page"/>
145 </hbox> 145 </hbox>
146 <tree id="searchresults" rows="2" flex="1" 146 <tree id="searchresults" rows="2" flex="1"
147 onselect="fireflix.foundphotos.on_select()" 147 onselect="fireflix.foundphotos.on_select()"
148 ondblclick="fireflix.foundphotos.on_cmd_open(event)" 148 ondblclick="fireflix.foundphotos.on_cmd_open(event)"
149 onkeypress="if(event.keyCode==event.DOM_VK_RETURN) 149 onkeypress="if(event.keyCode==event.DOM_VK_RETURN)
150 fireflix.foundphotos.on_cmd_open(event)"> 150 fireflix.foundphotos.on_cmd_open(event)">
151 <treecols> 151 <treecols>
152 <treecol id="sr_title" label="&panel.search.col.title.label;" flex="2" crop="end" align="start" /> 152 <treecol id="sr_title" label="&panel.search.col.title.label;" flex="2" crop="end" align="start" />
153 </treecols> 153 </treecols>
154 <treechildren/> 154 <treechildren/>
155 </tree> 155 </tree>
156 <groupbox id="searchresult_props" orient="horizontal" hidden="true"> 156 <groupbox id="searchresult_props" orient="horizontal" hidden="true">
157 <vbox width="100" pack="center"> 157 <vbox width="100" pack="center">
158 <hbox pack="center"> 158 <hbox pack="center">
159 <image id="search_photo"/> 159 <image id="search_photo"
160 ondblclick="fireflix.foundphotos.on_cmd_open(event)"/>
160 </hbox> 161 </hbox>
161 </vbox> 162 </vbox>
162 <vbox flex="1"> 163 <vbox flex="1">
163 <label id="searchresult_title" crop="end"/> 164 <label id="searchresult_title" crop="end"/>
164 <hbox flex="1" pack="center"> 165 <hbox flex="1" pack="center">
165 <div flex="1" id="searchresult_description" xmlns="http://www.w3.org/1999/xhtml"/> 166 <div flex="1" id="searchresult_description" xmlns="http://www.w3.org/1999/xhtml"/>
166 </hbox> 167 </hbox>
167 <hbox pack="end"> 168 <hbox pack="end">
168 <button command="cmd_search_open"/> 169 <button command="cmd_search_open"/>
169 </hbox> 170 </hbox>
170 </vbox> 171 </vbox>
171 </groupbox> 172 </groupbox>
172 </vbox> 173 </vbox>
173 </tabpanel> 174 </tabpanel>
174 175
175 <tabpanel id="tabpanel_sets" flex="1" 176 <tabpanel id="tabpanel_sets" flex="1"
176 onkeypress="if(event.keyCode==event.DOM_VK_RETURN) 177 onkeypress="if(event.keyCode==event.DOM_VK_RETURN)
177 document.getElementById('setphotos').focus()"> 178 document.getElementById('setphotos').focus()">
178 <vbox flex="1"> 179 <vbox flex="1">
179 <tree id="setslist" rows="2" onselect="fireflix.photosets.on_select()" 180 <tree id="setslist" rows="2" onselect="fireflix.photosets.on_select()"
180 flex="1" context="sets_menu" 181 flex="1" context="sets_menu"
181 > 182 >
182 <treecols> 183 <treecols>
183 <treecol id="sl_name" label="&panel.sets.name.label;" flex="4" crop="end" align="start" tooltiptext="&panel.sets.name.tip;"/> 184 <treecol id="sl_name" label="&panel.sets.name.label;" flex="4" crop="end" align="start" tooltiptext="&panel.sets.name.tip;"/>
184 <splitter class="tree-splitter" /> 185 <splitter class="tree-splitter" />
185 <treecol id="sl_photos" label="&panel.sets.photos.label;" flex="1" align="end" tooltiptext="&panel.sets.photos.tip;" /> 186 <treecol id="sl_photos" label="&panel.sets.photos.label;" flex="1" align="end" tooltiptext="&panel.sets.photos.tip;" />
186 </treecols> 187 </treecols>
187 <treechildren/> 188 <treechildren/>
188 </tree> 189 </tree>
189 <hbox> 190 <hbox>
190 <button command="cmd_refresh_sets" /> 191 <button command="cmd_refresh_sets" />
191 <button command="cmd_set_props" /> 192 <button command="cmd_set_props" />
192 </hbox> 193 </hbox>
193 <tree id="setphotos" rows="2" onselect="fireflix.photoset.on_select()" 194 <tree id="setphotos" rows="2" onselect="fireflix.photoset.on_select()"
194 flex="1"> 195 flex="1">
195 <treecols> 196 <treecols>
196 <treecol id="sp_title" label="&panel.setphotos.title.label;" flex="1" crop="end" align="start" tooltiptext="&panel.setphotos.title.tip;" /> 197 <treecol id="sp_title" label="&panel.setphotos.title.label;" flex="1" crop="end" align="start" tooltiptext="&panel.setphotos.title.tip;" />
197 <splitter class="tree-splitter" /> 198 <splitter class="tree-splitter" />
198 <treecol id="sp_taken" label="&panel.setphotos.taken.label;" crop="end" align="start" tooltiptext="&panel.setphotos.taken.tip;" hidden="true" /> 199 <treecol id="sp_taken" label="&panel.setphotos.taken.label;" crop="end" align="start" tooltiptext="&panel.setphotos.taken.tip;" hidden="true" />
199 <treecol id="sp_upload" label="&panel.setphotos.upload.label;" crop="end" align="start" tooltiptext="&panel.setphotos.upload.tip;" hidden="true" /> 200 <treecol id="sp_upload" label="&panel.setphotos.upload.label;" crop="end" align="start" tooltiptext="&panel.setphotos.upload.tip;" hidden="true" />
200 </treecols> 201 </treecols>
201 <treechildren/> 202 <treechildren/>
202 </tree> 203 </tree>
203 <groupbox id="set_photo_props" orient="horizontal"> 204 <groupbox id="set_photo_props" orient="horizontal">
204 <vbox width="100" pack="center"> 205 <vbox width="100" pack="center">
205 <hbox pack="center"> 206 <hbox pack="center">
206 <image id="set_photo" hidden="true"/> 207 <image id="set_photo" hidden="true"/>
207 </hbox> 208 </hbox>
208 </vbox> 209 </vbox>
209 <spacer flex="1"/> 210 <spacer flex="1"/>
210 </groupbox> 211 </groupbox>
211 </vbox> 212 </vbox>
212 </tabpanel> 213 </tabpanel>
213 214
214 <tabpanel id="tabpanel_tags"> 215 <tabpanel id="tabpanel_tags">
215 <listbox id="tagslist" rows="8" flex="1"> 216 <listbox id="tagslist" rows="8" flex="1">
216 <listhead> 217 <listhead>
217 <listheader label="&panel.tagslist.tag.label;"/> 218 <listheader label="&panel.tagslist.tag.label;"/>
218 </listhead> 219 </listhead>
219 <listcols> 220 <listcols>
220 <listcol flex="1"/> 221 <listcol flex="1"/>
221 </listcols> 222 </listcols>
222 </listbox> 223 </listbox>
223 </tabpanel> 224 </tabpanel>
224 225
225 <tabpanel id="tabpanel_upload"> 226 <tabpanel id="tabpanel_upload">
226 <vbox flex="1"> 227 <vbox flex="1">
227 <tree id="uploadlist" rows="2" flex="1" 228 <tree id="uploadlist" rows="2" flex="1"
228 onselect="fireflix.uploads.selectionChanged()" 229 onselect="fireflix.uploads.selectionChanged()"
229 context="uploads_menu"> 230 context="uploads_menu">
230 <treecols> 231 <treecols>
231 <treecol id="up_file" label="&panel.uploadlist.file.label;" flex="4" crop="start" align="start"/> 232 <treecol id="up_file" label="&panel.uploadlist.file.label;" flex="4" crop="start" align="start"/>
232 <splitter class="tree-splitter" /> 233 <splitter class="tree-splitter" />
233 <treecol id="up_title" label="&panel.uploadlist.title.label;" flex="5" crop="end" align="start" /> 234 <treecol id="up_title" label="&panel.uploadlist.title.label;" flex="5" crop="end" align="start" />
234 <splitter class="tree-splitter" /> 235 <splitter class="tree-splitter" />
235 <treecol id="up_status" label="&panel.uploadlist.status.label;" flex="1" crop="end" align="start" /> 236 <treecol id="up_status" label="&panel.uploadlist.status.label;" flex="1" crop="end" align="start" />
236 </treecols> 237 </treecols>
237 <treechildren/> 238 <treechildren/>
238 </tree> 239 </tree>
239 <progressmeter id="upload_progress" mode="undetermined" hidden="true" /> 240 <progressmeter id="upload_progress" mode="undetermined" hidden="true" />
240 <groupbox id="upload_file_props" orient="horizontal" hidden="true"> 241 <groupbox id="upload_file_props" orient="horizontal" hidden="true">
241 <image id="upload_file_preview" width="100" height="100" /> 242 <image id="upload_file_preview" width="100" height="100" />
242 <grid flex="1"> 243 <grid flex="1">
243 <columns> 244 <columns>
244 <column/> 245 <column/>
245 <column flex="1"/> 246 <column flex="1"/>
246 </columns> 247 </columns>
247 <rows> 248 <rows>
248 <row> 249 <row>
249 <label control="upload_filename" 250 <label control="upload_filename"
250 value="&panel.upload_props.filename.label;" /> 251 value="&panel.upload_props.filename.label;" />
251 <textbox id="upload_filename" 252 <textbox id="upload_filename"
252 oninput="fireflix.uploads.propsToSel('filename')"/> 253 oninput="fireflix.uploads.propsToSel('filename')"/>
253 </row> 254 </row>
254 <row> 255 <row>
255 <label control="upload_title" value="&panel.upload_props.title.label;" /> 256 <label control="upload_title" value="&panel.upload_props.title.label;" />
256 <textbox id="upload_title" 257 <textbox id="upload_title"
257 oninput="fireflix.uploads.propsToSel('title')"/> 258 oninput="fireflix.uploads.propsToSel('title')"/>
258 </row> 259 </row>
259 <row> 260 <row>
260 <label control="uplod_tags" value="&panel.upload_props.tags.label;" /> 261 <label control="uplod_tags" value="&panel.upload_props.tags.label;" />
261 <textbox id="upload_tags" 262 <textbox id="upload_tags"
262 oninput="fireflix.uploads.propsToSel('tags')"/> 263 oninput="fireflix.uploads.propsToSel('tags')"/>
263 </row> 264 </row>
264 <!-- TODO: description, public, friend, family --> 265 <!-- TODO: description, public, friend, family -->
265 </rows> 266 </rows>
266 </grid> 267 </grid>
267 </groupbox> 268 </groupbox>
268 <hbox> 269 <hbox>
269 <button command="cmd_uploads_add" /> 270 <button command="cmd_uploads_add" />
270 <spacer flex="1"/> 271 <spacer flex="1"/>
271 <button command="cmd_uploads_remove" /> 272 <button command="cmd_uploads_remove" />
272 <spacer flex="1"/> 273 <spacer flex="1"/>
273 <button command="cmd_uploads_clear" /> 274 <button command="cmd_uploads_clear" />
274 </hbox> 275 </hbox>
275 <hbox pack="center"> 276 <hbox pack="center">
276 <button command="cmd_uploads_upload" flex="1"/> 277 <button command="cmd_uploads_upload" flex="1"/>
277 </hbox> 278 </hbox>
278 </vbox> 279 </vbox>
279 </tabpanel> 280 </tabpanel>
280 281
281 </tabpanels> 282 </tabpanels>
282 283
283 </tabbox> 284 </tabbox>
284 285
285 </vbox> 286 </vbox>
286 287
287</page> 288</page>