Fix populating text box with storage browser selection in 'New VM' (bz 517263)

We were only properly setting the 'finish' callback for the first time the
storage browser was launched. All subsequent runs would not enter anything
in the associated text box.
This commit is contained in:
Cole Robinson 2009-09-14 10:39:57 -04:00
parent 2802745e3e
commit 0e59e69428
3 changed files with 10 additions and 6 deletions

View File

@ -80,7 +80,6 @@ class vmmAddHardware(gobject.GObject):
_("An unexpected error occurred"))
self.storage_browser = None
self._browse_cb_id = None
self._dev = None
@ -911,10 +910,8 @@ class vmmAddHardware(gobject.GObject):
conn = self.vm.get_connection()
if self.storage_browser == None:
self.storage_browser = vmmStorageBrowser(self.config, conn, False)
if self._browse_cb_id:
self.storage_browser.disconnect(self._browse_cb_id)
self._browse_cb_id = self.storage_browser.connect("storage-browse-finish", set_storage_cb)
self.storage_browser.set_finish_cb(set_storage_cb)
self.storage_browser.local_args = { "dialog_name": dialog_name,
"confirm_func": confirm_func,
"browse_reason":

View File

@ -1644,8 +1644,9 @@ class vmmCreate(gobject.GObject):
if self.storage_browser == None:
self.storage_browser = vmmStorageBrowser(self.config, self.conn,
is_media)
self.storage_browser.connect("storage-browse-finish",
callback)
self.storage_browser.set_finish_cb(callback)
if is_media:
reason = self.config.CONFIG_DIR_MEDIA
else:

View File

@ -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,
@ -89,6 +90,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)