diff -rup old/src/virtManager/choosecd.py virt-manager-0.7.0/src/virtManager/choosecd.py --- old/src/virtManager/choosecd.py 2009-09-17 17:12:16.317469000 -0400 +++ virt-manager-0.7.0/src/virtManager/choosecd.py 2009-09-17 17:12:26.626644000 -0400 @@ -23,8 +23,8 @@ import logging import virtinst -from virtManager import util from virtManager.opticalhelper import vmmOpticalDriveHelper +from virtManager.storagebrowse import vmmStorageBrowser from virtManager.error import vmmErrorDialog class vmmChooseCD(gobject.GObject): @@ -39,10 +39,13 @@ class vmmChooseCD(gobject.GObject): 0, gtk.MESSAGE_ERROR, gtk.BUTTONS_CLOSE, _("Unexpected Error"), _("An unexpected error occurred")) + self.topwin = self.window.get_widget("vmm-choose-cd") + self.topwin.hide() + self.config = config - self.window.get_widget("vmm-choose-cd").hide() self.dev_id_info = dev_id_info self.conn = connection + self.storage_browser = None self.window.signal_autoconnect({ "on_media_toggled": self.media_toggled, @@ -130,9 +133,7 @@ class vmmChooseCD(gobject.GObject): pass def browse_fv_iso_location(self, ignore1=None, ignore2=None): - filename = self._browse_file(_("Locate ISO Image")) - if filename != None: - self.window.get_widget("iso-path").set_text(filename) + self._browse_file(_("Locate ISO Image")) def populate_opt_media(self): try: @@ -143,9 +144,17 @@ class vmmChooseCD(gobject.GObject): logging.error("Unable to create optical-helper widget: '%s'", e) self.window.get_widget("physical-media").set_sensitive(False) - def _browse_file(self, dialog_name, folder=None, _type=None): - return util.browse_local(self.window.get_widget("vmm-choose-cd"), - dialog_name, folder, _type) + def set_storage_path(self, src, path): + self.window.get_widget("iso-path").set_text(path) + def _browse_file(self, dialog_name): + if self.storage_browser == None: + self.storage_browser = vmmStorageBrowser(self.config, self.conn) + #self.topwin) + self.storage_browser.connect("storage-browse-finish", + self.set_storage_path) + self.storage_browser.local_args = { "dialog_name": dialog_name } + self.storage_browser.show(self.conn) + return None gobject.type_register(vmmChooseCD) diff -rup old/src/virtManager/create.py virt-manager-0.7.0/src/virtManager/create.py --- old/src/virtManager/create.py 2009-09-17 17:12:16.371469000 -0400 +++ virt-manager-0.7.0/src/virtManager/create.py 2009-09-17 17:14:56.395189000 -0400 @@ -997,18 +997,16 @@ class vmmCreate(gobject.GObject): nodetect_label.show() def browse_iso(self, ignore1=None, ignore2=None): - f = self._browse_file(_("Locate ISO Image"), is_media=True) - if f != None: - self.window.get_widget("install-local-entry").set_text(f) + self._browse_file(_("Locate ISO Image"), + self.set_iso_storage_path) self.window.get_widget("install-local-entry").activate() def toggle_enable_storage(self, src): self.window.get_widget("config-storage-box").set_sensitive(src.get_active()) def browse_storage(self, ignore1): - f = self._browse_file(_("Locate existing storage")) - if f != None: - self.window.get_widget("config-storage-entry").set_text(f) + self._browse_file(_("Locate existing storage"), + self.set_disk_storage_path) def toggle_storage_select(self, src): act = src.get_active() @@ -1017,13 +1015,11 @@ class vmmCreate(gobject.GObject): def toggle_macaddr(self, src): self.window.get_widget("config-macaddr").set_sensitive(src.get_active()) - def set_storage_path(self, src, path): - notebook = self.window.get_widget("create-pages") - curpage = notebook.get_current_page() - if curpage == PAGE_INSTALL: - self.window.get_widget("install-local-entry").set_text(path) - elif curpage == PAGE_STORAGE: - self.window.get_widget("config-storage-entry").set_text(path) + def set_iso_storage_path(self, ignore, path): + self.window.get_widget("install-local-entry").set_text(path) + + def set_disk_storage_path(self, ignore, path): + self.window.get_widget("config-storage-entry").set_text(path) # Navigation methods def set_install_page(self): @@ -1655,20 +1651,14 @@ class vmmCreate(gobject.GObject): logging.exception("Error detecting distro.") self.detectedDistro = (None, None) - def _browse_file(self, dialog_name, folder=None, is_media=False): - - if self.conn.is_remote() or not is_media: - if self.storage_browser == None: - self.storage_browser = vmmStorageBrowser(self.config, - self.conn) - self.storage_browser.connect("storage-browse-finish", - self.set_storage_path) - self.storage_browser.local_args = { "dialog_name": dialog_name, - "start_folder": folder} - self.storage_browser.show(self.conn) - return None - - return util.browse_local(self.topwin, dialog_name, folder) + def _browse_file(self, dialog_name, callback, folder=None): + if self.storage_browser == None: + self.storage_browser = vmmStorageBrowser(self.config, self.conn) + + self.storage_browser.set_finish_cb(callback) + self.storage_browser.local_args = { "dialog_name": dialog_name, + "start_folder": folder} + self.storage_browser.show(self.conn) def show_help(self, ignore): # No help available yet. diff -rup old/src/virtManager/create.py.orig virt-manager-0.7.0/src/virtManager/create.py.orig --- old/src/virtManager/create.py.orig 2009-09-17 17:12:16.548472000 -0400 +++ virt-manager-0.7.0/src/virtManager/create.py.orig 2009-09-17 17:12:26.597639000 -0400 @@ -822,14 +822,14 @@ class vmmCreate(gobject.GObject): def get_storage_info(self): path = None size = self.window.get_widget("config-storage-size").get_value() - nosparse = self.window.get_widget("config-storage-nosparse").get_active() + sparse = not self.window.get_widget("config-storage-nosparse").get_active() if self.window.get_widget("config-storage-create").get_active(): path = self.get_default_path(self.guest.name) logging.debug("Default storage path is: %s" % path) else: path = self.window.get_widget("config-storage-entry").get_text() - return (path, size, nosparse) + return (path, size, sparse) def get_default_path(self, name): path = "" Only in virt-manager-0.7.0/src/virtManager: create.py.rej Only in virt-manager-0.7.0/src/virtManager: .create.py.rej.swp diff -rup old/src/virtManager/storagebrowse.py virt-manager-0.7.0/src/virtManager/storagebrowse.py --- old/src/virtManager/storagebrowse.py 2009-09-17 17:12:16.503470000 -0400 +++ virt-manager-0.7.0/src/virtManager/storagebrowse.py 2009-09-17 17:12:26.650639000 -0400 @@ -47,6 +47,7 @@ class vmmStorageBrowser(gobject.GObject) self.config = config self.conn = conn self.conn_signal_ids = [] + self.finish_cb_id = None self.topwin = self.window.get_widget("vmm-storage-browse") self.err = vmmErrorDialog(self.topwin, @@ -83,6 +84,11 @@ class vmmStorageBrowser(gobject.GObject) self.addvol.close() return 1 + def set_finish_cb(self, callback): + if self.finish_cb_id: + self.disconnect(self.finish_cb_id) + self.finish_cb_id = self.connect("storage-browse-finish", callback) + def set_initial_state(self): pool_list = self.window.get_widget("pool-list") virtManager.host.init_pool_list(pool_list, self.pool_selected)