Merge lp:~jbicha/testdrive/port-to-gtk3 into lp:testdrive
- port-to-gtk3
- Merge into trunk
Status: | Needs review |
---|---|
Proposed branch: | lp:~jbicha/testdrive/port-to-gtk3 |
Merge into: | lp:testdrive |
Diff against target: |
3097 lines (+718/-969) 16 files modified
bin/testdrive-gtk (+136/-116) data/ui/AboutTestdrivegtkDialog.ui (+0/-56) data/ui/AddOtherTestdrivegtkDialog.ui (+48/-18) data/ui/PreferencesTestdrivegtkDialog.ui (+260/-304) data/ui/TestdrivegtkWindow.ui (+6/-4) data/ui/about_testdrivegtk_dialog.xml (+0/-9) debian/compat (+1/-1) debian/control (+17/-15) po/testdrive.pot (+163/-337) testdrive/testdrive.py (+1/-1) testdrive/virt/kvm.py (+3/-3) testdrive/virt/virtualbox.py (+4/-4) testdrivegtk/AboutTestdrivegtkDialog.py (+10/-29) testdrivegtk/AddOtherTestdrivegtkDialog.py (+23/-22) testdrivegtk/PreferencesTestdrivegtkDialog.py (+43/-47) testdrivegtk/helpers.py (+3/-3) |
To merge this branch: | bzr merge lp:~jbicha/testdrive/port-to-gtk3 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Andres Rodriguez | Needs Fixing | ||
Review via email: mp+72369@code.launchpad.net |
Commit message
Description of the change
I've not really tested the Indicator/
I commented out line 211 of AddOtherTestdri
- 364. By Jeremy Bícha
-
Fix memory and disk entry fields and restrict input to numbers
A couple other bugfixes
Jeremy Bícha (jbicha) wrote : | # |
Now that the Precise cycle has begun, it would be really nice if this could get looked at and merged in. Thanks!
Andres Rodriguez (andreserl) wrote : | # |
Hi Jeremy,
Sorry for the delay but just had the chance to review this change.
Now, overall everything looks good. I have fixed the bug on which the "Add ISO" option was disabled, now it should work. Fix is in trunk. This leads me to line 211 of AddOtherTestdri
The Notification does not seem to be working but I was planning to disable momentarily.
Cheers.
Andres Rodriguez (andreserl) wrote : | # |
Also, would it be possible for you to produce a separate branch for the fix for bug #816266
Unmerged revisions
- 364. By Jeremy Bícha
-
Fix memory and disk entry fields and restrict input to numbers
A couple other bugfixes - 363. By Jeremy Bícha
-
Update dependencies
Bump debhelper compatibility to 8 and Standards-Version to 3.9.2 - 362. By Jeremy Bícha
-
Port to GTK3
Removed redundant AboutDialog UI files
Fixes LP: #816266
Preview Diff
1 | === modified file 'bin/testdrive-gtk' | |||
2 | --- bin/testdrive-gtk 2011-08-13 22:06:27 +0000 | |||
3 | +++ bin/testdrive-gtk 2011-08-23 08:30:25 +0000 | |||
4 | @@ -19,10 +19,18 @@ | |||
5 | 19 | # with this program. If not, see <http://www.gnu.org/licenses/>. | 19 | # with this program. If not, see <http://www.gnu.org/licenses/>. |
6 | 20 | ### END LICENSE | 20 | ### END LICENSE |
7 | 21 | 21 | ||
8 | 22 | import os | ||
9 | 23 | import random | ||
10 | 24 | import re | ||
11 | 22 | import sys | 25 | import sys |
12 | 23 | import os | ||
13 | 24 | import gtk | ||
14 | 25 | import time | 26 | import time |
15 | 27 | import threading, subprocess, commands | ||
16 | 28 | |||
17 | 29 | # Require minimum GTK 3.0 | ||
18 | 30 | import gi | ||
19 | 31 | gi.require_version("Gtk", "3.0") | ||
20 | 32 | |||
21 | 33 | from gi.repository import Gtk, Gdk | ||
22 | 26 | 34 | ||
23 | 27 | import gettext | 35 | import gettext |
24 | 28 | from gettext import gettext as _ | 36 | from gettext import gettext as _ |
25 | @@ -30,11 +38,8 @@ | |||
26 | 30 | 38 | ||
27 | 31 | from testdrive import testdrive | 39 | from testdrive import testdrive |
28 | 32 | from testdrive.virt import kvm, parallels, virtualbox | 40 | from testdrive.virt import kvm, parallels, virtualbox |
29 | 33 | import threading, subprocess, commands | ||
30 | 34 | import random | ||
31 | 35 | import re | ||
32 | 36 | 41 | ||
34 | 37 | gtk.gdk.threads_init() | 42 | Gdk.threads_init() |
35 | 38 | 43 | ||
36 | 39 | TAB_LABEL = [] | 44 | TAB_LABEL = [] |
37 | 40 | TAB_LABEL.append({"dist":"ubuntu", "label":"Ubuntu"}) | 45 | TAB_LABEL.append({"dist":"ubuntu", "label":"Ubuntu"}) |
38 | @@ -54,7 +59,7 @@ | |||
39 | 54 | # optional Launchpad integration | 59 | # optional Launchpad integration |
40 | 55 | # this shouldn't crash if not found as it is simply used for bug reporting | 60 | # this shouldn't crash if not found as it is simply used for bug reporting |
41 | 56 | try: | 61 | try: |
43 | 57 | import LaunchpadIntegration | 62 | from gi.repository import LaunchpadIntegration |
44 | 58 | launchpad_available = True | 63 | launchpad_available = True |
45 | 59 | except: | 64 | except: |
46 | 60 | launchpad_available = False | 65 | launchpad_available = False |
47 | @@ -69,8 +74,8 @@ | |||
48 | 69 | os.putenv('PYTHONPATH', PROJECT_ROOT_DIRECTORY) # for subprocesses | 74 | os.putenv('PYTHONPATH', PROJECT_ROOT_DIRECTORY) # for subprocesses |
49 | 70 | 75 | ||
50 | 71 | try: | 76 | try: |
53 | 72 | import pynotify | 77 | from gi.repository import Notify |
54 | 73 | pynotify.init('testdrive-gtk') | 78 | Notify.init('testdrive-gtk') |
55 | 74 | imageURI = 'file://' + PROJECT_ROOT_DIRECTORY + '/data/media/testdrive.png' | 79 | imageURI = 'file://' + PROJECT_ROOT_DIRECTORY + '/data/media/testdrive.png' |
56 | 75 | notifications_available = True | 80 | notifications_available = True |
57 | 76 | except: | 81 | except: |
58 | @@ -81,8 +86,8 @@ | |||
59 | 81 | from testdrivegtk.helpers import get_builder | 86 | from testdrivegtk.helpers import get_builder |
60 | 82 | 87 | ||
61 | 83 | try: | 88 | try: |
64 | 84 | import indicate | 89 | from gi.repository import Indicate |
65 | 85 | import gobject | 90 | from gi.repository import GObject |
66 | 86 | import webbrowser | 91 | import webbrowser |
67 | 87 | #message_indicator = True | 92 | #message_indicator = True |
68 | 88 | message_indicator = False | 93 | message_indicator = False |
69 | @@ -90,14 +95,14 @@ | |||
70 | 90 | message_indicator = False | 95 | message_indicator = False |
71 | 91 | 96 | ||
72 | 92 | try: | 97 | try: |
74 | 93 | import appindicator | 98 | from gi.repository import AppIndicator3 as AppIndicator |
75 | 94 | imageURI = 'file://' + PROJECT_ROOT_DIRECTORY + '/data/media/testdrive.png' | 99 | imageURI = 'file://' + PROJECT_ROOT_DIRECTORY + '/data/media/testdrive.png' |
76 | 95 | application_indicator = True | 100 | application_indicator = True |
77 | 96 | except: | 101 | except: |
78 | 97 | application_indicator = False | 102 | application_indicator = False |
79 | 98 | 103 | ||
80 | 99 | 104 | ||
82 | 100 | class TestdrivegtkWindow(gtk.Window): | 105 | class TestdrivegtkWindow(Gtk.Window): |
83 | 101 | __gtype_name__ = "TestdrivegtkWindow" | 106 | __gtype_name__ = "TestdrivegtkWindow" |
84 | 102 | 107 | ||
85 | 103 | # To construct a new instance of this method, the following notable | 108 | # To construct a new instance of this method, the following notable |
86 | @@ -133,6 +138,7 @@ | |||
87 | 133 | # Get a reference to the builder and set up the signals. | 138 | # Get a reference to the builder and set up the signals. |
88 | 134 | self.builder = builder | 139 | self.builder = builder |
89 | 135 | self.builder.connect_signals(self) | 140 | self.builder.connect_signals(self) |
90 | 141 | self.window = self.builder.get_object("testdrivegtk_window") | ||
91 | 136 | #self.td = td | 142 | #self.td = td |
92 | 137 | self.virt = None | 143 | self.virt = None |
93 | 138 | self.sync_threads = [] | 144 | self.sync_threads = [] |
94 | @@ -145,7 +151,7 @@ | |||
95 | 145 | # about LaunchpadIntegration | 151 | # about LaunchpadIntegration |
96 | 146 | helpmenu = self.builder.get_object('helpMenu') | 152 | helpmenu = self.builder.get_object('helpMenu') |
97 | 147 | if helpmenu: | 153 | if helpmenu: |
99 | 148 | LaunchpadIntegration.set_sourcepackagename('testdrive') | 154 | LaunchpadIntegration.set_sourcepackagename('testdrive-gtk') |
100 | 149 | LaunchpadIntegration.add_items(helpmenu, 0, False, True) | 155 | LaunchpadIntegration.add_items(helpmenu, 0, False, True) |
101 | 150 | else: | 156 | else: |
102 | 151 | launchpad_available = False | 157 | launchpad_available = False |
103 | @@ -184,22 +190,22 @@ | |||
104 | 184 | self.application_indicator_menu() | 190 | self.application_indicator_menu() |
105 | 185 | 191 | ||
106 | 186 | def application_indicator_menu(self): | 192 | def application_indicator_menu(self): |
109 | 187 | self.appindicator = appindicator.Indicator ("testdrive", "indicator-messages", appindicator.CATEGORY_APPLICATION_STATUS) | 193 | self.appindicator = AppIndicator.Indicator.new("testdrive", "indicator-messages", AppIndicator.IndicatorCategory.APPLICATION_STATUS) |
110 | 188 | self.appindicator.set_status (appindicator.STATUS_PASSIVE) | 194 | self.appindicator.set_status (AppIndicator.IndicatorStatus.PASSIVE) |
111 | 189 | #self.appindicator.set_icon("testdrive-indicator") | 195 | #self.appindicator.set_icon("testdrive-indicator") |
112 | 190 | self.appindicator.set_icon("testdrive-attention") | 196 | self.appindicator.set_icon("testdrive-attention") |
113 | 191 | #self.appindicator.set_attention_icon("distributor-logo") | 197 | #self.appindicator.set_attention_icon("distributor-logo") |
114 | 192 | 198 | ||
115 | 193 | # create a menu | 199 | # create a menu |
117 | 194 | self.app_indicator_menu = gtk.Menu() | 200 | self.app_indicator_menu = Gtk.Menu() |
118 | 195 | 201 | ||
119 | 196 | # create items for the menu - labels, checkboxes, radio buttons and images are supported: | 202 | # create items for the menu - labels, checkboxes, radio buttons and images are supported: |
121 | 197 | item = gtk.MenuItem("Pre-release available for testing!") | 203 | item = Gtk.MenuItem.new_with_label("Pre-release available for testing!") |
122 | 198 | item.connect("activate", self.on_indicator_message_clicked, item) | 204 | item.connect("activate", self.on_indicator_message_clicked, item) |
123 | 199 | item.show() | 205 | item.show() |
124 | 200 | self.app_indicator_menu.append(item) | 206 | self.app_indicator_menu.append(item) |
125 | 201 | 207 | ||
127 | 202 | image = gtk.ImageMenuItem(gtk.STOCK_QUIT) | 208 | image = Gtk.ImageMenuItem.new_from_stock(Gtk.STOCK_QUIT, None) |
128 | 203 | image.connect("activate", self.quit) | 209 | image.connect("activate", self.quit) |
129 | 204 | image.show() | 210 | image.show() |
130 | 205 | 211 | ||
131 | @@ -207,21 +213,21 @@ | |||
132 | 207 | self.app_indicator_menu.show() | 213 | self.app_indicator_menu.show() |
133 | 208 | self.appindicator.set_menu(self.app_indicator_menu) | 214 | self.appindicator.set_menu(self.app_indicator_menu) |
134 | 209 | 215 | ||
137 | 210 | gobject.timeout_add_seconds(self.timea, self.on_check_qa_releases_available, self.timea) | 216 | GObject.timeout_add_seconds(self.timea, self.on_check_qa_releases_available, self.timea) |
138 | 211 | gobject.timeout_add_seconds(self.timeb, self.on_check_qa_releases_available, self.timeb) | 217 | GObject.timeout_add_seconds(self.timeb, self.on_check_qa_releases_available, self.timeb) |
139 | 212 | 218 | ||
140 | 213 | # Initializes the indicator | 219 | # Initializes the indicator |
141 | 214 | def messaging_indicator_menu(self): | 220 | def messaging_indicator_menu(self): |
142 | 215 | DESKTOP_FILE = "/usr/share/applications/testdrive-gtk.desktop" | 221 | DESKTOP_FILE = "/usr/share/applications/testdrive-gtk.desktop" |
143 | 216 | # Initializes the Server | 222 | # Initializes the Server |
145 | 217 | server = indicate.indicate_server_ref_default() | 223 | server = Indicate.IndicateServer_ref_default() |
146 | 218 | server.set_type("message.testdrive") | 224 | server.set_type("message.testdrive") |
147 | 219 | server.set_desktop_file(DESKTOP_FILE) | 225 | server.set_desktop_file(DESKTOP_FILE) |
148 | 220 | server.connect("server-display", self.on_indicator_server_activate) | 226 | server.connect("server-display", self.on_indicator_server_activate) |
149 | 221 | server.show() | 227 | server.show() |
150 | 222 | 228 | ||
151 | 223 | # Initializes the Indicator | 229 | # Initializes the Indicator |
153 | 224 | self.indicator = indicate.Indicator() | 230 | self.indicator = Indicate.Indicator() |
154 | 225 | self.indicator.set_property("name", "Pre-release available for testing!") | 231 | self.indicator.set_property("name", "Pre-release available for testing!") |
155 | 226 | self.indicator.set_property_time("time", time.time()) | 232 | self.indicator.set_property_time("time", time.time()) |
156 | 227 | #indicator.show() | 233 | #indicator.show() |
157 | @@ -229,8 +235,8 @@ | |||
158 | 229 | self.indicator.connect("user-display", self.on_indicator_message_clicked) | 235 | self.indicator.connect("user-display", self.on_indicator_message_clicked) |
159 | 230 | 236 | ||
160 | 231 | # Checks every 3600 seconds - hour - (If TestDrive is open that long) | 237 | # Checks every 3600 seconds - hour - (If TestDrive is open that long) |
163 | 232 | gobject.timeout_add_seconds(self.timea, self.on_check_qa_releases_available, self.timea) | 238 | GObject.timeout_add_seconds(self.timea, self.on_check_qa_releases_available, self.timea) |
164 | 233 | gobject.timeout_add_seconds(self.timeb, self.on_check_qa_releases_available, self.timeb) | 239 | GObject.timeout_add_seconds(self.timeb, self.on_check_qa_releases_available, self.timeb) |
165 | 234 | 240 | ||
166 | 235 | # Checks for the availability of ISOs at iso.qa.ubuntu.com and displays notification if so. | 241 | # Checks for the availability of ISOs at iso.qa.ubuntu.com and displays notification if so. |
167 | 236 | def on_check_qa_releases_available(self, time): | 242 | def on_check_qa_releases_available(self, time): |
168 | @@ -249,7 +255,7 @@ | |||
169 | 249 | global notifications_available | 255 | global notifications_available |
170 | 250 | if notifications_available: | 256 | if notifications_available: |
171 | 251 | # Notification | 257 | # Notification |
173 | 252 | self.notification = pynotify.Notification("TestDrive an Ubuntu ISO!", "Pre-release available for testing!", imageURI) | 258 | self.notification = Notify.Notification("TestDrive an Ubuntu ISO!", "Pre-release available for testing!", imageURI) |
174 | 253 | self.notification.show() | 259 | self.notification.show() |
175 | 254 | global message_indicator | 260 | global message_indicator |
176 | 255 | if message_indicator: | 261 | if message_indicator: |
177 | @@ -257,7 +263,7 @@ | |||
178 | 257 | self.indicator.set_property_bool("draw-attention", True) | 263 | self.indicator.set_property_bool("draw-attention", True) |
179 | 258 | global application_indicator | 264 | global application_indicator |
180 | 259 | if application_indicator: | 265 | if application_indicator: |
182 | 260 | self.appindicator.set_status(appindicator.STATUS_ACTIVE) | 266 | self.appindicator.set_status(AppIndicator.IndicatorStatus.ACTIVE) |
183 | 261 | self.notified = True | 267 | self.notified = True |
184 | 262 | return False | 268 | return False |
185 | 263 | 269 | ||
186 | @@ -272,12 +278,12 @@ | |||
187 | 272 | if message_indicator: | 278 | if message_indicator: |
188 | 273 | self.indicator.hide() | 279 | self.indicator.hide() |
189 | 274 | if application_indicator: | 280 | if application_indicator: |
191 | 275 | self.appindicator.set_status(appindicator.STATUS_PASSIVE) | 281 | self.appindicator.set_status(AppIndicator.IndicatorStatus.PASSIVE) |
192 | 276 | 282 | ||
193 | 277 | # Click event for Indicator Server. | 283 | # Click event for Indicator Server. |
194 | 278 | def on_indicator_server_activate(self, server, timestamp): | 284 | def on_indicator_server_activate(self, server, timestamp): |
195 | 279 | # TODO: Should show TestDrive if it has been minimized | 285 | # TODO: Should show TestDrive if it has been minimized |
197 | 280 | print "Server has been clicked" | 286 | print("Server has been clicked") |
198 | 281 | 287 | ||
199 | 282 | def update_status_bar(self): | 288 | def update_status_bar(self): |
200 | 283 | data1 = _("<b>Release:</b> %s") % self.td.r | 289 | data1 = _("<b>Release:</b> %s") % self.td.r |
201 | @@ -296,7 +302,7 @@ | |||
202 | 296 | prefs = PreferencesTestdrivegtkDialog.PreferencesTestdrivegtkDialog() | 302 | prefs = PreferencesTestdrivegtkDialog.PreferencesTestdrivegtkDialog() |
203 | 297 | response = prefs.run() | 303 | response = prefs.run() |
204 | 298 | ui_recreate = False | 304 | ui_recreate = False |
206 | 299 | if response == gtk.RESPONSE_OK: | 305 | if response == Gtk.ResponseType.OK: |
207 | 300 | # Make any updates based on changed preferences here. | 306 | # Make any updates based on changed preferences here. |
208 | 301 | #self.td = prefs.get_preferences() | 307 | #self.td = prefs.get_preferences() |
209 | 302 | #self.notebook.destroy() | 308 | #self.notebook.destroy() |
210 | @@ -323,7 +329,7 @@ | |||
211 | 323 | other = AddOtherTestdrivegtkDialog.AddOtherTestdrivegtkDialog(self.td.CACHE) | 329 | other = AddOtherTestdrivegtkDialog.AddOtherTestdrivegtkDialog(self.td.CACHE) |
212 | 324 | other.set_title(_("Add an ISO to TestDrive")) | 330 | other.set_title(_("Add an ISO to TestDrive")) |
213 | 325 | response = other.run() | 331 | response = other.run() |
215 | 326 | if response == gtk.RESPONSE_OK: | 332 | if response == Gtk.ResponseType.OK: |
216 | 327 | # Recreate the UI for Other ISOs if saved has been clicked | 333 | # Recreate the UI for Other ISOs if saved has been clicked |
217 | 328 | self.notebook.destroy() | 334 | self.notebook.destroy() |
218 | 329 | self.create_isos_interface() | 335 | self.create_isos_interface() |
219 | @@ -343,17 +349,18 @@ | |||
220 | 343 | return | 349 | return |
221 | 344 | title = _("TestDrive an ISO or Disk Image") | 350 | title = _("TestDrive an ISO or Disk Image") |
222 | 345 | filename = None | 351 | filename = None |
224 | 346 | testdrives = gtk.FileFilter() | 352 | testdrives = Gtk.FileFilter() |
225 | 353 | testdrives.set_name(_("ISOs & Disk Images")) | ||
226 | 347 | testdrives.add_pattern("*.iso") | 354 | testdrives.add_pattern("*.iso") |
227 | 348 | testdrives.add_pattern("*.img") | 355 | testdrives.add_pattern("*.img") |
228 | 349 | 356 | ||
231 | 350 | chooser = gtk.FileChooserDialog(title,action=gtk.FILE_CHOOSER_ACTION_SAVE, | 357 | chooser = Gtk.FileChooserDialog(title,action=Gtk.FileChooserAction.SAVE, |
232 | 351 | buttons=(gtk.STOCK_CANCEL,gtk.RESPONSE_CANCEL,gtk.STOCK_OPEN,gtk.RESPONSE_OK)) | 358 | buttons=(Gtk.STOCK_CANCEL,Gtk.ResponseType.CANCEL,Gtk.STOCK_OPEN,Gtk.ResponseType.OK)) |
233 | 352 | chooser.add_filter(testdrives) | 359 | chooser.add_filter(testdrives) |
234 | 353 | # Run Chooser Dialog | 360 | # Run Chooser Dialog |
235 | 354 | response = chooser.run() | 361 | response = chooser.run() |
236 | 355 | 362 | ||
238 | 356 | if response == gtk.RESPONSE_OK: | 363 | if response == Gtk.ResponseType.OK: |
239 | 357 | filename = chooser.get_filename() | 364 | filename = chooser.get_filename() |
240 | 358 | subprocess.Popen(['testdrive', '-u', filename], stdout=subprocess.PIPE) | 365 | subprocess.Popen(['testdrive', '-u', filename], stdout=subprocess.PIPE) |
241 | 359 | pass | 366 | pass |
242 | @@ -374,26 +381,26 @@ | |||
243 | 374 | t[1].stop() | 381 | t[1].stop() |
244 | 375 | # Class function to cleanup the IMG Cache | 382 | # Class function to cleanup the IMG Cache |
245 | 376 | self.cleanup_img_cache() | 383 | self.cleanup_img_cache() |
247 | 377 | gtk.main_quit() | 384 | Gtk.main_quit() |
248 | 378 | 385 | ||
249 | 379 | def on_warn_dialog(self, data=None): | 386 | def on_warn_dialog(self, data=None): |
253 | 380 | warnbox = gtk.MessageDialog(self, | 387 | warnbox = Gtk.MessageDialog(self, |
254 | 381 | gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_WARNING, | 388 | Gtk.DialogFlags.DESTROY_WITH_PARENT, Gtk.MessageType.WARNING, |
255 | 382 | gtk.BUTTONS_CLOSE, data) | 389 | Gtk.ButtonsType.CLOSE, data) |
256 | 383 | warnbox.run() | 390 | warnbox.run() |
257 | 384 | warnbox.destroy() | 391 | warnbox.destroy() |
258 | 385 | 392 | ||
259 | 386 | def on_error_dialog(self, data=None): | 393 | def on_error_dialog(self, data=None): |
263 | 387 | errorbox = gtk.MessageDialog(self, | 394 | errorbox = Gtk.MessageDialog(self, |
264 | 388 | gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_ERROR, | 395 | Gtk.DialogFlags.DESTROY_WITH_PARENT, Gtk.MessageType.ERROR, |
265 | 389 | gtk.BUTTONS_CLOSE, data) | 396 | Gtk.ButtonsType.CLOSE, data) |
266 | 390 | errorbox.run() | 397 | errorbox.run() |
267 | 391 | errorbox.destroy() | 398 | errorbox.destroy() |
268 | 392 | 399 | ||
269 | 393 | def on_info_dialog(self, data=None): | 400 | def on_info_dialog(self, data=None): |
273 | 394 | infobox = gtk.MessageDialog(self, | 401 | infobox = Gtk.MessageDialog(self, |
274 | 395 | gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_INFO, | 402 | Gtk.DialogFlags.DESTROY_WITH_PARENT, Gtk.MessageType.INFO, |
275 | 396 | gtk.BUTTONS_CLOSE, data) | 403 | Gtk.ButtonsType.CLOSE, data) |
276 | 397 | infobox.run() | 404 | infobox.run() |
277 | 398 | infobox.destroy() | 405 | infobox.destroy() |
278 | 399 | 406 | ||
279 | @@ -519,13 +526,13 @@ | |||
280 | 519 | vm_id = 0 | 526 | vm_id = 0 |
281 | 520 | ISO = iso_list | 527 | ISO = iso_list |
282 | 521 | # Create TABS | 528 | # Create TABS |
285 | 522 | vbox_tabs = self.builder.get_object("flavor-tabs") | 529 | box_tabs = self.builder.get_object("flavor-tabs") |
286 | 523 | self.notebook = gtk.Notebook() | 530 | self.notebook = Gtk.Notebook() |
287 | 524 | self.notebook.set_scrollable(True) | 531 | self.notebook.set_scrollable(True) |
289 | 525 | self.notebook.set_tab_pos(gtk.POS_TOP) | 532 | self.notebook.set_tab_pos(Gtk.PositionType.TOP) |
290 | 526 | self.notebook.set_border_width(10) | 533 | self.notebook.set_border_width(10) |
291 | 527 | self.notebook.connect("switch-page", self.on_distro_tab_change) | 534 | self.notebook.connect("switch-page", self.on_distro_tab_change) |
293 | 528 | vbox_tabs.add(self.notebook) | 535 | box_tabs.add(self.notebook) |
294 | 529 | self.show_tabs = True | 536 | self.show_tabs = True |
295 | 530 | self.show_border = True | 537 | self.show_border = True |
296 | 531 | 538 | ||
297 | @@ -546,126 +553,131 @@ | |||
298 | 546 | ######## Layout of the UI Creation ########## | 553 | ######## Layout of the UI Creation ########## |
299 | 547 | ############################################# | 554 | ############################################# |
300 | 548 | # Scroll | 555 | # Scroll |
302 | 549 | # vbox | 556 | # box |
303 | 550 | # frame-i386 | 557 | # frame-i386 |
305 | 551 | # vbox2 | 558 | # box2 |
306 | 552 | # table per ISO (with labels, checkbox) | 559 | # table per ISO (with labels, checkbox) |
307 | 553 | # frame-amd64 | 560 | # frame-amd64 |
309 | 554 | # vbox2 | 561 | # box2 |
310 | 555 | # table per ISO (with labels, checkbox) | 562 | # table per ISO (with labels, checkbox) |
311 | 556 | for dist in distros: | 563 | for dist in distros: |
314 | 557 | scroll = gtk.ScrolledWindow(None) | 564 | scroll = Gtk.ScrolledWindow(None) |
315 | 558 | scroll.set_shadow_type(gtk.SHADOW_NONE) | 565 | scroll.set_shadow_type(Gtk.ShadowType.NONE) |
316 | 559 | scroll.set_name(dist) | 566 | scroll.set_name(dist) |
321 | 560 | vbox = gtk.VBox() | 567 | box = Gtk.Box() |
322 | 561 | scroll.add_with_viewport(vbox) | 568 | box.set_orientation(Gtk.Orientation.VERTICAL) |
323 | 562 | scroll.get_children()[0].set_shadow_type(gtk.SHADOW_NONE) | 569 | scroll.add_with_viewport(box) |
324 | 563 | scroll.set_policy(gtk.POLICY_NEVER,gtk.POLICY_AUTOMATIC) | 570 | scroll.get_children()[0].set_shadow_type(Gtk.ShadowType.NONE) |
325 | 571 | scroll.set_policy(Gtk.PolicyType.NEVER,Gtk.PolicyType.AUTOMATIC) | ||
326 | 564 | scroll.show() | 572 | scroll.show() |
327 | 565 | for arch in self.td.m: | 573 | for arch in self.td.m: |
328 | 566 | c = 0 | 574 | c = 0 |
331 | 567 | fr_arch = gtk.Frame(arch) | 575 | fr_arch_label = Gtk.Label() |
332 | 568 | fr_arch.set_shadow_type(gtk.SHADOW_NONE) | 576 | fr_arch_label.set_visible(True) |
333 | 577 | fr_arch_label.set_markup("<span weight=\"bold\">" + arch + "</span>") | ||
334 | 578 | fr_arch = Gtk.Frame(label_widget=fr_arch_label) | ||
335 | 579 | fr_arch.set_shadow_type(Gtk.ShadowType.NONE) | ||
336 | 569 | fr_arch.set_border_width(10) | 580 | fr_arch.set_border_width(10) |
339 | 570 | vbox2 = gtk.VBox() | 581 | box2 = Gtk.Box() |
340 | 571 | vbox2.set_border_width(10) | 582 | box2.set_orientation(Gtk.Orientation.VERTICAL) |
341 | 583 | box2.set_border_width(10) | ||
342 | 572 | for iso in ISO: | 584 | for iso in ISO: |
343 | 573 | if iso['category'] == dist and iso['arch'] == arch: | 585 | if iso['category'] == dist and iso['arch'] == arch: |
344 | 574 | c = c + 1 | 586 | c = c + 1 |
347 | 575 | table = gtk.Table(2, 3, False) | 587 | table = Gtk.Table(2, 3, False) |
348 | 576 | lb_iso_name = gtk.CheckButton("%s - (%s)" % (iso["name"], self.td.r)) | 588 | lb_iso_name = Gtk.CheckButton("%s - (%s)" % (iso["name"], self.td.r)) |
349 | 577 | lb_iso_name.show() | 589 | lb_iso_name.show() |
350 | 578 | filename = os.path.basename(iso["url"]) | 590 | filename = os.path.basename(iso["url"]) |
351 | 579 | path = "%s/%s_%s" % (self.td.CACHE_ISO, iso["category"], filename) | 591 | path = "%s/%s_%s" % (self.td.CACHE_ISO, iso["category"], filename) |
352 | 580 | if os.path.exists(path): | 592 | if os.path.exists(path): |
354 | 581 | lb_cache = gtk.Label(_("<i> CACHE: [%s]</i>") % (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(os.path.getmtime(path))))) | 593 | lb_cache = Gtk.Label(label=_("<i> CACHE: [%s]</i>") % (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(os.path.getmtime(path))))) |
355 | 582 | else: | 594 | else: |
357 | 583 | lb_cache = gtk.Label(_("<i> CACHE: [empty]</i>")) | 595 | lb_cache = Gtk.Label(label=_("<i> CACHE: [empty]</i>")) |
358 | 584 | lb_cache.set_use_markup(True) | 596 | lb_cache.set_use_markup(True) |
360 | 585 | # To align to righ otherwise it is centered | 597 | # To align to right otherwise it is centered |
361 | 586 | lb_cache.set_alignment(0,0) | 598 | lb_cache.set_alignment(0,0) |
362 | 587 | lb_cache.show() | 599 | lb_cache.show() |
365 | 588 | # Adding the Spiiner | 600 | # Adding the Spinner |
366 | 589 | spin = gtk.Spinner() | 601 | spin = Gtk.Spinner() |
367 | 590 | spin.set_size_request(18, -1); | 602 | spin.set_size_request(18, -1); |
368 | 591 | spin.hide() | 603 | spin.hide() |
369 | 592 | #lb_iso_name.connect("clicked", self.on_select_iso_clicked, spin, lb_cache, iso["url"], iso["category"], vm_id) | 604 | #lb_iso_name.connect("clicked", self.on_select_iso_clicked, spin, lb_cache, iso["url"], iso["category"], vm_id) |
370 | 593 | lb_iso_name.connect("clicked", self.on_select_iso_clicked, vm_id) | 605 | lb_iso_name.connect("clicked", self.on_select_iso_clicked, vm_id) |
371 | 594 | ISOLIST.append({"vm_id":vm_id, "url":iso["url"], "prefix":iso["category"], "spinner":spin, "lb_status":lb_cache}) | 606 | ISOLIST.append({"vm_id":vm_id, "url":iso["url"], "prefix":iso["category"], "spinner":spin, "lb_status":lb_cache}) |
372 | 595 | vm_id += 1 | 607 | vm_id += 1 |
377 | 596 | table.attach(lb_iso_name, 0, 3, 0, 1, gtk.FILL | gtk.EXPAND, gtk.FILL | gtk.EXPAND) | 608 | table.attach(lb_iso_name, 0, 3, 0, 1, Gtk.AttachOptions.FILL | Gtk.AttachOptions.EXPAND, Gtk.AttachOptions.FILL | Gtk.AttachOptions.EXPAND) |
378 | 597 | table.attach(spin, 0, 1, 1, 2, gtk.FILL, gtk.FILL | gtk.EXPAND) | 609 | table.attach(spin, 0, 1, 1, 2, Gtk.AttachOptions.FILL, Gtk.AttachOptions.FILL | Gtk.AttachOptions.EXPAND) |
379 | 598 | table.attach(lb_cache, 1, 2, 1, 2, gtk.FILL | gtk.EXPAND, gtk.FILL | gtk.EXPAND, 0, 5) | 610 | table.attach(lb_cache, 1, 2, 1, 2, Gtk.AttachOptions.FILL | Gtk.AttachOptions.EXPAND, Gtk.AttachOptions.FILL | Gtk.AttachOptions.EXPAND, 0, 5) |
380 | 599 | #table.attach(lb_progress, 2, 3, 1, 2, gtk.FILL | gtk.EXPAND, gtk.FILL | gtk.EXPAND) | 611 | #table.attach(lb_progress, 2, 3, 1, 2, Gtk.AttachOptions.FILL | Gtk.AttachOptions.EXPAND, Gtk.AttachOptions.FILL | Gtk.AttachOptions.EXPAND) |
381 | 600 | table.show() | 612 | table.show() |
383 | 601 | viewport = gtk.Viewport() | 613 | viewport = Gtk.Viewport() |
384 | 602 | viewport.add(table) | 614 | viewport.add(table) |
385 | 603 | viewport.set_border_width(2) | 615 | viewport.set_border_width(2) |
387 | 604 | viewport.set_shadow_type(gtk.SHADOW_ETCHED_IN) | 616 | viewport.set_shadow_type(Gtk.ShadowType.ETCHED_IN) |
388 | 605 | viewport.show() | 617 | viewport.show() |
390 | 606 | vbox2.add(viewport) | 618 | box2.add(viewport) |
391 | 607 | 619 | ||
392 | 608 | if iso['category'] == dist and iso['category'] == 'other': | 620 | if iso['category'] == dist and iso['category'] == 'other': |
393 | 609 | c = c + 1 | 621 | c = c + 1 |
396 | 610 | table = gtk.Table(2, 3, False) | 622 | table = Gtk.Table(2, 3, False) |
397 | 611 | lb_iso_name = gtk.CheckButton("%s" % iso["name"]) | 623 | lb_iso_name = Gtk.CheckButton("%s" % iso["name"]) |
398 | 612 | lb_iso_name.show() | 624 | lb_iso_name.show() |
399 | 613 | filename = os.path.basename(iso["url"]) | 625 | filename = os.path.basename(iso["url"]) |
400 | 614 | path = "%s/%s_%s" % (self.td.CACHE_ISO, iso["category"], filename) | 626 | path = "%s/%s_%s" % (self.td.CACHE_ISO, iso["category"], filename) |
401 | 615 | if os.path.exists(path): | 627 | if os.path.exists(path): |
403 | 616 | lb_cache = gtk.Label(_("<i> CACHE: [%s]</i>") % (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(os.path.getmtime(path))))) | 628 | lb_cache = Gtk.Label(label=_("<i> CACHE: [%s]</i>") % (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(os.path.getmtime(path))))) |
404 | 617 | else: | 629 | else: |
406 | 618 | lb_cache = gtk.Label(_("<i> CACHE: [empty]</i>")) | 630 | lb_cache = Gtk.Label(label=_("<i> CACHE: [empty]</i>")) |
407 | 619 | lb_cache.set_use_markup(True) | 631 | lb_cache.set_use_markup(True) |
409 | 620 | # To align to righ otherwise it is centered | 632 | # To align to right otherwise it is centered |
410 | 621 | lb_cache.set_alignment(0,0) | 633 | lb_cache.set_alignment(0,0) |
411 | 622 | lb_cache.show() | 634 | lb_cache.show() |
414 | 623 | # Adding the Spiiner | 635 | # Adding the Spinner |
415 | 624 | spin = gtk.Spinner() | 636 | spin = Gtk.Spinner() |
416 | 625 | spin.set_size_request(18, -1); | 637 | spin.set_size_request(18, -1); |
417 | 626 | spin.hide() | 638 | spin.hide() |
418 | 627 | #lb_iso_name.connect("clicked", self.on_select_iso_clicked, spin, lb_cache, iso["url"], iso["category"], vm_id) | 639 | #lb_iso_name.connect("clicked", self.on_select_iso_clicked, spin, lb_cache, iso["url"], iso["category"], vm_id) |
419 | 628 | lb_iso_name.connect("clicked", self.on_select_iso_clicked, vm_id) | 640 | lb_iso_name.connect("clicked", self.on_select_iso_clicked, vm_id) |
420 | 629 | ISOLIST.append({"vm_id":vm_id, "url":iso["url"], "prefix":iso["category"], "spinner":spin, "lb_status":lb_cache}) | 641 | ISOLIST.append({"vm_id":vm_id, "url":iso["url"], "prefix":iso["category"], "spinner":spin, "lb_status":lb_cache}) |
421 | 630 | vm_id += 1 | 642 | vm_id += 1 |
426 | 631 | table.attach(lb_iso_name, 0, 3, 0, 1, gtk.FILL | gtk.EXPAND, gtk.FILL | gtk.EXPAND) | 643 | table.attach(lb_iso_name, 0, 3, 0, 1, Gtk.AttachOptions.FILL | Gtk.AttachOptions.EXPAND, Gtk.AttachOptions.FILL | Gtk.AttachOptions.EXPAND) |
427 | 632 | table.attach(spin, 0, 1, 1, 2, gtk.FILL, gtk.FILL | gtk.EXPAND) | 644 | table.attach(spin, 0, 1, 1, 2, Gtk.AttachOptions.FILL, Gtk.AttachOptions.FILL | Gtk.AttachOptions.EXPAND) |
428 | 633 | table.attach(lb_cache, 1, 2, 1, 2, gtk.FILL | gtk.EXPAND, gtk.FILL | gtk.EXPAND, 0, 5) | 645 | table.attach(lb_cache, 1, 2, 1, 2, Gtk.AttachOptions.FILL | Gtk.AttachOptions.EXPAND, Gtk.AttachOptions.FILL | Gtk.AttachOptions.EXPAND, 0, 5) |
429 | 634 | #table.attach(lb_progress, 2, 3, 1, 2, gtk.FILL | gtk.EXPAND, gtk.FILL | gtk.EXPAND) | 646 | #table.attach(lb_progress, 2, 3, 1, 2, Gtk.AttachOptions.FILL | Gtk.AttachOptions.EXPAND, Gtk.AttachOptions.FILL | Gtk.AttachOptions.EXPAND) |
430 | 635 | table.show() | 647 | table.show() |
432 | 636 | viewport = gtk.Viewport() | 648 | viewport = Gtk.Viewport() |
433 | 637 | viewport.add(table) | 649 | viewport.add(table) |
434 | 638 | viewport.set_border_width(2) | 650 | viewport.set_border_width(2) |
436 | 639 | viewport.set_shadow_type(gtk.SHADOW_ETCHED_IN) | 651 | viewport.set_shadow_type(Gtk.ShadowType.ETCHED_IN) |
437 | 640 | viewport.show() | 652 | viewport.show() |
439 | 641 | vbox2.add(viewport) | 653 | box2.add(viewport) |
440 | 642 | 654 | ||
441 | 643 | if c == 0: | 655 | if c == 0: |
442 | 644 | if dist == 'other': | 656 | if dist == 'other': |
444 | 645 | no_isos_label = gtk.Label() | 657 | no_isos_label = Gtk.Label() |
445 | 646 | no_isos_label.set_markup(_("<b><i>There are no Other ISOs yet...</i></b>")) | 658 | no_isos_label.set_markup(_("<b><i>There are no Other ISOs yet...</i></b>")) |
446 | 647 | else: | 659 | else: |
448 | 648 | no_isos_label = gtk.Label() | 660 | no_isos_label = Gtk.Label() |
449 | 649 | no_isos_label.set_markup(_("<b><i>There are no ISOs for this architecture yet...</i></b>")) | 661 | no_isos_label.set_markup(_("<b><i>There are no ISOs for this architecture yet...</i></b>")) |
450 | 650 | no_isos_label.show() | 662 | no_isos_label.show() |
452 | 651 | vbox2.add(no_isos_label) | 663 | box2.add(no_isos_label) |
453 | 652 | 664 | ||
455 | 653 | vbox2.show() | 665 | box2.show() |
456 | 654 | 666 | ||
457 | 655 | if dist != 'other': | 667 | if dist != 'other': |
459 | 656 | fr_arch.add(vbox2) | 668 | fr_arch.add(box2) |
460 | 657 | fr_arch.show() | 669 | fr_arch.show() |
463 | 658 | vbox.pack_start(fr_arch, expand=False, fill=False, padding=0) | 670 | box.pack_start(fr_arch, False, False, 0) |
464 | 659 | vbox.show() | 671 | box.show() |
465 | 660 | else: | 672 | else: |
468 | 661 | vbox.pack_start(vbox2, expand=False, fill=False, padding=0) | 673 | box.pack_start(box2, False, False, 0) |
469 | 662 | vbox.show() | 674 | box.show() |
470 | 663 | break | 675 | break |
471 | 664 | 676 | ||
472 | 665 | # Create Tabs | 677 | # Create Tabs |
473 | 666 | for lb_iso_name in TAB_LABEL: | 678 | for lb_iso_name in TAB_LABEL: |
474 | 667 | if dist == lb_iso_name["dist"]: | 679 | if dist == lb_iso_name["dist"]: |
476 | 668 | self.notebook.append_page(scroll, gtk.Label(lb_iso_name["label"])) | 680 | self.notebook.append_page(scroll, Gtk.Label(label=lb_iso_name["label"])) |
477 | 669 | break | 681 | break |
478 | 670 | self.notebook.show() | 682 | self.notebook.show() |
479 | 671 | 683 | ||
480 | @@ -673,37 +685,37 @@ | |||
481 | 673 | ########################################################### | 685 | ########################################################### |
482 | 674 | ########## Create CD and Launch Buttons Handling ########## | 686 | ########## Create CD and Launch Buttons Handling ########## |
483 | 675 | ########################################################### | 687 | ########################################################### |
486 | 676 | # obtain vbox from glade | 688 | # obtain box from glade |
487 | 677 | vbox = self.builder.get_object("vbox2") | 689 | box = self.builder.get_object("box2") |
488 | 678 | # Create and setup buttonbox | 690 | # Create and setup buttonbox |
490 | 679 | bbox = gtk.HButtonBox() | 691 | bbox = Gtk.ButtonBox() |
491 | 680 | bbox.set_spacing(5) | 692 | bbox.set_spacing(5) |
493 | 681 | bbox.set_layout(gtk.BUTTONBOX_END) | 693 | bbox.set_layout(Gtk.ButtonBoxStyle.END) |
494 | 682 | # Add Button | 694 | # Add Button |
496 | 683 | self.btn_add_iso = gtk.Button(_("Add ISO")) | 695 | self.btn_add_iso = Gtk.Button(_("Add ISO")) |
497 | 684 | self.btn_add_iso.connect("clicked", self.new_other_iso) | 696 | self.btn_add_iso.connect("clicked", self.new_other_iso) |
498 | 685 | self.btn_add_iso.set_sensitive(False) | 697 | self.btn_add_iso.set_sensitive(False) |
499 | 686 | self.btn_add_iso.show() | 698 | self.btn_add_iso.show() |
501 | 687 | bbox.pack_start(self.btn_add_iso) | 699 | bbox.pack_start(self.btn_add_iso, True, True, 0) |
502 | 688 | 700 | ||
503 | 689 | # Create Buttons | 701 | # Create Buttons |
505 | 690 | button = gtk.Button(_("Create USB Disk")) | 702 | button = Gtk.Button(_("Create USB Disk")) |
506 | 691 | button.connect("clicked", self.on_create_iso_disk_clicked, 'Create Disk') | 703 | button.connect("clicked", self.on_create_iso_disk_clicked, 'Create Disk') |
507 | 692 | button.show() | 704 | button.show() |
509 | 693 | bbox.pack_start(button) | 705 | bbox.pack_start(button, True, True, 0) |
510 | 694 | 706 | ||
512 | 695 | button = gtk.Button(_("Sync")) | 707 | button = Gtk.Button(_("Sync")) |
513 | 696 | button.connect("clicked", self.on_sync_iso_clicked, 'Sync') | 708 | button.connect("clicked", self.on_sync_iso_clicked, 'Sync') |
514 | 697 | button.show() | 709 | button.show() |
516 | 698 | bbox.pack_start(button) | 710 | bbox.pack_start(button, True, True, 0) |
517 | 699 | 711 | ||
519 | 700 | button = gtk.Button(_("Launch")) | 712 | button = Gtk.Button(_("Launch")) |
520 | 701 | button.connect("clicked", self.on_launch_button_clicked, 'Launch') | 713 | button.connect("clicked", self.on_launch_button_clicked, 'Launch') |
521 | 702 | button.show() | 714 | button.show() |
523 | 703 | bbox.pack_start(button) | 715 | bbox.pack_start(button, True, True, 0) |
524 | 704 | bbox.show() | 716 | bbox.show() |
525 | 705 | 717 | ||
527 | 706 | vbox.pack_start(bbox, True, True) | 718 | box.pack_start(bbox, True, True, 0) |
528 | 707 | 719 | ||
529 | 708 | #def on_select_iso_clicked(self, widget, spin, status_label, url=None, iso_path_header=None, vm_id=None): | 720 | #def on_select_iso_clicked(self, widget, spin, status_label, url=None, iso_path_header=None, vm_id=None): |
530 | 709 | #ISOLIST.append({"vm_id":vm_id, "url":iso["url"], "prefix":iso["category"], "spin":spin, "lb_status":lb_cache}) | 721 | #ISOLIST.append({"vm_id":vm_id, "url":iso["url"], "prefix":iso["category"], "spin":spin, "lb_status":lb_cache}) |
531 | @@ -893,9 +905,9 @@ | |||
532 | 893 | self.spin.hide() | 905 | self.spin.hide() |
533 | 894 | break | 906 | break |
534 | 895 | 907 | ||
536 | 896 | #gtk.gdk.threads_enter() | 908 | #Gdk.threads_enter() |
537 | 897 | #self.status_label.set_markup("<b><i>%s</i></b>" % text) | 909 | #self.status_label.set_markup("<b><i>%s</i></b>" % text) |
539 | 898 | #gtk.gdk.threads_leave() | 910 | #Gdk.threads_leave() |
540 | 899 | line = self.p.stdout.readline(1024).strip() | 911 | line = self.p.stdout.readline(1024).strip() |
541 | 900 | match = percent.search(line) | 912 | match = percent.search(line) |
542 | 901 | if match != None: | 913 | if match != None: |
543 | @@ -1017,5 +1029,13 @@ | |||
544 | 1017 | 1029 | ||
545 | 1018 | # Run the application. | 1030 | # Run the application. |
546 | 1019 | window = TestdrivegtkWindow() | 1031 | window = TestdrivegtkWindow() |
547 | 1032 | # Default icon is useful because dialogs will pick it up automatically | ||
548 | 1033 | # This needs to account for the different places this app can be run from | ||
549 | 1034 | if os.path.isfile("data/media/icon.png"): | ||
550 | 1035 | window.set_default_icon_from_file("data/media/icon.png") | ||
551 | 1036 | elif os.path.isfile("../data/media/icon.png"): | ||
552 | 1037 | window.set_default_icon_from_file("../data/media/icon.png") | ||
553 | 1038 | elif os.path.isfile("/usr/share/testdrivegtk/media/icon.png"): | ||
554 | 1039 | window.set_default_icon_from_file("/usr/share/testdrivegtk/media/icon.png") | ||
555 | 1020 | window.show() | 1040 | window.show() |
557 | 1021 | gtk.main() | 1041 | Gtk.main() |
558 | 1022 | 1042 | ||
559 | === removed file 'data/ui/AboutTestdrivegtkDialog.ui' | |||
560 | --- data/ui/AboutTestdrivegtkDialog.ui 2010-07-30 18:48:31 +0000 | |||
561 | +++ data/ui/AboutTestdrivegtkDialog.ui 1970-01-01 00:00:00 +0000 | |||
562 | @@ -1,56 +0,0 @@ | |||
563 | 1 | <?xml version="1.0"?> | ||
564 | 2 | <interface> | ||
565 | 3 | <requires lib="gtk+" version="2.16"/> | ||
566 | 4 | <!-- interface-requires about_testdrivegtk_dialog 1.0 --> | ||
567 | 5 | <!-- interface-naming-policy toplevel-contextual --> | ||
568 | 6 | <object class="AboutTestdrivegtkDialog" id="about_testdrivegtk_dialog"> | ||
569 | 7 | <property name="border_width">5</property> | ||
570 | 8 | <property name="window_position">center</property> | ||
571 | 9 | <property name="icon">../media/icon.png</property> | ||
572 | 10 | <property name="type_hint">normal</property> | ||
573 | 11 | <property name="has_separator">False</property> | ||
574 | 12 | <property name="program_name">TestDrive PyGTK</property> | ||
575 | 13 | <property name="copyright">Copyright (C) 2010 Canonical Ltd.</property> | ||
576 | 14 | <property name="license"># Copyright (C) 2010 Canonical Ltd. | ||
577 | 15 | # | ||
578 | 16 | # Authors: | ||
579 | 17 | # Andres Rodriguez <andreserl@ubuntu.com> | ||
580 | 18 | # This program is free software: you can redistribute it and/or modify it | ||
581 | 19 | # under the terms of the GNU General Public License version 3, as published | ||
582 | 20 | # by the Free Software Foundation. | ||
583 | 21 | # | ||
584 | 22 | # This program is distributed in the hope that it will be useful, but | ||
585 | 23 | # WITHOUT ANY WARRANTY; without even the implied warranties of | ||
586 | 24 | # MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR | ||
587 | 25 | # PURPOSE. See the GNU General Public License for more details. | ||
588 | 26 | # | ||
589 | 27 | # You should have received a copy of the GNU General Public License along | ||
590 | 28 | # with this program. If not, see <http://www.gnu.org/licenses/>. | ||
591 | 29 | </property> | ||
592 | 30 | <property name="authors">Copyright (C) 2010 Canonical Ltd. | ||
593 | 31 | |||
594 | 32 | Authors: | ||
595 | 33 | Andres Rodriguez <andreserl@ubuntu.com></property> | ||
596 | 34 | <property name="logo">../media/logo.png</property> | ||
597 | 35 | <child internal-child="vbox"> | ||
598 | 36 | <object class="GtkVBox" id="dialog-vbox1"> | ||
599 | 37 | <property name="visible">True</property> | ||
600 | 38 | <property name="spacing">2</property> | ||
601 | 39 | <child> | ||
602 | 40 | <placeholder/> | ||
603 | 41 | </child> | ||
604 | 42 | <child internal-child="action_area"> | ||
605 | 43 | <object class="GtkHButtonBox" id="dialog-action_area1"> | ||
606 | 44 | <property name="visible">True</property> | ||
607 | 45 | <property name="layout_style">end</property> | ||
608 | 46 | </object> | ||
609 | 47 | <packing> | ||
610 | 48 | <property name="expand">False</property> | ||
611 | 49 | <property name="pack_type">end</property> | ||
612 | 50 | <property name="position">0</property> | ||
613 | 51 | </packing> | ||
614 | 52 | </child> | ||
615 | 53 | </object> | ||
616 | 54 | </child> | ||
617 | 55 | </object> | ||
618 | 56 | </interface> | ||
619 | 57 | 0 | ||
620 | === modified file 'data/ui/AddOtherTestdrivegtkDialog.ui' | |||
621 | --- data/ui/AddOtherTestdrivegtkDialog.ui 2010-07-30 18:48:31 +0000 | |||
622 | +++ data/ui/AddOtherTestdrivegtkDialog.ui 2011-08-23 08:30:25 +0000 | |||
623 | @@ -1,27 +1,31 @@ | |||
625 | 1 | <?xml version="1.0"?> | 1 | <?xml version="1.0" encoding="UTF-8"?> |
626 | 2 | <interface> | 2 | <interface> |
627 | 3 | <requires lib="gtk+" version="2.16"/> | ||
628 | 4 | <!-- interface-requires addothertestdrivegtk_dialog 1.0 --> | 3 | <!-- interface-requires addothertestdrivegtk_dialog 1.0 --> |
629 | 5 | <!-- interface-naming-policy project-wide --> | 4 | <!-- interface-naming-policy project-wide --> |
630 | 5 | <requires lib="gtk+" version="2.16"/> | ||
631 | 6 | <object class="GtkAction" id="action1"/> | ||
632 | 6 | <object class="AddothertestdrivegtkDialog" id="addothertestdrivegtk_dialog"> | 7 | <object class="AddothertestdrivegtkDialog" id="addothertestdrivegtk_dialog"> |
633 | 7 | <property name="width_request">550</property> | 8 | <property name="width_request">550</property> |
634 | 9 | <property name="can_focus">False</property> | ||
635 | 8 | <property name="border_width">5</property> | 10 | <property name="border_width">5</property> |
636 | 9 | <property name="window_position">center-always</property> | 11 | <property name="window_position">center-always</property> |
637 | 10 | <property name="icon">../media/icon.png</property> | ||
638 | 11 | <property name="type_hint">normal</property> | 12 | <property name="type_hint">normal</property> |
639 | 12 | <property name="has_separator">False</property> | ||
640 | 13 | <child internal-child="vbox"> | 13 | <child internal-child="vbox"> |
642 | 14 | <object class="GtkVBox" id="dialog-vbox1"> | 14 | <object class="GtkBox" id="dialog-vbox1"> |
643 | 15 | <property name="visible">True</property> | 15 | <property name="visible">True</property> |
644 | 16 | <property name="can_focus">False</property> | ||
645 | 17 | <property name="orientation">vertical</property> | ||
646 | 16 | <property name="spacing">2</property> | 18 | <property name="spacing">2</property> |
647 | 17 | <child> | 19 | <child> |
648 | 18 | <object class="GtkTable" id="tb_other_iso"> | 20 | <object class="GtkTable" id="tb_other_iso"> |
649 | 19 | <property name="visible">True</property> | 21 | <property name="visible">True</property> |
650 | 22 | <property name="can_focus">False</property> | ||
651 | 20 | <property name="n_rows">3</property> | 23 | <property name="n_rows">3</property> |
652 | 21 | <property name="n_columns">4</property> | 24 | <property name="n_columns">4</property> |
653 | 22 | <child> | 25 | <child> |
654 | 23 | <object class="GtkLabel" id="label1"> | 26 | <object class="GtkLabel" id="label1"> |
655 | 24 | <property name="visible">True</property> | 27 | <property name="visible">True</property> |
656 | 28 | <property name="can_focus">False</property> | ||
657 | 25 | <property name="xalign">0</property> | 29 | <property name="xalign">0</property> |
658 | 26 | <property name="label" translatable="yes"><b>Description:</b></property> | 30 | <property name="label" translatable="yes"><b>Description:</b></property> |
659 | 27 | <property name="use_markup">True</property> | 31 | <property name="use_markup">True</property> |
660 | @@ -34,6 +38,7 @@ | |||
661 | 34 | <child> | 38 | <child> |
662 | 35 | <object class="GtkLabel" id="label3"> | 39 | <object class="GtkLabel" id="label3"> |
663 | 36 | <property name="visible">True</property> | 40 | <property name="visible">True</property> |
664 | 41 | <property name="can_focus">False</property> | ||
665 | 37 | <property name="xalign">0</property> | 42 | <property name="xalign">0</property> |
666 | 38 | <property name="label" translatable="yes"><b>Sync Protocol:</b></property> | 43 | <property name="label" translatable="yes"><b>Sync Protocol:</b></property> |
667 | 39 | <property name="use_markup">True</property> | 44 | <property name="use_markup">True</property> |
668 | @@ -48,6 +53,7 @@ | |||
669 | 48 | <child> | 53 | <child> |
670 | 49 | <object class="GtkLabel" id="label2"> | 54 | <object class="GtkLabel" id="label2"> |
671 | 50 | <property name="visible">True</property> | 55 | <property name="visible">True</property> |
672 | 56 | <property name="can_focus">False</property> | ||
673 | 51 | <property name="xalign">0</property> | 57 | <property name="xalign">0</property> |
674 | 52 | <property name="label" translatable="yes"><b>URL:</b></property> | 58 | <property name="label" translatable="yes"><b>URL:</b></property> |
675 | 53 | <property name="use_markup">True</property> | 59 | <property name="use_markup">True</property> |
676 | @@ -63,7 +69,7 @@ | |||
677 | 63 | <object class="GtkEntry" id="txt_other_url"> | 69 | <object class="GtkEntry" id="txt_other_url"> |
678 | 64 | <property name="visible">True</property> | 70 | <property name="visible">True</property> |
679 | 65 | <property name="can_focus">True</property> | 71 | <property name="can_focus">True</property> |
681 | 66 | <property name="invisible_char">●</property> | 72 | <property name="invisible_char">●</property> |
682 | 67 | </object> | 73 | </object> |
683 | 68 | <packing> | 74 | <packing> |
684 | 69 | <property name="left_attach">1</property> | 75 | <property name="left_attach">1</property> |
685 | @@ -77,7 +83,7 @@ | |||
686 | 77 | <object class="GtkEntry" id="txt_other_desc"> | 83 | <object class="GtkEntry" id="txt_other_desc"> |
687 | 78 | <property name="visible">True</property> | 84 | <property name="visible">True</property> |
688 | 79 | <property name="can_focus">True</property> | 85 | <property name="can_focus">True</property> |
690 | 80 | <property name="invisible_char">●</property> | 86 | <property name="invisible_char">●</property> |
691 | 81 | </object> | 87 | </object> |
692 | 82 | <packing> | 88 | <packing> |
693 | 83 | <property name="left_attach">1</property> | 89 | <property name="left_attach">1</property> |
694 | @@ -86,38 +92,52 @@ | |||
695 | 86 | </packing> | 92 | </packing> |
696 | 87 | </child> | 93 | </child> |
697 | 88 | <child> | 94 | <child> |
699 | 89 | <object class="GtkVBox" id="vbox2"> | 95 | <object class="GtkBox" id="box2"> |
700 | 90 | <property name="visible">True</property> | 96 | <property name="visible">True</property> |
701 | 97 | <property name="can_focus">False</property> | ||
702 | 91 | <property name="border_width">5</property> | 98 | <property name="border_width">5</property> |
703 | 99 | <property name="orientation">vertical</property> | ||
704 | 92 | <child> | 100 | <child> |
705 | 93 | <object class="GtkButton" id="btn_add_iso"> | 101 | <object class="GtkButton" id="btn_add_iso"> |
707 | 94 | <property name="label" translatable="yes">Add</property> | 102 | <property name="label">gtk-add</property> |
708 | 95 | <property name="visible">True</property> | 103 | <property name="visible">True</property> |
709 | 96 | <property name="can_focus">True</property> | 104 | <property name="can_focus">True</property> |
710 | 97 | <property name="receives_default">True</property> | 105 | <property name="receives_default">True</property> |
711 | 106 | <property name="use_action_appearance">False</property> | ||
712 | 107 | <property name="use_stock">True</property> | ||
713 | 98 | </object> | 108 | </object> |
714 | 99 | <packing> | 109 | <packing> |
715 | 110 | <property name="expand">True</property> | ||
716 | 111 | <property name="fill">True</property> | ||
717 | 100 | <property name="position">0</property> | 112 | <property name="position">0</property> |
718 | 101 | </packing> | 113 | </packing> |
719 | 102 | </child> | 114 | </child> |
720 | 103 | <child> | 115 | <child> |
721 | 104 | <object class="GtkButton" id="btn_edit_iso"> | 116 | <object class="GtkButton" id="btn_edit_iso"> |
723 | 105 | <property name="label" translatable="yes">Edit</property> | 117 | <property name="label">gtk-edit</property> |
724 | 106 | <property name="can_focus">True</property> | 118 | <property name="can_focus">True</property> |
725 | 107 | <property name="receives_default">True</property> | 119 | <property name="receives_default">True</property> |
726 | 120 | <property name="use_action_appearance">False</property> | ||
727 | 121 | <property name="use_stock">True</property> | ||
728 | 108 | </object> | 122 | </object> |
729 | 109 | <packing> | 123 | <packing> |
730 | 124 | <property name="expand">True</property> | ||
731 | 125 | <property name="fill">True</property> | ||
732 | 110 | <property name="position">1</property> | 126 | <property name="position">1</property> |
733 | 111 | </packing> | 127 | </packing> |
734 | 112 | </child> | 128 | </child> |
735 | 113 | <child> | 129 | <child> |
736 | 114 | <object class="GtkButton" id="btn_del_iso"> | 130 | <object class="GtkButton" id="btn_del_iso"> |
738 | 115 | <property name="label" translatable="yes">Delete</property> | 131 | <property name="label">gtk-delete</property> |
739 | 116 | <property name="visible">True</property> | 132 | <property name="visible">True</property> |
740 | 117 | <property name="can_focus">True</property> | 133 | <property name="can_focus">True</property> |
741 | 118 | <property name="receives_default">True</property> | 134 | <property name="receives_default">True</property> |
742 | 135 | <property name="use_action_appearance">False</property> | ||
743 | 136 | <property name="use_stock">True</property> | ||
744 | 119 | </object> | 137 | </object> |
745 | 120 | <packing> | 138 | <packing> |
746 | 139 | <property name="expand">True</property> | ||
747 | 140 | <property name="fill">True</property> | ||
748 | 121 | <property name="position">2</property> | 141 | <property name="position">2</property> |
749 | 122 | </packing> | 142 | </packing> |
750 | 123 | </child> | 143 | </child> |
751 | @@ -139,6 +159,7 @@ | |||
752 | 139 | </object> | 159 | </object> |
753 | 140 | <packing> | 160 | <packing> |
754 | 141 | <property name="expand">False</property> | 161 | <property name="expand">False</property> |
755 | 162 | <property name="fill">True</property> | ||
756 | 142 | <property name="position">0</property> | 163 | <property name="position">0</property> |
757 | 143 | </packing> | 164 | </packing> |
758 | 144 | </child> | 165 | </child> |
759 | @@ -152,12 +173,13 @@ | |||
760 | 152 | <property name="visible">True</property> | 173 | <property name="visible">True</property> |
761 | 153 | <property name="can_focus">True</property> | 174 | <property name="can_focus">True</property> |
762 | 154 | <property name="border_width">5</property> | 175 | <property name="border_width">5</property> |
763 | 155 | <property name="hscrollbar_policy">automatic</property> | ||
764 | 156 | <property name="vscrollbar_policy">automatic</property> | ||
765 | 157 | <child> | 176 | <child> |
766 | 158 | <object class="GtkTreeView" id="tv_other_isos_list"> | 177 | <object class="GtkTreeView" id="tv_other_isos_list"> |
767 | 159 | <property name="visible">True</property> | 178 | <property name="visible">True</property> |
768 | 160 | <property name="can_focus">True</property> | 179 | <property name="can_focus">True</property> |
769 | 180 | <child internal-child="selection"> | ||
770 | 181 | <object class="GtkTreeSelection" id="treeview-selection1"/> | ||
771 | 182 | </child> | ||
772 | 161 | </object> | 183 | </object> |
773 | 162 | </child> | 184 | </child> |
774 | 163 | </object> | 185 | </object> |
775 | @@ -165,24 +187,30 @@ | |||
776 | 165 | <child type="label"> | 187 | <child type="label"> |
777 | 166 | <object class="GtkLabel" id="lb_expander"> | 188 | <object class="GtkLabel" id="lb_expander"> |
778 | 167 | <property name="visible">True</property> | 189 | <property name="visible">True</property> |
779 | 190 | <property name="can_focus">False</property> | ||
780 | 168 | <property name="label" translatable="yes">Other ISO List:</property> | 191 | <property name="label" translatable="yes">Other ISO List:</property> |
781 | 169 | </object> | 192 | </object> |
782 | 170 | </child> | 193 | </child> |
783 | 171 | </object> | 194 | </object> |
784 | 172 | <packing> | 195 | <packing> |
785 | 196 | <property name="expand">False</property> | ||
786 | 197 | <property name="fill">True</property> | ||
787 | 173 | <property name="position">1</property> | 198 | <property name="position">1</property> |
788 | 174 | </packing> | 199 | </packing> |
789 | 175 | </child> | 200 | </child> |
790 | 176 | <child internal-child="action_area"> | 201 | <child internal-child="action_area"> |
792 | 177 | <object class="GtkHButtonBox" id="dialog-action_area1"> | 202 | <object class="GtkButtonBox" id="dialog-action_area1"> |
793 | 178 | <property name="visible">True</property> | 203 | <property name="visible">True</property> |
794 | 204 | <property name="can_focus">False</property> | ||
795 | 179 | <property name="layout_style">end</property> | 205 | <property name="layout_style">end</property> |
796 | 180 | <child> | 206 | <child> |
797 | 181 | <object class="GtkButton" id="button2"> | 207 | <object class="GtkButton" id="button2"> |
799 | 182 | <property name="label" translatable="yes">Cancel</property> | 208 | <property name="label">gtk-cancel</property> |
800 | 183 | <property name="visible">True</property> | 209 | <property name="visible">True</property> |
801 | 184 | <property name="can_focus">True</property> | 210 | <property name="can_focus">True</property> |
802 | 185 | <property name="receives_default">True</property> | 211 | <property name="receives_default">True</property> |
803 | 212 | <property name="use_action_appearance">False</property> | ||
804 | 213 | <property name="use_stock">True</property> | ||
805 | 186 | </object> | 214 | </object> |
806 | 187 | <packing> | 215 | <packing> |
807 | 188 | <property name="expand">False</property> | 216 | <property name="expand">False</property> |
808 | @@ -192,11 +220,13 @@ | |||
809 | 192 | </child> | 220 | </child> |
810 | 193 | <child> | 221 | <child> |
811 | 194 | <object class="GtkButton" id="button1"> | 222 | <object class="GtkButton" id="button1"> |
813 | 195 | <property name="label">Save</property> | 223 | <property name="label">gtk-save</property> |
814 | 196 | <property name="visible">True</property> | 224 | <property name="visible">True</property> |
815 | 197 | <property name="can_focus">True</property> | 225 | <property name="can_focus">True</property> |
816 | 198 | <property name="receives_default">True</property> | 226 | <property name="receives_default">True</property> |
818 | 199 | <signal name="clicked" handler="ok"/> | 227 | <property name="use_action_appearance">False</property> |
819 | 228 | <property name="use_stock">True</property> | ||
820 | 229 | <signal name="clicked" handler="ok" swapped="no"/> | ||
821 | 200 | </object> | 230 | </object> |
822 | 201 | <packing> | 231 | <packing> |
823 | 202 | <property name="expand">False</property> | 232 | <property name="expand">False</property> |
824 | @@ -207,6 +237,7 @@ | |||
825 | 207 | </object> | 237 | </object> |
826 | 208 | <packing> | 238 | <packing> |
827 | 209 | <property name="expand">False</property> | 239 | <property name="expand">False</property> |
828 | 240 | <property name="fill">True</property> | ||
829 | 210 | <property name="pack_type">end</property> | 241 | <property name="pack_type">end</property> |
830 | 211 | <property name="position">2</property> | 242 | <property name="position">2</property> |
831 | 212 | </packing> | 243 | </packing> |
832 | @@ -218,5 +249,4 @@ | |||
833 | 218 | <action-widget response="-5">button1</action-widget> | 249 | <action-widget response="-5">button1</action-widget> |
834 | 219 | </action-widgets> | 250 | </action-widgets> |
835 | 220 | </object> | 251 | </object> |
836 | 221 | <object class="GtkAction" id="action1"/> | ||
837 | 222 | </interface> | 252 | </interface> |
838 | 223 | 253 | ||
839 | === modified file 'data/ui/PreferencesTestdrivegtkDialog.ui' | |||
840 | --- data/ui/PreferencesTestdrivegtkDialog.ui 2011-08-17 21:05:48 +0000 | |||
841 | +++ data/ui/PreferencesTestdrivegtkDialog.ui 2011-08-23 08:30:25 +0000 | |||
842 | @@ -1,43 +1,26 @@ | |||
843 | 1 | <?xml version="1.0" encoding="UTF-8"?> | 1 | <?xml version="1.0" encoding="UTF-8"?> |
844 | 2 | <interface> | 2 | <interface> |
845 | 3 | <requires lib="gtk+" version="2.16"/> | ||
846 | 4 | <!-- interface-requires preferences_testdrivegtk_dialog 1.0 --> | 3 | <!-- interface-requires preferences_testdrivegtk_dialog 1.0 --> |
847 | 5 | <!-- interface-naming-policy project-wide --> | 4 | <!-- interface-naming-policy project-wide --> |
869 | 6 | <object class="GtkListStore" id="liststore1"> | 5 | <!-- interface-requires gtk+ 3.0 --> |
870 | 7 | <columns> | 6 | <object class="GtkAdjustment" id="adj_smp"> |
871 | 8 | <!-- column-name mem --> | 7 | <property name="step_increment">1</property> |
872 | 9 | <column type="gchararray"/> | 8 | <property name="page_increment">10</property> |
873 | 10 | </columns> | 9 | <property name="lower">1</property> |
853 | 11 | <data> | ||
854 | 12 | <row> | ||
855 | 13 | <col id="0" translatable="yes">Other...</col> | ||
856 | 14 | </row> | ||
857 | 15 | </data> | ||
858 | 16 | </object> | ||
859 | 17 | <object class="GtkListStore" id="liststore2"> | ||
860 | 18 | <columns> | ||
861 | 19 | <!-- column-name disk_size --> | ||
862 | 20 | <column type="gchararray"/> | ||
863 | 21 | </columns> | ||
864 | 22 | <data> | ||
865 | 23 | <row> | ||
866 | 24 | <col id="0" translatable="yes">Other...</col> | ||
867 | 25 | </row> | ||
868 | 26 | </data> | ||
874 | 27 | </object> | 10 | </object> |
875 | 28 | <object class="PreferencesTestdrivegtkDialog" id="preferences_testdrivegtk_dialog"> | 11 | <object class="PreferencesTestdrivegtkDialog" id="preferences_testdrivegtk_dialog"> |
876 | 29 | <property name="can_focus">False</property> | 12 | <property name="can_focus">False</property> |
877 | 30 | <property name="border_width">5</property> | 13 | <property name="border_width">5</property> |
878 | 31 | <property name="window_position">center</property> | 14 | <property name="window_position">center</property> |
879 | 32 | <property name="icon">../media/icon.png</property> | ||
880 | 33 | <property name="type_hint">normal</property> | 15 | <property name="type_hint">normal</property> |
881 | 34 | <child internal-child="vbox"> | 16 | <child internal-child="vbox"> |
883 | 35 | <object class="GtkVBox" id="dialog-vbox1"> | 17 | <object class="GtkBox" id="dialog-box1"> |
884 | 36 | <property name="visible">True</property> | 18 | <property name="visible">True</property> |
885 | 37 | <property name="can_focus">False</property> | 19 | <property name="can_focus">False</property> |
886 | 20 | <property name="orientation">vertical</property> | ||
887 | 38 | <property name="spacing">2</property> | 21 | <property name="spacing">2</property> |
888 | 39 | <child internal-child="action_area"> | 22 | <child internal-child="action_area"> |
890 | 40 | <object class="GtkHButtonBox" id="dialog-action_area1"> | 23 | <object class="GtkButtonBox" id="dialog-action_area1"> |
891 | 41 | <property name="visible">True</property> | 24 | <property name="visible">True</property> |
892 | 42 | <property name="can_focus">False</property> | 25 | <property name="can_focus">False</property> |
893 | 43 | <property name="layout_style">end</property> | 26 | <property name="layout_style">end</property> |
894 | @@ -59,11 +42,12 @@ | |||
895 | 59 | </child> | 42 | </child> |
896 | 60 | <child> | 43 | <child> |
897 | 61 | <object class="GtkButton" id="button1"> | 44 | <object class="GtkButton" id="button1"> |
899 | 62 | <property name="label">Save</property> | 45 | <property name="label">gtk-save</property> |
900 | 63 | <property name="visible">True</property> | 46 | <property name="visible">True</property> |
901 | 64 | <property name="can_focus">True</property> | 47 | <property name="can_focus">True</property> |
902 | 65 | <property name="receives_default">True</property> | 48 | <property name="receives_default">True</property> |
903 | 66 | <property name="use_action_appearance">False</property> | 49 | <property name="use_action_appearance">False</property> |
904 | 50 | <property name="use_stock">True</property> | ||
905 | 67 | <signal name="clicked" handler="ok" swapped="no"/> | 51 | <signal name="clicked" handler="ok" swapped="no"/> |
906 | 68 | </object> | 52 | </object> |
907 | 69 | <packing> | 53 | <packing> |
908 | @@ -91,7 +75,7 @@ | |||
909 | 91 | <property name="resize_mode">queue</property> | 75 | <property name="resize_mode">queue</property> |
910 | 92 | <property name="shadow_type">none</property> | 76 | <property name="shadow_type">none</property> |
911 | 93 | <child> | 77 | <child> |
913 | 94 | <object class="GtkVBox" id="vbox1"> | 78 | <object class="GtkBox" id="box1"> |
914 | 95 | <property name="visible">True</property> | 79 | <property name="visible">True</property> |
915 | 96 | <property name="can_focus">False</property> | 80 | <property name="can_focus">False</property> |
916 | 97 | <child> | 81 | <child> |
917 | @@ -143,8 +127,6 @@ | |||
918 | 143 | <property name="invisible_char">•</property> | 127 | <property name="invisible_char">•</property> |
919 | 144 | <property name="primary_icon_activatable">False</property> | 128 | <property name="primary_icon_activatable">False</property> |
920 | 145 | <property name="secondary_icon_activatable">False</property> | 129 | <property name="secondary_icon_activatable">False</property> |
921 | 146 | <property name="primary_icon_sensitive">True</property> | ||
922 | 147 | <property name="secondary_icon_sensitive">True</property> | ||
923 | 148 | </object> | 130 | </object> |
924 | 149 | <packing> | 131 | <packing> |
925 | 150 | <property name="left_attach">1</property> | 132 | <property name="left_attach">1</property> |
926 | @@ -176,8 +158,6 @@ | |||
927 | 176 | <property name="invisible_char">•</property> | 158 | <property name="invisible_char">•</property> |
928 | 177 | <property name="primary_icon_activatable">False</property> | 159 | <property name="primary_icon_activatable">False</property> |
929 | 178 | <property name="secondary_icon_activatable">False</property> | 160 | <property name="secondary_icon_activatable">False</property> |
930 | 179 | <property name="primary_icon_sensitive">True</property> | ||
931 | 180 | <property name="secondary_icon_sensitive">True</property> | ||
932 | 181 | </object> | 161 | </object> |
933 | 182 | <packing> | 162 | <packing> |
934 | 183 | <property name="left_attach">1</property> | 163 | <property name="left_attach">1</property> |
935 | @@ -241,8 +221,6 @@ | |||
936 | 241 | <property name="invisible_char">•</property> | 221 | <property name="invisible_char">•</property> |
937 | 242 | <property name="primary_icon_activatable">False</property> | 222 | <property name="primary_icon_activatable">False</property> |
938 | 243 | <property name="secondary_icon_activatable">False</property> | 223 | <property name="secondary_icon_activatable">False</property> |
939 | 244 | <property name="primary_icon_sensitive">True</property> | ||
940 | 245 | <property name="secondary_icon_sensitive">True</property> | ||
941 | 246 | </object> | 224 | </object> |
942 | 247 | <packing> | 225 | <packing> |
943 | 248 | <property name="left_attach">1</property> | 226 | <property name="left_attach">1</property> |
944 | @@ -259,8 +237,6 @@ | |||
945 | 259 | <property name="invisible_char">•</property> | 237 | <property name="invisible_char">•</property> |
946 | 260 | <property name="primary_icon_activatable">False</property> | 238 | <property name="primary_icon_activatable">False</property> |
947 | 261 | <property name="secondary_icon_activatable">False</property> | 239 | <property name="secondary_icon_activatable">False</property> |
948 | 262 | <property name="primary_icon_sensitive">True</property> | ||
949 | 263 | <property name="secondary_icon_sensitive">True</property> | ||
950 | 264 | </object> | 240 | </object> |
951 | 265 | <packing> | 241 | <packing> |
952 | 266 | <property name="left_attach">1</property> | 242 | <property name="left_attach">1</property> |
953 | @@ -303,7 +279,7 @@ | |||
954 | 303 | </packing> | 279 | </packing> |
955 | 304 | </child> | 280 | </child> |
956 | 305 | <child> | 281 | <child> |
958 | 306 | <object class="GtkHBox" id="hbox1"> | 282 | <object class="GtkBox" id="box2"> |
959 | 307 | <property name="visible">True</property> | 283 | <property name="visible">True</property> |
960 | 308 | <property name="can_focus">False</property> | 284 | <property name="can_focus">False</property> |
961 | 309 | <child> | 285 | <child> |
962 | @@ -477,233 +453,236 @@ | |||
963 | 477 | <property name="resize_mode">queue</property> | 453 | <property name="resize_mode">queue</property> |
964 | 478 | <property name="shadow_type">none</property> | 454 | <property name="shadow_type">none</property> |
965 | 479 | <child> | 455 | <child> |
967 | 480 | <object class="GtkVBox" id="vbox2"> | 456 | <object class="GtkBox" id="box6"> |
968 | 481 | <property name="visible">True</property> | 457 | <property name="visible">True</property> |
969 | 482 | <property name="can_focus">False</property> | 458 | <property name="can_focus">False</property> |
970 | 459 | <property name="orientation">vertical</property> | ||
971 | 460 | <property name="spacing">12</property> | ||
972 | 483 | <child> | 461 | <child> |
974 | 484 | <object class="GtkAlignment" id="alignment2"> | 462 | <object class="GtkFrame" id="frame3"> |
975 | 485 | <property name="visible">True</property> | 463 | <property name="visible">True</property> |
976 | 486 | <property name="can_focus">False</property> | 464 | <property name="can_focus">False</property> |
981 | 487 | <property name="top_padding">12</property> | 465 | <property name="label_xalign">0</property> |
982 | 488 | <property name="bottom_padding">12</property> | 466 | <property name="shadow_type">none</property> |
979 | 489 | <property name="left_padding">12</property> | ||
980 | 490 | <property name="right_padding">12</property> | ||
983 | 491 | <child> | 467 | <child> |
985 | 492 | <object class="GtkVBox" id="vbox6"> | 468 | <object class="GtkAlignment" id="alignment3"> |
986 | 493 | <property name="visible">True</property> | 469 | <property name="visible">True</property> |
987 | 494 | <property name="can_focus">False</property> | 470 | <property name="can_focus">False</property> |
989 | 495 | <property name="spacing">12</property> | 471 | <property name="left_padding">12</property> |
990 | 496 | <child> | 472 | <child> |
992 | 497 | <object class="GtkFrame" id="frame3"> | 473 | <object class="GtkBox" id="box5"> |
993 | 498 | <property name="visible">True</property> | 474 | <property name="visible">True</property> |
994 | 499 | <property name="can_focus">False</property> | 475 | <property name="can_focus">False</property> |
1066 | 500 | <property name="label_xalign">0</property> | 476 | <property name="orientation">vertical</property> |
1067 | 501 | <property name="shadow_type">none</property> | 477 | <child> |
1068 | 502 | <child> | 478 | <object class="GtkRadioButton" id="opt_virt_kvm"> |
1069 | 503 | <object class="GtkAlignment" id="alignment3"> | 479 | <property name="label" translatable="yes">KVM</property> |
1070 | 504 | <property name="visible">True</property> | 480 | <property name="visible">True</property> |
1071 | 505 | <property name="can_focus">False</property> | 481 | <property name="can_focus">True</property> |
1072 | 506 | <property name="left_padding">12</property> | 482 | <property name="receives_default">False</property> |
1073 | 507 | <child> | 483 | <property name="use_action_appearance">False</property> |
1074 | 508 | <object class="GtkVBox" id="vbox5"> | 484 | <property name="xalign">0</property> |
1075 | 509 | <property name="visible">True</property> | 485 | <property name="active">True</property> |
1076 | 510 | <property name="can_focus">False</property> | 486 | <property name="draw_indicator">True</property> |
1077 | 511 | <child> | 487 | </object> |
1078 | 512 | <object class="GtkRadioButton" id="opt_virt_kvm"> | 488 | <packing> |
1079 | 513 | <property name="label" translatable="yes">KVM</property> | 489 | <property name="expand">True</property> |
1080 | 514 | <property name="visible">True</property> | 490 | <property name="fill">True</property> |
1081 | 515 | <property name="can_focus">True</property> | 491 | <property name="position">0</property> |
1082 | 516 | <property name="receives_default">False</property> | 492 | </packing> |
1083 | 517 | <property name="use_action_appearance">False</property> | 493 | </child> |
1084 | 518 | <property name="active">True</property> | 494 | <child> |
1085 | 519 | <property name="draw_indicator">True</property> | 495 | <object class="GtkRadioButton" id="opt_virt_vbox"> |
1086 | 520 | </object> | 496 | <property name="label" translatable="yes">VirtualBox</property> |
1087 | 521 | <packing> | 497 | <property name="visible">True</property> |
1088 | 522 | <property name="expand">True</property> | 498 | <property name="can_focus">True</property> |
1089 | 523 | <property name="fill">True</property> | 499 | <property name="receives_default">False</property> |
1090 | 524 | <property name="position">0</property> | 500 | <property name="use_action_appearance">False</property> |
1091 | 525 | </packing> | 501 | <property name="xalign">0</property> |
1092 | 526 | </child> | 502 | <property name="draw_indicator">True</property> |
1093 | 527 | <child> | 503 | <property name="group">opt_virt_kvm</property> |
1094 | 528 | <object class="GtkRadioButton" id="opt_virt_vbox"> | 504 | </object> |
1095 | 529 | <property name="label" translatable="yes">VirtualBox</property> | 505 | <packing> |
1096 | 530 | <property name="visible">True</property> | 506 | <property name="expand">True</property> |
1097 | 531 | <property name="can_focus">True</property> | 507 | <property name="fill">True</property> |
1098 | 532 | <property name="receives_default">False</property> | 508 | <property name="position">1</property> |
1099 | 533 | <property name="use_action_appearance">False</property> | 509 | </packing> |
1100 | 534 | <property name="draw_indicator">True</property> | 510 | </child> |
1101 | 535 | <property name="group">opt_virt_kvm</property> | 511 | <child> |
1102 | 536 | </object> | 512 | <object class="GtkRadioButton" id="opt_virt_parallels"> |
1103 | 537 | <packing> | 513 | <property name="label" translatable="yes">Parallels</property> |
1104 | 538 | <property name="expand">True</property> | 514 | <property name="visible">True</property> |
1105 | 539 | <property name="fill">True</property> | 515 | <property name="can_focus">True</property> |
1106 | 540 | <property name="position">1</property> | 516 | <property name="receives_default">False</property> |
1107 | 541 | </packing> | 517 | <property name="use_action_appearance">False</property> |
1108 | 542 | </child> | 518 | <property name="xalign">0</property> |
1109 | 543 | <child> | 519 | <property name="draw_indicator">True</property> |
1110 | 544 | <object class="GtkRadioButton" id="opt_virt_parallels"> | 520 | <property name="group">opt_virt_kvm</property> |
1111 | 545 | <property name="label" translatable="yes">Parallels</property> | 521 | </object> |
1112 | 546 | <property name="visible">True</property> | 522 | <packing> |
1113 | 547 | <property name="can_focus">True</property> | 523 | <property name="expand">True</property> |
1114 | 548 | <property name="receives_default">False</property> | 524 | <property name="fill">True</property> |
1115 | 549 | <property name="use_action_appearance">False</property> | 525 | <property name="position">2</property> |
1116 | 550 | <property name="draw_indicator">True</property> | 526 | </packing> |
1046 | 551 | <property name="group">opt_virt_kvm</property> | ||
1047 | 552 | </object> | ||
1048 | 553 | <packing> | ||
1049 | 554 | <property name="expand">True</property> | ||
1050 | 555 | <property name="fill">True</property> | ||
1051 | 556 | <property name="position">2</property> | ||
1052 | 557 | </packing> | ||
1053 | 558 | </child> | ||
1054 | 559 | </object> | ||
1055 | 560 | </child> | ||
1056 | 561 | </object> | ||
1057 | 562 | </child> | ||
1058 | 563 | <child type="label"> | ||
1059 | 564 | <object class="GtkLabel" id="label12"> | ||
1060 | 565 | <property name="visible">True</property> | ||
1061 | 566 | <property name="can_focus">False</property> | ||
1062 | 567 | <property name="ypad">3</property> | ||
1063 | 568 | <property name="label" translatable="yes"><b>Hypervisor</b></property> | ||
1064 | 569 | <property name="use_markup">True</property> | ||
1065 | 570 | </object> | ||
1117 | 571 | </child> | 527 | </child> |
1118 | 572 | </object> | 528 | </object> |
1119 | 573 | <packing> | ||
1120 | 574 | <property name="expand">False</property> | ||
1121 | 575 | <property name="fill">True</property> | ||
1122 | 576 | <property name="position">0</property> | ||
1123 | 577 | </packing> | ||
1124 | 578 | </child> | 529 | </child> |
1125 | 530 | </object> | ||
1126 | 531 | </child> | ||
1127 | 532 | <child type="label"> | ||
1128 | 533 | <object class="GtkLabel" id="label12"> | ||
1129 | 534 | <property name="visible">True</property> | ||
1130 | 535 | <property name="can_focus">False</property> | ||
1131 | 536 | <property name="ypad">3</property> | ||
1132 | 537 | <property name="label" translatable="yes"><b>Hypervisor</b></property> | ||
1133 | 538 | <property name="use_markup">True</property> | ||
1134 | 539 | </object> | ||
1135 | 540 | </child> | ||
1136 | 541 | </object> | ||
1137 | 542 | <packing> | ||
1138 | 543 | <property name="expand">False</property> | ||
1139 | 544 | <property name="fill">True</property> | ||
1140 | 545 | <property name="position">0</property> | ||
1141 | 546 | </packing> | ||
1142 | 547 | </child> | ||
1143 | 548 | <child> | ||
1144 | 549 | <object class="GtkFrame" id="frame1"> | ||
1145 | 550 | <property name="visible">True</property> | ||
1146 | 551 | <property name="can_focus">False</property> | ||
1147 | 552 | <property name="label_xalign">0</property> | ||
1148 | 553 | <property name="shadow_type">none</property> | ||
1149 | 554 | <child> | ||
1150 | 555 | <object class="GtkAlignment" id="alignment6"> | ||
1151 | 556 | <property name="visible">True</property> | ||
1152 | 557 | <property name="can_focus">False</property> | ||
1153 | 558 | <property name="left_padding">12</property> | ||
1154 | 579 | <child> | 559 | <child> |
1156 | 580 | <object class="GtkTable" id="tb_virtualization_prefs"> | 560 | <object class="GtkGrid" id="grid1"> |
1157 | 581 | <property name="visible">True</property> | 561 | <property name="visible">True</property> |
1158 | 582 | <property name="can_focus">False</property> | 562 | <property name="can_focus">False</property> |
1161 | 583 | <property name="n_rows">5</property> | 563 | <property name="margin_top">6</property> |
1162 | 584 | <property name="n_columns">3</property> | 564 | <property name="row_spacing">6</property> |
1163 | 585 | <property name="column_spacing">6</property> | 565 | <property name="column_spacing">6</property> |
1164 | 586 | <child> | 566 | <child> |
1166 | 587 | <object class="GtkLabel" id="label3"> | 567 | <object class="GtkLabel" id="lbl_mem_size"> |
1167 | 588 | <property name="visible">True</property> | 568 | <property name="visible">True</property> |
1168 | 589 | <property name="can_focus">False</property> | 569 | <property name="can_focus">False</property> |
1169 | 590 | <property name="xalign">0</property> | 570 | <property name="xalign">0</property> |
1170 | 591 | <property name="ypad">3</property> | ||
1171 | 592 | <property name="label" translatable="yes"><b>Virtual Machine Options</b></property> | ||
1172 | 593 | <property name="use_markup">True</property> | ||
1173 | 594 | </object> | ||
1174 | 595 | <packing> | ||
1175 | 596 | <property name="right_attach">3</property> | ||
1176 | 597 | </packing> | ||
1177 | 598 | </child> | ||
1178 | 599 | <child> | ||
1179 | 600 | <object class="GtkLabel" id="label10"> | ||
1180 | 601 | <property name="visible">True</property> | ||
1181 | 602 | <property name="can_focus">False</property> | ||
1182 | 603 | <property name="xalign">1</property> | ||
1183 | 604 | <property name="label" translatable="yes">Memory:</property> | 571 | <property name="label" translatable="yes">Memory:</property> |
1184 | 605 | <property name="use_markup">True</property> | 572 | <property name="use_markup">True</property> |
1185 | 606 | </object> | 573 | </object> |
1186 | 607 | <packing> | 574 | <packing> |
1198 | 608 | <property name="top_attach">1</property> | 575 | <property name="left_attach">0</property> |
1199 | 609 | <property name="bottom_attach">2</property> | 576 | <property name="top_attach">0</property> |
1200 | 610 | <property name="x_options">GTK_FILL</property> | 577 | <property name="width">1</property> |
1201 | 611 | <property name="y_options">GTK_FILL</property> | 578 | <property name="height">1</property> |
1202 | 612 | </packing> | 579 | </packing> |
1203 | 613 | </child> | 580 | </child> |
1204 | 614 | <child> | 581 | <child> |
1205 | 615 | <object class="GtkLabel" id="label13"> | 582 | <object class="GtkLabel" id="lbl_mb"> |
1206 | 616 | <property name="visible">True</property> | 583 | <property name="visible">True</property> |
1207 | 617 | <property name="can_focus">False</property> | 584 | <property name="can_focus">False</property> |
1208 | 618 | <property name="xalign">1</property> | 585 | <property name="xalign">0</property> |
1209 | 586 | <property name="xpad">3</property> | ||
1210 | 587 | <property name="label" translatable="yes">MB</property> | ||
1211 | 588 | <property name="use_markup">True</property> | ||
1212 | 589 | </object> | ||
1213 | 590 | <packing> | ||
1214 | 591 | <property name="left_attach">2</property> | ||
1215 | 592 | <property name="top_attach">0</property> | ||
1216 | 593 | <property name="width">1</property> | ||
1217 | 594 | <property name="height">1</property> | ||
1218 | 595 | </packing> | ||
1219 | 596 | </child> | ||
1220 | 597 | <child> | ||
1221 | 598 | <object class="GtkLabel" id="lbl_disk_size"> | ||
1222 | 599 | <property name="visible">True</property> | ||
1223 | 600 | <property name="can_focus">False</property> | ||
1224 | 601 | <property name="xalign">0</property> | ||
1225 | 619 | <property name="label" translatable="yes">Disk Size:</property> | 602 | <property name="label" translatable="yes">Disk Size:</property> |
1226 | 620 | <property name="use_markup">True</property> | 603 | <property name="use_markup">True</property> |
1227 | 621 | </object> | 604 | </object> |
1228 | 622 | <packing> | 605 | <packing> |
1233 | 623 | <property name="top_attach">2</property> | 606 | <property name="left_attach">0</property> |
1234 | 624 | <property name="bottom_attach">3</property> | 607 | <property name="top_attach">1</property> |
1235 | 625 | <property name="x_options">GTK_FILL</property> | 608 | <property name="width">1</property> |
1236 | 626 | <property name="y_options">GTK_FILL</property> | 609 | <property name="height">1</property> |
1237 | 610 | </packing> | ||
1238 | 611 | </child> | ||
1239 | 612 | <child> | ||
1240 | 613 | <object class="GtkLabel" id="lbl_gb"> | ||
1241 | 614 | <property name="visible">True</property> | ||
1242 | 615 | <property name="can_focus">False</property> | ||
1243 | 616 | <property name="xalign">0</property> | ||
1244 | 617 | <property name="xpad">3</property> | ||
1245 | 618 | <property name="label" translatable="yes">GB</property> | ||
1246 | 619 | <property name="use_markup">True</property> | ||
1247 | 620 | </object> | ||
1248 | 621 | <packing> | ||
1249 | 622 | <property name="left_attach">2</property> | ||
1250 | 623 | <property name="top_attach">1</property> | ||
1251 | 624 | <property name="width">1</property> | ||
1252 | 625 | <property name="height">1</property> | ||
1253 | 626 | </packing> | ||
1254 | 627 | </child> | ||
1255 | 628 | <child> | ||
1256 | 629 | <object class="GtkLabel" id="label_spacer2"> | ||
1257 | 630 | <property name="visible">True</property> | ||
1258 | 631 | <property name="can_focus">False</property> | ||
1259 | 632 | <property name="width_chars">10</property> | ||
1260 | 633 | </object> | ||
1261 | 634 | <packing> | ||
1262 | 635 | <property name="left_attach">3</property> | ||
1263 | 636 | <property name="top_attach">0</property> | ||
1264 | 637 | <property name="width">1</property> | ||
1265 | 638 | <property name="height">1</property> | ||
1266 | 639 | </packing> | ||
1267 | 640 | </child> | ||
1268 | 641 | <child> | ||
1269 | 642 | <object class="GtkLabel" id="lb_smp_nbr"> | ||
1270 | 643 | <property name="visible">True</property> | ||
1271 | 644 | <property name="can_focus">False</property> | ||
1272 | 645 | <property name="xalign">0</property> | ||
1273 | 646 | <property name="label" translatable="yes">Processors:</property> | ||
1274 | 647 | <property name="use_markup">True</property> | ||
1275 | 648 | </object> | ||
1276 | 649 | <packing> | ||
1277 | 650 | <property name="left_attach">0</property> | ||
1278 | 651 | <property name="top_attach">2</property> | ||
1279 | 652 | <property name="width">1</property> | ||
1280 | 653 | <property name="height">1</property> | ||
1281 | 654 | </packing> | ||
1282 | 655 | </child> | ||
1283 | 656 | <child> | ||
1284 | 657 | <object class="GtkSpinButton" id="spin_smp_nbr"> | ||
1285 | 658 | <property name="visible">True</property> | ||
1286 | 659 | <property name="can_focus">True</property> | ||
1287 | 660 | <property name="has_frame">False</property> | ||
1288 | 661 | <property name="invisible_char">•</property> | ||
1289 | 662 | <property name="invisible_char_set">True</property> | ||
1290 | 663 | <property name="adjustment">adj_smp</property> | ||
1291 | 664 | <property name="numeric">True</property> | ||
1292 | 665 | </object> | ||
1293 | 666 | <packing> | ||
1294 | 667 | <property name="left_attach">1</property> | ||
1295 | 668 | <property name="top_attach">2</property> | ||
1296 | 669 | <property name="width">1</property> | ||
1297 | 670 | <property name="height">1</property> | ||
1298 | 627 | </packing> | 671 | </packing> |
1299 | 628 | </child> | 672 | </child> |
1300 | 629 | <child> | 673 | <child> |
1301 | 630 | <object class="GtkLabel" id="lb_kvm_args"> | 674 | <object class="GtkLabel" id="lb_kvm_args"> |
1302 | 631 | <property name="visible">True</property> | 675 | <property name="visible">True</property> |
1303 | 632 | <property name="can_focus">False</property> | 676 | <property name="can_focus">False</property> |
1305 | 633 | <property name="xalign">1</property> | 677 | <property name="xalign">0</property> |
1306 | 634 | <property name="label" translatable="yes">KVM Args:</property> | 678 | <property name="label" translatable="yes">KVM Args:</property> |
1307 | 635 | <property name="use_markup">True</property> | 679 | <property name="use_markup">True</property> |
1308 | 636 | </object> | 680 | </object> |
1309 | 637 | <packing> | 681 | <packing> |
1310 | 682 | <property name="left_attach">0</property> | ||
1311 | 638 | <property name="top_attach">3</property> | 683 | <property name="top_attach">3</property> |
1380 | 639 | <property name="bottom_attach">4</property> | 684 | <property name="width">1</property> |
1381 | 640 | <property name="x_options">GTK_FILL</property> | 685 | <property name="height">1</property> |
1314 | 641 | <property name="y_options">GTK_FILL</property> | ||
1315 | 642 | </packing> | ||
1316 | 643 | </child> | ||
1317 | 644 | <child> | ||
1318 | 645 | <object class="GtkLabel" id="lb_smp_nbr"> | ||
1319 | 646 | <property name="visible">True</property> | ||
1320 | 647 | <property name="can_focus">False</property> | ||
1321 | 648 | <property name="xalign">1</property> | ||
1322 | 649 | <property name="label" translatable="yes">Processors:</property> | ||
1323 | 650 | <property name="use_markup">True</property> | ||
1324 | 651 | </object> | ||
1325 | 652 | <packing> | ||
1326 | 653 | <property name="top_attach">4</property> | ||
1327 | 654 | <property name="bottom_attach">5</property> | ||
1328 | 655 | <property name="x_options">GTK_FILL</property> | ||
1329 | 656 | <property name="y_options">GTK_FILL</property> | ||
1330 | 657 | </packing> | ||
1331 | 658 | </child> | ||
1332 | 659 | <child> | ||
1333 | 660 | <object class="GtkComboBoxEntry" id="cbe_mem_size"> | ||
1334 | 661 | <property name="width_request">100</property> | ||
1335 | 662 | <property name="visible">True</property> | ||
1336 | 663 | <property name="can_focus">False</property> | ||
1337 | 664 | <property name="model">liststore1</property> | ||
1338 | 665 | <property name="text_column">0</property> | ||
1339 | 666 | <child internal-child="entry"> | ||
1340 | 667 | <object class="GtkEntry" id="comboboxentry-entry2"> | ||
1341 | 668 | <property name="can_focus">False</property> | ||
1342 | 669 | <property name="primary_icon_activatable">False</property> | ||
1343 | 670 | <property name="secondary_icon_activatable">False</property> | ||
1344 | 671 | <property name="primary_icon_sensitive">True</property> | ||
1345 | 672 | <property name="secondary_icon_sensitive">True</property> | ||
1346 | 673 | </object> | ||
1347 | 674 | </child> | ||
1348 | 675 | </object> | ||
1349 | 676 | <packing> | ||
1350 | 677 | <property name="left_attach">1</property> | ||
1351 | 678 | <property name="right_attach">2</property> | ||
1352 | 679 | <property name="top_attach">1</property> | ||
1353 | 680 | <property name="bottom_attach">2</property> | ||
1354 | 681 | <property name="y_options"></property> | ||
1355 | 682 | </packing> | ||
1356 | 683 | </child> | ||
1357 | 684 | <child> | ||
1358 | 685 | <object class="GtkComboBoxEntry" id="cbe_disk_size"> | ||
1359 | 686 | <property name="width_request">100</property> | ||
1360 | 687 | <property name="visible">True</property> | ||
1361 | 688 | <property name="can_focus">False</property> | ||
1362 | 689 | <property name="model">liststore2</property> | ||
1363 | 690 | <property name="text_column">0</property> | ||
1364 | 691 | <child internal-child="entry"> | ||
1365 | 692 | <object class="GtkEntry" id="comboboxentry-entry4"> | ||
1366 | 693 | <property name="can_focus">False</property> | ||
1367 | 694 | <property name="primary_icon_activatable">False</property> | ||
1368 | 695 | <property name="secondary_icon_activatable">False</property> | ||
1369 | 696 | <property name="primary_icon_sensitive">True</property> | ||
1370 | 697 | <property name="secondary_icon_sensitive">True</property> | ||
1371 | 698 | </object> | ||
1372 | 699 | </child> | ||
1373 | 700 | </object> | ||
1374 | 701 | <packing> | ||
1375 | 702 | <property name="left_attach">1</property> | ||
1376 | 703 | <property name="right_attach">2</property> | ||
1377 | 704 | <property name="top_attach">2</property> | ||
1378 | 705 | <property name="bottom_attach">3</property> | ||
1379 | 706 | <property name="y_options"></property> | ||
1382 | 707 | </packing> | 686 | </packing> |
1383 | 708 | </child> | 687 | </child> |
1384 | 709 | <child> | 688 | <child> |
1385 | @@ -711,73 +690,15 @@ | |||
1386 | 711 | <property name="visible">True</property> | 690 | <property name="visible">True</property> |
1387 | 712 | <property name="can_focus">True</property> | 691 | <property name="can_focus">True</property> |
1388 | 713 | <property name="invisible_char">•</property> | 692 | <property name="invisible_char">•</property> |
1389 | 693 | <property name="invisible_char_set">True</property> | ||
1390 | 714 | <property name="primary_icon_activatable">False</property> | 694 | <property name="primary_icon_activatable">False</property> |
1391 | 715 | <property name="secondary_icon_activatable">False</property> | 695 | <property name="secondary_icon_activatable">False</property> |
1392 | 716 | <property name="primary_icon_sensitive">True</property> | ||
1393 | 717 | <property name="secondary_icon_sensitive">True</property> | ||
1394 | 718 | </object> | 696 | </object> |
1395 | 719 | <packing> | 697 | <packing> |
1396 | 720 | <property name="left_attach">1</property> | 698 | <property name="left_attach">1</property> |
1397 | 721 | <property name="right_attach">2</property> | ||
1398 | 722 | <property name="top_attach">3</property> | 699 | <property name="top_attach">3</property> |
1457 | 723 | <property name="bottom_attach">4</property> | 700 | <property name="width">3</property> |
1458 | 724 | <property name="y_options"></property> | 701 | <property name="height">1</property> |
1401 | 725 | </packing> | ||
1402 | 726 | </child> | ||
1403 | 727 | <child> | ||
1404 | 728 | <object class="GtkEntry" id="txt_smp_nbr"> | ||
1405 | 729 | <property name="width_request">50</property> | ||
1406 | 730 | <property name="visible">True</property> | ||
1407 | 731 | <property name="can_focus">True</property> | ||
1408 | 732 | <property name="invisible_char">•</property> | ||
1409 | 733 | <property name="xalign">0.5</property> | ||
1410 | 734 | <property name="primary_icon_activatable">False</property> | ||
1411 | 735 | <property name="secondary_icon_activatable">False</property> | ||
1412 | 736 | <property name="primary_icon_sensitive">True</property> | ||
1413 | 737 | <property name="secondary_icon_sensitive">True</property> | ||
1414 | 738 | </object> | ||
1415 | 739 | <packing> | ||
1416 | 740 | <property name="left_attach">1</property> | ||
1417 | 741 | <property name="right_attach">2</property> | ||
1418 | 742 | <property name="top_attach">4</property> | ||
1419 | 743 | <property name="bottom_attach">5</property> | ||
1420 | 744 | <property name="y_options"></property> | ||
1421 | 745 | </packing> | ||
1422 | 746 | </child> | ||
1423 | 747 | <child> | ||
1424 | 748 | <object class="GtkLabel" id="label16"> | ||
1425 | 749 | <property name="visible">True</property> | ||
1426 | 750 | <property name="can_focus">False</property> | ||
1427 | 751 | <property name="xalign">0</property> | ||
1428 | 752 | <property name="xpad">3</property> | ||
1429 | 753 | <property name="label" translatable="yes">MB</property> | ||
1430 | 754 | <property name="use_markup">True</property> | ||
1431 | 755 | </object> | ||
1432 | 756 | <packing> | ||
1433 | 757 | <property name="left_attach">2</property> | ||
1434 | 758 | <property name="right_attach">3</property> | ||
1435 | 759 | <property name="top_attach">1</property> | ||
1436 | 760 | <property name="bottom_attach">2</property> | ||
1437 | 761 | <property name="x_options">GTK_FILL</property> | ||
1438 | 762 | <property name="y_options">GTK_FILL</property> | ||
1439 | 763 | </packing> | ||
1440 | 764 | </child> | ||
1441 | 765 | <child> | ||
1442 | 766 | <object class="GtkLabel" id="label17"> | ||
1443 | 767 | <property name="visible">True</property> | ||
1444 | 768 | <property name="can_focus">False</property> | ||
1445 | 769 | <property name="xalign">0</property> | ||
1446 | 770 | <property name="xpad">3</property> | ||
1447 | 771 | <property name="label" translatable="yes">GB</property> | ||
1448 | 772 | <property name="use_markup">True</property> | ||
1449 | 773 | </object> | ||
1450 | 774 | <packing> | ||
1451 | 775 | <property name="left_attach">2</property> | ||
1452 | 776 | <property name="right_attach">3</property> | ||
1453 | 777 | <property name="top_attach">2</property> | ||
1454 | 778 | <property name="bottom_attach">3</property> | ||
1455 | 779 | <property name="x_options">GTK_FILL</property> | ||
1456 | 780 | <property name="y_options">GTK_FILL</property> | ||
1459 | 781 | </packing> | 702 | </packing> |
1460 | 782 | </child> | 703 | </child> |
1461 | 783 | <child> | 704 | <child> |
1462 | @@ -788,35 +709,68 @@ | |||
1463 | 788 | </object> | 709 | </object> |
1464 | 789 | <packing> | 710 | <packing> |
1465 | 790 | <property name="left_attach">2</property> | 711 | <property name="left_attach">2</property> |
1475 | 791 | <property name="right_attach">3</property> | 712 | <property name="top_attach">2</property> |
1476 | 792 | <property name="top_attach">4</property> | 713 | <property name="width">1</property> |
1477 | 793 | <property name="bottom_attach">5</property> | 714 | <property name="height">1</property> |
1478 | 794 | <property name="x_options">GTK_FILL</property> | 715 | </packing> |
1479 | 795 | <property name="y_options">GTK_FILL</property> | 716 | </child> |
1480 | 796 | </packing> | 717 | <child> |
1481 | 797 | </child> | 718 | <object class="GtkComboBoxText" id="cbe_mem_size"> |
1482 | 798 | <child> | 719 | <property name="visible">True</property> |
1483 | 799 | <placeholder/> | 720 | <property name="can_focus">False</property> |
1484 | 721 | <property name="has_entry">True</property> | ||
1485 | 722 | <property name="entry_text_column">0</property> | ||
1486 | 723 | <child internal-child="entry"> | ||
1487 | 724 | <object class="GtkEntry" id="cbe_mem_size_entry"> | ||
1488 | 725 | <property name="can_focus">True</property> | ||
1489 | 726 | </object> | ||
1490 | 727 | </child> | ||
1491 | 728 | </object> | ||
1492 | 729 | <packing> | ||
1493 | 730 | <property name="left_attach">1</property> | ||
1494 | 731 | <property name="top_attach">0</property> | ||
1495 | 732 | <property name="width">1</property> | ||
1496 | 733 | <property name="height">1</property> | ||
1497 | 734 | </packing> | ||
1498 | 735 | </child> | ||
1499 | 736 | <child> | ||
1500 | 737 | <object class="GtkComboBoxText" id="cbe_disk_size"> | ||
1501 | 738 | <property name="visible">True</property> | ||
1502 | 739 | <property name="can_focus">False</property> | ||
1503 | 740 | <property name="has_entry">True</property> | ||
1504 | 741 | <property name="entry_text_column">0</property> | ||
1505 | 742 | <child internal-child="entry"> | ||
1506 | 743 | <object class="GtkEntry" id="cbe_disk_size_entry"> | ||
1507 | 744 | <property name="can_focus">True</property> | ||
1508 | 745 | </object> | ||
1509 | 746 | </child> | ||
1510 | 747 | </object> | ||
1511 | 748 | <packing> | ||
1512 | 749 | <property name="left_attach">1</property> | ||
1513 | 750 | <property name="top_attach">1</property> | ||
1514 | 751 | <property name="width">1</property> | ||
1515 | 752 | <property name="height">1</property> | ||
1516 | 753 | </packing> | ||
1517 | 800 | </child> | 754 | </child> |
1518 | 801 | </object> | 755 | </object> |
1519 | 802 | <packing> | ||
1520 | 803 | <property name="expand">True</property> | ||
1521 | 804 | <property name="fill">True</property> | ||
1522 | 805 | <property name="position">1</property> | ||
1523 | 806 | </packing> | ||
1524 | 807 | </child> | 756 | </child> |
1525 | 808 | </object> | 757 | </object> |
1526 | 809 | </child> | 758 | </child> |
1527 | 759 | <child type="label"> | ||
1528 | 760 | <object class="GtkLabel" id="label2"> | ||
1529 | 761 | <property name="visible">True</property> | ||
1530 | 762 | <property name="can_focus">False</property> | ||
1531 | 763 | <property name="label" translatable="yes"><b>Virtual Machine Options</b></property> | ||
1532 | 764 | <property name="use_markup">True</property> | ||
1533 | 765 | </object> | ||
1534 | 766 | </child> | ||
1535 | 810 | </object> | 767 | </object> |
1536 | 811 | <packing> | 768 | <packing> |
1538 | 812 | <property name="expand">False</property> | 769 | <property name="expand">True</property> |
1539 | 813 | <property name="fill">True</property> | 770 | <property name="fill">True</property> |
1541 | 814 | <property name="position">0</property> | 771 | <property name="position">1</property> |
1542 | 815 | </packing> | 772 | </packing> |
1543 | 816 | </child> | 773 | </child> |
1544 | 817 | <child> | ||
1545 | 818 | <placeholder/> | ||
1546 | 819 | </child> | ||
1547 | 820 | </object> | 774 | </object> |
1548 | 821 | </child> | 775 | </child> |
1549 | 822 | </object> | 776 | </object> |
1550 | @@ -842,9 +796,10 @@ | |||
1551 | 842 | <property name="resize_mode">queue</property> | 796 | <property name="resize_mode">queue</property> |
1552 | 843 | <property name="shadow_type">none</property> | 797 | <property name="shadow_type">none</property> |
1553 | 844 | <child> | 798 | <child> |
1555 | 845 | <object class="GtkVBox" id="vbox3"> | 799 | <object class="GtkBox" id="box3"> |
1556 | 846 | <property name="visible">True</property> | 800 | <property name="visible">True</property> |
1557 | 847 | <property name="can_focus">False</property> | 801 | <property name="can_focus">False</property> |
1558 | 802 | <property name="orientation">vertical</property> | ||
1559 | 848 | <child> | 803 | <child> |
1560 | 849 | <object class="GtkAlignment" id="alignment4"> | 804 | <object class="GtkAlignment" id="alignment4"> |
1561 | 850 | <property name="visible">True</property> | 805 | <property name="visible">True</property> |
1562 | @@ -865,9 +820,10 @@ | |||
1563 | 865 | <property name="can_focus">False</property> | 820 | <property name="can_focus">False</property> |
1564 | 866 | <property name="left_padding">12</property> | 821 | <property name="left_padding">12</property> |
1565 | 867 | <child> | 822 | <child> |
1567 | 868 | <object class="GtkVBox" id="vbox4"> | 823 | <object class="GtkBox" id="box4"> |
1568 | 869 | <property name="visible">True</property> | 824 | <property name="visible">True</property> |
1569 | 870 | <property name="can_focus">False</property> | 825 | <property name="can_focus">False</property> |
1570 | 826 | <property name="orientation">vertical</property> | ||
1571 | 871 | <child> | 827 | <child> |
1572 | 872 | <object class="GtkCheckButton" id="chk_flavor_ubuntu"> | 828 | <object class="GtkCheckButton" id="chk_flavor_ubuntu"> |
1573 | 873 | <property name="label" translatable="yes">Ubuntu</property> | 829 | <property name="label" translatable="yes">Ubuntu</property> |
1574 | 874 | 830 | ||
1575 | === modified file 'data/ui/TestdrivegtkWindow.ui' | |||
1576 | --- data/ui/TestdrivegtkWindow.ui 2010-08-21 08:11:40 +0000 | |||
1577 | +++ data/ui/TestdrivegtkWindow.ui 2011-08-23 08:30:25 +0000 | |||
1578 | @@ -1,6 +1,6 @@ | |||
1579 | 1 | <?xml version="1.0"?> | 1 | <?xml version="1.0"?> |
1580 | 2 | <interface> | 2 | <interface> |
1582 | 3 | <requires lib="gtk+" version="2.16"/> | 3 | <!-- interface-requires gtk+ 3.0 --> |
1583 | 4 | <!-- interface-requires testdrivegtk_window 1.0 --> | 4 | <!-- interface-requires testdrivegtk_window 1.0 --> |
1584 | 5 | <!-- interface-naming-policy project-wide --> | 5 | <!-- interface-naming-policy project-wide --> |
1585 | 6 | <!-- interface-local-resource-path ../media --> | 6 | <!-- interface-local-resource-path ../media --> |
1586 | @@ -8,11 +8,11 @@ | |||
1587 | 8 | <property name="title" translatable="yes">TestDrive</property> | 8 | <property name="title" translatable="yes">TestDrive</property> |
1588 | 9 | <property name="window_position">center</property> | 9 | <property name="window_position">center</property> |
1589 | 10 | <property name="default_height">500</property> | 10 | <property name="default_height">500</property> |
1590 | 11 | <property name="icon">../media/icon.png</property> | ||
1591 | 12 | <signal name="destroy" handler="on_destroy"/> | 11 | <signal name="destroy" handler="on_destroy"/> |
1592 | 13 | <child> | 12 | <child> |
1594 | 14 | <object class="GtkVBox" id="vbox1"> | 13 | <object class="GtkVBox" id="box1"> |
1595 | 15 | <property name="visible">True</property> | 14 | <property name="visible">True</property> |
1596 | 15 | <property name="orientation">vertical</property> | ||
1597 | 16 | <child> | 16 | <child> |
1598 | 17 | <object class="GtkMenuBar" id="menubar1"> | 17 | <object class="GtkMenuBar" id="menubar1"> |
1599 | 18 | <property name="visible">True</property> | 18 | <property name="visible">True</property> |
1600 | @@ -137,6 +137,7 @@ | |||
1601 | 137 | <child> | 137 | <child> |
1602 | 138 | <object class="GtkVBox" id="flavor-tabs"> | 138 | <object class="GtkVBox" id="flavor-tabs"> |
1603 | 139 | <property name="visible">True</property> | 139 | <property name="visible">True</property> |
1604 | 140 | <property name="orientation">vertical</property> | ||
1605 | 140 | <child> | 141 | <child> |
1606 | 141 | <placeholder/> | 142 | <placeholder/> |
1607 | 142 | </child> | 143 | </child> |
1608 | @@ -146,9 +147,10 @@ | |||
1609 | 146 | </packing> | 147 | </packing> |
1610 | 147 | </child> | 148 | </child> |
1611 | 148 | <child> | 149 | <child> |
1613 | 149 | <object class="GtkVBox" id="vbox2"> | 150 | <object class="GtkBox" id="box2"> |
1614 | 150 | <property name="visible">True</property> | 151 | <property name="visible">True</property> |
1615 | 151 | <property name="border_width">12</property> | 152 | <property name="border_width">12</property> |
1616 | 153 | <property name="orientation">vertical</property> | ||
1617 | 152 | <child> | 154 | <child> |
1618 | 153 | <placeholder/> | 155 | <placeholder/> |
1619 | 154 | </child> | 156 | </child> |
1620 | 155 | 157 | ||
1621 | === removed file 'data/ui/about_testdrivegtk_dialog.xml' | |||
1622 | --- data/ui/about_testdrivegtk_dialog.xml 2010-07-30 18:48:31 +0000 | |||
1623 | +++ data/ui/about_testdrivegtk_dialog.xml 1970-01-01 00:00:00 +0000 | |||
1624 | @@ -1,9 +0,0 @@ | |||
1625 | 1 | <glade-catalog name="about_testdrivegtk_dialog" domain="glade-3" | ||
1626 | 2 | depends="gtk+" version="1.0"> | ||
1627 | 3 | <glade-widget-classes> | ||
1628 | 4 | <glade-widget-class title="About Testdrivegtk Dialog" name="AboutTestdrivegtkDialog" | ||
1629 | 5 | generic-name="AboutTestdrivegtkDialog" parent="GtkAboutDialog" | ||
1630 | 6 | icon-name="widget-gtk-about-dialog"/> | ||
1631 | 7 | </glade-widget-classes> | ||
1632 | 8 | |||
1633 | 9 | </glade-catalog> | ||
1634 | 10 | 0 | ||
1635 | === modified file 'debian/compat' | |||
1636 | --- debian/compat 2009-11-05 21:41:30 +0000 | |||
1637 | +++ debian/compat 2011-08-23 08:30:25 +0000 | |||
1638 | @@ -1,1 +1,1 @@ | |||
1640 | 1 | 6 | 1 | 8 |
1641 | 2 | 2 | ||
1642 | === modified file 'debian/control' | |||
1643 | --- debian/control 2011-02-16 00:14:05 +0000 | |||
1644 | +++ debian/control 2011-08-23 08:30:25 +0000 | |||
1645 | @@ -2,9 +2,11 @@ | |||
1646 | 2 | Section: python | 2 | Section: python |
1647 | 3 | Priority: extra | 3 | Priority: extra |
1648 | 4 | Maintainer: Dustin Kirkland <kirkland@ubuntu.com> | 4 | Maintainer: Dustin Kirkland <kirkland@ubuntu.com> |
1652 | 5 | Standards-Version: 3.8.3 | 5 | Standards-Version: 3.9.2 |
1653 | 6 | Build-Depends: debhelper (>= 7), gettext-base, python, python-support (>= 0.6.4), python-distutils-extra (>= 2.10) | 6 | Build-Depends: debhelper (>= 8), |
1654 | 7 | XS-Python-Version: current | 7 | gettext-base, |
1655 | 8 | python (>= 2.6.6-3~), | ||
1656 | 9 | python-distutils-extra (>= 2.10) | ||
1657 | 8 | Homepage: http://launchpad.net/testdrive | 10 | Homepage: http://launchpad.net/testdrive |
1658 | 9 | Vcs-Bzr: http://bazaar.launchpad.net/~kirkland/testdrive/trunk | 11 | Vcs-Bzr: http://bazaar.launchpad.net/~kirkland/testdrive/trunk |
1659 | 10 | 12 | ||
1660 | @@ -22,7 +24,6 @@ | |||
1661 | 22 | 24 | ||
1662 | 23 | Package: testdrive-common | 25 | Package: testdrive-common |
1663 | 24 | Architecture: all | 26 | Architecture: all |
1664 | 25 | XB-Python-Version: ${python:Versions} | ||
1665 | 26 | Depends: ${python:Depends}, ${misc:Depends}, | 27 | Depends: ${python:Depends}, ${misc:Depends}, |
1666 | 27 | qemu-kvm | kvm ( >= 1:84+dfsg-0ubuntu12.4 ) | virtualbox-ose ( >= 3.1.6) | virtualbox-3.1 | virtualbox-3.2 | virtualbox-4.0, | 28 | qemu-kvm | kvm ( >= 1:84+dfsg-0ubuntu12.4 ) | virtualbox-ose ( >= 3.1.6) | virtualbox-3.1 | virtualbox-3.2 | virtualbox-4.0, |
1667 | 28 | rsync, | 29 | rsync, |
1668 | @@ -43,10 +44,9 @@ | |||
1669 | 43 | 44 | ||
1670 | 44 | Package: testdrive-cli | 45 | Package: testdrive-cli |
1671 | 45 | Architecture: all | 46 | Architecture: all |
1672 | 46 | XB-Python-Version: ${python:Versions} | ||
1673 | 47 | Depends: ${misc:Depends}, | 47 | Depends: ${misc:Depends}, |
1676 | 48 | ${python:Depends}, | 48 | ${python:Depends}, |
1677 | 49 | testdrive-common (= ${source:Version}) | 49 | testdrive-common (= ${source:Version}) |
1678 | 50 | Description: run the daily Ubuntu ISO in a virtual machine (command line) | 50 | Description: run the daily Ubuntu ISO in a virtual machine (command line) |
1679 | 51 | Testdrive helps you download and run the daily Ubuntu development ISO | 51 | Testdrive helps you download and run the daily Ubuntu development ISO |
1680 | 52 | in a virtual machine on your local hardware. | 52 | in a virtual machine on your local hardware. |
1681 | @@ -63,13 +63,15 @@ | |||
1682 | 63 | Architecture: all | 63 | Architecture: all |
1683 | 64 | XB-Python-Version: ${python:Versions} | 64 | XB-Python-Version: ${python:Versions} |
1684 | 65 | Depends: ${misc:Depends}, | 65 | Depends: ${misc:Depends}, |
1692 | 66 | ${python:Depends}, | 66 | ${python:Depends}, |
1693 | 67 | testdrive-common (= ${source:Version}), | 67 | testdrive-common (= ${source:Version}), |
1694 | 68 | python-gtk2, | 68 | python-xdg, |
1695 | 69 | python-notify, | 69 | python-gobject, |
1696 | 70 | python-xdg, | 70 | gir1.2-appindicator3-0.1, |
1697 | 71 | python-indicate, | 71 | gir1.2-gtk-3.0, |
1698 | 72 | python-launchpad-integration | 72 | gir1.2-launchpad-integration-3.0, |
1699 | 73 | gir1.2-indicate-0.6, | ||
1700 | 74 | gir1.2-notify-0.7 | ||
1701 | 73 | Description: run the daily Ubuntu ISO in a virtual machine (GTK Front-end) | 75 | Description: run the daily Ubuntu ISO in a virtual machine (GTK Front-end) |
1702 | 74 | Testdrive helps you download and run the daily Ubuntu development ISO | 76 | Testdrive helps you download and run the daily Ubuntu development ISO |
1703 | 75 | in a virtual machine on your local hardware. | 77 | in a virtual machine on your local hardware. |
1704 | @@ -80,4 +82,4 @@ | |||
1705 | 80 | . | 82 | . |
1706 | 81 | Alternatively, you can use VirtualBox. | 83 | Alternatively, you can use VirtualBox. |
1707 | 82 | . | 84 | . |
1709 | 83 | This package contains the PyGTK Front-end for TestDrive. | 85 | This package contains the GTK Front-end for TestDrive. |
1710 | 84 | 86 | ||
1711 | === modified file 'po/testdrive.pot' | |||
1712 | --- po/testdrive.pot 2010-08-06 22:13:57 +0000 | |||
1713 | +++ po/testdrive.pot 2011-08-23 08:30:25 +0000 | |||
1714 | @@ -8,10 +8,11 @@ | |||
1715 | 8 | msgstr "" | 8 | msgstr "" |
1716 | 9 | "Project-Id-Version: PACKAGE VERSION\n" | 9 | "Project-Id-Version: PACKAGE VERSION\n" |
1717 | 10 | "Report-Msgid-Bugs-To: \n" | 10 | "Report-Msgid-Bugs-To: \n" |
1719 | 11 | "POT-Creation-Date: 2010-08-06 18:04-0400\n" | 11 | "POT-Creation-Date: 2011-08-19 02:37-0400\n" |
1720 | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" | 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
1721 | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" | 13 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
1722 | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" | 14 | "Language-Team: LANGUAGE <LL@li.org>\n" |
1723 | 15 | "Language: \n" | ||
1724 | 15 | "MIME-Version: 1.0\n" | 16 | "MIME-Version: 1.0\n" |
1725 | 16 | "Content-Type: text/plain; charset=CHARSET\n" | 17 | "Content-Type: text/plain; charset=CHARSET\n" |
1726 | 17 | "Content-Transfer-Encoding: 8bit\n" | 18 | "Content-Transfer-Encoding: 8bit\n" |
1727 | @@ -24,174 +25,43 @@ | |||
1728 | 24 | msgid "Test Drive an Ubuntu ISO" | 25 | msgid "Test Drive an Ubuntu ISO" |
1729 | 25 | msgstr "" | 26 | msgstr "" |
1730 | 26 | 27 | ||
1832 | 27 | #: ../data/ui/PreferencesTestdrivegtkDialog.ui.h:1 | 28 | #: ../bin/testdrive-gtk.py:48 |
1732 | 28 | msgid "<b>Architectures:</b>" | ||
1733 | 29 | msgstr "" | ||
1734 | 30 | |||
1735 | 31 | #: ../data/ui/PreferencesTestdrivegtkDialog.ui.h:2 | ||
1736 | 32 | msgid "<b>Cache:</b>" | ||
1737 | 33 | msgstr "" | ||
1738 | 34 | |||
1739 | 35 | #: ../data/ui/PreferencesTestdrivegtkDialog.ui.h:3 | ||
1740 | 36 | msgid "<b>Data Paths</b>" | ||
1741 | 37 | msgstr "" | ||
1742 | 38 | |||
1743 | 39 | #: ../data/ui/PreferencesTestdrivegtkDialog.ui.h:4 | ||
1744 | 40 | msgid "<b>Disk Size:</b>" | ||
1745 | 41 | msgstr "" | ||
1746 | 42 | |||
1747 | 43 | #: ../data/ui/PreferencesTestdrivegtkDialog.ui.h:5 | ||
1748 | 44 | msgid "<b>GB</b>" | ||
1749 | 45 | msgstr "" | ||
1750 | 46 | |||
1751 | 47 | #: ../data/ui/PreferencesTestdrivegtkDialog.ui.h:6 | ||
1752 | 48 | msgid "<b>Hypervisor</b>" | ||
1753 | 49 | msgstr "" | ||
1754 | 50 | |||
1755 | 51 | #: ../data/ui/PreferencesTestdrivegtkDialog.ui.h:7 | ||
1756 | 52 | msgid "<b>ISO Cache:</b>" | ||
1757 | 53 | msgstr "" | ||
1758 | 54 | |||
1759 | 55 | #: ../data/ui/PreferencesTestdrivegtkDialog.ui.h:8 | ||
1760 | 56 | msgid "<b>ISO List Cache:</b>" | ||
1761 | 57 | msgstr "" | ||
1762 | 58 | |||
1763 | 59 | #: ../data/ui/PreferencesTestdrivegtkDialog.ui.h:9 | ||
1764 | 60 | msgid "<b>Image Cache:</b>" | ||
1765 | 61 | msgstr "" | ||
1766 | 62 | |||
1767 | 63 | #: ../data/ui/PreferencesTestdrivegtkDialog.ui.h:10 | ||
1768 | 64 | msgid "<b>KVM Args:</b>" | ||
1769 | 65 | msgstr "" | ||
1770 | 66 | |||
1771 | 67 | #: ../data/ui/PreferencesTestdrivegtkDialog.ui.h:11 | ||
1772 | 68 | msgid "<b>MB</b>" | ||
1773 | 69 | msgstr "" | ||
1774 | 70 | |||
1775 | 71 | #: ../data/ui/PreferencesTestdrivegtkDialog.ui.h:12 | ||
1776 | 72 | msgid "<b>Memory:</b>" | ||
1777 | 73 | msgstr "" | ||
1778 | 74 | |||
1779 | 75 | #: ../data/ui/PreferencesTestdrivegtkDialog.ui.h:13 | ||
1780 | 76 | msgid "<b>Processors:</b>" | ||
1781 | 77 | msgstr "" | ||
1782 | 78 | |||
1783 | 79 | #: ../data/ui/PreferencesTestdrivegtkDialog.ui.h:14 | ||
1784 | 80 | msgid "<b>Release:</b>" | ||
1785 | 81 | msgstr "" | ||
1786 | 82 | |||
1787 | 83 | #: ../data/ui/PreferencesTestdrivegtkDialog.ui.h:15 | ||
1788 | 84 | msgid "<b>Repository:</b>" | ||
1789 | 85 | msgstr "" | ||
1790 | 86 | |||
1791 | 87 | #: ../data/ui/PreferencesTestdrivegtkDialog.ui.h:16 | ||
1792 | 88 | msgid "<b>Ubuntu Flavors</b>" | ||
1793 | 89 | msgstr "" | ||
1794 | 90 | |||
1795 | 91 | #: ../data/ui/PreferencesTestdrivegtkDialog.ui.h:17 | ||
1796 | 92 | msgid "<b>Ubuntu Releases</b>" | ||
1797 | 93 | msgstr "" | ||
1798 | 94 | |||
1799 | 95 | #: ../data/ui/PreferencesTestdrivegtkDialog.ui.h:18 | ||
1800 | 96 | msgid "<b>Virtual Machine Options</b>" | ||
1801 | 97 | msgstr "" | ||
1802 | 98 | |||
1803 | 99 | #: ../data/ui/PreferencesTestdrivegtkDialog.ui.h:19 | ||
1804 | 100 | msgid "Clean" | ||
1805 | 101 | msgstr "" | ||
1806 | 102 | |||
1807 | 103 | #: ../data/ui/PreferencesTestdrivegtkDialog.ui.h:20 | ||
1808 | 104 | msgid "Distributions" | ||
1809 | 105 | msgstr "" | ||
1810 | 106 | |||
1811 | 107 | #: ../data/ui/PreferencesTestdrivegtkDialog.ui.h:21 | ||
1812 | 108 | msgid "Edubuntu" | ||
1813 | 109 | msgstr "" | ||
1814 | 110 | |||
1815 | 111 | #: ../data/ui/PreferencesTestdrivegtkDialog.ui.h:22 | ||
1816 | 112 | msgid "General" | ||
1817 | 113 | msgstr "" | ||
1818 | 114 | |||
1819 | 115 | #: ../data/ui/PreferencesTestdrivegtkDialog.ui.h:23 | ||
1820 | 116 | msgid "KVM" | ||
1821 | 117 | msgstr "" | ||
1822 | 118 | |||
1823 | 119 | #: ../data/ui/PreferencesTestdrivegtkDialog.ui.h:24 | ||
1824 | 120 | msgid "Kubuntu" | ||
1825 | 121 | msgstr "" | ||
1826 | 122 | |||
1827 | 123 | #: ../data/ui/PreferencesTestdrivegtkDialog.ui.h:25 | ||
1828 | 124 | msgid "Mythbuntu" | ||
1829 | 125 | msgstr "" | ||
1830 | 126 | |||
1831 | 127 | #: ../data/ui/PreferencesTestdrivegtkDialog.ui.h:26 ../bin/testdrive-gtk.py:47 | ||
1833 | 128 | msgid "Other" | 29 | msgid "Other" |
1834 | 129 | msgstr "" | 30 | msgstr "" |
1835 | 130 | 31 | ||
1836 | 131 | #: ../data/ui/PreferencesTestdrivegtkDialog.ui.h:27 | ||
1837 | 132 | #: ../testdrivegtk/PreferencesTestdrivegtkDialog.py:36 | ||
1838 | 133 | #: ../testdrivegtk/PreferencesTestdrivegtkDialog.py:37 | ||
1839 | 134 | msgid "Other..." | ||
1840 | 135 | msgstr "" | ||
1841 | 136 | |||
1842 | 137 | #: ../data/ui/PreferencesTestdrivegtkDialog.ui.h:28 | ||
1843 | 138 | msgid "Parallels" | ||
1844 | 139 | msgstr "" | ||
1845 | 140 | |||
1846 | 141 | #: ../data/ui/PreferencesTestdrivegtkDialog.ui.h:29 | ||
1847 | 142 | msgid "Ubuntu" | ||
1848 | 143 | msgstr "" | ||
1849 | 144 | |||
1850 | 145 | #: ../data/ui/PreferencesTestdrivegtkDialog.ui.h:30 | ||
1851 | 146 | msgid "Ubuntu Studio" | ||
1852 | 147 | msgstr "" | ||
1853 | 148 | |||
1854 | 149 | #: ../data/ui/PreferencesTestdrivegtkDialog.ui.h:31 | ||
1855 | 150 | msgid "Update" | ||
1856 | 151 | msgstr "" | ||
1857 | 152 | |||
1858 | 153 | #: ../data/ui/PreferencesTestdrivegtkDialog.ui.h:32 | ||
1859 | 154 | msgid "VirtualBox" | ||
1860 | 155 | msgstr "" | ||
1861 | 156 | |||
1862 | 157 | #: ../data/ui/PreferencesTestdrivegtkDialog.ui.h:33 | ||
1863 | 158 | msgid "Virtualization" | ||
1864 | 159 | msgstr "" | ||
1865 | 160 | |||
1866 | 161 | #: ../data/ui/PreferencesTestdrivegtkDialog.ui.h:34 | ||
1867 | 162 | msgid "Xubuntu" | ||
1868 | 163 | msgstr "" | ||
1869 | 164 | |||
1870 | 165 | #: ../data/ui/PreferencesTestdrivegtkDialog.ui.h:35 | ||
1871 | 166 | msgid "amd64" | ||
1872 | 167 | msgstr "" | ||
1873 | 168 | |||
1874 | 169 | #: ../data/ui/PreferencesTestdrivegtkDialog.ui.h:36 | ||
1875 | 170 | msgid "i386" | ||
1876 | 171 | msgstr "" | ||
1877 | 172 | |||
1878 | 173 | #. ################################################################## | 32 | #. ################################################################## |
1879 | 174 | #. ####### Obtaining the settings from the Preferences Class ######## | 33 | #. ####### Obtaining the settings from the Preferences Class ######## |
1880 | 175 | #. ################################################################## | 34 | #. ################################################################## |
1882 | 176 | #: ../bin/testdrive-gtk.py:136 | 35 | #: ../bin/testdrive-gtk.py:157 |
1883 | 177 | msgid "Instancing Preferences..." | 36 | msgid "Instancing Preferences..." |
1884 | 178 | msgstr "" | 37 | msgstr "" |
1885 | 179 | 38 | ||
1887 | 180 | #: ../bin/testdrive-gtk.py:150 | 39 | #: ../bin/testdrive-gtk.py:240 |
1888 | 40 | #, python-format | ||
1889 | 41 | msgid "" | ||
1890 | 42 | "Checking available ISOs at the ISO tracker [http://iso.qa.ubuntu.com] every " | ||
1891 | 43 | "%s seconds" | ||
1892 | 44 | msgstr "" | ||
1893 | 45 | |||
1894 | 46 | #: ../bin/testdrive-gtk.py:245 | ||
1895 | 47 | msgid "Unable to check the ISO tracker" | ||
1896 | 48 | msgstr "" | ||
1897 | 49 | |||
1898 | 50 | #: ../bin/testdrive-gtk.py:283 | ||
1899 | 181 | #, python-format | 51 | #, python-format |
1900 | 182 | msgid "<b>Release:</b> %s" | 52 | msgid "<b>Release:</b> %s" |
1901 | 183 | msgstr "" | 53 | msgstr "" |
1902 | 184 | 54 | ||
1904 | 185 | #: ../bin/testdrive-gtk.py:151 | 55 | #: ../bin/testdrive-gtk.py:284 |
1905 | 186 | #, python-format | 56 | #, python-format |
1906 | 187 | msgid "<b>ISO Repository:</b> http://%s.ubuntu.com/" | 57 | msgid "<b>ISO Repository:</b> http://%s.ubuntu.com/" |
1907 | 188 | msgstr "" | 58 | msgstr "" |
1908 | 189 | 59 | ||
1910 | 190 | #: ../bin/testdrive-gtk.py:177 | 60 | #: ../bin/testdrive-gtk.py:324 |
1911 | 191 | msgid "Add an ISO to TestDrive" | 61 | msgid "Add an ISO to TestDrive" |
1912 | 192 | msgstr "" | 62 | msgstr "" |
1913 | 193 | 63 | ||
1915 | 194 | #: ../bin/testdrive-gtk.py:193 | 64 | #: ../bin/testdrive-gtk.py:340 |
1916 | 195 | msgid "" | 65 | msgid "" |
1917 | 196 | "Unable to open because 'testdrive' is not installed.\n" | 66 | "Unable to open because 'testdrive' is not installed.\n" |
1918 | 197 | "Please install testdrive: \n" | 67 | "Please install testdrive: \n" |
1919 | @@ -199,18 +69,18 @@ | |||
1920 | 199 | "sudo apt-get install testdrive-cli" | 69 | "sudo apt-get install testdrive-cli" |
1921 | 200 | msgstr "" | 70 | msgstr "" |
1922 | 201 | 71 | ||
1924 | 202 | #: ../bin/testdrive-gtk.py:197 | 72 | #: ../bin/testdrive-gtk.py:344 |
1925 | 203 | msgid "TestDrive an ISO or Disk Image" | 73 | msgid "TestDrive an ISO or Disk Image" |
1926 | 204 | msgstr "" | 74 | msgstr "" |
1927 | 205 | 75 | ||
1928 | 206 | #. ################################################################## | 76 | #. ################################################################## |
1929 | 207 | #. ## Obtains the command for the Sync process based on Protocol #### | 77 | #. ## Obtains the command for the Sync process based on Protocol #### |
1930 | 208 | #. ################################################################## | 78 | #. ################################################################## |
1932 | 209 | #: ../bin/testdrive-gtk.py:272 | 79 | #: ../bin/testdrive-gtk.py:419 |
1933 | 210 | msgid "Obtaining the sync protocol for the specified ISO..." | 80 | msgid "Obtaining the sync protocol for the specified ISO..." |
1934 | 211 | msgstr "" | 81 | msgstr "" |
1935 | 212 | 82 | ||
1937 | 213 | #: ../bin/testdrive-gtk.py:275 ../bin/testdrive.py:325 | 83 | #: ../bin/testdrive-gtk.py:422 ../bin/testdrive.py:375 |
1938 | 214 | #, python-format | 84 | #, python-format |
1939 | 215 | msgid "Unsupported protocol [%s]" | 85 | msgid "Unsupported protocol [%s]" |
1940 | 216 | msgstr "" | 86 | msgstr "" |
1941 | @@ -219,28 +89,28 @@ | |||
1942 | 219 | #. #### Obtains the Virtualization Method, if not shows warnings #### | 89 | #. #### Obtains the Virtualization Method, if not shows warnings #### |
1943 | 220 | #. ################################################################## | 90 | #. ################################################################## |
1944 | 221 | #. Choose the virtualization engine | 91 | #. Choose the virtualization engine |
1946 | 222 | #: ../bin/testdrive-gtk.py:286 | 92 | #: ../bin/testdrive-gtk.py:433 |
1947 | 223 | msgid "Obtaining the virtualization method..." | 93 | msgid "Obtaining the virtualization method..." |
1948 | 224 | msgstr "" | 94 | msgstr "" |
1949 | 225 | 95 | ||
1951 | 226 | #: ../bin/testdrive-gtk.py:290 | 96 | #: ../bin/testdrive-gtk.py:437 |
1952 | 227 | msgid "Your CPU supports KVM acceleration; please install KVM" | 97 | msgid "Your CPU supports KVM acceleration; please install KVM" |
1953 | 228 | msgstr "" | 98 | msgstr "" |
1954 | 229 | 99 | ||
1956 | 230 | #: ../bin/testdrive-gtk.py:291 | 100 | #: ../bin/testdrive-gtk.py:438 |
1957 | 231 | msgid "" | 101 | msgid "" |
1958 | 232 | "Your CPU supports KVM acceleration; please install KVM:\n" | 102 | "Your CPU supports KVM acceleration; please install KVM:\n" |
1959 | 233 | "\n" | 103 | "\n" |
1960 | 234 | "sudo apt-get install qemu-kvm" | 104 | "sudo apt-get install qemu-kvm" |
1961 | 235 | msgstr "" | 105 | msgstr "" |
1962 | 236 | 106 | ||
1964 | 237 | #: ../bin/testdrive-gtk.py:295 | 107 | #: ../bin/testdrive-gtk.py:442 |
1965 | 238 | msgid "" | 108 | msgid "" |
1966 | 239 | "Your CPU does not support acceleration; run kvm-ok for more information; " | 109 | "Your CPU does not support acceleration; run kvm-ok for more information; " |
1967 | 240 | "then install VBox" | 110 | "then install VBox" |
1968 | 241 | msgstr "" | 111 | msgstr "" |
1969 | 242 | 112 | ||
1971 | 243 | #: ../bin/testdrive-gtk.py:296 | 113 | #: ../bin/testdrive-gtk.py:443 |
1972 | 244 | msgid "" | 114 | msgid "" |
1973 | 245 | "Your CPU does not support acceleration; run kvm-ok for more information;\n" | 115 | "Your CPU does not support acceleration; run kvm-ok for more information;\n" |
1974 | 246 | "then please install VirtualBox\n" | 116 | "then please install VirtualBox\n" |
1975 | @@ -249,142 +119,120 @@ | |||
1976 | 249 | "sudo apt-get install virtualbox-ose" | 119 | "sudo apt-get install virtualbox-ose" |
1977 | 250 | msgstr "" | 120 | msgstr "" |
1978 | 251 | 121 | ||
1979 | 252 | #: ../bin/testdrive-gtk.py:303 ../bin/testdrive.py:257 | ||
1980 | 253 | msgid "Using KVM for virtual machine hosting..." | ||
1981 | 254 | msgstr "" | ||
1982 | 255 | |||
1983 | 256 | #: ../bin/testdrive-gtk.py:306 ../bin/testdrive.py:260 | ||
1984 | 257 | msgid "Using VirtualBox for virtual machine hosting..." | ||
1985 | 258 | msgstr "" | ||
1986 | 259 | |||
1987 | 260 | #: ../bin/testdrive-gtk.py:309 ../bin/testdrive.py:263 | ||
1988 | 261 | msgid "Using Parallels Desktop for virtual machine hosting..." | ||
1989 | 262 | msgstr "" | ||
1990 | 263 | |||
1991 | 264 | #. ################################################################## | 122 | #. ################################################################## |
1992 | 265 | #. ### Obtains the list of ISO available from the iso list cache #### | 123 | #. ### Obtains the list of ISO available from the iso list cache #### |
1993 | 266 | #. ################################################################## | 124 | #. ################################################################## |
1994 | 267 | #. Try to retrieve the ISO list from the cache | 125 | #. Try to retrieve the ISO list from the cache |
1996 | 268 | #: ../bin/testdrive-gtk.py:318 ../bin/testdrive.py:298 | 126 | #: ../bin/testdrive-gtk.py:456 ../bin/testdrive.py:348 |
1997 | 269 | msgid "Retrieving the Ubuntu ISO list from cache..." | 127 | msgid "Retrieving the Ubuntu ISO list from cache..." |
1998 | 270 | msgstr "" | 128 | msgstr "" |
1999 | 271 | 129 | ||
2002 | 272 | #: ../bin/testdrive-gtk.py:322 ../bin/testdrive-gtk.py:323 | 130 | #: ../bin/testdrive-gtk.py:460 ../bin/testdrive-gtk.py:461 |
2003 | 273 | #: ../bin/testdrive.py:302 | 131 | #: ../bin/testdrive.py:352 |
2004 | 274 | msgid "Unable to retrieve the Ubuntu ISO list from cache..." | 132 | msgid "Unable to retrieve the Ubuntu ISO list from cache..." |
2005 | 275 | msgstr "" | 133 | msgstr "" |
2006 | 276 | 134 | ||
2010 | 277 | #. lb_cache = gtk.Label("CACHE: [%s] %s" % (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(os.path.getmtime(path))), filename)) | 135 | #: ../bin/testdrive-gtk.py:581 ../bin/testdrive-gtk.py:616 |
2011 | 278 | #: ../bin/testdrive-gtk.py:441 ../bin/testdrive-gtk.py:476 | 136 | #: ../bin/testdrive-gtk.py:923 |
2009 | 279 | #: ../bin/testdrive-gtk.py:774 | ||
2012 | 280 | #, python-format | 137 | #, python-format |
2013 | 281 | msgid "<i> CACHE: [%s]</i>" | 138 | msgid "<i> CACHE: [%s]</i>" |
2014 | 282 | msgstr "" | 139 | msgstr "" |
2015 | 283 | 140 | ||
2018 | 284 | #: ../bin/testdrive-gtk.py:443 ../bin/testdrive-gtk.py:478 | 141 | #: ../bin/testdrive-gtk.py:583 ../bin/testdrive-gtk.py:618 |
2019 | 285 | #: ../bin/testdrive-gtk.py:776 | 142 | #: ../bin/testdrive-gtk.py:925 |
2020 | 286 | msgid "<i> CACHE: [empty]</i>" | 143 | msgid "<i> CACHE: [empty]</i>" |
2021 | 287 | msgstr "" | 144 | msgstr "" |
2022 | 288 | 145 | ||
2024 | 289 | #: ../bin/testdrive-gtk.py:506 | 146 | #: ../bin/testdrive-gtk.py:646 |
2025 | 290 | msgid "<b><i>There are no Other ISOs yet...</i></b>" | 147 | msgid "<b><i>There are no Other ISOs yet...</i></b>" |
2026 | 291 | msgstr "" | 148 | msgstr "" |
2027 | 292 | 149 | ||
2029 | 293 | #: ../bin/testdrive-gtk.py:509 | 150 | #: ../bin/testdrive-gtk.py:649 |
2030 | 294 | msgid "<b><i>There are no ISOs for this architecture yet...</i></b>" | 151 | msgid "<b><i>There are no ISOs for this architecture yet...</i></b>" |
2031 | 295 | msgstr "" | 152 | msgstr "" |
2032 | 296 | 153 | ||
2033 | 297 | #. Add Button | 154 | #. Add Button |
2035 | 298 | #: ../bin/testdrive-gtk.py:546 | 155 | #: ../bin/testdrive-gtk.py:683 |
2036 | 299 | msgid "Add ISO" | 156 | msgid "Add ISO" |
2037 | 300 | msgstr "" | 157 | msgstr "" |
2038 | 301 | 158 | ||
2039 | 302 | #. Create Buttons | 159 | #. Create Buttons |
2041 | 303 | #: ../bin/testdrive-gtk.py:554 | 160 | #: ../bin/testdrive-gtk.py:690 |
2042 | 304 | msgid "Create USB Disk" | 161 | msgid "Create USB Disk" |
2043 | 305 | msgstr "" | 162 | msgstr "" |
2044 | 306 | 163 | ||
2047 | 307 | #. bbox.add(button) | 164 | #: ../bin/testdrive-gtk.py:695 |
2046 | 308 | #: ../bin/testdrive-gtk.py:561 | ||
2048 | 309 | msgid "Sync" | 165 | msgid "Sync" |
2049 | 310 | msgstr "" | 166 | msgstr "" |
2050 | 311 | 167 | ||
2053 | 312 | #. bbox.add(button) | 168 | #: ../bin/testdrive-gtk.py:700 |
2052 | 313 | #: ../bin/testdrive-gtk.py:568 | ||
2054 | 314 | msgid "Launch" | 169 | msgid "Launch" |
2055 | 315 | msgstr "" | 170 | msgstr "" |
2056 | 316 | 171 | ||
2058 | 317 | #: ../bin/testdrive-gtk.py:639 | 172 | #: ../bin/testdrive-gtk.py:754 ../bin/testdrive.py:254 |
2059 | 173 | msgid "Using KVM for virtual machine hosting..." | ||
2060 | 174 | msgstr "" | ||
2061 | 175 | |||
2062 | 176 | #: ../bin/testdrive-gtk.py:757 ../bin/testdrive.py:256 | ||
2063 | 177 | msgid "Using VirtualBox for virtual machine hosting..." | ||
2064 | 178 | msgstr "" | ||
2065 | 179 | |||
2066 | 180 | #: ../bin/testdrive-gtk.py:760 ../bin/testdrive.py:258 | ||
2067 | 181 | msgid "Using Parallels Desktop for virtual machine hosting..." | ||
2068 | 182 | msgstr "" | ||
2069 | 183 | |||
2070 | 184 | #: ../bin/testdrive-gtk.py:814 | ||
2071 | 318 | msgid "sync_iso: Thread is executing..." | 185 | msgid "sync_iso: Thread is executing..." |
2072 | 319 | msgstr "" | 186 | msgstr "" |
2073 | 320 | 187 | ||
2075 | 321 | #: ../bin/testdrive-gtk.py:661 | 188 | #: ../bin/testdrive-gtk.py:835 |
2076 | 322 | msgid "launch_iso: Thread is executing or syncing..." | 189 | msgid "launch_iso: Thread is executing or syncing..." |
2077 | 323 | msgstr "" | 190 | msgstr "" |
2078 | 324 | 191 | ||
2080 | 325 | #: ../bin/testdrive-gtk.py:668 | 192 | #: ../bin/testdrive-gtk.py:842 |
2081 | 326 | msgid "" | 193 | msgid "" |
2082 | 327 | "No ISO has been selected.\n" | 194 | "No ISO has been selected.\n" |
2083 | 328 | "\n" | 195 | "\n" |
2084 | 329 | "Please select an ISO to create an USB Startup Disk." | 196 | "Please select an ISO to create an USB Startup Disk." |
2085 | 330 | msgstr "" | 197 | msgstr "" |
2086 | 331 | 198 | ||
2088 | 332 | #: ../bin/testdrive-gtk.py:673 | 199 | #: ../bin/testdrive-gtk.py:847 |
2089 | 333 | msgid "" | 200 | msgid "" |
2090 | 334 | "More than 1 ISO has been selected.\n" | 201 | "More than 1 ISO has been selected.\n" |
2091 | 335 | "\n" | 202 | "\n" |
2092 | 336 | "Please select only 1 ISO to continue!" | 203 | "Please select only 1 ISO to continue!" |
2093 | 337 | msgstr "" | 204 | msgstr "" |
2094 | 338 | 205 | ||
2096 | 339 | #: ../bin/testdrive-gtk.py:678 | 206 | #: ../bin/testdrive-gtk.py:852 |
2097 | 340 | msgid "" | 207 | msgid "" |
2098 | 341 | "The specified ISO does not exist!\n" | 208 | "The specified ISO does not exist!\n" |
2099 | 342 | "\n" | 209 | "\n" |
2100 | 343 | "Please, synchronize the ISO to continue." | 210 | "Please, synchronize the ISO to continue." |
2101 | 344 | msgstr "" | 211 | msgstr "" |
2102 | 345 | 212 | ||
2104 | 346 | #: ../bin/testdrive-gtk.py:685 | 213 | #: ../bin/testdrive-gtk.py:859 |
2105 | 347 | msgid "Unable to launch USB Creator!" | 214 | msgid "Unable to launch USB Creator!" |
2106 | 348 | msgstr "" | 215 | msgstr "" |
2107 | 349 | 216 | ||
2146 | 350 | #. ################################################################## | 217 | #: ../bin/testdrive-gtk.py:885 |
2147 | 351 | #. ####### Prepare the VM to launch and return launch command ####### | 218 | #, python-format |
2148 | 352 | #. ################################################################## | 219 | msgid " Downloading %s (0%%)" |
2149 | 353 | #: ../bin/testdrive-gtk.py:692 | 220 | msgstr "" |
2150 | 354 | msgid "Validating Virtualization Method..." | 221 | |
2151 | 355 | msgstr "" | 222 | #: ../bin/testdrive-gtk.py:905 |
2152 | 356 | 223 | #, python-format | |
2153 | 357 | #: ../bin/testdrive-gtk.py:696 ../bin/testdrive-gtk.py:697 | 224 | msgid " Downloading %s (%s%%)" |
2154 | 358 | #: ../bin/testdrive.py:339 | 225 | msgstr "" |
2155 | 359 | #, python-format | 226 | |
2156 | 360 | msgid "Unable to validate Virtualization Method [%s]" | 227 | #: ../bin/testdrive-gtk.py:954 |
2157 | 361 | msgstr "" | 228 | msgid " Configuring Virtual Machine..." |
2158 | 362 | 229 | msgstr "" | |
2159 | 363 | #. self.on_info_dialog("Setting up Virtual Machine...") | 230 | |
2160 | 364 | #: ../bin/testdrive-gtk.py:700 ../bin/testdrive.py:341 | 231 | #: ../bin/testdrive-gtk.py:960 |
2161 | 365 | msgid "Setting up Virtual Machine..." | 232 | msgid " Running Virtual Machine..." |
2162 | 366 | msgstr "" | 233 | msgstr "" |
2163 | 367 | 234 | ||
2164 | 368 | #: ../bin/testdrive-gtk.py:704 ../bin/testdrive-gtk.py:705 | 235 | #: ../bin/testdrive-gtk.py:1009 |
2127 | 369 | #: ../bin/testdrive.py:348 | ||
2128 | 370 | msgid "Unable to setup Virtual Machine" | ||
2129 | 371 | msgstr "" | ||
2130 | 372 | |||
2131 | 373 | #. self.on_info_dialog("Launching Virtual Machine...") | ||
2132 | 374 | #: ../bin/testdrive-gtk.py:708 | ||
2133 | 375 | msgid "Obtaining Virtual Machine launch command..." | ||
2134 | 376 | msgstr "" | ||
2135 | 377 | |||
2136 | 378 | #: ../bin/testdrive-gtk.py:735 | ||
2137 | 379 | #, python-format | ||
2138 | 380 | msgid "Downloading %s..." | ||
2139 | 381 | msgstr "" | ||
2140 | 382 | |||
2141 | 383 | #: ../bin/testdrive-gtk.py:797 | ||
2142 | 384 | msgid " Running VM..." | ||
2143 | 385 | msgstr "" | ||
2144 | 386 | |||
2145 | 387 | #: ../bin/testdrive-gtk.py:853 | ||
2165 | 388 | msgid "Show debug messages" | 236 | msgid "Show debug messages" |
2166 | 389 | msgstr "" | 237 | msgstr "" |
2167 | 390 | 238 | ||
2168 | @@ -445,111 +293,131 @@ | |||
2169 | 445 | msgid "WARNING: %s" | 293 | msgid "WARNING: %s" |
2170 | 446 | msgstr "" | 294 | msgstr "" |
2171 | 447 | 295 | ||
2173 | 448 | #: ../bin/testdrive.py:90 ../testdrivegtk/AddOtherTestdrivegtkDialog.py:155 | 296 | #: ../bin/testdrive.py:92 ../testdrivegtk/AddOtherTestdrivegtkDialog.py:155 |
2174 | 449 | #, python-format | 297 | #, python-format |
2175 | 450 | msgid "Invalid ISO URL [%s]" | 298 | msgid "Invalid ISO URL [%s]" |
2176 | 451 | msgstr "" | 299 | msgstr "" |
2177 | 452 | 300 | ||
2179 | 453 | #: ../bin/testdrive.py:108 | 301 | #: ../bin/testdrive.py:134 |
2180 | 454 | #, python-format | 302 | #, python-format |
2181 | 455 | msgid "" | 303 | msgid "" |
2182 | 456 | "Command failed\n" | 304 | "Command failed\n" |
2183 | 457 | " `%s`" | 305 | " `%s`" |
2184 | 458 | msgstr "" | 306 | msgstr "" |
2185 | 459 | 307 | ||
2187 | 460 | #: ../bin/testdrive.py:163 | 308 | #: ../bin/testdrive.py:141 |
2188 | 309 | msgid "Launching Virtual Machine using CURSES as screen mode" | ||
2189 | 310 | msgstr "" | ||
2190 | 311 | |||
2191 | 312 | #: ../bin/testdrive.py:186 | ||
2192 | 461 | msgid "user configuration file (overriding default values" | 313 | msgid "user configuration file (overriding default values" |
2193 | 462 | msgstr "" | 314 | msgstr "" |
2194 | 463 | 315 | ||
2196 | 464 | #: ../bin/testdrive.py:165 | 316 | #: ../bin/testdrive.py:188 |
2197 | 465 | msgid "print version and system data, and exit" | 317 | msgid "print version and system data, and exit" |
2198 | 466 | msgstr "" | 318 | msgstr "" |
2199 | 467 | 319 | ||
2201 | 468 | #: ../bin/testdrive.py:167 | 320 | #: ../bin/testdrive.py:190 |
2202 | 469 | msgid "get ISO image from this URL location" | 321 | msgid "get ISO image from this URL location" |
2203 | 470 | msgstr "" | 322 | msgstr "" |
2204 | 471 | 323 | ||
2206 | 472 | #: ../bin/testdrive.py:169 | 324 | #: ../bin/testdrive.py:192 |
2207 | 473 | msgid "try to launch usb-creator for further testing" | 325 | msgid "try to launch usb-creator for further testing" |
2208 | 474 | msgstr "" | 326 | msgstr "" |
2209 | 475 | 327 | ||
2211 | 476 | #: ../bin/testdrive.py:171 | 328 | #: ../bin/testdrive.py:194 |
2212 | 477 | msgid "hardcode Ubuntu RELEASE codename" | 329 | msgid "hardcode Ubuntu RELEASE codename" |
2213 | 478 | msgstr "" | 330 | msgstr "" |
2214 | 479 | 331 | ||
2216 | 480 | #: ../bin/testdrive.py:173 | 332 | #: ../bin/testdrive.py:196 |
2217 | 481 | msgid "" | 333 | msgid "" |
2218 | 482 | "hardcode Ubuntu flavor. Available Flavors:\n" | 334 | "hardcode Ubuntu flavor. Available Flavors:\n" |
2223 | 483 | "\t\t ubuntu/kubuntu/xubuntu/edubuntu/mythbuntu/ubuntustudio" | 335 | "\t\t ubuntu/kubuntu/xubuntu/edubuntu/mythbuntu/ubuntustudio/lubuntu" |
2224 | 484 | msgstr "" | 336 | msgstr "" |
2225 | 485 | 337 | ||
2226 | 486 | #: ../bin/testdrive.py:177 | 338 | #: ../bin/testdrive.py:199 |
2227 | 339 | msgid "" | ||
2228 | 340 | "hardcode Ubuntu repository from where to obtain ISOs:\n" | ||
2229 | 341 | "\t\t releases/cdimage/uec-daily/uec-releases" | ||
2230 | 342 | msgstr "" | ||
2231 | 343 | |||
2232 | 344 | #: ../bin/testdrive.py:202 | ||
2233 | 345 | msgid "displays the Virtual Machine in the shell. Only valid for UEC images." | ||
2234 | 346 | msgstr "" | ||
2235 | 347 | |||
2236 | 348 | #: ../bin/testdrive.py:207 | ||
2237 | 487 | #, python-format | 349 | #, python-format |
2238 | 488 | msgid "version passed: %s" | 350 | msgid "version passed: %s" |
2239 | 489 | msgstr "" | 351 | msgstr "" |
2240 | 490 | 352 | ||
2242 | 491 | #: ../bin/testdrive.py:181 | 353 | #: ../bin/testdrive.py:211 |
2243 | 492 | #, python-format | 354 | #, python-format |
2244 | 493 | msgid "testdrive %s" | 355 | msgid "testdrive %s" |
2245 | 494 | msgstr "" | 356 | msgstr "" |
2246 | 495 | 357 | ||
2248 | 496 | #: ../bin/testdrive.py:204 | 358 | #: ../bin/testdrive.py:223 |
2249 | 497 | #, python-format | 359 | #, python-format |
2250 | 498 | msgid "config passed: %s" | 360 | msgid "config passed: %s" |
2251 | 499 | msgstr "" | 361 | msgstr "" |
2252 | 500 | 362 | ||
2254 | 501 | #: ../bin/testdrive.py:214 | 363 | #: ../bin/testdrive.py:233 |
2255 | 502 | #, python-format | 364 | #, python-format |
2256 | 503 | msgid "Trying config in %s" | 365 | msgid "Trying config in %s" |
2257 | 504 | msgstr "" | 366 | msgstr "" |
2258 | 505 | 367 | ||
2260 | 506 | #: ../bin/testdrive.py:218 | 368 | #: ../bin/testdrive.py:237 |
2261 | 507 | #, python-format | 369 | #, python-format |
2262 | 508 | msgid "Using configuration in %s" | 370 | msgid "Using configuration in %s" |
2263 | 509 | msgstr "" | 371 | msgstr "" |
2264 | 510 | 372 | ||
2266 | 511 | #: ../bin/testdrive.py:220 | 373 | #: ../bin/testdrive.py:239 |
2267 | 512 | #, python-format | 374 | #, python-format |
2268 | 513 | msgid "Invalid configuration [%s]" | 375 | msgid "Invalid configuration [%s]" |
2269 | 514 | msgstr "" | 376 | msgstr "" |
2270 | 515 | 377 | ||
2271 | 378 | #: ../bin/testdrive.py:247 | ||
2272 | 379 | msgid "" | ||
2273 | 380 | "Your CPU supports KVM acceleration; please install KVM:\n" | ||
2274 | 381 | "\t\t\tsudo apt-get install qemu-kvm" | ||
2275 | 382 | msgstr "" | ||
2276 | 383 | |||
2277 | 516 | #: ../bin/testdrive.py:250 | 384 | #: ../bin/testdrive.py:250 |
2278 | 517 | msgid "" | 385 | msgid "" |
2279 | 518 | "Your CPU supports KVM acceleration; please install KVM:\n" | ||
2280 | 519 | "\t\t\tsudo apt-get install qemu-kvm" | ||
2281 | 520 | msgstr "" | ||
2282 | 521 | |||
2283 | 522 | #: ../bin/testdrive.py:253 | ||
2284 | 523 | msgid "" | ||
2285 | 524 | "Your CPU does not support acceleration; run kvm-ok for more information; " | 386 | "Your CPU does not support acceleration; run kvm-ok for more information; " |
2286 | 525 | "then please install VirtualBox:\n" | 387 | "then please install VirtualBox:\n" |
2287 | 526 | "\t\t\tkvm-ok\n" | 388 | "\t\t\tkvm-ok\n" |
2288 | 527 | "\t\t\tsudo apt-get install virtualbox-ose" | 389 | "\t\t\tsudo apt-get install virtualbox-ose" |
2289 | 528 | msgstr "" | 390 | msgstr "" |
2290 | 529 | 391 | ||
2293 | 530 | #: ../bin/testdrive.py:285 | 392 | #: ../bin/testdrive.py:274 |
2294 | 531 | #: ../testdrivegtk/PreferencesTestdrivegtkDialog.py:321 | 393 | msgid "" |
2295 | 394 | "Launching UEC images only works with KVM. Please switch your virtualization " | ||
2296 | 395 | "method..." | ||
2297 | 396 | msgstr "" | ||
2298 | 397 | |||
2299 | 398 | #: ../bin/testdrive.py:335 | ||
2300 | 399 | #: ../testdrivegtk/PreferencesTestdrivegtkDialog.py:329 | ||
2301 | 532 | #, python-format | 400 | #, python-format |
2302 | 533 | msgid "Obtaining Ubuntu ISO list from %s..." | 401 | msgid "Obtaining Ubuntu ISO list from %s..." |
2303 | 534 | msgstr "" | 402 | msgstr "" |
2304 | 535 | 403 | ||
2306 | 536 | #: ../bin/testdrive.py:289 | 404 | #: ../bin/testdrive.py:339 |
2307 | 537 | #, python-format | 405 | #, python-format |
2308 | 538 | msgid "ERROR: Could not obtain the Ubuntu ISO list from %s..." | 406 | msgid "ERROR: Could not obtain the Ubuntu ISO list from %s..." |
2309 | 539 | msgstr "" | 407 | msgstr "" |
2310 | 540 | 408 | ||
2313 | 541 | #: ../bin/testdrive.py:295 | 409 | #: ../bin/testdrive.py:345 |
2314 | 542 | #: ../testdrivegtk/PreferencesTestdrivegtkDialog.py:333 | 410 | #: ../testdrivegtk/PreferencesTestdrivegtkDialog.py:341 |
2315 | 543 | msgid "Unable to update the Ubuntu ISO list cache..." | 411 | msgid "Unable to update the Ubuntu ISO list cache..." |
2316 | 544 | msgstr "" | 412 | msgstr "" |
2317 | 545 | 413 | ||
2318 | 546 | #. BUG: should check disk space availability in CACHE dir | 414 | #. BUG: should check disk space availability in CACHE dir |
2319 | 547 | #. Update the cache | 415 | #. Update the cache |
2321 | 548 | #: ../bin/testdrive.py:321 | 416 | #: ../bin/testdrive.py:371 |
2322 | 549 | msgid "Syncing the specified ISO..." | 417 | msgid "Syncing the specified ISO..." |
2323 | 550 | msgstr "" | 418 | msgstr "" |
2324 | 551 | 419 | ||
2326 | 552 | #: ../bin/testdrive.py:328 ../testdrivegtk/AddOtherTestdrivegtkDialog.py:167 | 420 | #: ../bin/testdrive.py:378 ../testdrivegtk/AddOtherTestdrivegtkDialog.py:167 |
2327 | 553 | #, python-format | 421 | #, python-format |
2328 | 554 | msgid "ISO not found at [%s]" | 422 | msgid "ISO not found at [%s]" |
2329 | 555 | msgstr "" | 423 | msgstr "" |
2330 | @@ -557,105 +425,58 @@ | |||
2331 | 557 | #. ################## | 425 | #. ################## |
2332 | 558 | #. # Launch the VM ## | 426 | #. # Launch the VM ## |
2333 | 559 | #. ################## | 427 | #. ################## |
2335 | 560 | #: ../bin/testdrive.py:335 | 428 | #: ../bin/testdrive.py:401 |
2336 | 561 | msgid "Validating Virtualization Method...." | 429 | msgid "Validating Virtualization Method...." |
2337 | 562 | msgstr "" | 430 | msgstr "" |
2338 | 563 | 431 | ||
2340 | 564 | #: ../bin/testdrive.py:350 | 432 | #: ../bin/testdrive.py:405 |
2341 | 433 | #, python-format | ||
2342 | 434 | msgid "Unable to validate Virtualization Method [%s]" | ||
2343 | 435 | msgstr "" | ||
2344 | 436 | |||
2345 | 437 | #: ../bin/testdrive.py:407 | ||
2346 | 438 | msgid "Setting up Virtual Machine..." | ||
2347 | 439 | msgstr "" | ||
2348 | 440 | |||
2349 | 441 | #: ../bin/testdrive.py:411 | ||
2350 | 442 | msgid "Unable to setup Virtual Machine" | ||
2351 | 443 | msgstr "" | ||
2352 | 444 | |||
2353 | 445 | #: ../bin/testdrive.py:413 | ||
2354 | 565 | msgid "Launching Virtual Machine..." | 446 | msgid "Launching Virtual Machine..." |
2355 | 566 | msgstr "" | 447 | msgstr "" |
2356 | 567 | 448 | ||
2358 | 568 | #: ../bin/testdrive.py:355 | 449 | #: ../bin/testdrive.py:421 |
2359 | 569 | msgid "Unable to launch Virtual Machine" | 450 | msgid "Unable to launch Virtual Machine" |
2360 | 570 | msgstr "" | 451 | msgstr "" |
2361 | 571 | 452 | ||
2363 | 572 | #: ../bin/testdrive.py:359 | 453 | #: ../bin/testdrive.py:425 |
2364 | 573 | #, python-format | 454 | #, python-format |
2365 | 574 | msgid "Cleaning up disk image [%s]..." | 455 | msgid "Cleaning up disk image [%s]..." |
2366 | 575 | msgstr "" | 456 | msgstr "" |
2367 | 576 | 457 | ||
2368 | 577 | #. Remind about cache cleanup | 458 | #. Remind about cache cleanup |
2370 | 578 | #: ../bin/testdrive.py:362 | 459 | #: ../bin/testdrive.py:428 |
2371 | 579 | msgid "You may wish to clean up the cache directory..." | 460 | msgid "You may wish to clean up the cache directory..." |
2372 | 580 | msgstr "" | 461 | msgstr "" |
2373 | 581 | 462 | ||
2375 | 582 | #: ../bin/testdrive.py:363 | 463 | #: ../bin/testdrive.py:429 |
2376 | 583 | #, python-format | 464 | #, python-format |
2377 | 584 | msgid " %s and %s" | 465 | msgid " %s and %s" |
2378 | 585 | msgstr "" | 466 | msgstr "" |
2379 | 586 | 467 | ||
2381 | 587 | #: ../bin/testdrive.py:370 | 468 | #: ../bin/testdrive.py:436 |
2382 | 588 | msgid "" | 469 | msgid "" |
2383 | 589 | "\n" | 470 | "\n" |
2384 | 590 | "Launch USB Startup Disk Creator for further testing of this ISO? [y/N] " | 471 | "Launch USB Startup Disk Creator for further testing of this ISO? [y/N] " |
2385 | 591 | msgstr "" | 472 | msgstr "" |
2386 | 592 | 473 | ||
2388 | 593 | #: ../bin/testdrive.py:374 | 474 | #: ../bin/testdrive.py:440 |
2389 | 594 | msgid "" | 475 | msgid "" |
2390 | 595 | "\n" | 476 | "\n" |
2391 | 596 | "Press <enter> to exit..." | 477 | "Press <enter> to exit..." |
2392 | 597 | msgstr "" | 478 | msgstr "" |
2393 | 598 | 479 | ||
2394 | 599 | #: ../data/ui/TestdrivegtkWindow.ui.h:1 | ||
2395 | 600 | msgid "ISO Repository" | ||
2396 | 601 | msgstr "" | ||
2397 | 602 | |||
2398 | 603 | #: ../data/ui/TestdrivegtkWindow.ui.h:2 | ||
2399 | 604 | msgid "TestDrive Front-end" | ||
2400 | 605 | msgstr "" | ||
2401 | 606 | |||
2402 | 607 | #: ../data/ui/TestdrivegtkWindow.ui.h:3 | ||
2403 | 608 | msgid "Ubuntu Release" | ||
2404 | 609 | msgstr "" | ||
2405 | 610 | |||
2406 | 611 | #: ../data/ui/TestdrivegtkWindow.ui.h:4 | ||
2407 | 612 | msgid "_Edit" | ||
2408 | 613 | msgstr "" | ||
2409 | 614 | |||
2410 | 615 | #: ../data/ui/TestdrivegtkWindow.ui.h:5 | ||
2411 | 616 | msgid "_File" | ||
2412 | 617 | msgstr "" | ||
2413 | 618 | |||
2414 | 619 | #: ../data/ui/TestdrivegtkWindow.ui.h:6 | ||
2415 | 620 | msgid "_Help" | ||
2416 | 621 | msgstr "" | ||
2417 | 622 | |||
2418 | 623 | #: ../data/ui/TestdrivegtkWindow.ui.h:7 | ||
2419 | 624 | msgid "_View" | ||
2420 | 625 | msgstr "" | ||
2421 | 626 | |||
2422 | 627 | #: ../data/ui/AddOtherTestdrivegtkDialog.ui.h:1 | ||
2423 | 628 | msgid "<b>Description:</b>" | ||
2424 | 629 | msgstr "" | ||
2425 | 630 | |||
2426 | 631 | #: ../data/ui/AddOtherTestdrivegtkDialog.ui.h:2 | ||
2427 | 632 | msgid "<b>Sync Protocol:</b>" | ||
2428 | 633 | msgstr "" | ||
2429 | 634 | |||
2430 | 635 | #: ../data/ui/AddOtherTestdrivegtkDialog.ui.h:3 | ||
2431 | 636 | msgid "<b>URL:</b>" | ||
2432 | 637 | msgstr "" | ||
2433 | 638 | |||
2434 | 639 | #: ../data/ui/AddOtherTestdrivegtkDialog.ui.h:4 | ||
2435 | 640 | msgid "Add" | ||
2436 | 641 | msgstr "" | ||
2437 | 642 | |||
2438 | 643 | #: ../data/ui/AddOtherTestdrivegtkDialog.ui.h:5 | ||
2439 | 644 | msgid "Cancel" | ||
2440 | 645 | msgstr "" | ||
2441 | 646 | |||
2442 | 647 | #: ../data/ui/AddOtherTestdrivegtkDialog.ui.h:6 | ||
2443 | 648 | msgid "Delete" | ||
2444 | 649 | msgstr "" | ||
2445 | 650 | |||
2446 | 651 | #: ../data/ui/AddOtherTestdrivegtkDialog.ui.h:7 | ||
2447 | 652 | msgid "Edit" | ||
2448 | 653 | msgstr "" | ||
2449 | 654 | |||
2450 | 655 | #: ../data/ui/AddOtherTestdrivegtkDialog.ui.h:8 | ||
2451 | 656 | msgid "Other ISO List:" | ||
2452 | 657 | msgstr "" | ||
2453 | 658 | |||
2454 | 659 | #: ../testdrivegtk/AddOtherTestdrivegtkDialog.py:135 | 480 | #: ../testdrivegtk/AddOtherTestdrivegtkDialog.py:135 |
2455 | 660 | msgid "Please insert a Description" | 481 | msgid "Please insert a Description" |
2456 | 661 | msgstr "" | 482 | msgstr "" |
2457 | @@ -676,6 +497,11 @@ | |||
2458 | 676 | msgid "Select Protocol:" | 497 | msgid "Select Protocol:" |
2459 | 677 | msgstr "" | 498 | msgstr "" |
2460 | 678 | 499 | ||
2461 | 500 | #: ../testdrivegtk/PreferencesTestdrivegtkDialog.py:36 | ||
2462 | 501 | #: ../testdrivegtk/PreferencesTestdrivegtkDialog.py:37 | ||
2463 | 502 | msgid "Other..." | ||
2464 | 503 | msgstr "" | ||
2465 | 504 | |||
2466 | 679 | #: ../testdrivegtk/PreferencesTestdrivegtkDialog.py:72 | 505 | #: ../testdrivegtk/PreferencesTestdrivegtkDialog.py:72 |
2467 | 680 | msgid "TestDrive Preferences" | 506 | msgid "TestDrive Preferences" |
2468 | 681 | msgstr "" | 507 | msgstr "" |
2469 | @@ -684,46 +510,46 @@ | |||
2470 | 684 | msgid "finish_initialization()" | 510 | msgid "finish_initialization()" |
2471 | 685 | msgstr "" | 511 | msgstr "" |
2472 | 686 | 512 | ||
2474 | 687 | #: ../testdrivegtk/PreferencesTestdrivegtkDialog.py:136 | 513 | #: ../testdrivegtk/PreferencesTestdrivegtkDialog.py:138 |
2475 | 688 | msgid "Select Repository:" | 514 | msgid "Select Repository:" |
2476 | 689 | msgstr "" | 515 | msgstr "" |
2477 | 690 | 516 | ||
2480 | 691 | #: ../testdrivegtk/PreferencesTestdrivegtkDialog.py:147 | 517 | #: ../testdrivegtk/PreferencesTestdrivegtkDialog.py:149 |
2481 | 692 | #: ../testdrivegtk/PreferencesTestdrivegtkDialog.py:474 | 518 | #: ../testdrivegtk/PreferencesTestdrivegtkDialog.py:484 |
2482 | 693 | msgid "Select Release:" | 519 | msgid "Select Release:" |
2483 | 694 | msgstr "" | 520 | msgstr "" |
2484 | 695 | 521 | ||
2485 | 696 | #. Load config files for local variables | 522 | #. Load config files for local variables |
2486 | 697 | #. self.load_config_files(file) | 523 | #. self.load_config_files(file) |
2488 | 698 | #: ../testdrivegtk/PreferencesTestdrivegtkDialog.py:211 | 524 | #: ../testdrivegtk/PreferencesTestdrivegtkDialog.py:215 |
2489 | 699 | #, python-format | 525 | #, python-format |
2490 | 700 | msgid "Reading config file: [%s]" | 526 | msgid "Reading config file: [%s]" |
2491 | 701 | msgstr "" | 527 | msgstr "" |
2492 | 702 | 528 | ||
2494 | 703 | #: ../testdrivegtk/PreferencesTestdrivegtkDialog.py:213 | 529 | #: ../testdrivegtk/PreferencesTestdrivegtkDialog.py:217 |
2495 | 704 | #, python-format | 530 | #, python-format |
2496 | 705 | msgid "Unable to load config file [%s]" | 531 | msgid "Unable to load config file [%s]" |
2497 | 706 | msgstr "" | 532 | msgstr "" |
2498 | 707 | 533 | ||
2500 | 708 | #: ../testdrivegtk/PreferencesTestdrivegtkDialog.py:268 | 534 | #: ../testdrivegtk/PreferencesTestdrivegtkDialog.py:274 |
2501 | 709 | #, python-format | 535 | #, python-format |
2502 | 710 | msgid " of %s available." | 536 | msgid " of %s available." |
2503 | 711 | msgstr "" | 537 | msgstr "" |
2504 | 712 | 538 | ||
2506 | 713 | #: ../testdrivegtk/PreferencesTestdrivegtkDialog.py:325 | 539 | #: ../testdrivegtk/PreferencesTestdrivegtkDialog.py:333 |
2507 | 714 | #, python-format | 540 | #, python-format |
2508 | 715 | msgid "Could not obtain the Ubuntu ISO list from %s..." | 541 | msgid "Could not obtain the Ubuntu ISO list from %s..." |
2509 | 716 | msgstr "" | 542 | msgstr "" |
2510 | 717 | 543 | ||
2512 | 718 | #: ../testdrivegtk/PreferencesTestdrivegtkDialog.py:329 | 544 | #: ../testdrivegtk/PreferencesTestdrivegtkDialog.py:337 |
2513 | 719 | msgid "Updating the Ubuntu ISO list cache..." | 545 | msgid "Updating the Ubuntu ISO list cache..." |
2514 | 720 | msgstr "" | 546 | msgstr "" |
2515 | 721 | 547 | ||
2517 | 722 | #: ../testdrivegtk/PreferencesTestdrivegtkDialog.py:337 | 548 | #: ../testdrivegtk/PreferencesTestdrivegtkDialog.py:345 |
2518 | 723 | msgid "get_preferences()" | 549 | msgid "get_preferences()" |
2519 | 724 | msgstr "" | 550 | msgstr "" |
2520 | 725 | 551 | ||
2522 | 726 | #: ../testdrivegtk/PreferencesTestdrivegtkDialog.py:456 | 552 | #: ../testdrivegtk/PreferencesTestdrivegtkDialog.py:466 |
2523 | 727 | #, python-format | 553 | #, python-format |
2524 | 728 | msgid "Unable to clean up files from [%s]" | 554 | msgid "Unable to clean up files from [%s]" |
2525 | 729 | msgstr "" | 555 | msgstr "" |
2526 | 730 | 556 | ||
2527 | === modified file 'setup.py' (properties changed: -x to +x) | |||
2528 | === modified file 'testdrive/testdrive.py' | |||
2529 | --- testdrive/testdrive.py 2011-01-11 16:42:41 +0000 | |||
2530 | +++ testdrive/testdrive.py 2011-08-23 08:30:25 +0000 | |||
2531 | @@ -95,7 +95,7 @@ | |||
2532 | 95 | except: | 95 | except: |
2533 | 96 | pass | 96 | pass |
2534 | 97 | 97 | ||
2536 | 98 | ## TODO: This possible needs to go outside the class due to in PyGTK front end we might need the list of ISO's before even instancing an object | 98 | ## TODO: This possibly needs to go outside the class because in the GTK front end we might need the list of ISO's before even instancing an object |
2537 | 99 | def list_isos(self, ISOS): | 99 | def list_isos(self, ISOS): |
2538 | 100 | ISO = [] | 100 | ISO = [] |
2539 | 101 | for iso in ISOS: | 101 | for iso in ISOS: |
2540 | 102 | 102 | ||
2541 | === modified file 'testdrive/virt/kvm.py' | |||
2542 | --- testdrive/virt/kvm.py 2011-03-09 15:12:39 +0000 | |||
2543 | +++ testdrive/virt/kvm.py 2011-08-23 08:30:25 +0000 | |||
2544 | @@ -54,12 +54,12 @@ | |||
2545 | 54 | self.FLOPPY_FILE = "%s-floppy" % path | 54 | self.FLOPPY_FILE = "%s-floppy" % path |
2546 | 55 | self.run_or_die("kvm-img create -f qcow2 -b %s %s" % (self.ORIG_DISK, self.DISK_FILE)) | 55 | self.run_or_die("kvm-img create -f qcow2 -b %s %s" % (self.ORIG_DISK, self.DISK_FILE)) |
2547 | 56 | elif not os.path.exists(self.DISK_FILE) or self.is_disk_empty(): | 56 | elif not os.path.exists(self.DISK_FILE) or self.is_disk_empty(): |
2549 | 57 | print "Creating disk image [%s]..." % self.DISK_FILE | 57 | print("Creating disk image [%s]..." % self.DISK_FILE) |
2550 | 58 | self.run_or_die("kvm-img create -f qcow2 %s %s" % (self.DISK_FILE, self.DISK_SIZE)) | 58 | self.run_or_die("kvm-img create -f qcow2 %s %s" % (self.DISK_FILE, self.DISK_SIZE)) |
2551 | 59 | 59 | ||
2552 | 60 | # Code launch virtual machine | 60 | # Code launch virtual machine |
2553 | 61 | def launch_virt(self): | 61 | def launch_virt(self): |
2555 | 62 | print "Running the Virtual Machine..." | 62 | print("Running the Virtual Machine...") |
2556 | 63 | #os.system("kvm -m %s -smp %s -cdrom %s -drive file=%s,if=virtio,cache=writeback,index=0,boot=on %s" % (self.td.MEM, self.td.SMP, self.td.PATH_TO_ISO, self.td.DISK_FILE, self.td.KVM_ARGS)) | 63 | #os.system("kvm -m %s -smp %s -cdrom %s -drive file=%s,if=virtio,cache=writeback,index=0,boot=on %s" % (self.td.MEM, self.td.SMP, self.td.PATH_TO_ISO, self.td.DISK_FILE, self.td.KVM_ARGS)) |
2557 | 64 | if self.p == 'uec-daily' or self.p == 'uec-releases': | 64 | if self.p == 'uec-daily' or self.p == 'uec-releases': |
2558 | 65 | cmd = "kvm -boot a -fda %s -drive file=%s,if=virtio %s" % (self.FLOPPY_FILE, self.DISK_FILE, self.KVM_ARGS) | 65 | cmd = "kvm -boot a -fda %s -drive file=%s,if=virtio %s" % (self.FLOPPY_FILE, self.DISK_FILE, self.KVM_ARGS) |
2559 | @@ -72,4 +72,4 @@ | |||
2560 | 72 | 72 | ||
2561 | 73 | def run_or_die(self, cmd): | 73 | def run_or_die(self, cmd): |
2562 | 74 | if self.run(cmd) != 0: | 74 | if self.run(cmd) != 0: |
2564 | 75 | print "Command failed\n `%s`" % cmd | 75 | print("Command failed\n `%s`" % cmd) |
2565 | 76 | 76 | ||
2566 | === modified file 'testdrive/virt/virtualbox.py' | |||
2567 | --- testdrive/virt/virtualbox.py 2011-08-13 20:05:10 +0000 | |||
2568 | +++ testdrive/virt/virtualbox.py 2011-08-23 08:30:25 +0000 | |||
2569 | @@ -50,7 +50,7 @@ | |||
2570 | 50 | self.vboxversion = ( int(self.vboxversion.split(".")[0]), int(self.vboxversion.split(".")[1]) ) | 50 | self.vboxversion = ( int(self.vboxversion.split(".")[0]), int(self.vboxversion.split(".")[1]) ) |
2571 | 51 | if self.vboxversion == (3,1) or self.vboxversion == (3,2) or self.vboxversion == (4,0) or self.vboxversion == (4,1): | 51 | if self.vboxversion == (3,1) or self.vboxversion == (3,2) or self.vboxversion == (4,0) or self.vboxversion == (4,1): |
2572 | 52 | #info("VirtualBox %s detected." % self.vboxversion) | 52 | #info("VirtualBox %s detected." % self.vboxversion) |
2574 | 53 | print "INFO: VirtualBox %s.%s detected." % self.vboxversion | 53 | print("INFO: VirtualBox %s.%s detected." % self.vboxversion) |
2575 | 54 | else: | 54 | else: |
2576 | 55 | #error("Unsupported version (%s) of VirtualBox; please install v3.0 or v3.1." % self.vboxversion) | 55 | #error("Unsupported version (%s) of VirtualBox; please install v3.0 or v3.1." % self.vboxversion) |
2577 | 56 | print "ERROR: Unsupported version (%s.%s) of VirtualBox; please install v3.1, v3.2, v4.0 or v4.1." % self.vboxversion | 56 | print "ERROR: Unsupported version (%s.%s) of VirtualBox; please install v3.1, v3.2, v4.0 or v4.1." % self.vboxversion |
2578 | @@ -64,7 +64,7 @@ | |||
2579 | 64 | if not os.path.exists(self.DISK_FILE): | 64 | if not os.path.exists(self.DISK_FILE): |
2580 | 65 | self.DISK_SIZE = self.DISK_SIZE.replace("G", "000") | 65 | self.DISK_SIZE = self.DISK_SIZE.replace("G", "000") |
2581 | 66 | #info("Creating disk image...") | 66 | #info("Creating disk image...") |
2583 | 67 | print "INFO: Creating disk image..." | 67 | print("INFO: Creating disk image...") |
2584 | 68 | self.run_or_die("VBoxManage createhd --filename %s --size %s" % (self.DISK_FILE, self.DISK_SIZE)) | 68 | self.run_or_die("VBoxManage createhd --filename %s --size %s" % (self.DISK_FILE, self.DISK_SIZE)) |
2585 | 69 | if self.vboxversion == (3,1) or self.vboxversion == (3,2) or self.vboxversion == (4,0) or self.vboxversion == (4,1): | 69 | if self.vboxversion == (3,1) or self.vboxversion == (3,2) or self.vboxversion == (4,0) or self.vboxversion == (4,1): |
2586 | 70 | self.run("VBoxManage storageattach %s --storagectl \"IDE Controller\" --port 0 --device 0 --type hdd --medium none" % self.VBOX_NAME) | 70 | self.run("VBoxManage storageattach %s --storagectl \"IDE Controller\" --port 0 --device 0 --type hdd --medium none" % self.VBOX_NAME) |
2587 | @@ -91,7 +91,7 @@ | |||
2588 | 91 | # Code launch virtual machine | 91 | # Code launch virtual machine |
2589 | 92 | def launch_virt(self): | 92 | def launch_virt(self): |
2590 | 93 | #info("Running the Virtual Machine...") | 93 | #info("Running the Virtual Machine...") |
2592 | 94 | print "Running the Virtual Machine..." | 94 | print("Running the Virtual Machine...") |
2593 | 95 | if self.vboxversion == (3,1) or self.vboxversion == (3,2) or self.vboxversion == (4,0) or self.vboxversion == (4,1): | 95 | if self.vboxversion == (3,1) or self.vboxversion == (3,2) or self.vboxversion == (4,0) or self.vboxversion == (4,1): |
2594 | 96 | self.run_or_die("VBoxManage storagectl %s --name \"IDE Controller\" --add ide" % self.VBOX_NAME) | 96 | self.run_or_die("VBoxManage storagectl %s --name \"IDE Controller\" --add ide" % self.VBOX_NAME) |
2595 | 97 | self.run_or_die("VBoxManage storageattach %s --storagectl \"IDE Controller\" --port 0 --device 0 --type hdd --medium %s" % (self.VBOX_NAME, self.DISK_FILE)) | 97 | self.run_or_die("VBoxManage storageattach %s --storagectl \"IDE Controller\" --port 0 --device 0 --type hdd --medium %s" % (self.VBOX_NAME, self.DISK_FILE)) |
2596 | @@ -112,4 +112,4 @@ | |||
2597 | 112 | def run_or_die(self, cmd): | 112 | def run_or_die(self, cmd): |
2598 | 113 | if self.run(cmd) != 0: | 113 | if self.run(cmd) != 0: |
2599 | 114 | #error("Command failed\n `%s`" % cmd) | 114 | #error("Command failed\n `%s`" % cmd) |
2601 | 115 | print "Command failed\n `%s`" % cmd | 115 | print("Command failed\n `%s`" % cmd) |
2602 | 116 | 116 | ||
2603 | === modified file 'testdrivegtk/AboutTestdrivegtkDialog.py' | |||
2604 | --- testdrivegtk/AboutTestdrivegtkDialog.py 2011-02-25 21:15:08 +0000 | |||
2605 | +++ testdrivegtk/AboutTestdrivegtkDialog.py 2011-08-23 08:30:25 +0000 | |||
2606 | @@ -18,9 +18,7 @@ | |||
2607 | 18 | # with this program. If not, see <http://www.gnu.org/licenses/>. | 18 | # with this program. If not, see <http://www.gnu.org/licenses/>. |
2608 | 19 | ### END LICENSE | 19 | ### END LICENSE |
2609 | 20 | 20 | ||
2613 | 21 | import gtk | 21 | from gi.repository import Gtk |
2611 | 22 | |||
2612 | 23 | from testdrivegtk.helpers import get_builder | ||
2614 | 24 | 22 | ||
2615 | 25 | import gettext | 23 | import gettext |
2616 | 26 | from gettext import gettext as _ | 24 | from gettext import gettext as _ |
2617 | @@ -29,7 +27,7 @@ | |||
2618 | 29 | import commands | 27 | import commands |
2619 | 30 | version = commands.getstatusoutput("dpkg -l testdrive | tail -n1 | awk '{print $3}'") | 28 | version = commands.getstatusoutput("dpkg -l testdrive | tail -n1 | awk '{print $3}'") |
2620 | 31 | 29 | ||
2622 | 32 | __version__ = version[1].split("-0")[0] | 30 | __version__ = (version[1].split("-0")[0]) |
2623 | 33 | __licensenotice__ = 'This program is free software: you can redistribute it and/or modify\n\ | 31 | __licensenotice__ = 'This program is free software: you can redistribute it and/or modify\n\ |
2624 | 34 | it under the terms of the GNU General Public License as published by\n\ | 32 | it under the terms of the GNU General Public License as published by\n\ |
2625 | 35 | the Free Software Foundation, either version 3 of the License, or\n\ | 33 | the Free Software Foundation, either version 3 of the License, or\n\ |
2626 | @@ -43,11 +41,12 @@ | |||
2627 | 43 | You should have received a copy of the GNU General Public License\n\ | 41 | You should have received a copy of the GNU General Public License\n\ |
2628 | 44 | along with this program. If not, see <http://www.gnu.org/licenses/>.' | 42 | along with this program. If not, see <http://www.gnu.org/licenses/>.' |
2629 | 45 | __authors__ = ['Andres Rodriguez <andreserl@ubuntu.com>'] | 43 | __authors__ = ['Andres Rodriguez <andreserl@ubuntu.com>'] |
2631 | 46 | __description__ = 'PyGTK Front-end for TestDrive' | 44 | __name__ = "TestDrive" |
2632 | 45 | __description__ = 'GTK Front-end for TestDrive' | ||
2633 | 47 | __website__ = "https://launchpad.net/testdrive" | 46 | __website__ = "https://launchpad.net/testdrive" |
2634 | 48 | __copyright__ = "Copyright © 2010, 2011 Canonical Ltd." | 47 | __copyright__ = "Copyright © 2010, 2011 Canonical Ltd." |
2635 | 49 | 48 | ||
2637 | 50 | class AboutTestdrivegtkDialog(gtk.AboutDialog): | 49 | class AboutTestdrivegtkDialog(Gtk.AboutDialog): |
2638 | 51 | __gtype_name__ = "AboutTestdrivegtkDialog" | 50 | __gtype_name__ = "AboutTestdrivegtkDialog" |
2639 | 52 | 51 | ||
2640 | 53 | def __new__(cls): | 52 | def __new__(cls): |
2641 | @@ -56,36 +55,18 @@ | |||
2642 | 56 | 55 | ||
2643 | 57 | Returns a fully instantiated AboutTestdrivegtkDialog object. | 56 | Returns a fully instantiated AboutTestdrivegtkDialog object. |
2644 | 58 | """ | 57 | """ |
2667 | 59 | builder = get_builder('AboutTestdrivegtkDialog') | 58 | dialog = Gtk.AboutDialog() |
2668 | 60 | new_object = builder.get_object("about_testdrivegtk_dialog") | 59 | |
2669 | 61 | new_object.finish_initializing(builder) | 60 | dialog.set_program_name(__name__) |
2648 | 62 | return new_object | ||
2649 | 63 | |||
2650 | 64 | def finish_initializing(self, builder): | ||
2651 | 65 | """Called while initializing this instance in __new__ | ||
2652 | 66 | |||
2653 | 67 | finish_initalizing should be called after parsing the ui definition | ||
2654 | 68 | and creating a AboutTestdrivegtkDialog object with it in order to | ||
2655 | 69 | finish initializing the start of the new AboutTestdrivegtkDialog | ||
2656 | 70 | instance. | ||
2657 | 71 | |||
2658 | 72 | Put your initialization code in here and leave __init__ undefined. | ||
2659 | 73 | """ | ||
2660 | 74 | # Get a reference to the builder and set up the signals. | ||
2661 | 75 | self.builder = builder | ||
2662 | 76 | self.builder.connect_signals(self) | ||
2663 | 77 | |||
2664 | 78 | # Code for other initialization actions should be added here. | ||
2665 | 79 | dialog = builder.get_object("about_testdrivegtk_dialog") | ||
2666 | 80 | |||
2670 | 81 | dialog.set_version(__version__) | 61 | dialog.set_version(__version__) |
2671 | 82 | dialog.set_authors(__authors__) | 62 | dialog.set_authors(__authors__) |
2672 | 83 | dialog.set_comments(__description__) | 63 | dialog.set_comments(__description__) |
2673 | 84 | dialog.set_license(__licensenotice__) | 64 | dialog.set_license(__licensenotice__) |
2674 | 85 | dialog.set_website(__website__) | 65 | dialog.set_website(__website__) |
2675 | 86 | dialog.set_copyright(__copyright__) | 66 | dialog.set_copyright(__copyright__) |
2676 | 67 | return dialog | ||
2677 | 87 | 68 | ||
2678 | 88 | if __name__ == "__main__": | 69 | if __name__ == "__main__": |
2679 | 89 | dialog = AboutTestdrivegtkDialog() | 70 | dialog = AboutTestdrivegtkDialog() |
2680 | 90 | dialog.show() | 71 | dialog.show() |
2682 | 91 | gtk.main() | 72 | Gtk.main() |
2683 | 92 | 73 | ||
2684 | === modified file 'testdrivegtk/AddOtherTestdrivegtkDialog.py' | |||
2685 | --- testdrivegtk/AddOtherTestdrivegtkDialog.py 2011-03-02 01:20:58 +0000 | |||
2686 | +++ testdrivegtk/AddOtherTestdrivegtkDialog.py 2011-08-23 08:30:25 +0000 | |||
2687 | @@ -3,7 +3,7 @@ | |||
2688 | 3 | # This file is in the public domain | 3 | # This file is in the public domain |
2689 | 4 | ### END LICENSE | 4 | ### END LICENSE |
2690 | 5 | 5 | ||
2692 | 6 | import gtk | 6 | from gi.repository import Gtk |
2693 | 7 | 7 | ||
2694 | 8 | from testdrivegtk.helpers import get_builder | 8 | from testdrivegtk.helpers import get_builder |
2695 | 9 | import os, string, commands | 9 | import os, string, commands |
2696 | @@ -12,7 +12,7 @@ | |||
2697 | 12 | from gettext import gettext as _ | 12 | from gettext import gettext as _ |
2698 | 13 | gettext.textdomain('testdrive') | 13 | gettext.textdomain('testdrive') |
2699 | 14 | 14 | ||
2701 | 15 | class AddOtherTestdrivegtkDialog(gtk.Dialog): | 15 | class AddOtherTestdrivegtkDialog(Gtk.Dialog): |
2702 | 16 | __gtype_name__ = "AddothertestdrivegtkDialog" | 16 | __gtype_name__ = "AddothertestdrivegtkDialog" |
2703 | 17 | 17 | ||
2704 | 18 | def __new__(cls, cache): | 18 | def __new__(cls, cache): |
2705 | @@ -52,7 +52,7 @@ | |||
2706 | 52 | def ok(self, widget, data=None): | 52 | def ok(self, widget, data=None): |
2707 | 53 | """The user has elected to save the changes. | 53 | """The user has elected to save the changes. |
2708 | 54 | 54 | ||
2710 | 55 | Called before the dialog returns gtk.RESONSE_OK from run(). | 55 | Called before the dialog returns Gtk.RESONSE_OK from run(). |
2711 | 56 | """ | 56 | """ |
2712 | 57 | # Saving changes in the isos file | 57 | # Saving changes in the isos file |
2713 | 58 | path = "%s/other.isos" % self.CACHE | 58 | path = "%s/other.isos" % self.CACHE |
2714 | @@ -70,7 +70,7 @@ | |||
2715 | 70 | def cancel(self, widget, data=None): | 70 | def cancel(self, widget, data=None): |
2716 | 71 | """The user has elected cancel changes. | 71 | """The user has elected cancel changes. |
2717 | 72 | 72 | ||
2719 | 73 | Called before the dialog returns gtk.RESPONSE_CANCEL for run() | 73 | Called before the dialog returns Gtk.ResponseType.CANCEL for run() |
2720 | 74 | """ | 74 | """ |
2721 | 75 | pass | 75 | pass |
2722 | 76 | 76 | ||
2723 | @@ -83,16 +83,16 @@ | |||
2724 | 83 | self.PROTO = None | 83 | self.PROTO = None |
2725 | 84 | 84 | ||
2726 | 85 | def on_error_dlg(self, data=None): | 85 | def on_error_dlg(self, data=None): |
2730 | 86 | errorbox = gtk.MessageDialog(self, | 86 | errorbox = Gtk.MessageDialog(self, |
2731 | 87 | gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_ERROR, | 87 | Gtk.DialogFlags.DESTROY_WITH_PARENT, Gtk.MessageType.ERROR, |
2732 | 88 | gtk.BUTTONS_CLOSE, data) | 88 | Gtk.ButtonsType.CLOSE, data) |
2733 | 89 | response = errorbox.run() | 89 | response = errorbox.run() |
2734 | 90 | errorbox.destroy() | 90 | errorbox.destroy() |
2735 | 91 | 91 | ||
2736 | 92 | def on_info_dlg(self, data=None): | 92 | def on_info_dlg(self, data=None): |
2740 | 93 | errorbox = gtk.MessageDialog(self, | 93 | errorbox = Gtk.MessageDialog(self, |
2741 | 94 | gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_INFO, | 94 | Gtk.DialogFlags.DESTROY_WITH_PARENT, Gtk.MessageType.INFO, |
2742 | 95 | gtk.BUTTONS_CLOSE, data) | 95 | Gtk.ButtonsType.CLOSE, data) |
2743 | 96 | errorbox.run() | 96 | errorbox.run() |
2744 | 97 | errorbox.destroy() | 97 | errorbox.destroy() |
2745 | 98 | 98 | ||
2746 | @@ -158,7 +158,7 @@ | |||
2747 | 158 | # Validate if url exists | 158 | # Validate if url exists |
2748 | 159 | proto = self.url.partition(":")[0] | 159 | proto = self.url.partition(":")[0] |
2749 | 160 | url = self.url | 160 | url = self.url |
2751 | 161 | print proto | 161 | print(proto) |
2752 | 162 | if proto == 'rsync' or proto == 'zsync': | 162 | if proto == 'rsync' or proto == 'zsync': |
2753 | 163 | url = url.replace(proto, 'http') | 163 | url = url.replace(proto, 'http') |
2754 | 164 | if proto == 'file': | 164 | if proto == 'file': |
2755 | @@ -178,7 +178,7 @@ | |||
2756 | 178 | if expander.get_expanded(): | 178 | if expander.get_expanded(): |
2757 | 179 | expander.add(self.scroll_iso_list) | 179 | expander.add(self.scroll_iso_list) |
2758 | 180 | else: | 180 | else: |
2760 | 181 | expander.remove(expander.child) | 181 | expander.remove(expander.get_child()) |
2761 | 182 | self.resize(1, 1) | 182 | self.resize(1, 1) |
2762 | 183 | 183 | ||
2763 | 184 | def initialize_widgets(self): | 184 | def initialize_widgets(self): |
2764 | @@ -189,25 +189,26 @@ | |||
2765 | 189 | self.txt_other_url = self.builder.get_object("txt_other_url") | 189 | self.txt_other_url = self.builder.get_object("txt_other_url") |
2766 | 190 | 190 | ||
2767 | 191 | # Initializing TreeView that will list the other ISO's | 191 | # Initializing TreeView that will list the other ISO's |
2769 | 192 | self.liststore = gtk.ListStore(int, str, str) | 192 | self.liststore = Gtk.ListStore(int, str, str) |
2770 | 193 | self.treeview = self.builder.get_object("tv_other_isos_list") | 193 | self.treeview = self.builder.get_object("tv_other_isos_list") |
2771 | 194 | self.treeview.columns = [None]*3 | 194 | self.treeview.columns = [None]*3 |
2775 | 195 | self.treeview.columns[0] = gtk.TreeViewColumn('No.') | 195 | self.treeview.columns[0] = Gtk.TreeViewColumn('No.') |
2776 | 196 | self.treeview.columns[1] = gtk.TreeViewColumn(_('Description')) | 196 | self.treeview.columns[1] = Gtk.TreeViewColumn(_('Description')) |
2777 | 197 | self.treeview.columns[2] = gtk.TreeViewColumn('URL') | 197 | self.treeview.columns[2] = Gtk.TreeViewColumn('URL') |
2778 | 198 | 198 | ||
2779 | 199 | self.treeview.set_model(self.liststore) | 199 | self.treeview.set_model(self.liststore) |
2780 | 200 | for n in range(3): | 200 | for n in range(3): |
2781 | 201 | # add columns to treeview | 201 | # add columns to treeview |
2782 | 202 | self.treeview.append_column(self.treeview.columns[n]) | 202 | self.treeview.append_column(self.treeview.columns[n]) |
2783 | 203 | # create a CellRenderers to render the data | 203 | # create a CellRenderers to render the data |
2785 | 204 | self.treeview.columns[n].cell = gtk.CellRendererText() | 204 | self.treeview.columns[n].cell = Gtk.CellRendererText() |
2786 | 205 | if n >= 1: | 205 | if n >= 1: |
2787 | 206 | self.treeview.columns[n].cell.set_property('editable', True) | 206 | self.treeview.columns[n].cell.set_property('editable', True) |
2788 | 207 | # add the cells to the columns | 207 | # add the cells to the columns |
2789 | 208 | self.treeview.columns[n].pack_start(self.treeview.columns[n].cell, True) | 208 | self.treeview.columns[n].pack_start(self.treeview.columns[n].cell, True) |
2790 | 209 | # set the cell attributes to the appropriate liststore column | 209 | # set the cell attributes to the appropriate liststore column |
2792 | 210 | self.treeview.columns[n].set_attributes(self.treeview.columns[n].cell, text=n) | 210 | #FIXME This doesn't work; is it important? |
2793 | 211 | #self.treeview.columns[n].set_attributes(self.treeview.columns[n].cell, text=n) | ||
2794 | 211 | 212 | ||
2795 | 212 | self.btn_add_other = self.builder.get_object("btn_add_iso") | 213 | self.btn_add_other = self.builder.get_object("btn_add_iso") |
2796 | 213 | self.btn_add_other.connect("clicked", self.on_btn_add_iso_clicked) | 214 | self.btn_add_other.connect("clicked", self.on_btn_add_iso_clicked) |
2797 | @@ -219,11 +220,11 @@ | |||
2798 | 219 | self.ex_other_iso_list = self.builder.get_object("ex_other_iso_list") | 220 | self.ex_other_iso_list = self.builder.get_object("ex_other_iso_list") |
2799 | 220 | self.ex_other_iso_list.connect('notify::expanded', self.on_iso_list_expanded) | 221 | self.ex_other_iso_list.connect('notify::expanded', self.on_iso_list_expanded) |
2800 | 221 | self.scroll_iso_list = self.builder.get_object("scrolledwindow1") | 222 | self.scroll_iso_list = self.builder.get_object("scrolledwindow1") |
2802 | 222 | self.ex_other_iso_list.remove(self.ex_other_iso_list.child) | 223 | self.ex_other_iso_list.remove(self.ex_other_iso_list.get_child()) |
2803 | 223 | 224 | ||
2804 | 224 | self.layout_table = self.builder.get_object("tb_other_iso") | 225 | self.layout_table = self.builder.get_object("tb_other_iso") |
2805 | 225 | #Sync Protocol Combo Box | 226 | #Sync Protocol Combo Box |
2807 | 226 | self.cb_sync_proto = gtk.combo_box_new_text() | 227 | self.cb_sync_proto = Gtk.ComboBoxText() |
2808 | 227 | self.cb_sync_proto.append_text(_("Select Protocol:")) | 228 | self.cb_sync_proto.append_text(_("Select Protocol:")) |
2809 | 228 | self.cb_sync_proto.append_text("rsync") | 229 | self.cb_sync_proto.append_text("rsync") |
2810 | 229 | self.cb_sync_proto.append_text("zsync") | 230 | self.cb_sync_proto.append_text("zsync") |
2811 | @@ -232,7 +233,7 @@ | |||
2812 | 232 | self.cb_sync_proto.connect('changed', self.on_select_sync_proto) | 233 | self.cb_sync_proto.connect('changed', self.on_select_sync_proto) |
2813 | 233 | self.cb_sync_proto.set_active(0) | 234 | self.cb_sync_proto.set_active(0) |
2814 | 234 | self.cb_sync_proto.show() | 235 | self.cb_sync_proto.show() |
2816 | 235 | self.layout_table.attach(self.cb_sync_proto, 1,3,2,3, gtk.FILL | gtk.EXPAND, gtk.SHRINK) | 236 | self.layout_table.attach(self.cb_sync_proto, 1,3,2,3, Gtk.AttachOptions.FILL | Gtk.AttachOptions.EXPAND, Gtk.AttachOptions.SHRINK) |
2817 | 236 | 237 | ||
2818 | 237 | def get_other_isos_list_from_cache(self): | 238 | def get_other_isos_list_from_cache(self): |
2819 | 238 | ################################################################## | 239 | ################################################################## |
2820 | @@ -260,4 +261,4 @@ | |||
2821 | 260 | if __name__ == "__main__": | 261 | if __name__ == "__main__": |
2822 | 261 | dialog = AddOtherTestdrivegtkDialog() | 262 | dialog = AddOtherTestdrivegtkDialog() |
2823 | 262 | dialog.show() | 263 | dialog.show() |
2825 | 263 | gtk.main() | 264 | Gtk.main() |
2826 | 264 | 265 | ||
2827 | === modified file 'testdrivegtk/PreferencesTestdrivegtkDialog.py' | |||
2828 | --- testdrivegtk/PreferencesTestdrivegtkDialog.py 2011-08-13 22:06:27 +0000 | |||
2829 | +++ testdrivegtk/PreferencesTestdrivegtkDialog.py 2011-08-23 08:30:25 +0000 | |||
2830 | @@ -20,7 +20,7 @@ | |||
2831 | 20 | 20 | ||
2832 | 21 | #from desktopcouch.records.server import CouchDatabase | 21 | #from desktopcouch.records.server import CouchDatabase |
2833 | 22 | #from desktopcouch.records.record import Record | 22 | #from desktopcouch.records.record import Record |
2835 | 23 | import gtk | 23 | from gi.repository import Gtk |
2836 | 24 | import ConfigParser | 24 | import ConfigParser |
2837 | 25 | import os | 25 | import os |
2838 | 26 | import commands | 26 | import commands |
2839 | @@ -33,10 +33,10 @@ | |||
2840 | 33 | gettext.textdomain('testdrive') | 33 | gettext.textdomain('testdrive') |
2841 | 34 | 34 | ||
2842 | 35 | ISO_REPOSITORY = ['cdimage', 'releases'] | 35 | ISO_REPOSITORY = ['cdimage', 'releases'] |
2845 | 36 | MEM_SIZE_TAB = ['256', '384', '512', '1024', _('Other...')] | 36 | MEM_SIZE_TAB = ['256', '384', '512', '1024'] |
2846 | 37 | DISK_SIZE_TAB = ['4', '6', '8', _('Other...')] | 37 | DISK_SIZE_TAB = ['4', '6', '8'] |
2847 | 38 | 38 | ||
2849 | 39 | class PreferencesTestdrivegtkDialog(gtk.Dialog): | 39 | class PreferencesTestdrivegtkDialog(Gtk.Dialog): |
2850 | 40 | __gtype_name__ = "PreferencesTestdrivegtkDialog" | 40 | __gtype_name__ = "PreferencesTestdrivegtkDialog" |
2851 | 41 | preferences = {} | 41 | preferences = {} |
2852 | 42 | 42 | ||
2853 | @@ -133,7 +133,7 @@ | |||
2854 | 133 | 133 | ||
2855 | 134 | # Ubuntu Repositories Combo Box | 134 | # Ubuntu Repositories Combo Box |
2856 | 135 | self.tb_general_prefs = self.builder.get_object("tb_general_prefs") | 135 | self.tb_general_prefs = self.builder.get_object("tb_general_prefs") |
2858 | 136 | self.cb_ubuntu_repo = gtk.combo_box_new_text() | 136 | self.cb_ubuntu_repo = Gtk.ComboBoxText() |
2859 | 137 | self.cb_ubuntu_repo.set_size_request(260, -1) | 137 | self.cb_ubuntu_repo.set_size_request(260, -1) |
2860 | 138 | self.cb_ubuntu_repo.append_text(_('Select Repository:')) | 138 | self.cb_ubuntu_repo.append_text(_('Select Repository:')) |
2861 | 139 | for repo in ISO_REPOSITORY: | 139 | for repo in ISO_REPOSITORY: |
2862 | @@ -141,15 +141,15 @@ | |||
2863 | 141 | self.cb_ubuntu_repo.connect('changed', self.on_select_iso_image_repo) | 141 | self.cb_ubuntu_repo.connect('changed', self.on_select_iso_image_repo) |
2864 | 142 | self.cb_ubuntu_repo.set_active(0) | 142 | self.cb_ubuntu_repo.set_active(0) |
2865 | 143 | self.cb_ubuntu_repo.show() | 143 | self.cb_ubuntu_repo.show() |
2867 | 144 | self.tb_general_prefs.attach(self.cb_ubuntu_repo, 1,2,7,8) | 144 | self.tb_general_prefs.attach(self.cb_ubuntu_repo, 1, 2, 7, 8) |
2868 | 145 | # Ubuntu Releases Combo Box | 145 | # Ubuntu Releases Combo Box |
2870 | 146 | self.cb_ubuntu_release = gtk.combo_box_new_text() | 146 | self.cb_ubuntu_release = Gtk.ComboBoxText() |
2871 | 147 | self.cb_ubuntu_release.set_size_request(260, -1) | 147 | self.cb_ubuntu_release.set_size_request(260, -1) |
2872 | 148 | self.cb_ubuntu_release.connect('changed', self.on_select_ubuntu_release) | 148 | self.cb_ubuntu_release.connect('changed', self.on_select_ubuntu_release) |
2873 | 149 | self.cb_ubuntu_release.append_text(_('Select Release:')) | 149 | self.cb_ubuntu_release.append_text(_('Select Release:')) |
2874 | 150 | self.cb_ubuntu_release.set_active(0) | 150 | self.cb_ubuntu_release.set_active(0) |
2875 | 151 | self.cb_ubuntu_release.show() | 151 | self.cb_ubuntu_release.show() |
2877 | 152 | self.tb_general_prefs.attach(self.cb_ubuntu_release, 1,2,8,9) | 152 | self.tb_general_prefs.attach(self.cb_ubuntu_release, 1, 2, 8, 9) |
2878 | 153 | 153 | ||
2879 | 154 | # Initialize Virtualization Method Options | 154 | # Initialize Virtualization Method Options |
2880 | 155 | self.opt_virt_kvm = self.builder.get_object("opt_virt_kvm") | 155 | self.opt_virt_kvm = self.builder.get_object("opt_virt_kvm") |
2881 | @@ -159,16 +159,16 @@ | |||
2882 | 159 | self.opt_virt_parallels = self.builder.get_object("opt_virt_parallels") | 159 | self.opt_virt_parallels = self.builder.get_object("opt_virt_parallels") |
2883 | 160 | self.opt_virt_parallels.connect("toggled", self.on_select_virt_method, "parallels") | 160 | self.opt_virt_parallels.connect("toggled", self.on_select_virt_method, "parallels") |
2884 | 161 | 161 | ||
2885 | 162 | |||
2886 | 163 | |||
2887 | 162 | # Initialize Memory Options | 164 | # Initialize Memory Options |
2888 | 163 | self.cbe_mem_size = self.builder.get_object("cbe_mem_size") | 165 | self.cbe_mem_size = self.builder.get_object("cbe_mem_size") |
2891 | 164 | self.cbe_mem_size.remove_text(0) | 166 | for mem in MEM_SIZE_TAB: |
2890 | 165 | for mem in MEM_SIZE_TAB: | ||
2892 | 166 | self.cbe_mem_size.append_text(mem) | 167 | self.cbe_mem_size.append_text(mem) |
2893 | 167 | self.cbe_mem_size.connect('changed', self.on_select_mem) | 168 | self.cbe_mem_size.connect('changed', self.on_select_mem) |
2894 | 168 | 169 | ||
2895 | 169 | # Initialize Disk Size Options | 170 | # Initialize Disk Size Options |
2896 | 170 | self.cbe_disk_size = self.builder.get_object("cbe_disk_size") | 171 | self.cbe_disk_size = self.builder.get_object("cbe_disk_size") |
2897 | 171 | self.cbe_disk_size.remove_text(0) | ||
2898 | 172 | for disk in DISK_SIZE_TAB: | 172 | for disk in DISK_SIZE_TAB: |
2899 | 173 | self.cbe_disk_size.append_text(disk) | 173 | self.cbe_disk_size.append_text(disk) |
2900 | 174 | self.cbe_disk_size.connect('changed', self.on_select_disk_size) | 174 | self.cbe_disk_size.connect('changed', self.on_select_disk_size) |
2901 | @@ -179,8 +179,9 @@ | |||
2902 | 179 | 179 | ||
2903 | 180 | # SMP | 180 | # SMP |
2904 | 181 | self.lb_smp_nbr = self.builder.get_object("lb_smp_nbr") | 181 | self.lb_smp_nbr = self.builder.get_object("lb_smp_nbr") |
2906 | 182 | self.txt_smp_nbr = self.builder.get_object("txt_smp_nbr") | 182 | self.spin_smp_nbr = self.builder.get_object("spin_smp_nbr") |
2907 | 183 | self.lb_smp_available = self.builder.get_object("lb_smp_available") | 183 | self.lb_smp_available = self.builder.get_object("lb_smp_available") |
2908 | 184 | self.adj_smp = self.builder.get_object("adj_smp") | ||
2909 | 184 | 185 | ||
2910 | 185 | # Flavors | 186 | # Flavors |
2911 | 186 | self.chk_flavor_ubuntu = self.builder.get_object("chk_flavor_ubuntu") | 187 | self.chk_flavor_ubuntu = self.builder.get_object("chk_flavor_ubuntu") |
2912 | @@ -252,7 +253,7 @@ | |||
2913 | 252 | self.cbe_mem_size.set_active(3) | 253 | self.cbe_mem_size.set_active(3) |
2914 | 253 | else: | 254 | else: |
2915 | 254 | self.cbe_mem_size.append_text(self.td.MEM) | 255 | self.cbe_mem_size.append_text(self.td.MEM) |
2917 | 255 | self.cbe_mem_size.set_active(5) | 256 | self.cbe_mem_size.set_active(4) |
2918 | 256 | 257 | ||
2919 | 257 | # Disk Size | 258 | # Disk Size |
2920 | 258 | if self.td.DISK_SIZE == '4G': | 259 | if self.td.DISK_SIZE == '4G': |
2921 | @@ -263,15 +264,17 @@ | |||
2922 | 263 | self.cbe_disk_size.set_active(2) | 264 | self.cbe_disk_size.set_active(2) |
2923 | 264 | else: | 265 | else: |
2924 | 265 | self.cbe_disk_size.append_text(self.td.DISK_SIZE.replace("G", "")) | 266 | self.cbe_disk_size.append_text(self.td.DISK_SIZE.replace("G", "")) |
2926 | 266 | self.cbe_disk_size.set_active(4) | 267 | self.cbe_disk_size.set_active(3) |
2927 | 267 | 268 | ||
2928 | 268 | # KVM Args | 269 | # KVM Args |
2929 | 269 | self.txt_kvm_args.set_text(self.td.KVM_ARGS) | 270 | self.txt_kvm_args.set_text(self.td.KVM_ARGS) |
2930 | 270 | 271 | ||
2931 | 271 | # SMP | 272 | # SMP |
2932 | 272 | if self.td.SMP: | 273 | if self.td.SMP: |
2935 | 273 | self.txt_smp_nbr.set_text(self.td.SMP) | 274 | max_cpus = commands.getoutput("grep -c ^processor /proc/cpuinfo") |
2936 | 274 | self.lb_smp_available.set_text(_(" of %s available.") % commands.getoutput("grep -c ^processor /proc/cpuinfo")) | 275 | self.adj_smp.set_upper(int(max_cpus)) |
2937 | 276 | self.spin_smp_nbr.set_value(int(self.td.SMP)) | ||
2938 | 277 | self.lb_smp_available.set_text(_(" of %s available") % max_cpus) | ||
2939 | 275 | 278 | ||
2940 | 276 | # Flavors | 279 | # Flavors |
2941 | 277 | i = 0 | 280 | i = 0 |
2942 | @@ -367,7 +370,7 @@ | |||
2943 | 367 | def ok(self, widget, data=None): | 370 | def ok(self, widget, data=None): |
2944 | 368 | """The user has elected to save the changes. | 371 | """The user has elected to save the changes. |
2945 | 369 | 372 | ||
2947 | 370 | Called before the dialog returns gtk.RESONSE_OK from run(). | 373 | Called before the dialog returns Gtk.RESONSE_OK from run(). |
2948 | 371 | """ | 374 | """ |
2949 | 372 | 375 | ||
2950 | 373 | # Make any updates to self._preferences here. e.g. | 376 | # Make any updates to self._preferences here. e.g. |
2951 | @@ -377,15 +380,15 @@ | |||
2952 | 377 | def cancel(self, widget, data=None): | 380 | def cancel(self, widget, data=None): |
2953 | 378 | """The user has elected cancel changes. | 381 | """The user has elected cancel changes. |
2954 | 379 | 382 | ||
2956 | 380 | Called before the dialog returns gtk.RESPONSE_CANCEL for run() | 383 | Called before the dialog returns Gtk.ResponseType.CANCEL for run() |
2957 | 381 | """ | 384 | """ |
2958 | 382 | # Restore any changes to self._preferences here. | 385 | # Restore any changes to self._preferences here. |
2959 | 383 | pass | 386 | pass |
2960 | 384 | 387 | ||
2961 | 385 | def on_error_dlg(self, data=None): | 388 | def on_error_dlg(self, data=None): |
2965 | 386 | errorbox = gtk.MessageDialog(self, | 389 | errorbox = Gtk.MessageDialog(self, |
2966 | 387 | gtk.DIALOG_DESTROY_WITH_PARENT, gtk.MESSAGE_ERROR, | 390 | Gtk.DialogFlags.DESTROY_WITH_PARENT, Gtk.MessageType.ERROR, |
2967 | 388 | gtk.BUTTONS_CLOSE, data) | 391 | Gtk.ButtonsType.CLOSE, data) |
2968 | 389 | response = errorbox.run() | 392 | response = errorbox.run() |
2969 | 390 | errorbox.destroy() | 393 | errorbox.destroy() |
2970 | 391 | 394 | ||
2971 | @@ -395,28 +398,26 @@ | |||
2972 | 395 | # If Virtualization method is KVM, display related options. | 398 | # If Virtualization method is KVM, display related options. |
2973 | 396 | if virt == 'kvm': | 399 | if virt == 'kvm': |
2974 | 397 | self.txt_kvm_args.set_sensitive(True) | 400 | self.txt_kvm_args.set_sensitive(True) |
2976 | 398 | self.txt_smp_nbr.set_sensitive(True) | 401 | self.spin_smp_nbr.set_sensitive(True) |
2977 | 399 | else: | 402 | else: |
2978 | 400 | self.txt_kvm_args.set_sensitive(False) | 403 | self.txt_kvm_args.set_sensitive(False) |
2980 | 401 | self.txt_smp_nbr.set_sensitive(False) | 404 | self.spin_smp_nbr.set_sensitive(False) |
2981 | 402 | 405 | ||
2982 | 403 | def on_select_mem(self, entry): | 406 | def on_select_mem(self, entry): |
2983 | 404 | # On selecting RAM memory. | 407 | # On selecting RAM memory. |
2990 | 405 | if entry.child.get_text() == MEM_SIZE_TAB[3]: | 408 | # TODO: user shouldn't be able to enter more RAM than he has installed |
2991 | 406 | entry.child.set_editable(True) | 409 | entry.get_child().set_max_length(5) |
2992 | 407 | self.mem = 'other' | 410 | # Limits input to integers |
2993 | 408 | elif entry.get_active() >= 0: | 411 | text = entry.get_child().get_text().strip() |
2994 | 409 | entry.child.set_editable(False) | 412 | entry.get_child().set_text(''.join([i for i in text if i in '0123456789'])) |
2995 | 410 | self.mem = entry.child.get_text() | 413 | self.mem = entry.get_active_text() |
2996 | 411 | 414 | ||
2997 | 412 | def on_select_disk_size(self, entry): | 415 | def on_select_disk_size(self, entry): |
2998 | 413 | # On selecting disk size | 416 | # On selecting disk size |
3005 | 414 | if entry.child.get_text() == DISK_SIZE_TAB[3]: | 417 | # TODO: Needs to prevent entering more than one decimal point |
3006 | 415 | entry.child.set_editable(True) | 418 | text = entry.get_child().get_text().strip() |
3007 | 416 | self.disk_size = 'other' | 419 | entry.get_child().set_text(''.join([i for i in text if i in '0123456789.'])) |
3008 | 417 | elif entry.get_active() >= 0: | 420 | self.disk_size = entry.get_active_text() |
3003 | 418 | entry.child.set_editable(False) | ||
3004 | 419 | self.disk_size = entry.child.get_text() | ||
3009 | 420 | 421 | ||
3010 | 421 | def on_select_flavors(self, widget): | 422 | def on_select_flavors(self, widget): |
3011 | 422 | # On selecting Ubuntu Flavors | 423 | # On selecting Ubuntu Flavors |
3012 | @@ -487,8 +488,7 @@ | |||
3013 | 487 | codenames = [] | 488 | codenames = [] |
3014 | 488 | for iso in isos: | 489 | for iso in isos: |
3015 | 489 | codenames.append(iso.split()[1]) | 490 | codenames.append(iso.split()[1]) |
3018 | 490 | codenames = list(set(codenames)) | 491 | codenames = sorted(set(codenames)) |
3017 | 491 | codenames.sort() | ||
3019 | 492 | codenames.reverse() | 492 | codenames.reverse() |
3020 | 493 | c = i = 0 | 493 | c = i = 0 |
3021 | 494 | for release in codenames: | 494 | for release in codenames: |
3022 | @@ -520,7 +520,7 @@ | |||
3023 | 520 | 520 | ||
3024 | 521 | def update_preferences(self): | 521 | def update_preferences(self): |
3025 | 522 | ################################################################## | 522 | ################################################################## |
3027 | 523 | ###### Prepare the preferences to be saved in the config fiel #### | 523 | ##### Prepare the preferences to be saved in the config field #### |
3028 | 524 | ################################################################## | 524 | ################################################################## |
3029 | 525 | self.preferences = [] | 525 | self.preferences = [] |
3030 | 526 | # CACHE Variables | 526 | # CACHE Variables |
3031 | @@ -547,8 +547,8 @@ | |||
3032 | 547 | self.td.KVM_ARGS = self.txt_kvm_args.get_text() | 547 | self.td.KVM_ARGS = self.txt_kvm_args.get_text() |
3033 | 548 | self.preferences.append(['kvm_args', self.td.KVM_ARGS]) | 548 | self.preferences.append(['kvm_args', self.td.KVM_ARGS]) |
3034 | 549 | 549 | ||
3037 | 550 | if self.txt_smp_nbr.get_text() != None: | 550 | if self.spin_smp_nbr.get_value() != None: |
3038 | 551 | self.td.SMP = self.txt_smp_nbr.get_text() | 551 | self.td.SMP = str(int(self.spin_smp_nbr.get_value())) |
3039 | 552 | self.preferences.append(['smp', self.td.SMP]) | 552 | self.preferences.append(['smp', self.td.SMP]) |
3040 | 553 | 553 | ||
3041 | 554 | #ARCHs | 554 | #ARCHs |
3042 | @@ -563,16 +563,12 @@ | |||
3043 | 563 | self.td.VIRT = self.virt_method | 563 | self.td.VIRT = self.virt_method |
3044 | 564 | self.preferences.append(['virt', self.td.VIRT]) | 564 | self.preferences.append(['virt', self.td.VIRT]) |
3045 | 565 | 565 | ||
3049 | 566 | # Memory - TODO: Add validation of text | 566 | # Memory |
3047 | 567 | if self.mem == 'other': | ||
3048 | 568 | self.mem = self.cbe_mem_size.child.get_text() | ||
3050 | 569 | if self.mem != None or self.mem not in MEM_SIZE_TAB: | 567 | if self.mem != None or self.mem not in MEM_SIZE_TAB: |
3051 | 570 | self.td.MEM = self.mem | 568 | self.td.MEM = self.mem |
3052 | 571 | self.preferences.append(['mem', self.td.MEM]) | 569 | self.preferences.append(['mem', self.td.MEM]) |
3053 | 572 | 570 | ||
3057 | 573 | # Disk Size - TODO: Add validation of text | 571 | # Disk Size |
3055 | 574 | if self.disk_size == 'other': | ||
3056 | 575 | self.disk_size = self.cbe_disk_size.child.get_text() | ||
3058 | 576 | if self.disk_size != None or self.disk_size not in DISK_SIZE_TAB: | 572 | if self.disk_size != None or self.disk_size not in DISK_SIZE_TAB: |
3059 | 577 | self.td.DISK_SIZE = "%sG" % self.disk_size | 573 | self.td.DISK_SIZE = "%sG" % self.disk_size |
3060 | 578 | self.preferences.append(['disk_size', self.td.DISK_SIZE]) | 574 | self.preferences.append(['disk_size', self.td.DISK_SIZE]) |
3061 | @@ -584,4 +580,4 @@ | |||
3062 | 584 | if __name__ == "__main__": | 580 | if __name__ == "__main__": |
3063 | 585 | dialog = PreferencesTestdrivegtkDialog() | 581 | dialog = PreferencesTestdrivegtkDialog() |
3064 | 586 | dialog.show() | 582 | dialog.show() |
3066 | 587 | gtk.main() | 583 | Gtk.main() |
3067 | 588 | 584 | ||
3068 | === modified file 'testdrivegtk/helpers.py' | |||
3069 | --- testdrivegtk/helpers.py 2010-10-01 19:53:36 +0000 | |||
3070 | +++ testdrivegtk/helpers.py 2011-08-23 08:30:25 +0000 | |||
3071 | @@ -25,7 +25,7 @@ | |||
3072 | 25 | ] | 25 | ] |
3073 | 26 | 26 | ||
3074 | 27 | import os | 27 | import os |
3076 | 28 | import gtk | 28 | from gi.repository import Gtk |
3077 | 29 | 29 | ||
3078 | 30 | from testdrivegtk.testdrivegtkconfig import get_data_file | 30 | from testdrivegtk.testdrivegtkconfig import get_data_file |
3079 | 31 | 31 | ||
3080 | @@ -34,7 +34,7 @@ | |||
3081 | 34 | gettext.textdomain('testdrive') | 34 | gettext.textdomain('testdrive') |
3082 | 35 | 35 | ||
3083 | 36 | def get_builder(builder_file_name): | 36 | def get_builder(builder_file_name): |
3085 | 37 | """Return a fully-instantiated gtk.Builder instance from specified ui | 37 | """Return a fully-instantiated Gtk.Builder instance from specified ui |
3086 | 38 | file | 38 | file |
3087 | 39 | 39 | ||
3088 | 40 | :param builder_file_name: The name of the builder file, without extension. | 40 | :param builder_file_name: The name of the builder file, without extension. |
3089 | @@ -45,7 +45,7 @@ | |||
3090 | 45 | if not os.path.exists(ui_filename): | 45 | if not os.path.exists(ui_filename): |
3091 | 46 | ui_filename = None | 46 | ui_filename = None |
3092 | 47 | 47 | ||
3094 | 48 | builder = gtk.Builder() | 48 | builder = Gtk.Builder() |
3095 | 49 | builder.set_translation_domain('testdrivegtk') | 49 | builder.set_translation_domain('testdrivegtk') |
3096 | 50 | builder.add_from_file(ui_filename) | 50 | builder.add_from_file(ui_filename) |
3097 | 51 | return builder | 51 | return builder |
Hi, I expect everyone's busy with Life or getting Ubuntu 11.10 ready but I'd appreciate it if someone could take some time to review this merge proposal. In addition to porting to GTK3, this adds some basic input validation for the virtual machine options, fixes the Other: memory/harddrive option not working, and fixes bug 816266.