def run(self, file): self._file = file # Display splash screen while waiting for the application to open self.processSplashScreen() # Instantiation of Dynagen self.__dynagen = DynagenSub() self.systconf['dynamips'] = systemDynamipsConf() confo = self.systconf['dynamips'] confo.path = ConfDB().get('Dynamips/hypervisor_path', Defaults.DYNAMIPS_DEFAULT_PATH) confo.port = int(ConfDB().get('Dynamips/hypervisor_port', 7200)) confo.baseUDP = int(ConfDB().get('Dynamips/hypervisor_baseUDP', 10001)) confo.baseConsole = int(ConfDB().get('Dynamips/hypervisor_baseConsole', 2101)) confo.baseAUX = int(ConfDB().get('Dynamips/hypervisor_baseAUX', 2501)) confo.workdir = ConfDB().get('Dynamips/hypervisor_working_directory', Defaults.DYNAMIPS_DEFAULT_WORKDIR) confo.clean_workdir = ConfDB().value("Dynamips/clean_working_directory", QVariant(True)).toBool() confo.ghosting = ConfDB().value("Dynamips/dynamips_ghosting", QVariant(True)).toBool() confo.mmap = ConfDB().value("Dynamips/dynamips_mmap", QVariant(True)).toBool() confo.sparsemem = ConfDB().value("Dynamips/dynamips_sparsemem", QVariant(True)).toBool() confo.jitsharing = ConfDB().value("Dynamips/dynamips_jitsharing", QVariant(False)).toBool() if sys.platform.startswith('win'): confo.memory_limit = int(ConfDB().get("Dynamips/hypervisor_memory_usage_limit", 512)) else: confo.memory_limit = int(ConfDB().get("Dynamips/hypervisor_memory_usage_limit", 1024)) confo.udp_incrementation = int(ConfDB().get("Dynamips/hypervisor_udp_incrementation", 100)) confo.detected_version = ConfDB().get('Dynamips/detected_version', unicode('')) confo.import_use_HypervisorManager = ConfDB().value("Dynamips/hypervisor_manager_import", QVariant(True)).toBool() confo.HypervisorManager_binding = ConfDB().get('Dynamips/hypervisor_manager_binding', unicode('127.0.0.1')) confo.allocateHypervisorPerIOS = ConfDB().value("Dynamips/allocate_hypervisor_per_IOS", QVariant(True)).toBool() # Expand user home dir and environment variables confo.path = os.path.expandvars(os.path.expanduser(confo.path)) confo.workdir = os.path.expandvars(os.path.expanduser(confo.workdir)) # Qemu config self.systconf['qemu'] = systemQemuConf() confo = self.systconf['qemu'] confo.qemuwrapper_path = ConfDB().get('Qemu/qemuwrapper_path', Defaults.QEMUWRAPPER_DEFAULT_PATH) confo.qemuwrapper_workdir = ConfDB().get('Qemu/qemuwrapper_working_directory', Defaults.QEMUWRAPPER_DEFAULT_WORKDIR) confo.qemu_path = ConfDB().get('Qemu/qemu_path', Defaults.QEMU_DEFAULT_PATH) confo.qemu_img_path = ConfDB().get('Qemu/qemu_img_path', Defaults.QEMU_IMG_DEFAULT_PATH) confo.external_hosts = ConfDB().get('Qemu/external_hosts', unicode('127.0.0.1:10525')).split(',') confo.enable_QemuWrapperAdvOptions = ConfDB().value("Qemu/enable_QemuWrapperAdvOptions", QVariant(False)).toBool() confo.enable_QemuManager = ConfDB().value("Qemu/enable_QemuManager", QVariant(True)).toBool() confo.import_use_QemuManager = ConfDB().value("Qemu/qemu_manager_import", QVariant(True)).toBool() confo.send_path_external_QemuWrapper = ConfDB().value("Qemu/send_paths_external_Qemuwrapper", QVariant(False)).toBool() confo.QemuManager_binding = ConfDB().get('Qemu/qemu_manager_binding', unicode('127.0.0.1')) confo.qemuwrapper_port = int(ConfDB().get('Qemu/qemuwrapper_port', 10525)) confo.qemuwrapper_baseUDP = int(ConfDB().get('Qemu/qemuwrapper_baseUDP', 40000)) confo.qemuwrapper_baseConsole = int(ConfDB().get('Qemu/qemuwrapper_baseConsole', 3001)) # Expand user home dir and environment variables confo.qemuwrapper_path = os.path.expandvars(os.path.expanduser(confo.qemuwrapper_path)) confo.qemuwrapper_workdir = os.path.expandvars(os.path.expanduser(confo.qemuwrapper_workdir)) # VBox config self.systconf['vbox'] = systemVBoxConf() confo = self.systconf['vbox'] confo.vboxwrapper_path = ConfDB().get('VBox/vboxwrapper_path', Defaults.VBOXWRAPPER_DEFAULT_PATH) confo.vboxwrapper_workdir = ConfDB().get('VBox/vboxwrapper_working_directory', Defaults.VBOXWRAPPER_DEFAULT_WORKDIR) confo.external_hosts = ConfDB().get('VBox/external_hosts', unicode('127.0.0.1:11525')).split(',') confo.use_VBoxVmnames = ConfDB().value("VBox/use_VBoxVmnames", QVariant(True)).toBool() confo.enable_VBoxWrapperAdvOptions = ConfDB().value("VBox/enable_VBoxWrapperAdvOptions", QVariant(False)).toBool() confo.enable_VBoxAdvOptions = ConfDB().value("VBox/enable_VBoxAdvOptions", QVariant(False)).toBool() confo.enable_GuestControl = ConfDB().value("VBox/enable_GuestControl", QVariant(False)).toBool() confo.enable_VBoxManager = ConfDB().value("VBox/enable_VBoxManager", QVariant(True)).toBool() confo.import_use_VBoxManager = ConfDB().value("VBox/vbox_manager_import", QVariant(True)).toBool() confo.VBoxManager_binding = ConfDB().get('VBox/vbox_manager_binding', unicode('127.0.0.1')) confo.vboxwrapper_port = int(ConfDB().get('VBox/vboxwrapper_port', 11525)) confo.vboxwrapper_baseUDP = int(ConfDB().get('VBox/vboxwrapper_baseUDP', 20900)) confo.vboxwrapper_baseConsole = int(ConfDB().get('VBox/vboxwrapper_baseConsole', 3501)) # Expand user home dir and environment variables confo.vboxwrapper_path = os.path.expandvars(os.path.expanduser(confo.vboxwrapper_path)) confo.vboxwrapper_workdir = os.path.expandvars(os.path.expanduser(confo.vboxwrapper_workdir)) # Capture config self.systconf['capture'] = systemCaptureConf() confo = self.systconf['capture'] confo.workdir = ConfDB().get('Capture/working_directory', Defaults.CAPTURE_DEFAULT_WORKDIR) confo.cap_cmd = ConfDB().get('Capture/capture_reader_cmd', Defaults.CAPTURE_DEFAULT_CMD) confo.auto_start = ConfDB().value('Capture/auto_start_cmd', QVariant(False)).toBool() # Expand user home dir and environment variables confo.cap_cmd = os.path.expandvars(os.path.expanduser(confo.cap_cmd)) confo.workdir = os.path.expandvars(os.path.expanduser(confo.workdir)) # Deployement Wizard config self.systconf['deployement wizard'] = systemDeployementWizardConf() confo = self.systconf['deployement wizard'] confo.deployementwizard_path = ConfDB().get('DeployementWizard/deployementwizard_path', Defaults.DEPLOYEMENTWIZARD_DEFAULT_PATH) confo.deployementwizard_filename = ConfDB().get('DeployementWizard/deployementwizard_filename', unicode('Topology.pdf')) # Expand user home dir and environement variable confo.deployementwizard_path = os.path.expandvars(os.path.expanduser(confo.deployementwizard_path)) confo.deployementwizard_filename = os.path.expandvars(os.path.expanduser(confo.deployementwizard_filename)) # System general config self.systconf['general'] = systemGeneralConf() confo = self.systconf['general'] confo.lang = ConfDB().get('GNS3/lang', unicode('en')) confo.slow_start = int(ConfDB().get('GNS3/slow_start', 1)) confo.autosave = int(ConfDB().get('GNS3/autosave', 0)) confo.project_startup = ConfDB().value("GNS3/project_startup", QVariant(True)).toBool() confo.relative_paths = ConfDB().value("GNS3/relative_paths", QVariant(True)).toBool() confo.auto_screenshot = ConfDB().value("GNS3/auto_screenshot", QVariant(True)).toBool() if sys.platform.startswith('win'): confo.use_shell = ConfDB().value("GNS3/use_shell", QVariant(False)).toBool() else: confo.use_shell = ConfDB().value("GNS3/use_shell", QVariant(True)).toBool() confo.bring_console_to_front = ConfDB().value("GNS3/bring_console_to_front", QVariant(False)).toBool() confo.term_cmd = ConfDB().get('GNS3/console', Defaults.TERMINAL_DEFAULT_CMD) confo.term_serial_cmd = ConfDB().get('GNS3/serial_console', Defaults.TERMINAL_SERIAL_DEFAULT_CMD) confo.term_close_on_delete = ConfDB().value("GNS3/term_close_on_delete", QVariant(True)).toBool() confo.project_path = ConfDB().get('GNS3/project_directory', Defaults.PROJECT_DEFAULT_DIR) confo.ios_path = ConfDB().get('GNS3/ios_directory', Defaults.IOS_DEFAULT_DIR) confo.status_points = ConfDB().value("GNS3/gui_show_status_points", QVariant(True)).toBool() confo.manual_connection = ConfDB().value("GNS3/gui_use_manual_connection", QVariant(True)).toBool() confo.draw_selected_rectangle = ConfDB().value("GNS3/gui_draw_selected_rectangle", QVariant(False)).toBool() confo.scene_width = int(ConfDB().get('GNS3/scene_width', 2000)) confo.scene_height = int(ConfDB().get('GNS3/scene_height', 1000)) confo.console_delay = float(ConfDB().get('GNS3/console_delay', 1)) if sys.platform.startswith('win') or sys.platform.startswith('darwin'): # by default auto check for update only on Windows or OSX confo.auto_check_for_update = ConfDB().value("GNS3/auto_check_for_update", QVariant(True)).toBool() else: confo.auto_check_for_update = ConfDB().value("GNS3/auto_check_for_update", QVariant(False)).toBool() confo.last_check_for_update = int(ConfDB().get('GNS3/last_check_for_update', 0)) # Expand user home dir and environment variables confo.term_cmd = os.path.expandvars(os.path.expanduser(confo.term_cmd)) confo.project_path = os.path.expandvars(os.path.expanduser(confo.project_path)) confo.ios_path = os.path.expandvars(os.path.expanduser(confo.ios_path)) # Restore debug level globals.debugLevel = int(ConfDB().get('GNS3/debug_level', 0)) if globals.debugLevel == 1 or globals.debugLevel == 3: lib.setdebug(True) tracker.setdebug(True) # Now systGeneral settings are loaded, load the translator self.translator = Translator() self.translator.switchLangTo(self.systconf['general'].lang) # HypervisorManager if globals.GApp.systconf['dynamips'].path: self.__HypervisorManager = HypervisorManager() # QemuManager self.__QemuManager = QemuManager() # VBoxManager self.__VBoxManager = VBoxManager() GNS_Conf().VBOX_images() GNS_Conf().IOS_images() GNS_Conf().IOS_hypervisors() GNS_Conf().QEMU_images() GNS_Conf().PIX_images() GNS_Conf().JUNOS_images() GNS_Conf().ASA_images() GNS_Conf().AWP_images() GNS_Conf().IDS_images() GNS_Conf().Libraries() GNS_Conf().Symbols() GNS_Conf().RecentFiles() # Workspace create a ` Scene' object, # so it also set self.__topology self.__workspace = Workspace() # seems strange to have mainWindow = Workspace, but actually, # we don't use MDI style, so there not so much difference. self.__mainWindow = self.__workspace # In GNS3, the `scene' represent the widget where all graphical stuff # are done (drawing Node, Animation), and in Qt, it's the QGraphicsView # which handle all this stuff. self.__scene = self.__mainWindow.graphicsView # Restore the geometry & state of the GUI self.mainWindow.restoreGeometry(ConfDB().value("GUIState/Geometry").toByteArray()) self.mainWindow.restoreState(ConfDB().value("GUIState/State").toByteArray()) self.mainWindow.action_DisableMouseWheel.setChecked(ConfDB().value("GUIState/DisableMouseWheel", QVariant(False)).toBool()) self.mainWindow.action_ZoomUsingMouseWheel.setChecked(ConfDB().value("GUIState/ZoomUsingMouseWheel", QVariant(False)).toBool()) if self.mainWindow.tips_dialog: self.mainWindow.tips_dialog.checkBoxDontShowAgain.setChecked(ConfDB().value("GUIState/DoNotShowTipsDialog", QVariant(False)).toBool()) # load initial stuff once the event loop isn't busy QtCore.QTimer.singleShot(0, self._startupLoading) # By default, don't show the NodeTypes dock self.mainWindow.dockWidget_NodeTypes.setVisible(False) self.mainWindow.show() retcode = QApplication.exec_() self.__HypervisorManager = None self.__QemuManager = None self.__VBoxManager = None if globals.recordConfiguration: # Save the geometry & state of the GUI ConfDB().set("GUIState/Geometry", self.mainWindow.saveGeometry()) ConfDB().set("GUIState/State", self.mainWindow.saveState()) ConfDB().set("GUIState/DisableMouseWheel", self.mainWindow.action_DisableMouseWheel.isChecked()) ConfDB().set("GUIState/ZoomUsingMouseWheel", self.mainWindow.action_ZoomUsingMouseWheel.isChecked()) if self.mainWindow.tips_dialog: ConfDB().set("GUIState/DoNotShowTipsDialog", self.mainWindow.tips_dialog.checkBoxDontShowAgain.isChecked()) self.syncConf() self.deleteLater() sys.exit(retcode)
def loadConf(self): #print "ADEBUG: Page_PreferencesVirtualBox.py: entering class UiConfig_PreferencesVirtualBox::loadConf()" # Use conf from GApp.systconf['vbox'] it it exist, # else get a default config if globals.GApp.systconf.has_key('vbox'): self.conf = globals.GApp.systconf['vbox'] else: self.conf = systemVBoxConf() # Set default path to vboxwrapper if self.conf.vboxwrapper_path == '': self.conf.vboxwrapper_path = VBOXWRAPPER_DEFAULT_PATH # Set default path to working directory if self.conf.vboxwrapper_workdir == '': self.conf.vboxwrapper_workdir = VBOXWRAPPER_DEFAULT_WORKDIR # Push default values to GUI # VBoxwrapper self.lineEditVBoxwrapperPath.setText(os.path.normpath(self.conf.vboxwrapper_path)) self.lineEditVBoxwrapperWorkdir.setText(os.path.normpath(self.conf.vboxwrapper_workdir)) self.comboBoxExternalVBoxwrappers.addItems(self.conf.external_hosts) self.external_hosts = self.conf.external_hosts if self.conf.use_VBoxVmnames: self.checkBoxUseVBoxVMNames.setCheckState(QtCore.Qt.Checked) else: self.checkBoxUseVBoxVMNames.setCheckState(QtCore.Qt.Unchecked) if self.conf.enable_VBoxManager: self.checkBoxEnableVBoxManager.setCheckState(QtCore.Qt.Checked) else: self.checkBoxEnableVBoxManager.setCheckState(QtCore.Qt.Unchecked) if self.conf.import_use_VBoxManager: self.checkBoxVBoxManagerImport.setCheckState(QtCore.Qt.Checked) else: self.checkBoxVBoxManagerImport.setCheckState(QtCore.Qt.Unchecked) if self.conf.enable_GuestControl: self.VBoxcheckBoxEnableGuestControl.setCheckState(QtCore.Qt.Checked) self.VBoxGuestControl_User.setEnabled(True) self.VBoxGuestControl_Password.setEnabled(True) else: self.VBoxcheckBoxEnableGuestControl.setCheckState(QtCore.Qt.Unchecked) self.VBoxGuestControl_User.setEnabled(False) self.VBoxGuestControl_Password.setEnabled(False) if self.conf.enable_VBoxAdvOptions: self.checkBoxVBoxShowAdvancedOptions.setCheckState(QtCore.Qt.Checked) else: self.checkBoxVBoxShowAdvancedOptions.setCheckState(QtCore.Qt.Unchecked) self.slotCheckBoxVBoxShowAdvancedOptions() if self.conf.enable_VBoxWrapperAdvOptions: self.checkBoxVBoxWrapperShowAdvancedOptions.setCheckState(QtCore.Qt.Checked) else: self.checkBoxVBoxWrapperShowAdvancedOptions.setCheckState(QtCore.Qt.Unchecked) self.slotCheckBoxVBoxWrapperShowAdvancedOptions() index = self.comboBoxBinding.findText(self.conf.VBoxManager_binding) if index != -1: self.comboBoxBinding.setCurrentIndex(index) self.port.setValue(self.conf.vboxwrapper_port) self.baseUDP.setValue(self.conf.vboxwrapper_baseUDP) self.baseConsole.setValue(self.conf.vboxwrapper_baseConsole) # VirtualBox settings for (name, conf) in globals.GApp.vboximages.iteritems(): item = QtGui.QTreeWidgetItem(self.treeWidgetVBoxImages) # name column item.setText(0, name) # image path column item.setText(1, conf.filename) self.treeWidgetVBoxImages.resizeColumnToContents(0) self.treeWidgetVBoxImages.sortItems(1, QtCore.Qt.AscendingOrder) # Sort according to GNS3 name