Hello community, here is the log from the commit of package gns3-gui for openSUSE:Factory checked in at 2020-11-08 20:59:26 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gns3-gui (Old) and /work/SRC/openSUSE:Factory/.gns3-gui.new.11331 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gns3-gui" Sun Nov 8 20:59:26 2020 rev:2 rq:846961 version:2.2.16 Changes: -------- --- /work/SRC/openSUSE:Factory/gns3-gui/gns3-gui.changes 2020-11-02 10:36:07.223285491 +0100 +++ /work/SRC/openSUSE:Factory/.gns3-gui.new.11331/gns3-gui.changes 2020-11-08 20:59:39.160248993 +0100 @@ -1,0 +2,11 @@ +Thu Nov 5 09:08:09 UTC 2020 - Martin Hauke <[email protected]> + +- Update to version 2.2.16 + * Fix packets capture stops after some time. + * Option to allocate or not the vCPUs and RAM settings for the + GNS3 VM. +- Update to version 2.2.15 + * Fix custom symbol not sent to remote controller when + installing appliance. + +------------------------------------------------------------------- Old: ---- gns3-gui-2.2.14.tar.gz New: ---- gns3-gui-2.2.16.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gns3-gui.spec ++++++ --- /var/tmp/diff_new_pack.F1sBy9/_old 2020-11-08 20:59:39.720247907 +0100 +++ /var/tmp/diff_new_pack.F1sBy9/_new 2020-11-08 20:59:39.720247907 +0100 @@ -21,7 +21,7 @@ %global py3_ver %(if [ -f "python3" ]; then python3 -c "import sys; sys.stdout.write(sys.version[:3])"; else echo 0; fi;) %endif Name: gns3-gui -Version: 2.2.14 +Version: 2.2.16 Release: 0 Summary: GNS3 graphical interface for the GNS3 server License: GPL-3.0-or-later ++++++ gns3-gui-2.2.14.tar.gz -> gns3-gui-2.2.16.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gns3-gui-2.2.14/CHANGELOG new/gns3-gui-2.2.16/CHANGELOG --- old/gns3-gui-2.2.14/CHANGELOG 2020-09-14 22:22:48.000000000 +0200 +++ new/gns3-gui-2.2.16/CHANGELOG 2020-11-05 06:08:19.000000000 +0100 @@ -1,5 +1,14 @@ # Change Log +## 2.2.16 05/11/2020 + +* Fix packets capture stops after some time. Fixes #3067 +* Option to allocate or not the vCPUs and RAM settings for the GNS3 VM. Fixes https://github.com/GNS3/gns3-gui/issues/3069 + +## 2.2.15 07/10/2020 + +* Fix custom symbol not sent to remote controller when installing appliance + ## 2.2.14 14/09/2020 * Improvements to add a new version of an appliance from wizard. Fixes #3002. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gns3-gui-2.2.14/README.rst new/gns3-gui-2.2.16/README.rst --- old/gns3-gui-2.2.14/README.rst 2020-09-14 22:22:48.000000000 +0200 +++ new/gns3-gui-2.2.16/README.rst 2020-11-05 06:08:19.000000000 +0100 @@ -54,6 +54,7 @@ Security issues ---------------- -Please contact us using contact informations available here: -http://docs.gns3.com/1ON9JBXSeR7Nt2-Qum2o3ZX0GU86BZwlmNSUgvmqNWGY/index.html + +Please contact us at [email protected] + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gns3-gui-2.2.14/gns3/crash_report.py new/gns3-gui-2.2.16/gns3/crash_report.py --- old/gns3-gui-2.2.14/gns3/crash_report.py 2020-09-14 22:22:48.000000000 +0200 +++ new/gns3-gui-2.2.16/gns3/crash_report.py 2020-11-05 06:08:19.000000000 +0100 @@ -51,7 +51,7 @@ Report crash to a third party service """ - DSN = "https://79c91554414d4855a323d0d50c31625e:[email protected]/38506" + DSN = "https://7327ec4a849d436dba47b2fea9e2420e:[email protected]/38506" _instance = None def __init__(self): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gns3-gui-2.2.14/gns3/dialogs/setup_wizard.py new/gns3-gui-2.2.16/gns3/dialogs/setup_wizard.py --- old/gns3-gui-2.2.14/gns3/dialogs/setup_wizard.py 2020-09-14 22:22:48.000000000 +0200 +++ new/gns3-gui-2.2.16/gns3/dialogs/setup_wizard.py 2020-11-05 06:08:19.000000000 +0100 @@ -50,6 +50,7 @@ "headless": False, "when_exit": "stop", "engine": "vmware", + "allocate_vcpus_ram": True, "vcpus": 1, "ram": 2048, "vmname": "GNS3 VM", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gns3-gui-2.2.14/gns3/link.py new/gns3-gui-2.2.16/gns3/link.py --- old/gns3-gui-2.2.14/gns3/link.py 2020-09-14 22:22:48.000000000 +0200 +++ new/gns3-gui-2.2.16/gns3/link.py 2020-11-05 06:08:19.000000000 +0100 @@ -19,7 +19,6 @@ Manages and stores everything needed for a connection between 2 devices. """ -import os import re from .qt import sip import uuid @@ -79,6 +78,7 @@ self._deleting = False self._capture_file_path = None self._capture_file = None + self._response_stream = None self._capture_compute_id = None self._initialized = False self._filters = {} @@ -119,13 +119,15 @@ else: self._capture_file = QtCore.QFile(self._capture_file_path) self._capture_file.open(QtCore.QFile.WriteOnly) - Controller.instance().get("/projects/{project_id}/links/{link_id}/pcap".format(project_id=self.project().id(), link_id=self._link_id), - None, - showProgress=False, - downloadProgressCallback=self._downloadPcapProgress, - ignoreErrors=True, # If something is wrong avoid disconnect us from server - timeout=None) - log.debug("Capturing packets to '{}'".format(self._capture_file_path)) + self._response_stream = Controller.instance().get("/projects/{project_id}/links/{link_id}/pcap".format(project_id=self.project().id(), link_id=self._link_id), + None, + showProgress=False, + downloadProgressCallback=self._downloadPcapProgress, + ignoreErrors=True, # If something is wrong avoid disconnect us from server + timeout=None) + log.debug("Has successfully started capturing packets on link {} to '{}'".format(self._link_id, self._capture_file_path)) + else: + self._response_stream = None if "nodes" in result: self._nodes = result["nodes"] @@ -356,9 +358,8 @@ def _startCaptureCallback(self, result, error=False, **kwargs): if error: - log.error("Error while starting capture on link: {}".format(result["message"])) + log.error("Error while starting capture on link {}: {}".format(self._link_id, result["message"])) return - #self._parseResponse(result) def _downloadPcapProgress(self, content, server=None, context={}, **kwargs): """ @@ -386,11 +387,12 @@ link_id=self._link_id), self._stopCaptureCallback) + def _stopCaptureCallback(self, result, error=False, **kwargs): if error: - log.error("Error while stopping capture on link: {}".format(result["message"])) + log.error("Error while stopping capture on link {}: {}".format(self._link_id, result["message"])) return - #self._parseResponse(result) + log.debug("Has successfully stopped capturing packets on link {}".format(self._link_id)) def get(self, path, callback, **kwargs): """ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gns3-gui-2.2.14/gns3/packet_capture.py new/gns3-gui-2.2.16/gns3/packet_capture.py --- old/gns3-gui-2.2.14/gns3/packet_capture.py 2020-09-14 22:22:48.000000000 +0200 +++ new/gns3-gui-2.2.16/gns3/packet_capture.py 2020-11-05 06:08:19.000000000 +0100 @@ -90,12 +90,11 @@ def _updatedLinkSlot(self, link_id): link = self.topology().getLink(link_id) - if link: if link.capturing(): if self._autostart.get(link) and link not in self._tail_process: + log.debug("Starting packet capture reader for link {}".format(link.link_id())) self.startPacketCaptureReader(link) - log.debug("Has successfully started capturing packets on {} to {}".format(link.id(), link.capture_file_path())) else: self.stopPacketCaptureReader(link) @@ -108,7 +107,6 @@ """ link.stopCapture() - log.debug("Has successfully stopped capturing packets on {}".format(link.id())) def startPacketCaptureReader(self, link): """ @@ -121,6 +119,7 @@ Stop the packet capture reader """ if link in self._tail_process and self._tail_process[link].poll() is None: + log.debug("Stopping packet capture reader for link {}".format(link.link_id())) self._tail_process[link].kill() del self._tail_process[link] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gns3-gui-2.2.14/gns3/pages/gns3_vm_preferences_page.py new/gns3-gui-2.2.16/gns3/pages/gns3_vm_preferences_page.py --- old/gns3-gui-2.2.14/gns3/pages/gns3_vm_preferences_page.py 2020-09-14 22:22:48.000000000 +0200 +++ new/gns3-gui-2.2.16/gns3/pages/gns3_vm_preferences_page.py 2020-11-05 06:08:19.000000000 +0100 @@ -42,6 +42,7 @@ self._initialized = False self.uiRefreshPushButton.clicked.connect(self._refreshVMSlot) self.uiGNS3VMEngineComboBox.currentIndexChanged.connect(self._engineChangedSlot) + self.uiAllocatevCPUsRAMCheckBox.stateChanged.connect(self._allocatevCPUsRAMSlot) Controller.instance().connected_signal.connect(self.loadPreferences) def pageInitialized(self): @@ -74,6 +75,18 @@ self.uiPortSpinBox.setVisible(True) self._refreshVMSlot(ignore_error=True) + def _allocatevCPUsRAMSlot(self, state): + """ + Slot to enable or not the vCPUS and RAM spin boxes. + """ + + if state: + self.uiRamSpinBox.setEnabled(True) + self.uiCpuSpinBox.setEnabled(True) + else: + self.uiRamSpinBox.setEnabled(False) + self.uiCpuSpinBox.setEnabled(False) + def loadPreferences(self): """ Loads the preference from controller. @@ -95,6 +108,7 @@ return self._old_settings = copy.copy(result) self._settings = result + self.uiAllocatevCPUsRAMCheckBox.setChecked(self._settings["allocate_vcpus_ram"]) self.uiRamSpinBox.setValue(self._settings["ram"]) self.uiCpuSpinBox.setValue(self._settings["vcpus"]) self.uiPortSpinBox.setValue(self._settings.get("port", 3080)) @@ -174,6 +188,7 @@ "headless": self.uiHeadlessCheckBox.isChecked(), "when_exit": when_exit, "engine": self.uiGNS3VMEngineComboBox.currentData(), + "allocate_vcpus_ram": self.uiAllocatevCPUsRAMCheckBox.isChecked(), "ram": self.uiRamSpinBox.value(), "vcpus": self.uiCpuSpinBox.value(), "port": self.uiPortSpinBox.value() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gns3-gui-2.2.14/gns3/registry/appliance_to_template.py new/gns3-gui-2.2.16/gns3/registry/appliance_to_template.py --- old/gns3-gui-2.2.14/gns3/registry/appliance_to_template.py 2020-09-14 22:22:48.000000000 +0200 +++ new/gns3-gui-2.2.16/gns3/registry/appliance_to_template.py 2020-11-05 06:08:19.000000000 +0100 @@ -178,8 +178,9 @@ if symbol_id.startswith(":/symbols/"): return symbol_id + controller = Controller.instance() path = os.path.join(Config().symbols_dir, symbol_id) - if os.path.exists(path): + if not controller.isRemote() and os.path.exists(path): return os.path.basename(path) if controller_symbols: @@ -197,7 +198,6 @@ url = "https://raw.githubusercontent.com/GNS3/gns3-registry/master/symbols/{}".format(symbol_id) try: self._downloadApplianceSymbol(url, path) - controller = Controller.instance() controller.clearStaticCache() if controller.isRemote(): controller.uploadSymbol(symbol_id, path) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gns3-gui-2.2.14/gns3/ui/gns3_vm_preferences_page.ui new/gns3-gui-2.2.16/gns3/ui/gns3_vm_preferences_page.ui --- old/gns3-gui-2.2.14/gns3/ui/gns3_vm_preferences_page.ui 2020-09-14 22:22:48.000000000 +0200 +++ new/gns3-gui-2.2.16/gns3/ui/gns3_vm_preferences_page.ui 2020-11-05 06:08:19.000000000 +0100 @@ -85,28 +85,28 @@ <string>Settings</string> </property> <layout class="QGridLayout" name="gridLayout"> - <item row="8" column="0" colspan="2"> - <widget class="QLabel" name="uiActionCloseLabel"> + <item row="3" column="0" colspan="2"> + <widget class="QCheckBox" name="uiHeadlessCheckBox"> <property name="text"> - <string>Action when closing GNS3:</string> + <string>Run the VM in headless mode</string> </property> </widget> </item> - <item row="1" column="0" colspan="2"> - <widget class="QCheckBox" name="uiHeadlessCheckBox"> + <item row="11" column="0" colspan="2"> + <widget class="QLabel" name="uiActionCloseLabel"> <property name="text"> - <string>Run the VM in headless mode</string> + <string>Action when closing GNS3:</string> </property> </widget> </item> - <item row="9" column="0" colspan="2"> + <item row="12" column="0" colspan="2"> <widget class="QRadioButton" name="uiWhenExitKeepRadioButton"> <property name="text"> <string>keep the GNS3 VM running</string> </property> </widget> </item> - <item row="10" column="0" colspan="2"> + <item row="13" column="0" colspan="2"> <widget class="QRadioButton" name="uiWhenExitSuspendRadioButton"> <property name="text"> <string>suspend the GNS3 VM</string> @@ -141,22 +141,25 @@ </item> </layout> </item> - <item row="11" column="0" colspan="2"> + <item row="14" column="0" colspan="2"> <widget class="QRadioButton" name="uiWhenExitStopRadioButton"> <property name="text"> <string>stop the GNS3 VM</string> </property> </widget> </item> - <item row="4" column="0"> + <item row="6" column="0"> <widget class="QLabel" name="uiRamLabel"> <property name="text"> <string>RAM:</string> </property> </widget> </item> - <item row="4" column="1"> + <item row="6" column="1"> <widget class="QSpinBox" name="uiRamSpinBox"> + <property name="enabled"> + <bool>false</bool> + </property> <property name="suffix"> <string> MB</string> </property> @@ -174,40 +177,50 @@ </property> </widget> </item> - <item row="5" column="1"> - <widget class="QSpinBox" name="uiCpuSpinBox"> + <item row="2" column="0"> + <widget class="QLabel" name="uiPortLabel"> + <property name="text"> + <string>Port:</string> + </property> + </widget> + </item> + <item row="2" column="1"> + <widget class="QSpinBox" name="uiPortSpinBox"> <property name="minimum"> <number>1</number> </property> + <property name="maximum"> + <number>65635</number> + </property> <property name="value"> - <number>1</number> + <number>80</number> </property> </widget> </item> - <item row="5" column="0"> - <widget class="QLabel" name="uiCpuLabel"> + <item row="4" column="0" colspan="2"> + <widget class="QCheckBox" name="uiAllocatevCPUsRAMCheckBox"> <property name="text"> - <string>vCPUs:</string> + <string>Allocate vCPUs and RAM</string> </property> </widget> </item> - <item row="2" column="0"> - <widget class="QLabel" name="uiPortLabel"> + <item row="5" column="0"> + <widget class="QLabel" name="uiCpuLabel"> <property name="text"> - <string>Port:</string> + <string>vCPUs:</string> </property> </widget> </item> - <item row="2" column="1"> - <widget class="QSpinBox" name="uiPortSpinBox"> + <item row="5" column="1"> + <widget class="QSpinBox" name="uiCpuSpinBox"> + <property name="enabled"> + <bool>false</bool> + </property> <property name="minimum"> <number>1</number> </property> - <property name="maximum"> - <number>65635</number> - </property> <property name="value"> - <number>80</number> + <number>1</number> </property> </widget> </item> @@ -234,9 +247,7 @@ <tabstop>uiGNS3VMEngineComboBox</tabstop> <tabstop>uiVMListComboBox</tabstop> <tabstop>uiRefreshPushButton</tabstop> - <tabstop>uiHeadlessCheckBox</tabstop> <tabstop>uiRamSpinBox</tabstop> - <tabstop>uiCpuSpinBox</tabstop> <tabstop>uiWhenExitKeepRadioButton</tabstop> <tabstop>uiWhenExitSuspendRadioButton</tabstop> <tabstop>uiWhenExitStopRadioButton</tabstop> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gns3-gui-2.2.14/gns3/ui/gns3_vm_preferences_page_ui.py new/gns3-gui-2.2.16/gns3/ui/gns3_vm_preferences_page_ui.py --- old/gns3-gui-2.2.14/gns3/ui/gns3_vm_preferences_page_ui.py 2020-09-14 22:22:48.000000000 +0200 +++ new/gns3-gui-2.2.16/gns3/ui/gns3_vm_preferences_page_ui.py 2020-11-05 06:08:19.000000000 +0100 @@ -2,9 +2,10 @@ # Form implementation generated from reading ui file '/home/grossmj/PycharmProjects/gns3-gui/gns3/ui/gns3_vm_preferences_page.ui' # -# Created by: PyQt5 UI code generator 5.13.2 +# Created by: PyQt5 UI code generator 5.15.0 # -# WARNING! All changes made in this file will be lost! +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. from PyQt5 import QtCore, QtGui, QtWidgets @@ -54,18 +55,18 @@ self.uiGNS3VMSettingsGroupBox.setObjectName("uiGNS3VMSettingsGroupBox") self.gridLayout = QtWidgets.QGridLayout(self.uiGNS3VMSettingsGroupBox) self.gridLayout.setObjectName("gridLayout") - self.uiActionCloseLabel = QtWidgets.QLabel(self.uiGNS3VMSettingsGroupBox) - self.uiActionCloseLabel.setObjectName("uiActionCloseLabel") - self.gridLayout.addWidget(self.uiActionCloseLabel, 8, 0, 1, 2) self.uiHeadlessCheckBox = QtWidgets.QCheckBox(self.uiGNS3VMSettingsGroupBox) self.uiHeadlessCheckBox.setObjectName("uiHeadlessCheckBox") - self.gridLayout.addWidget(self.uiHeadlessCheckBox, 1, 0, 1, 2) + self.gridLayout.addWidget(self.uiHeadlessCheckBox, 3, 0, 1, 2) + self.uiActionCloseLabel = QtWidgets.QLabel(self.uiGNS3VMSettingsGroupBox) + self.uiActionCloseLabel.setObjectName("uiActionCloseLabel") + self.gridLayout.addWidget(self.uiActionCloseLabel, 11, 0, 1, 2) self.uiWhenExitKeepRadioButton = QtWidgets.QRadioButton(self.uiGNS3VMSettingsGroupBox) self.uiWhenExitKeepRadioButton.setObjectName("uiWhenExitKeepRadioButton") - self.gridLayout.addWidget(self.uiWhenExitKeepRadioButton, 9, 0, 1, 2) + self.gridLayout.addWidget(self.uiWhenExitKeepRadioButton, 12, 0, 1, 2) self.uiWhenExitSuspendRadioButton = QtWidgets.QRadioButton(self.uiGNS3VMSettingsGroupBox) self.uiWhenExitSuspendRadioButton.setObjectName("uiWhenExitSuspendRadioButton") - self.gridLayout.addWidget(self.uiWhenExitSuspendRadioButton, 10, 0, 1, 2) + self.gridLayout.addWidget(self.uiWhenExitSuspendRadioButton, 13, 0, 1, 2) self.uiVMNameLabel = QtWidgets.QLabel(self.uiGNS3VMSettingsGroupBox) self.uiVMNameLabel.setObjectName("uiVMNameLabel") self.gridLayout.addWidget(self.uiVMNameLabel, 0, 0, 1, 1) @@ -85,25 +86,18 @@ self.gridLayout.addLayout(self.horizontalLayout, 0, 1, 1, 1) self.uiWhenExitStopRadioButton = QtWidgets.QRadioButton(self.uiGNS3VMSettingsGroupBox) self.uiWhenExitStopRadioButton.setObjectName("uiWhenExitStopRadioButton") - self.gridLayout.addWidget(self.uiWhenExitStopRadioButton, 11, 0, 1, 2) + self.gridLayout.addWidget(self.uiWhenExitStopRadioButton, 14, 0, 1, 2) self.uiRamLabel = QtWidgets.QLabel(self.uiGNS3VMSettingsGroupBox) self.uiRamLabel.setObjectName("uiRamLabel") - self.gridLayout.addWidget(self.uiRamLabel, 4, 0, 1, 1) + self.gridLayout.addWidget(self.uiRamLabel, 6, 0, 1, 1) self.uiRamSpinBox = QtWidgets.QSpinBox(self.uiGNS3VMSettingsGroupBox) + self.uiRamSpinBox.setEnabled(False) self.uiRamSpinBox.setMinimum(512) self.uiRamSpinBox.setMaximum(1000000) self.uiRamSpinBox.setSingleStep(512) self.uiRamSpinBox.setProperty("value", 2048) self.uiRamSpinBox.setObjectName("uiRamSpinBox") - self.gridLayout.addWidget(self.uiRamSpinBox, 4, 1, 1, 1) - self.uiCpuSpinBox = QtWidgets.QSpinBox(self.uiGNS3VMSettingsGroupBox) - self.uiCpuSpinBox.setMinimum(1) - self.uiCpuSpinBox.setProperty("value", 1) - self.uiCpuSpinBox.setObjectName("uiCpuSpinBox") - self.gridLayout.addWidget(self.uiCpuSpinBox, 5, 1, 1, 1) - self.uiCpuLabel = QtWidgets.QLabel(self.uiGNS3VMSettingsGroupBox) - self.uiCpuLabel.setObjectName("uiCpuLabel") - self.gridLayout.addWidget(self.uiCpuLabel, 5, 0, 1, 1) + self.gridLayout.addWidget(self.uiRamSpinBox, 6, 1, 1, 1) self.uiPortLabel = QtWidgets.QLabel(self.uiGNS3VMSettingsGroupBox) self.uiPortLabel.setObjectName("uiPortLabel") self.gridLayout.addWidget(self.uiPortLabel, 2, 0, 1, 1) @@ -113,6 +107,18 @@ self.uiPortSpinBox.setProperty("value", 80) self.uiPortSpinBox.setObjectName("uiPortSpinBox") self.gridLayout.addWidget(self.uiPortSpinBox, 2, 1, 1, 1) + self.uiAllocatevCPUsRAMCheckBox = QtWidgets.QCheckBox(self.uiGNS3VMSettingsGroupBox) + self.uiAllocatevCPUsRAMCheckBox.setObjectName("uiAllocatevCPUsRAMCheckBox") + self.gridLayout.addWidget(self.uiAllocatevCPUsRAMCheckBox, 4, 0, 1, 2) + self.uiCpuLabel = QtWidgets.QLabel(self.uiGNS3VMSettingsGroupBox) + self.uiCpuLabel.setObjectName("uiCpuLabel") + self.gridLayout.addWidget(self.uiCpuLabel, 5, 0, 1, 1) + self.uiCpuSpinBox = QtWidgets.QSpinBox(self.uiGNS3VMSettingsGroupBox) + self.uiCpuSpinBox.setEnabled(False) + self.uiCpuSpinBox.setMinimum(1) + self.uiCpuSpinBox.setProperty("value", 1) + self.uiCpuSpinBox.setObjectName("uiCpuSpinBox") + self.gridLayout.addWidget(self.uiCpuSpinBox, 5, 1, 1, 1) self.verticalLayout.addWidget(self.uiGNS3VMSettingsGroupBox) spacerItem = QtWidgets.QSpacerItem(10, 10, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding) self.verticalLayout.addItem(spacerItem) @@ -122,10 +128,8 @@ GNS3VMPreferencesPageWidget.setTabOrder(self.uiEnableVMCheckBox, self.uiGNS3VMEngineComboBox) GNS3VMPreferencesPageWidget.setTabOrder(self.uiGNS3VMEngineComboBox, self.uiVMListComboBox) GNS3VMPreferencesPageWidget.setTabOrder(self.uiVMListComboBox, self.uiRefreshPushButton) - GNS3VMPreferencesPageWidget.setTabOrder(self.uiRefreshPushButton, self.uiHeadlessCheckBox) - GNS3VMPreferencesPageWidget.setTabOrder(self.uiHeadlessCheckBox, self.uiRamSpinBox) - GNS3VMPreferencesPageWidget.setTabOrder(self.uiRamSpinBox, self.uiCpuSpinBox) - GNS3VMPreferencesPageWidget.setTabOrder(self.uiCpuSpinBox, self.uiWhenExitKeepRadioButton) + GNS3VMPreferencesPageWidget.setTabOrder(self.uiRefreshPushButton, self.uiRamSpinBox) + GNS3VMPreferencesPageWidget.setTabOrder(self.uiRamSpinBox, self.uiWhenExitKeepRadioButton) GNS3VMPreferencesPageWidget.setTabOrder(self.uiWhenExitKeepRadioButton, self.uiWhenExitSuspendRadioButton) GNS3VMPreferencesPageWidget.setTabOrder(self.uiWhenExitSuspendRadioButton, self.uiWhenExitStopRadioButton) @@ -136,8 +140,8 @@ self.uiVirtualizationGroupBox.setTitle(_translate("GNS3VMPreferencesPageWidget", "Virtualization engine")) self.uiEngineDescriptionLabel.setText(_translate("GNS3VMPreferencesPageWidget", "Description")) self.uiGNS3VMSettingsGroupBox.setTitle(_translate("GNS3VMPreferencesPageWidget", "Settings")) - self.uiActionCloseLabel.setText(_translate("GNS3VMPreferencesPageWidget", "Action when closing GNS3:")) self.uiHeadlessCheckBox.setText(_translate("GNS3VMPreferencesPageWidget", "Run the VM in headless mode")) + self.uiActionCloseLabel.setText(_translate("GNS3VMPreferencesPageWidget", "Action when closing GNS3:")) self.uiWhenExitKeepRadioButton.setText(_translate("GNS3VMPreferencesPageWidget", "keep the GNS3 VM running")) self.uiWhenExitSuspendRadioButton.setText(_translate("GNS3VMPreferencesPageWidget", "suspend the GNS3 VM")) self.uiVMNameLabel.setText(_translate("GNS3VMPreferencesPageWidget", "VM name:")) @@ -145,5 +149,6 @@ self.uiWhenExitStopRadioButton.setText(_translate("GNS3VMPreferencesPageWidget", "stop the GNS3 VM")) self.uiRamLabel.setText(_translate("GNS3VMPreferencesPageWidget", "RAM:")) self.uiRamSpinBox.setSuffix(_translate("GNS3VMPreferencesPageWidget", " MB")) - self.uiCpuLabel.setText(_translate("GNS3VMPreferencesPageWidget", "vCPUs:")) self.uiPortLabel.setText(_translate("GNS3VMPreferencesPageWidget", "Port:")) + self.uiAllocatevCPUsRAMCheckBox.setText(_translate("GNS3VMPreferencesPageWidget", "Allocate vCPUs and RAM")) + self.uiCpuLabel.setText(_translate("GNS3VMPreferencesPageWidget", "vCPUs:")) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gns3-gui-2.2.14/gns3/version.py new/gns3-gui-2.2.16/gns3/version.py --- old/gns3-gui-2.2.14/gns3/version.py 2020-09-14 22:22:48.000000000 +0200 +++ new/gns3-gui-2.2.16/gns3/version.py 2020-11-05 06:08:19.000000000 +0100 @@ -23,8 +23,8 @@ # or negative for a release candidate or beta (after the base version # number has been incremented) -__version__ = "2.2.14" -__version_info__ = (2, 2, 14, 0) +__version__ = "2.2.16" +__version_info__ = (2, 2, 16, 0) if "dev" in __version__: try:
