def _browse_file(self, dialog_name, startfolder=None, foldermode=False): mode = Gtk.FileChooserAction.OPEN if foldermode: mode = Gtk.FileChooserAction.SELECT_FOLDER return uihelpers.browse_local(self.topwin, dialog_name, self.conn, dialog_type=mode, start_folder=startfolder)
def browse_local(self, src_ignore): if not self.local_args.get("dialog_name"): self.local_args["dialog_name"] = None filename = uihelpers.browse_local(parent=self.topwin, conn=self.conn, **self.local_args) if filename: self._do_finish(path=filename)
def _do_restore_domain(self, src, uri): conn = self._lookup_conn(uri) if conn.is_remote(): src.err.val_err(_("Restoring virtual machines over remote " "connections is not yet supported")) return path = uihelpers.browse_local(src.topwin, _("Restore Virtual Machine"), conn, browse_reason=self.config.CONFIG_DIR_RESTORE) if not path: return vmmAsyncJob.simple_async_noshow(conn.restore, [path], src, _("Error restoring domain"))
def _do_save_domain(self, src, uri, uuid): conn = self._lookup_conn(uri) vm = conn.get_vm(uuid) managed = bool(vm.managedsave_supported) if not managed and conn.is_remote(): src.err.val_err(_("Saving virtual machines over remote " "connections is not supported with this " "libvirt version or hypervisor.")) return if not uihelpers.chkbox_helper(src, self.config.get_confirm_poweroff, self.config.set_confirm_poweroff, text1=_("Are you sure you want to save '%s'?" % vm.get_name())): return path = None if not managed: path = uihelpers.browse_local(src.topwin, _("Save Virtual Machine"), conn, dialog_type=Gtk.FileChooserAction.SAVE, browse_reason=self.config.CONFIG_DIR_SAVE) if not path: return _cancel_cb = None if vm.getjobinfo_supported: _cancel_cb = (self._save_cancel, vm) def cb(asyncjob): vm.save(path, meter=asyncjob.get_meter()) def finish_cb(error, details): if error is not None: error = _("Error saving domain: %s") % error src.err.show_err(error, details=details) progWin = vmmAsyncJob(cb, [], finish_cb, [], _("Saving Virtual Machine"), _("Saving virtual machine memory to disk "), src.topwin, cancel_cb=_cancel_cb) progWin.run()