Merge lp:~roignac/software-center/bug-630731-free-software-view into lp:software-center
- bug-630731-free-software-view
- Merge into trunk
Proposed by
Vadim Rutkovsky
Status: | Rejected | ||||
---|---|---|---|---|---|
Rejected by: | dobey | ||||
Proposed branch: | lp:~roignac/software-center/bug-630731-free-software-view | ||||
Merge into: | lp:software-center | ||||
Diff against target: |
541 lines (+150/-46) 8 files modified
data/ui/gtk/SoftwareCenter.ui (+10/-0) data/ui/gtk3/SoftwareCenter.ui (+12/-0) po/software-center.pot (+51/-39) softwarecenter/ui/gtk/app.py (+24/-0) softwarecenter/ui/gtk/appview.py (+16/-5) softwarecenter/ui/gtk3/app.py (+24/-0) softwarecenter/ui/gtk3/views/appview.py (+11/-0) softwarecenter/version.py (+2/-2) |
||||
To merge this branch: | bzr merge lp:~roignac/software-center/bug-630731-free-software-view | ||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Matthew Paul Thomas | Needs Fixing | ||
Michael Vogt | Pending | ||
Review via email: mp+68953@code.launchpad.net |
Commit message
Description of the change
This changes adds a Free Software view. The packages, which have non-'Open Source' license (including 'None') are filtered
To post a comment you must log in.
- 1980. By Vadim Rutkovsky
-
Updated gtk3 files
- 1981. By Vadim Rutkovsky
-
Another fix for gtk3
Revision history for this message
dobey (dobey) wrote : | # |
Could you please check http://
Canonical's contributor agreement ? That would be great as this is a requirement for branches to get merged into the software-center.
Thanks.
Unmerged revisions
- 1981. By Vadim Rutkovsky
-
Another fix for gtk3
- 1980. By Vadim Rutkovsky
-
Updated gtk3 files
- 1979. By Vadim Rutkovsky
-
Adding a new view - Free Software Only
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'data/ui/gtk/SoftwareCenter.ui' | |||
2 | --- data/ui/gtk/SoftwareCenter.ui 2011-07-05 07:59:13 +0000 | |||
3 | +++ data/ui/gtk/SoftwareCenter.ui 2011-07-23 14:41:45 +0000 | |||
4 | @@ -242,6 +242,16 @@ | |||
5 | 242 | </object> | 242 | </object> |
6 | 243 | </child> | 243 | </child> |
7 | 244 | <child> | 244 | <child> |
8 | 245 | <object class="GtkRadioMenuItem" id="menuitem_view_free_software_only"> | ||
9 | 246 | <property name="visible">True</property> | ||
10 | 247 | <property name="label" translatable="yes">_Free Software</property> | ||
11 | 248 | <property name="use_underline">True</property> | ||
12 | 249 | <property name="draw_as_radio">True</property> | ||
13 | 250 | <property name="group">menuitem_view_supported_only</property> | ||
14 | 251 | <signal name="activate" handler="on_menuitem_view_free_software_only_activate"/> | ||
15 | 252 | </object> | ||
16 | 253 | </child> | ||
17 | 254 | <child> | ||
18 | 245 | <object class="GtkRadioMenuItem" id="menuitem_view_supported_only"> | 255 | <object class="GtkRadioMenuItem" id="menuitem_view_supported_only"> |
19 | 246 | <property name="visible">True</property> | 256 | <property name="visible">True</property> |
20 | 247 | <property name="label" translatable="yes">_Canonical-Maintained Software</property> | 257 | <property name="label" translatable="yes">_Canonical-Maintained Software</property> |
21 | 248 | 258 | ||
22 | === modified file 'data/ui/gtk3/SoftwareCenter.ui' | |||
23 | --- data/ui/gtk3/SoftwareCenter.ui 2011-07-05 09:53:26 +0000 | |||
24 | +++ data/ui/gtk3/SoftwareCenter.ui 2011-07-23 14:41:45 +0000 | |||
25 | @@ -394,6 +394,18 @@ | |||
26 | 394 | </object> | 394 | </object> |
27 | 395 | </child> | 395 | </child> |
28 | 396 | <child> | 396 | <child> |
29 | 397 | <object class="GtkRadioMenuItem" id="menuitem_view_free_software_only"> | ||
30 | 398 | <property name="visible">True</property> | ||
31 | 399 | <property name="can_focus">False</property> | ||
32 | 400 | <property name="use_action_appearance">False</property> | ||
33 | 401 | <property name="label" translatable="yes">_Free Software</property> | ||
34 | 402 | <property name="use_underline">True</property> | ||
35 | 403 | <property name="draw_as_radio">True</property> | ||
36 | 404 | <property name="group">menuitem_view_supported_only</property> | ||
37 | 405 | <signal name="activate" handler="on_menuitem_view_free_software_only_activate" swapped="no"/> | ||
38 | 406 | </object> | ||
39 | 407 | </child> | ||
40 | 408 | <child> | ||
41 | 397 | <object class="GtkRadioMenuItem" id="menuitem_view_supported_only"> | 409 | <object class="GtkRadioMenuItem" id="menuitem_view_supported_only"> |
42 | 398 | <property name="visible">True</property> | 410 | <property name="visible">True</property> |
43 | 399 | <property name="can_focus">False</property> | 411 | <property name="can_focus">False</property> |
44 | 400 | 412 | ||
45 | === modified file 'po/software-center.pot' | |||
46 | --- po/software-center.pot 2011-07-21 15:28:53 +0000 | |||
47 | +++ po/software-center.pot 2011-07-23 14:41:45 +0000 | |||
48 | @@ -8,7 +8,7 @@ | |||
49 | 8 | msgstr "" | 8 | msgstr "" |
50 | 9 | "Project-Id-Version: PACKAGE VERSION\n" | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
51 | 10 | "Report-Msgid-Bugs-To: \n" | 10 | "Report-Msgid-Bugs-To: \n" |
53 | 11 | "POT-Creation-Date: 2011-07-21 17:04+0200\n" | 11 | "POT-Creation-Date: 2011-07-23 15:23+0300\n" |
54 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
55 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
56 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" |
57 | @@ -199,7 +199,7 @@ | |||
58 | 199 | #. located directly beneath a label asking 'Why is this review inappropriate?'. | 199 | #. located directly beneath a label asking 'Why is this review inappropriate?'. |
59 | 200 | #. This text refers to a possible reason for why the corresponding | 200 | #. This text refers to a possible reason for why the corresponding |
60 | 201 | #. review is being flagged as inappropriate. | 201 | #. review is being flagged as inappropriate. |
62 | 202 | #: ../utils/submit_review.py:1201 ../softwarecenter/backend/channel.py:424 | 202 | #: ../utils/submit_review.py:1201 ../softwarecenter/backend/channel.py:431 |
63 | 203 | msgid "Other" | 203 | msgid "Other" |
64 | 204 | msgstr "" | 204 | msgstr "" |
65 | 205 | 205 | ||
66 | @@ -278,34 +278,38 @@ | |||
67 | 278 | msgstr "" | 278 | msgstr "" |
68 | 279 | 279 | ||
69 | 280 | #: ../data/ui/gtk/SoftwareCenter.ui.h:12 | 280 | #: ../data/ui/gtk/SoftwareCenter.ui.h:12 |
70 | 281 | msgid "_Free Software" | ||
71 | 282 | msgstr "" | ||
72 | 283 | |||
73 | 284 | #: ../data/ui/gtk/SoftwareCenter.ui.h:13 | ||
74 | 281 | msgid "_Go Back" | 285 | msgid "_Go Back" |
75 | 282 | msgstr "" | 286 | msgstr "" |
76 | 283 | 287 | ||
78 | 284 | #: ../data/ui/gtk/SoftwareCenter.ui.h:13 | 288 | #: ../data/ui/gtk/SoftwareCenter.ui.h:14 |
79 | 285 | msgid "_Go Forward" | 289 | msgid "_Go Forward" |
80 | 286 | msgstr "" | 290 | msgstr "" |
81 | 287 | 291 | ||
83 | 288 | #: ../data/ui/gtk/SoftwareCenter.ui.h:14 | 292 | #: ../data/ui/gtk/SoftwareCenter.ui.h:15 |
84 | 289 | msgid "_Help" | 293 | msgid "_Help" |
85 | 290 | msgstr "" | 294 | msgstr "" |
86 | 291 | 295 | ||
88 | 292 | #: ../data/ui/gtk/SoftwareCenter.ui.h:15 | 296 | #: ../data/ui/gtk/SoftwareCenter.ui.h:16 |
89 | 293 | msgid "_Install" | 297 | msgid "_Install" |
90 | 294 | msgstr "" | 298 | msgstr "" |
91 | 295 | 299 | ||
93 | 296 | #: ../data/ui/gtk/SoftwareCenter.ui.h:16 | 300 | #: ../data/ui/gtk/SoftwareCenter.ui.h:17 |
94 | 297 | msgid "_Software Sources…" | 301 | msgid "_Software Sources…" |
95 | 298 | msgstr "" | 302 | msgstr "" |
96 | 299 | 303 | ||
98 | 300 | #: ../data/ui/gtk/SoftwareCenter.ui.h:17 | 304 | #: ../data/ui/gtk/SoftwareCenter.ui.h:18 |
99 | 301 | msgid "_View" | 305 | msgid "_View" |
100 | 302 | msgstr "" | 306 | msgstr "" |
101 | 303 | 307 | ||
103 | 304 | #: ../data/ui/gtk/SoftwareCenter.ui.h:18 | 308 | #: ../data/ui/gtk/SoftwareCenter.ui.h:19 |
104 | 305 | msgid "translator-credits" | 309 | msgid "translator-credits" |
105 | 306 | msgstr "" | 310 | msgstr "" |
106 | 307 | 311 | ||
108 | 308 | #: ../data/ui/gtk/SoftwareCenter.ui.h:19 | 312 | #: ../data/ui/gtk/SoftwareCenter.ui.h:20 |
109 | 309 | msgid "©2009-2011 Canonical" | 313 | msgid "©2009-2011 Canonical" |
110 | 310 | msgstr "" | 314 | msgstr "" |
111 | 311 | 315 | ||
112 | @@ -447,7 +451,7 @@ | |||
113 | 447 | #. aquired for purchase in utils/submit_review.py | 451 | #. aquired for purchase in utils/submit_review.py |
114 | 448 | #. the other one in softwarecenter/app.py | 452 | #. the other one in softwarecenter/app.py |
115 | 449 | #: ../data/ubuntu-software-center.desktop.in.h:3 | 453 | #: ../data/ubuntu-software-center.desktop.in.h:3 |
117 | 450 | #: ../softwarecenter/ui/gtk/app.py:756 ../softwarecenter/distro/Ubuntu.py:58 | 454 | #: ../softwarecenter/ui/gtk/app.py:760 ../softwarecenter/distro/Ubuntu.py:58 |
118 | 451 | msgid "Ubuntu Software Center" | 455 | msgid "Ubuntu Software Center" |
119 | 452 | msgstr "" | 456 | msgstr "" |
120 | 453 | 457 | ||
121 | @@ -456,11 +460,11 @@ | |||
122 | 456 | "Lets you choose from thousands of applications available for your system " | 460 | "Lets you choose from thousands of applications available for your system " |
123 | 457 | msgstr "" | 461 | msgstr "" |
124 | 458 | 462 | ||
126 | 459 | #: ../data/featured.menu.in.h:1 ../softwarecenter/ui/gtk/catview_gtk.py:426 | 463 | #: ../data/featured.menu.in.h:1 ../softwarecenter/ui/gtk/catview_gtk.py:450 |
127 | 460 | msgid "Featured" | 464 | msgid "Featured" |
128 | 461 | msgstr "" | 465 | msgstr "" |
129 | 462 | 466 | ||
131 | 463 | #: ../data/new.menu.in.h:1 ../softwarecenter/ui/gtk/catview_gtk.py:462 | 467 | #: ../data/new.menu.in.h:1 ../softwarecenter/ui/gtk/catview_gtk.py:486 |
132 | 464 | msgid "What’s New" | 468 | msgid "What’s New" |
133 | 465 | msgstr "" | 469 | msgstr "" |
134 | 466 | 470 | ||
135 | @@ -704,13 +708,13 @@ | |||
136 | 704 | msgid "Please re-install the 'software-center' package." | 708 | msgid "Please re-install the 'software-center' package." |
137 | 705 | msgstr "" | 709 | msgstr "" |
138 | 706 | 710 | ||
140 | 707 | #: ../softwarecenter/ui/gtk/app.py:757 | 711 | #: ../softwarecenter/ui/gtk/app.py:761 |
141 | 708 | msgid "Ubuntu Software Center Store" | 712 | msgid "Ubuntu Software Center Store" |
142 | 709 | msgstr "" | 713 | msgstr "" |
143 | 710 | 714 | ||
144 | 711 | #. display a "Loading" spinner until we actually display the | 715 | #. display a "Loading" spinner until we actually display the |
145 | 712 | #. details view for the deb file | 716 | #. details view for the deb file |
147 | 713 | #: ../softwarecenter/ui/gtk/app.py:1159 | 717 | #: ../softwarecenter/ui/gtk/app.py:1183 |
148 | 714 | #: ../softwarecenter/ui/gtk/availablepane.py:116 | 718 | #: ../softwarecenter/ui/gtk/availablepane.py:116 |
149 | 715 | msgid "Loading" | 719 | msgid "Loading" |
150 | 716 | msgstr "" | 720 | msgstr "" |
151 | @@ -724,26 +728,34 @@ | |||
152 | 724 | msgid "_Ignore and install" | 728 | msgid "_Ignore and install" |
153 | 725 | msgstr "" | 729 | msgstr "" |
154 | 726 | 730 | ||
156 | 727 | #: ../softwarecenter/backend/channel.py:414 | 731 | #: ../softwarecenter/backend/channel.py:421 |
157 | 728 | msgid "Canonical Partners" | 732 | msgid "Canonical Partners" |
158 | 729 | msgstr "" | 733 | msgstr "" |
159 | 730 | 734 | ||
165 | 731 | #: ../softwarecenter/backend/channel.py:416 | 735 | #: ../softwarecenter/backend/channel.py:423 |
166 | 732 | #: ../softwarecenter/ui/gtk/appdetailsview_gtk.py:1320 | 736 | #: ../softwarecenter/ui/gtk/appdetailsview_gtk.py:1322 |
167 | 733 | #: ../softwarecenter/ui/gtk/appdetailsview_gtk.py:1326 | 737 | #: ../softwarecenter/ui/gtk/appdetailsview_gtk.py:1328 |
168 | 734 | #: ../softwarecenter/ui/gtk/appdetailsview_gtk.py:1330 | 738 | #: ../softwarecenter/ui/gtk/appdetailsview_gtk.py:1332 |
169 | 735 | #: ../softwarecenter/ui/gtk/appdetailsview_gtk.py:1748 | 739 | #: ../softwarecenter/ui/gtk/appdetailsview_gtk.py:1750 |
170 | 736 | msgid "Unknown" | 740 | msgid "Unknown" |
171 | 737 | msgstr "" | 741 | msgstr "" |
172 | 738 | 742 | ||
174 | 739 | #: ../softwarecenter/backend/channel.py:420 | 743 | #: ../softwarecenter/backend/channel.py:427 |
175 | 740 | msgid "For Purchase" | 744 | msgid "For Purchase" |
176 | 741 | msgstr "" | 745 | msgstr "" |
177 | 742 | 746 | ||
179 | 743 | #: ../softwarecenter/backend/channel.py:422 | 747 | #: ../softwarecenter/backend/channel.py:429 |
180 | 744 | msgid "Independent" | 748 | msgid "Independent" |
181 | 745 | msgstr "" | 749 | msgstr "" |
182 | 746 | 750 | ||
183 | 751 | #: ../softwarecenter/backend/channel.py:508 | ||
184 | 752 | msgid "All Software" | ||
185 | 753 | msgstr "" | ||
186 | 754 | |||
187 | 755 | #: ../softwarecenter/backend/channel.py:514 | ||
188 | 756 | msgid "All Installed" | ||
189 | 757 | msgstr "" | ||
190 | 758 | |||
191 | 747 | #: ../softwarecenter/db/application.py:198 | 759 | #: ../softwarecenter/db/application.py:198 |
192 | 748 | #: ../softwarecenter/db/application.py:298 | 760 | #: ../softwarecenter/db/application.py:298 |
193 | 749 | #: ../softwarecenter/db/application.py:425 | 761 | #: ../softwarecenter/db/application.py:425 |
194 | @@ -792,7 +804,7 @@ | |||
195 | 792 | #. provide a list of words in your language that people are likely | 804 | #. provide a list of words in your language that people are likely |
196 | 793 | #. to include in a search but that should normally be ignored in | 805 | #. to include in a search but that should normally be ignored in |
197 | 794 | #. the search. | 806 | #. the search. |
199 | 795 | #: ../softwarecenter/db/database.py:104 | 807 | #: ../softwarecenter/db/database.py:118 |
200 | 796 | msgid "app;application;package;program;programme;suite;tool" | 808 | msgid "app;application;package;program;programme;suite;tool" |
201 | 797 | msgstr "" | 809 | msgstr "" |
202 | 798 | 810 | ||
203 | @@ -1197,52 +1209,52 @@ | |||
204 | 1197 | msgstr "" | 1209 | msgstr "" |
205 | 1198 | 1210 | ||
206 | 1199 | #. Update total size label | 1211 | #. Update total size label |
208 | 1200 | #: ../softwarecenter/ui/gtk/appdetailsview_gtk.py:1347 | 1212 | #: ../softwarecenter/ui/gtk/appdetailsview_gtk.py:1349 |
209 | 1201 | msgid "Calculating..." | 1213 | msgid "Calculating..." |
210 | 1202 | msgstr "" | 1214 | msgstr "" |
211 | 1203 | 1215 | ||
213 | 1204 | #: ../softwarecenter/ui/gtk/appdetailsview_gtk.py:1419 | 1216 | #: ../softwarecenter/ui/gtk/appdetailsview_gtk.py:1421 |
214 | 1205 | msgid "This program is run from a terminal: " | 1217 | msgid "This program is run from a terminal: " |
215 | 1206 | msgstr "" | 1218 | msgstr "" |
216 | 1207 | 1219 | ||
218 | 1208 | #: ../softwarecenter/ui/gtk/appdetailsview_gtk.py:1420 | 1220 | #: ../softwarecenter/ui/gtk/appdetailsview_gtk.py:1422 |
219 | 1209 | msgid "These programs are run from a terminal: " | 1221 | msgid "These programs are run from a terminal: " |
220 | 1210 | msgstr "" | 1222 | msgstr "" |
221 | 1211 | 1223 | ||
222 | 1212 | #. display launcher location | 1224 | #. display launcher location |
224 | 1213 | #: ../softwarecenter/ui/gtk/appdetailsview_gtk.py:1442 | 1225 | #: ../softwarecenter/ui/gtk/appdetailsview_gtk.py:1444 |
225 | 1214 | msgid "Find it in the menu: " | 1226 | msgid "Find it in the menu: " |
226 | 1215 | msgstr "" | 1227 | msgstr "" |
227 | 1216 | 1228 | ||
229 | 1217 | #: ../softwarecenter/ui/gtk/appdetailsview_gtk.py:1731 | 1229 | #: ../softwarecenter/ui/gtk/appdetailsview_gtk.py:1733 |
230 | 1218 | #, python-format | 1230 | #, python-format |
231 | 1219 | msgid "%sB to download, " | 1231 | msgid "%sB to download, " |
232 | 1220 | msgstr "" | 1232 | msgstr "" |
233 | 1221 | 1233 | ||
235 | 1222 | #: ../softwarecenter/ui/gtk/appdetailsview_gtk.py:1734 | 1234 | #: ../softwarecenter/ui/gtk/appdetailsview_gtk.py:1736 |
236 | 1223 | #, python-format | 1235 | #, python-format |
237 | 1224 | msgid "%sB when installed" | 1236 | msgid "%sB when installed" |
238 | 1225 | msgstr "" | 1237 | msgstr "" |
239 | 1226 | 1238 | ||
240 | 1227 | #. FIXME: this is not really a good indication of the size on disk | 1239 | #. FIXME: this is not really a good indication of the size on disk |
242 | 1228 | #: ../softwarecenter/ui/gtk/appdetailsview_gtk.py:1742 | 1240 | #: ../softwarecenter/ui/gtk/appdetailsview_gtk.py:1744 |
243 | 1229 | #, python-format | 1241 | #, python-format |
244 | 1230 | msgid "%sB on disk" | 1242 | msgid "%sB on disk" |
245 | 1231 | msgstr "" | 1243 | msgstr "" |
246 | 1232 | 1244 | ||
248 | 1233 | #: ../softwarecenter/ui/gtk/appdetailsview_gtk.py:1745 | 1245 | #: ../softwarecenter/ui/gtk/appdetailsview_gtk.py:1747 |
249 | 1234 | #, python-format | 1246 | #, python-format |
250 | 1235 | msgid "%sB to be freed" | 1247 | msgid "%sB to be freed" |
251 | 1236 | msgstr "" | 1248 | msgstr "" |
252 | 1237 | 1249 | ||
254 | 1238 | #: ../softwarecenter/ui/gtk/appdetailsview_gtk.py:1770 | 1250 | #: ../softwarecenter/ui/gtk/appdetailsview_gtk.py:1772 |
255 | 1239 | #, python-format | 1251 | #, python-format |
256 | 1240 | msgid "Used: one time" | 1252 | msgid "Used: one time" |
257 | 1241 | msgid_plural "Used: %(amount)s times" | 1253 | msgid_plural "Used: %(amount)s times" |
258 | 1242 | msgstr[0] "" | 1254 | msgstr[0] "" |
259 | 1243 | msgstr[1] "" | 1255 | msgstr[1] "" |
260 | 1244 | 1256 | ||
262 | 1245 | #: ../softwarecenter/ui/gtk/appdetailsview_gtk.py:1774 | 1257 | #: ../softwarecenter/ui/gtk/appdetailsview_gtk.py:1776 |
263 | 1246 | msgid "Used: over 100 times" | 1258 | msgid "Used: over 100 times" |
264 | 1247 | msgstr "" | 1259 | msgstr "" |
265 | 1248 | 1260 | ||
266 | @@ -1385,13 +1397,13 @@ | |||
267 | 1385 | msgstr "" | 1397 | msgstr "" |
268 | 1386 | 1398 | ||
269 | 1387 | #: ../softwarecenter/ui/gtk/catview_gtk.py:100 | 1399 | #: ../softwarecenter/ui/gtk/catview_gtk.py:100 |
271 | 1388 | #: ../softwarecenter/ui/gtk/catview_gtk.py:524 | 1400 | #: ../softwarecenter/ui/gtk/catview_gtk.py:552 |
272 | 1389 | #: ../softwarecenter/ui/gtk/catview_webkit.py:62 | 1401 | #: ../softwarecenter/ui/gtk/catview_webkit.py:62 |
273 | 1390 | #: ../softwarecenter/ui/gtk/catview_webkit.py:72 | 1402 | #: ../softwarecenter/ui/gtk/catview_webkit.py:72 |
274 | 1391 | msgid "Departments" | 1403 | msgid "Departments" |
275 | 1392 | msgstr "" | 1404 | msgstr "" |
276 | 1393 | 1405 | ||
278 | 1394 | #: ../softwarecenter/ui/gtk/catview_gtk.py:305 | 1406 | #: ../softwarecenter/ui/gtk/catview_gtk.py:329 |
279 | 1395 | #, python-format | 1407 | #, python-format |
280 | 1396 | msgid "Welcome back! There is <a href=\"\">%i new recommendation</a> for you." | 1408 | msgid "Welcome back! There is <a href=\"\">%i new recommendation</a> for you." |
281 | 1397 | msgid_plural "" | 1409 | msgid_plural "" |
282 | @@ -1399,18 +1411,18 @@ | |||
283 | 1399 | msgstr[0] "" | 1411 | msgstr[0] "" |
284 | 1400 | msgstr[1] "" | 1412 | msgstr[1] "" |
285 | 1401 | 1413 | ||
287 | 1402 | #: ../softwarecenter/ui/gtk/catview_gtk.py:316 | 1414 | #: ../softwarecenter/ui/gtk/catview_gtk.py:340 |
288 | 1403 | msgid "Recommendations" | 1415 | msgid "Recommendations" |
289 | 1404 | msgstr "" | 1416 | msgstr "" |
290 | 1405 | 1417 | ||
292 | 1406 | #: ../softwarecenter/ui/gtk/catview_gtk.py:385 | 1418 | #: ../softwarecenter/ui/gtk/catview_gtk.py:409 |
293 | 1407 | msgid "Top Rated" | 1419 | msgid "Top Rated" |
294 | 1408 | msgstr "" | 1420 | msgstr "" |
295 | 1409 | 1421 | ||
296 | 1410 | #. append an additional button to show all of the items in the category | 1422 | #. append an additional button to show all of the items in the category |
297 | 1411 | #. an AppStore | 1423 | #. an AppStore |
300 | 1412 | #: ../softwarecenter/ui/gtk/catview_gtk.py:614 | 1424 | #: ../softwarecenter/ui/gtk/catview_gtk.py:642 |
301 | 1413 | #: ../softwarecenter/ui/gtk/catview_gtk.py:616 | 1425 | #: ../softwarecenter/ui/gtk/catview_gtk.py:644 |
302 | 1414 | #: ../softwarecenter/ui/gtk/widgets/carousel.py:72 | 1426 | #: ../softwarecenter/ui/gtk/widgets/carousel.py:72 |
303 | 1415 | msgid "All" | 1427 | msgid "All" |
304 | 1416 | msgstr "" | 1428 | msgstr "" |
305 | 1417 | 1429 | ||
306 | === modified file 'softwarecenter/ui/gtk/app.py' | |||
307 | --- softwarecenter/ui/gtk/app.py 2011-07-20 21:31:07 +0000 | |||
308 | +++ softwarecenter/ui/gtk/app.py 2011-07-23 14:41:45 +0000 | |||
309 | @@ -522,14 +522,18 @@ | |||
310 | 522 | # set menu sensitve | 522 | # set menu sensitve |
311 | 523 | self.menuitem_view_supported_only.set_sensitive(self.active_pane != None) | 523 | self.menuitem_view_supported_only.set_sensitive(self.active_pane != None) |
312 | 524 | self.menuitem_view_all.set_sensitive(self.active_pane != None) | 524 | self.menuitem_view_all.set_sensitive(self.active_pane != None) |
313 | 525 | self.menuitem_view_free_software_only.set_sensitive(self.active_pane != None) | ||
314 | 525 | # set menu state | 526 | # set menu state |
315 | 526 | if self.active_pane: | 527 | if self.active_pane: |
316 | 527 | self._block_menuitem_view = True | 528 | self._block_menuitem_view = True |
317 | 528 | if not self.active_pane.apps_filter: | 529 | if not self.active_pane.apps_filter: |
318 | 529 | self.menuitem_view_all.set_sensitive(False) | 530 | self.menuitem_view_all.set_sensitive(False) |
319 | 531 | self.menuitem_view_free_software_only.set_sensitive(False) | ||
320 | 530 | self.menuitem_view_supported_only.set_sensitive(False) | 532 | self.menuitem_view_supported_only.set_sensitive(False) |
321 | 531 | elif self.active_pane.apps_filter.get_supported_only(): | 533 | elif self.active_pane.apps_filter.get_supported_only(): |
322 | 532 | self.menuitem_view_supported_only.activate() | 534 | self.menuitem_view_supported_only.activate() |
323 | 535 | elif self.active_pane.apps_filter.get_free_software_only(): | ||
324 | 536 | self.menuitem_view_free_software_only.activate() | ||
325 | 533 | else: | 537 | else: |
326 | 534 | self.menuitem_view_all.activate() | 538 | self.menuitem_view_all.activate() |
327 | 535 | self._block_menuitem_view = False | 539 | self._block_menuitem_view = False |
328 | @@ -938,6 +942,26 @@ | |||
329 | 938 | self.available_pane.subcategories_view.current_category, | 942 | self.available_pane.subcategories_view.current_category, |
330 | 939 | len(self.available_pane.app_view.get_model())) | 943 | len(self.available_pane.app_view.get_model())) |
331 | 940 | 944 | ||
332 | 945 | def on_menuitem_view_free_software_only_activate(self, widget): | ||
333 | 946 | if (not self._block_menuitem_view and | ||
334 | 947 | self.active_pane.apps_filter and | ||
335 | 948 | not self.active_pane.apps_filter.get_free_software_only()): | ||
336 | 949 | self.active_pane.apps_filter.set_free_software_only(True) | ||
337 | 950 | self.active_pane.refresh_apps() | ||
338 | 951 | |||
339 | 952 | # update recommended widget counterd | ||
340 | 953 | if self.available_pane and self.available_pane.cat_view: | ||
341 | 954 | self.available_pane.cat_view._append_recommendations() | ||
342 | 955 | |||
343 | 956 | # update subcategory view | ||
344 | 957 | if (self.available_pane and | ||
345 | 958 | self.available_pane == self.active_pane and | ||
346 | 959 | self.available_pane.subcategories_view and | ||
347 | 960 | self.available_pane.subcategories_view.current_category): | ||
348 | 961 | self.available_pane.subcategories_view._append_subcat_departments( | ||
349 | 962 | self.available_pane.subcategories_view.current_category, | ||
350 | 963 | len(self.available_pane.app_view.get_model())) | ||
351 | 964 | |||
352 | 941 | def on_menuitem_view_supported_only_activate(self, widget): | 965 | def on_menuitem_view_supported_only_activate(self, widget): |
353 | 942 | if (not self._block_menuitem_view and | 966 | if (not self._block_menuitem_view and |
354 | 943 | self.active_pane.apps_filter and | 967 | self.active_pane.apps_filter and |
355 | 944 | 968 | ||
356 | === modified file 'softwarecenter/ui/gtk/appview.py' | |||
357 | --- softwarecenter/ui/gtk/appview.py 2011-07-15 14:24:08 +0000 | |||
358 | +++ softwarecenter/ui/gtk/appview.py 2011-07-23 14:41:45 +0000 | |||
359 | @@ -1113,6 +1113,7 @@ | |||
360 | 1113 | self.lowlevel_cache = None | 1113 | self.lowlevel_cache = None |
361 | 1114 | self.available_only = False | 1114 | self.available_only = False |
362 | 1115 | self.supported_only = False | 1115 | self.supported_only = False |
363 | 1116 | self.free_software_only = False | ||
364 | 1116 | self.installed_only = False | 1117 | self.installed_only = False |
365 | 1117 | self.not_installed_only = False | 1118 | self.not_installed_only = False |
366 | 1118 | @property | 1119 | @property |
367 | @@ -1120,18 +1121,23 @@ | |||
368 | 1120 | """ True if the filter is in a state that it should be part of a query """ | 1121 | """ True if the filter is in a state that it should be part of a query """ |
369 | 1121 | return (self.available_only or | 1122 | return (self.available_only or |
370 | 1122 | self.supported_only or | 1123 | self.supported_only or |
372 | 1123 | self.installed_only or | 1124 | self.installed_only or |
373 | 1125 | self.free_software_only or | ||
374 | 1124 | self.not_installed_only) | 1126 | self.not_installed_only) |
375 | 1125 | def set_available_only(self, v): | 1127 | def set_available_only(self, v): |
376 | 1126 | self.available_only = v | 1128 | self.available_only = v |
377 | 1127 | def set_supported_only(self, v): | 1129 | def set_supported_only(self, v): |
378 | 1128 | self.supported_only = v | 1130 | self.supported_only = v |
379 | 1131 | def set_free_software_only(self, v): | ||
380 | 1132 | self.free_software_only = v | ||
381 | 1129 | def set_installed_only(self, v): | 1133 | def set_installed_only(self, v): |
382 | 1130 | self.installed_only = v | 1134 | self.installed_only = v |
383 | 1131 | def set_not_installed_only(self, v): | 1135 | def set_not_installed_only(self, v): |
384 | 1132 | self.not_installed_only = v | 1136 | self.not_installed_only = v |
385 | 1133 | def get_supported_only(self): | 1137 | def get_supported_only(self): |
386 | 1134 | return self.supported_only | 1138 | return self.supported_only |
387 | 1139 | def get_free_software_only(self): | ||
388 | 1140 | return self.free_software_only | ||
389 | 1135 | def __eq__(self, other): | 1141 | def __eq__(self, other): |
390 | 1136 | if self is None and other is not None: | 1142 | if self is None and other is not None: |
391 | 1137 | return True | 1143 | return True |
392 | @@ -1139,16 +1145,17 @@ | |||
393 | 1139 | return False | 1145 | return False |
394 | 1140 | return (self.installed_only == other.installed_only and | 1146 | return (self.installed_only == other.installed_only and |
395 | 1141 | self.not_installed_only == other.not_installed_only and | 1147 | self.not_installed_only == other.not_installed_only and |
397 | 1142 | self.supported_only == other.supported_only) | 1148 | self.supported_only == other.supported_only and |
398 | 1149 | self.free_software_only == other.free_software_only) | ||
399 | 1143 | def __ne__(self, other): | 1150 | def __ne__(self, other): |
400 | 1144 | return not self.__eq__(other) | 1151 | return not self.__eq__(other) |
401 | 1145 | def __call__(self, doc): | 1152 | def __call__(self, doc): |
402 | 1146 | """return True if the package should be displayed""" | 1153 | """return True if the package should be displayed""" |
403 | 1147 | # get pkgname from document | 1154 | # get pkgname from document |
404 | 1148 | pkgname = self.db.get_pkgname(doc) | 1155 | pkgname = self.db.get_pkgname(doc) |
408 | 1149 | #LOG.debug( | 1156 | #LOG.warn( |
409 | 1150 | # "filter: supported_only: %s installed_only: %s '%s'" % ( | 1157 | # "filter: supported_only: %s installed_only: %s free only %s '%s'" % ( |
410 | 1151 | # self.supported_only, self.installed_only, pkgname)) | 1158 | # self.supported_only, self.installed_only, self.free_software_only, pkgname)) |
411 | 1152 | if self.available_only: | 1159 | if self.available_only: |
412 | 1153 | # an item is considered available if it is either found | 1160 | # an item is considered available if it is either found |
413 | 1154 | # in the cache or is available for purchase | 1161 | # in the cache or is available for purchase |
414 | @@ -1169,6 +1176,10 @@ | |||
415 | 1169 | if (pkgname in self.cache and | 1176 | if (pkgname in self.cache and |
416 | 1170 | self.cache[pkgname].is_installed): | 1177 | self.cache[pkgname].is_installed): |
417 | 1171 | return False | 1178 | return False |
418 | 1179 | if self.free_software_only: | ||
419 | 1180 | component = doc.get_value(XapianValues.ARCHIVE_SECTION) | ||
420 | 1181 | if self.distro.get_license_text(component) != "Open source": | ||
421 | 1182 | return False | ||
422 | 1172 | if self.supported_only: | 1183 | if self.supported_only: |
423 | 1173 | if not self.distro.is_supported(self.cache, doc, pkgname): | 1184 | if not self.distro.is_supported(self.cache, doc, pkgname): |
424 | 1174 | return False | 1185 | return False |
425 | 1175 | 1186 | ||
426 | === modified file 'softwarecenter/ui/gtk3/app.py' | |||
427 | --- softwarecenter/ui/gtk3/app.py 2011-07-20 12:05:57 +0000 | |||
428 | +++ softwarecenter/ui/gtk3/app.py 2011-07-23 14:41:45 +0000 | |||
429 | @@ -579,14 +579,18 @@ | |||
430 | 579 | # set menu sensitve | 579 | # set menu sensitve |
431 | 580 | self.menuitem_view_supported_only.set_sensitive(self.active_pane != None) | 580 | self.menuitem_view_supported_only.set_sensitive(self.active_pane != None) |
432 | 581 | self.menuitem_view_all.set_sensitive(self.active_pane != None) | 581 | self.menuitem_view_all.set_sensitive(self.active_pane != None) |
433 | 582 | self.menuitem_view_free_software_only.set_sensitive(self.active_pane != None) | ||
434 | 582 | # set menu state | 583 | # set menu state |
435 | 583 | if self.active_pane: | 584 | if self.active_pane: |
436 | 584 | self._block_menuitem_view = True | 585 | self._block_menuitem_view = True |
437 | 585 | if not self.active_pane.apps_filter: | 586 | if not self.active_pane.apps_filter: |
438 | 586 | self.menuitem_view_all.set_sensitive(False) | 587 | self.menuitem_view_all.set_sensitive(False) |
439 | 588 | self.menuitem_view_free_software_only.set_sensitive(False) | ||
440 | 587 | self.menuitem_view_supported_only.set_sensitive(False) | 589 | self.menuitem_view_supported_only.set_sensitive(False) |
441 | 588 | elif self.active_pane.apps_filter.get_supported_only(): | 590 | elif self.active_pane.apps_filter.get_supported_only(): |
442 | 589 | self.menuitem_view_supported_only.activate() | 591 | self.menuitem_view_supported_only.activate() |
443 | 592 | elif self.active_pane.apps_filter.get_free_software_only(): | ||
444 | 593 | self.menuitem_view_free_software_only.activate() | ||
445 | 590 | else: | 594 | else: |
446 | 591 | self.menuitem_view_all.activate() | 595 | self.menuitem_view_all.activate() |
447 | 592 | self._block_menuitem_view = False | 596 | self._block_menuitem_view = False |
448 | @@ -1000,6 +1004,26 @@ | |||
449 | 1000 | self.available_pane.subcategories_view.current_category, | 1004 | self.available_pane.subcategories_view.current_category, |
450 | 1001 | len(self.available_pane.app_view.get_model())) | 1005 | len(self.available_pane.app_view.get_model())) |
451 | 1002 | 1006 | ||
452 | 1007 | def on_menuitem_view_free_software_only_activate(self, widget): | ||
453 | 1008 | if (not self._block_menuitem_view and | ||
454 | 1009 | self.active_pane.state and | ||
455 | 1010 | not self.active_pane.state.filter.get_free_software_only()): | ||
456 | 1011 | self.active_pane.state.filter.set_free_software_only(True) | ||
457 | 1012 | self.active_pane.refresh_apps() | ||
458 | 1013 | |||
459 | 1014 | # update recommended widget counter | ||
460 | 1015 | if self.available_pane and self.available_pane.cat_view: | ||
461 | 1016 | self.available_pane.cat_view._append_recommendations() | ||
462 | 1017 | |||
463 | 1018 | # update subcategory view | ||
464 | 1019 | if (self.available_pane and | ||
465 | 1020 | self.available_pane == self.active_pane and | ||
466 | 1021 | self.available_pane.subcategories_view and | ||
467 | 1022 | self.available_pane.subcategories_view.current_category): | ||
468 | 1023 | self.available_pane.subcategories_view._append_subcat_departments( | ||
469 | 1024 | self.available_pane.subcategories_view.current_category, | ||
470 | 1025 | len(self.available_pane.app_view.get_model())) | ||
471 | 1026 | |||
472 | 1003 | def on_menuitem_view_supported_only_activate(self, widget): | 1027 | def on_menuitem_view_supported_only_activate(self, widget): |
473 | 1004 | if (not self._block_menuitem_view and | 1028 | if (not self._block_menuitem_view and |
474 | 1005 | self.active_pane.state and | 1029 | self.active_pane.state and |
475 | 1006 | 1030 | ||
476 | === modified file 'softwarecenter/ui/gtk3/views/appview.py' | |||
477 | --- softwarecenter/ui/gtk3/views/appview.py 2011-07-20 12:05:57 +0000 | |||
478 | +++ softwarecenter/ui/gtk3/views/appview.py 2011-07-23 14:41:45 +0000 | |||
479 | @@ -563,6 +563,7 @@ | |||
480 | 563 | self.db = db | 563 | self.db = db |
481 | 564 | self.cache = cache | 564 | self.cache = cache |
482 | 565 | self.available_only = False | 565 | self.available_only = False |
483 | 566 | self.free_software_only = False | ||
484 | 566 | self.supported_only = False | 567 | self.supported_only = False |
485 | 567 | self.installed_only = False | 568 | self.installed_only = False |
486 | 568 | self.not_installed_only = False | 569 | self.not_installed_only = False |
487 | @@ -571,18 +572,23 @@ | |||
488 | 571 | """ True if the filter is in a state that it should be part of a query """ | 572 | """ True if the filter is in a state that it should be part of a query """ |
489 | 572 | return (self.available_only or | 573 | return (self.available_only or |
490 | 573 | self.supported_only or | 574 | self.supported_only or |
491 | 575 | self.free_software_only or | ||
492 | 574 | self.installed_only or | 576 | self.installed_only or |
493 | 575 | self.not_installed_only) | 577 | self.not_installed_only) |
494 | 576 | def set_available_only(self, v): | 578 | def set_available_only(self, v): |
495 | 577 | self.available_only = v | 579 | self.available_only = v |
496 | 578 | def set_supported_only(self, v): | 580 | def set_supported_only(self, v): |
497 | 579 | self.supported_only = v | 581 | self.supported_only = v |
498 | 582 | def set_free_software_only(self, v): | ||
499 | 583 | self.free_software_only = v | ||
500 | 580 | def set_installed_only(self, v): | 584 | def set_installed_only(self, v): |
501 | 581 | self.installed_only = v | 585 | self.installed_only = v |
502 | 582 | def set_not_installed_only(self, v): | 586 | def set_not_installed_only(self, v): |
503 | 583 | self.not_installed_only = v | 587 | self.not_installed_only = v |
504 | 584 | def get_supported_only(self): | 588 | def get_supported_only(self): |
505 | 585 | return self.supported_only | 589 | return self.supported_only |
506 | 590 | def get_free_software_only(self): | ||
507 | 591 | return self.free_software_only | ||
508 | 586 | def __eq__(self, other): | 592 | def __eq__(self, other): |
509 | 587 | if self is None and other is not None: | 593 | if self is None and other is not None: |
510 | 588 | return True | 594 | return True |
511 | @@ -590,6 +596,7 @@ | |||
512 | 590 | return False | 596 | return False |
513 | 591 | return (self.installed_only == other.installed_only and | 597 | return (self.installed_only == other.installed_only and |
514 | 592 | self.not_installed_only == other.not_installed_only and | 598 | self.not_installed_only == other.not_installed_only and |
515 | 599 | self.free_software_only == other.free_software_only and | ||
516 | 593 | self.supported_only == other.supported_only) | 600 | self.supported_only == other.supported_only) |
517 | 594 | def __ne__(self, other): | 601 | def __ne__(self, other): |
518 | 595 | return not self.__eq__(other) | 602 | return not self.__eq__(other) |
519 | @@ -616,6 +623,10 @@ | |||
520 | 616 | if (pkgname in self.cache and | 623 | if (pkgname in self.cache and |
521 | 617 | self.cache[pkgname].is_installed): | 624 | self.cache[pkgname].is_installed): |
522 | 618 | return False | 625 | return False |
523 | 626 | if self.free_software_only: | ||
524 | 627 | component = doc.get_value(XapianValues.ARCHIVE_SECTION) | ||
525 | 628 | if self.distro.get_license_text(component) != "Open source": | ||
526 | 629 | return False | ||
527 | 619 | if self.supported_only: | 630 | if self.supported_only: |
528 | 620 | if not self.distro.is_supported(self.cache, doc, pkgname): | 631 | if not self.distro.is_supported(self.cache, doc, pkgname): |
529 | 621 | return False | 632 | return False |
530 | 622 | 633 | ||
531 | === modified file 'softwarecenter/version.py' | |||
532 | --- softwarecenter/version.py 2011-07-21 15:28:53 +0000 | |||
533 | +++ softwarecenter/version.py 2011-07-23 14:41:45 +0000 | |||
534 | @@ -1,5 +1,5 @@ | |||
535 | 1 | 1 | ||
538 | 2 | VERSION='4.1.10' | 2 | VERSION='4.1.11' |
539 | 3 | CODENAME='UNRELEASED' | 3 | CODENAME='UNRELAED' |
540 | 4 | DISTRO='Ubuntu' | 4 | DISTRO='Ubuntu' |
541 | 5 | RELEASE='11.10' | 5 | RELEASE='11.10' |
Two typos: "counterd" and "UNRELAED".
There are larger issues with the design, but I'll address those in the bug report.