Migration to QT5

I drop some related cloud support, we will restore it when we will be ready.
* Switch to Python3 super style
* Drop old object inheritance
* Fixed old super call
This commit is contained in:
Julien Duponchelle
2015-04-17 12:14:21 +02:00
parent ec22d72f3f
commit 6ab00e46b2
178 changed files with 132010 additions and 134255 deletions

View File

@@ -30,6 +30,11 @@ The following commands will install some of these dependencies:
.. code:: bash
sudo apt-get install python3-setuptools
sudo apt-get install python3-pyqt5
If you want to test using Qt4
.. code:: bash
sudo apt-get install python3-pyqt4
Finally these commands will install the GUI as well as the rest of the dependencies:
@@ -59,6 +64,11 @@ Then install the GNS3 dependencies.
brew install python3
brew install qt
brew install sip --without-python --with-python3
brew install pyqt5 --without-python --with-python3
If you want to test using Qt4
.. code:: bash
brew install pyqt --without-python --with-python3
Finally, install both the GUI & server from the source.

View File

@@ -64,7 +64,7 @@ def parse_exception(exception):
return status, error_text
class BaseCloudCtrl(object):
class BaseCloudCtrl:
""" Base class for interacting with a cloud provider API. """

View File

@@ -43,7 +43,7 @@ class RackspaceCtrl(BaseCloudCtrl):
""" Controller class for interacting with Rackspace API. """
def __init__(self, username, api_key, *args, **kwargs):
super(RackspaceCtrl, self).__init__(username, api_key)
super().__init__(username, api_key)
# set this up so it can be swapped out with a mock for testing
self.post_fn = requests.post

View File

@@ -1,252 +0,0 @@
# -*- coding: utf-8 -*-
#
# Copyright (C) 2014 GNS3 Technologies Inc.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
"""
from PyQt4.QtCore import pyqtSignal
from PyQt4.QtCore import QThread
import ast
import logging
import os
import time
from .cloud.utils import ssh_client
from .cloud.exceptions import KeyPairExists
from .servers import Servers
from .topology import Topology
log = logging.getLogger(__name__)
class CloudBuilder(QThread):
"""
"""
# Notify with progress amount and instance_id
progressUpdate = pyqtSignal(object, str)
# Notify with current state and instance_id
stateChange = pyqtSignal(object, str)
# Notify when instance is ready with instance_id
buildComplete = pyqtSignal(str)
# Notify when the instance has been created with instance and keypair
instanceCreated = pyqtSignal(object, object)
# Notify when the public ip is available with ip and instance_id
instanceHasIP = pyqtSignal(str, str)
# Notify when instance id exists with builder and instance_id
instanceIdExists = pyqtSignal(object, str)
def __init__(self, parent, cloud_provider, ca_dir):
super(QThread, self).__init__(parent)
# Store our parent so it can be passed to threads we spawn.
self._parent = parent
self._provider = cloud_provider
self._ca_dir = ca_dir
self._start_at_create = False
self._start_at_setup = False
self._instance = None
def startAtCreate(self, instance_name, flavor_id, image_id):
self._start_at_create = True
self._instance_name = instance_name
self._flavor_id = flavor_id
self._image_id = image_id
def startAtSetup(self, instance, keypair):
self._start_at_setup = True
self._instance = instance
self._key_pair = keypair
def run(self):
try:
log.debug('CloudBuilder.run')
if self._start_at_create:
log.debug('CloudBuilder._start_at_create')
self._createInstance(self._provider, self._instance_name, self._flavor_id,
self._image_id)
log.debug('got here 3')
if self._start_at_setup:
log.debug('CloudBuilder start at setup')
self._instanceCreated(self._instance, self._key_pair)
except Exception:
log.exception("CloudBuilder trapped an exception:")
log.error('CloudBuilder stopped in error state.')
def _createInstance(self, provider, name, flavor_id, image_id):
log.debug("Creating cloud keypair with name {}".format(name))
key_pair = None
while key_pair is None:
try:
key_pair = provider.create_key_pair(name)
except KeyPairExists:
log.debug("Deleting old key pair with name {}.".format(name))
self._provider.delete_key_pair_by_name(name)
except Exception as e:
log.debug("create_key_pair exception {}".format(e))
log.debug("Creating cloud server with name {}".format(name))
instance = None
while instance is None:
try:
instance = self._provider.create_instance(name, flavor_id, image_id, key_pair)
except Exception as e:
log.debug("create_instance exception {}".format(e))
log.debug("Cloud server {} created".format(name))
self._instanceCreated(instance, key_pair)
def _instanceCreated(self, instance, key_pair):
log.debug('CloudBuilder._instanceCreated {}'.format(instance.id))
self._instance = instance
self._instance_id = instance.id
self._key_pair = key_pair
self.instanceIdExists.emit(self, instance.id)
self.instanceCreated.emit(instance, key_pair)
self._waitForPublicIP()
def _waitForPublicIP(self):
public_ip = None
while public_ip is None:
time.sleep(10)
try:
instance = self._provider.get_instance(self._instance)
# Look for public ip address
for ip in instance.public_ips:
# Don't use the ipv6 address
if ':' not in ip:
public_ip = ip
break
except Exception as e:
log.debug('list_instances error: {}'.format(e))
# updated info, keep it.
self._instance = instance
self._public_ip = public_ip
self.instanceHasIP.emit(self._public_ip, self._instance.id)
time.sleep(60)
self._startGNS3Server(1800)
def _startGNS3Server(self, dead_time):
commands = '''
DEBIAN_FRONTEND=noninteractive dpkg --configure -a
DEBIAN_FRONTEND=noninteractive dpkg --add-architecture i386
DEBIAN_FRONTEND=noninteractive apt-get -y update
DEBIAN_FRONTEND=noninteractive apt-get -o Dpkg::Options::="--force-confnew" --force-yes -fuy dist-upgrade
DEBIAN_FRONTEND=noninteractive apt-get -y install git python3-setuptools python3-netifaces python3-pip python3-zmq dynamips qemu-system
DEBIAN_FRONTEND=noninteractive apt-get -y install libc6:i386 libstdc++6:i386 libssl1.0.0:i386
ln -s /lib/i386-linux-gnu/libcrypto.so.1.0.0 /lib/i386-linux-gnu/libcrypto.so.4
mkdir -p /opt/gns3
cd /opt/gns3; git clone https://github.com/planctechnologies/gns3-server.git
cd /opt/gns3/gns3-server; git checkout dev; git pull
cd /opt/gns3/gns3-server; pip3 install -r dev-requirements.txt
cd /opt/gns3/gns3-server; python3 ./setup.py install
ln -sf /usr/bin/dynamips /usr/local/bin/dynamips
wget 'https://github.com/GNS3/iouyap/releases/download/0.95/iouyap.tar.gz'
tar xzf iouyap.tar.gz -C /usr/local/bin
python -c 'import struct; open("/etc/hostid", "w").write(struct.pack("i", 00000000))'
hostname gns3-iouvm # set hostname for iou
wget 'http://downloads.sourceforge.net/project/vpcs/0.6/vpcs_0.6_Linux64'
cp vpcs_0.6_Linux64 /usr/local/bin/vpcs
chmod a+x /usr/local/bin/vpcs
killall python3 gns3server gns3dms
'''
def exec_command(client, cmd, wait_time=-1):
cmd += '; exit $?'
stdout_data = b''
stderr_data = b''
log.debug('cmd: {}'.format(cmd))
# Send the command (non-blocking)
stdin, stdout, stderr = client.exec_command(cmd)
# Wait for the command to terminate
wait = int(wait_time)
while not stdout.channel.exit_status_ready() and wait != 0:
time.sleep(1)
wait -= 1
stdout_data = stdout.read()
stderr_data = stderr.read()
log.debug('exit status: {}'.format(stdout.channel.exit_status))
log.debug('stdout: {}'.format(stdout_data.decode('utf-8')))
log.debug('stderr: {}'.format(stderr_data.decode('utf-8')))
return stdout_data, stderr_data
# We might be attempting a connection before the instance is fully booted, so retry
# when the ssh connection fails.
ssh_connected = False
response = None
while not ssh_connected:
with ssh_client(self._public_ip, self._key_pair.private_key) as client:
if client is None:
time.sleep(1)
continue
ssh_connected = True
for cmd in [l for l in commands.splitlines() if l.strip()]:
exec_command(client, cmd)
data = {
'instance_id': self._instance_id,
'cloud_user_name': self._provider.username,
'cloud_api_key': self._provider.api_key,
'cloud_region': self._provider.region,
'dead_time': dead_time,
}
# TODO: Properly escape the data portion of the command line
start_cmd = '/usr/bin/python3 /opt/gns3/gns3-server/gns3server/start_server.py -d -v --ip={} --data="{}" 2>/tmp/gns3-stderr.log'.format(self._public_ip, data)
stdout, stderr = exec_command(client, start_cmd, wait_time=15)
response = stdout.decode('utf-8')
log.debug(response)
data = ast.literal_eval(response)
# TODO: have the server return the port it is running on
port = 8000
username = data['WEB_USERNAME']
password = data['WEB_PASSWORD']
ssl_cert = ''.join(data['SSL_CRT'])
ca_filename = 'cloud_server_{}.crt'.format(self._public_ip)
ca_dir = self._ca_dir
ca_file = os.path.join(ca_dir, ca_filename)
try:
os.makedirs(ca_dir)
except FileExistsError:
pass
with open(ca_file, 'wb') as ca_fh:
ca_fh.write(ssl_cert.encode('utf-8'))
topology = Topology.instance()
top_instance = topology.getInstance(self._instance_id)
top_instance.set_later_attributes(self._public_ip, port, ssl_cert, ca_file)
servers = Servers.instance()
server = servers.getCloudServer(self._public_ip, port, ca_file, username, password,
self._key_pair.private_key, self._instance_id)
servers.save()
log.debug('Cloud server gns3server started.')
self.buildComplete.emit(self._instance_id)

View File

@@ -1,427 +0,0 @@
# -*- coding: utf-8 -*-
from collections import namedtuple
import logging
import os
import json
from libcloud.compute.types import NodeState
from .qt import QtCore, QtGui
from .cloud.utils import (ListInstancesThread, DeleteInstanceThread)
from .topology import Topology
from .servers import Servers
# this widget was promoted on Creator, must use absolute imports
from gns3.ui.cloud_inspector_view_ui import Ui_CloudInspectorView
from gns3.cloud_builder import CloudBuilder
from gns3.cloud_instances import CloudInstances
log = logging.getLogger(__name__)
POLLING_TIMER = 10000 # in milliseconds
class RunningInstanceState(NodeState):
"""
GNS3 states for running instances
"""
GNS3SERVER_STARTING = -1
GNS3SERVER_STARTED = -2
WS_CONNECTED = -3
class InstanceTableModel(QtCore.QAbstractTableModel):
"""
A custom table model storing data of cloud instances
"""
def __init__(self, *args, **kwargs):
super(InstanceTableModel, self).__init__(*args, **kwargs)
self._header_data = ['Instance', '', 'Size', 'Devices'] # status has an empty header label
self._width = len(self._header_data)
self._instances = {}
self._ids = []
self.flavors = {}
@property
def instanceIds(self):
return self._ids
def clear(self):
self._instances = {}
self._ids = []
self.reset()
def _get_status_icon_path(self, instance):
"""
Return a string pointing to the graphic resource
"""
if instance.state == RunningInstanceState.WS_CONNECTED:
return ':/icons/led_green.svg'
elif instance.state in (RunningInstanceState.STOPPED,
RunningInstanceState.TERMINATED,
RunningInstanceState.UNKNOWN):
return ':/icons/led_red.svg'
else:
return ':/icons/led_yellow.svg'
def rowCount(self, QModelIndex_parent=None, *args, **kwargs):
return len(self._instances)
def columnCount(self, QModelIndex_parent=None, *args, **kwargs):
return self._width if len(self._instances) else 0
def data(self, index, role=None):
instance = self._instances.get(self._ids[index.row()])
col = index.column()
if role == QtCore.Qt.DecorationRole:
if col == 1:
# status
return QtGui.QIcon(self._get_status_icon_path(instance))
elif role == QtCore.Qt.DisplayRole:
if col == 0:
# name
return instance.name
elif col == 2:
# size
try:
# for Rackspace instances, update flavor id with a verbose description
return self.flavors.get(instance.extra['flavorId'])
except KeyError:
# fallback to libcloud size property
if instance.size:
return instance.size.ram
# giveup on showing size
return 'Unknown'
elif col == 3:
# devices
count = 0
topology = Topology.instance()
for node in topology.nodes():
id = node._server.instance_id or 0
if instance.id == id:
count += 1
return count
return None
def headerData(self, section, orientation, role=None):
if orientation == QtCore.Qt.Horizontal and role == QtCore.Qt.DisplayRole:
try:
return self._header_data[section]
except IndexError:
return None
return super(InstanceTableModel, self).headerData(section, orientation, role)
def addInstance(self, instance):
self.beginInsertRows(QtCore.QModelIndex(), self.rowCount(), self.rowCount())
if not len(self._instances):
self.beginInsertColumns(QtCore.QModelIndex(), 0, self._width - 1)
self.endInsertColumns()
self._ids.append(instance.id)
self._instances[instance.id] = instance
self.endInsertRows()
def getInstance(self, index):
"""
Retrieve the i-th instance if index is in range
"""
try:
return self._instances.get(self._ids[index])
except IndexError:
return None
def removeInstance(self, instance):
self.removeInstanceById(instance.id)
def removeInstanceById(self, instance_id):
try:
index = self._ids.index(instance_id)
self.beginRemoveRows(QtCore.QModelIndex(), index, index)
del self._instances[instance_id]
del self._ids[index]
self.endRemoveRows()
except ValueError:
pass
def updateInstanceFields(self, instance, field_names):
"""
Update model data and notify connected views
"""
if instance.id in self._ids:
index = self._ids.index(instance.id)
current = self._instances[instance.id]
for field in field_names:
setattr(current, field, getattr(instance, field))
first_index = self.createIndex(index, 0)
last_index = self.createIndex(index, self.columnCount() - 1)
self.dataChanged.emit(first_index, last_index)
else:
self.addInstance(instance)
def getInstanceById(self, instance_id):
return self._instances.get(instance_id, None)
class CloudInspectorView(QtGui.QWidget, Ui_CloudInspectorView):
"""
Table view showing data coming from InstanceTableModel
Signals:
instanceSelected(int) Emitted when users click and select an instance on the inspector.
Param int is the ID of the instance
"""
instanceSelected = QtCore.pyqtSignal(str)
def __init__(self, parent):
super(QtGui.QWidget, self).__init__(parent)
self.setupUi(self)
self._provider = None
self._settings = None
self._project_instances_id = []
self._main_window = None
self._model = InstanceTableModel() # shortcut for self.uiInstancesTableView.model()
self.uiInstancesTableView.setModel(self._model)
self.uiInstancesTableView.verticalHeader().hide()
self.uiInstancesTableView.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
self.uiInstancesTableView.horizontalHeader().setStretchLastSection(True)
# connections
self.uiInstancesTableView.customContextMenuRequested.connect(self._contextMenu)
self.uiInstancesTableView.clicked.connect(self._rowChanged)
self.uiCreateInstanceButton.clicked.connect(self._create_new_instance)
self._pollingTimer = QtCore.QTimer(self)
self._pollingTimer.timeout.connect(self._polling_slot)
# map flavor ids to combobox indexes
self.flavor_index_id = []
# A dictionary of {image_id, CloudBuilder}
self._builders = {}
def _get_flavor_index(self, flavor_id):
try:
return self.flavor_index_id.index(flavor_id)
except ValueError:
return -1
def load(self, main_win, instance_ids):
"""
Fill the model data layer with instance info loaded from the topology file
"""
self._main_window = main_win
self._provider = main_win.cloudProvider
self._settings = main_win.cloudSettings()
log.info('CloudInspectorView.load')
for instance_id in instance_ids:
self._project_instances_id.append(instance_id)
update_thread = ListInstancesThread(self, self._provider)
update_thread.instancesReady.connect(self._update_model)
update_thread.start()
self._pollingTimer.start(POLLING_TIMER)
# fill sizes comboboxes
for id, name in self._provider.list_flavors().items():
self.uiCreateInstanceComboBox.addItem(name)
self.flavor_index_id.append(id)
# select default flavor
new_instance_flavor = self._settings["new_instance_flavor"]
self.uiCreateInstanceComboBox.setCurrentIndex(self._get_flavor_index(new_instance_flavor))
def addInstance(self, instance):
"""
Add a new instance to the inspector
"""
self._project_instances_id.append(instance.id)
def clear(self):
"""
Clear contents and stop polling timer
"""
self._model.clear()
self._pollingTimer.stop()
self._project_instances_id = []
def _contextMenu(self, pos):
# create actions
delete_action = QtGui.QAction("Delete", self)
delete_action.triggered.connect(self._deleteSelectedInstance)
# create context menu and add actions
menu = QtGui.QMenu(self.uiInstancesTableView)
menu.addAction(delete_action)
# show the menu
menu.popup(self.uiInstancesTableView.viewport().mapToGlobal(pos))
def _deleteSelectedInstance(self):
"""
Delete the instance corresponding to the selected table row
"""
sel = self.uiInstancesTableView.selectedIndexes()
if len(sel) and self._provider is not None:
index = sel[0].row()
instance = self._model.getInstance(index)
# warn user this is destructive
msg = "Do you want to remove the instance and any devices running on it?"
proceed = QtGui.QMessageBox.question(self, 'Warning', msg,
QtGui.QMessageBox.Yes, QtGui.QMessageBox.No)
if proceed == QtGui.QMessageBox.Yes:
# disconnect and remove the server
servers = Servers.instance()
cs = servers.cloudServerById(instance.id)
if cs is not None:
servers.removeCloudServer(cs)
# remove instance from the the topology
topology = Topology.instance()
topology.removeInstance(instance.id)
delete_thread = DeleteInstanceThread(self, self._provider, instance)
delete_thread.instanceDeleted.connect(self._main_window.remove_instance_from_project)
delete_thread.start()
instance.name = 'Deleting...'
self._model.updateInstanceFields(instance, ['name'])
def _rowChanged(self, index):
"""
This slot is invoked every time users change the current selected row on the
inspector
"""
selection = self.uiInstancesTableView.selectionModel().selection()
if selection.isEmpty():
return
item = selection.indexes()[0]
if item.isValid():
instance = self._model.getInstance(item.row())
self.instanceSelected.emit(instance.id)
def _polling_slot(self):
"""
Sync model data with instances status
"""
if self._provider is None:
return
update_thread = ListInstancesThread(self, self._provider)
update_thread.instancesReady.connect(self._update_model)
update_thread.start()
def _instanceBuilt(self, id):
"""
This slot is called when instance has finished building.
"""
instance = self._model.getInstanceById(id)
instance.state = RunningInstanceState.WS_CONNECTED
self._model.updateInstanceFields(instance, ['state'])
if self._main_window.loading_cloud_project:
project = self._main_window.project()
path = project.topologyPath()
with open(path, "r") as f:
json_topology = json.load(f)
topology = Topology.instance()
topology.load(json_topology)
self._main_window.loading_cloud_project = False
def _update_model(self, instances):
if not instances:
return
# Filter instances to only those in the current project
project_instances = [i for i in instances if i.id in self._project_instances_id]
# populate underlying model if this is the first call
if self._model.rowCount() == 0 and len(project_instances) > 0:
self._populate_model(project_instances)
self._rebuild_instances(project_instances)
instance_manager = CloudInstances.instance()
instance_manager.update_instances(instances)
# Clean up removed instances
real = set(i.id for i in project_instances)
current = set(self._model.instanceIds)
for i in current.difference(real):
self._model.removeInstanceById(i)
self.uiInstancesTableView.resizeColumnsToContents()
# Update instance status
for i in project_instances:
# get the customized instance state from self._model
model_instance = self._model.getInstanceById(i.id)
# update model instance state if needed
if i.state != RunningInstanceState.RUNNING:
self._model.updateInstanceFields(i, ['state'])
def _populate_model(self, instances):
log.info('CloudInspectorView._populate_model')
self._model.flavors = self._provider.list_flavors()
# filter instances for current project
for inst in instances:
self._model.addInstance(inst)
self.uiInstancesTableView.resizeColumnsToContents()
def _create_new_instance(self):
idx = self.uiCreateInstanceComboBox.currentIndex()
flavor_id = self.flavor_index_id[idx]
image_id = self._settings['default_image']
name, ok = QtGui.QInputDialog.getText(self,
"New instance",
"Choose a name for the instance and press Ok,\n"
"then wait for the instance to appear in the inspector.")
if ok:
self.createInstance(name, flavor_id, image_id)
def createInstance(self, instance_name, flavor_id, image_id):
if not instance_name.endswith("-gns3"):
instance_name += "-gns3"
# TODO: Add a keys_dir to projectSettings
ca_dir = os.path.join(self._main_window.projectSettings()["project_files_dir"], "keys")
builder = CloudBuilder(self, self._provider, ca_dir)
builder.startAtCreate(instance_name, flavor_id, image_id)
builder.instanceCreated.connect(self._main_window.add_instance_to_project)
builder.instanceCreated.connect(CloudInstances.instance().add_instance)
builder.instanceIdExists.connect(self._associateBuilderWithInstance)
builder.instanceHasIP.connect(CloudInstances.instance().update_host_for_instance)
builder.buildComplete.connect(self._instanceBuilt)
builder.start()
return builder
def _associateBuilderWithInstance(self, builder, instance_id):
self._builders[instance_id] = builder
def _rebuild_instances(self, instances):
# TODO: Add a keys_dir to projectSettings
ca_dir = os.path.join(self._main_window.projectSettings()["project_files_dir"], "keys")
for instance in instances:
log.debug('CloudInspectorView._rebuild_instances {}'.format(instance.name))
builder = CloudBuilder(self, self._provider, ca_dir)
cloud_instance = CloudInstances.instance().get_instance(instance.id)
public_key = cloud_instance.public_key
private_key = cloud_instance.private_key
# Fake a KeyPair object because we don't store it.
keypair = namedtuple('KeyPair', ['private_key', 'public_key'])(private_key, public_key)
builder.startAtSetup(instance, keypair)
builder.instanceCreated.connect(self._main_window.add_instance_to_project)
builder.instanceCreated.connect(CloudInstances.instance().add_instance)
builder.instanceIdExists.connect(self._associateBuilderWithInstance)
builder.instanceHasIP.connect(CloudInstances.instance().update_host_for_instance)
builder.buildComplete.connect(self._instanceBuilt)
builder.start()
return builder

View File

@@ -1,154 +0,0 @@
# -*- coding: utf-8 -*-
#
# Copyright (C) 2014 GNS3 Technologies Inc.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
"""
Keeps track of all cloud instances the app has started.
"""
from .qt import QtCore
from gns3.topology import TopologyInstance
import logging
log = logging.getLogger(__name__)
class CloudInstances(QtCore.QObject):
"""
This class stores the instances that gns3 gui has started. This can be different than the list
of instances in the topology that can be changed when switching projects. This list is not touched
when switching projects and is stored in the .ini file.
"""
def __init__(self, *args, **kwargs):
super(CloudInstances, self).__init__(*args, **kwargs)
self._instances = []
@staticmethod
def instance():
"""
Singleton to return only one instance of CloudInstances.
:returns: instance of CloudInstances
"""
if not hasattr(CloudInstances, "_instance"):
CloudInstances._instance = CloudInstances()
return CloudInstances._instance
@property
def instances(self):
return self._instances
def clear(self):
self._instances.clear()
def add(self, topology_instance):
self._instances.append(topology_instance)
def add_instance(self, instance, keypair):
if instance is None:
return
existing = self.get_instance(instance.id)
if existing is None:
ti = TopologyInstance(instance.name, instance.id, instance.extra['flavorId'],
instance.extra['imageId'], keypair.private_key, keypair.public_key)
self._instances.append(ti)
self.save()
def update_instances(self, instances):
"""
Compare with the existing list of instances to purge instances that no
longer exist.
"""
save_needed = False
# Look for instances that have been deleted
for stored in self._instances:
found = False
for dynamic in instances:
if stored.id == dynamic.id:
found = True
break
if not found:
self._instances.remove(stored)
save_needed = True
if save_needed:
self.save()
def update_host_for_instance(self, host, instance_id):
"""
Update the public IP for the instance.
"""
for instance in self.instances:
if instance.id == instance_id:
if instance.host != host:
instance.host = host
self.save()
def save(self):
"""
Save the list of cloud instances to the config file
"""
log.debug('Saving cloud instances')
settings = QtCore.QSettings()
settings.beginGroup("CloudInstances")
settings.remove("")
# Save the instances
settings.beginWriteArray("cloud_instance", len(self._instances))
index = 0
for instance in self._instances:
settings.setArrayIndex(index)
for name in instance.fields():
value = getattr(instance, name) if not None else ""
log.debug('{}={}'.format(name, str(value)[0:60]))
settings.setValue(name, value)
index += 1
settings.endArray()
settings.endGroup()
def load(self):
"""
Load instance info from the config file to the topology
"""
log.debug('Loading cloud instances')
settings = QtCore.QSettings()
settings.beginGroup("CloudInstances")
# Load the instances
size = settings.beginReadArray("cloud_instance")
for index in range(0, size):
settings.setArrayIndex(index)
info = {}
for name in TopologyInstance.fields():
value = settings.value(name, "")
log.debug('{}={}'.format(name, str(value)[0:60]))
info[name] = value
ti = TopologyInstance(**info)
self._instances.append(ti)
def get_instance(self, instance_id):
"""
Retrieve a TopologyInstance objects if present
"""
for i in self._instances:
if i.id == instance_id:
return i
return None

View File

@@ -36,10 +36,6 @@ except ImportError:
class ConsoleCmd(cmd.Cmd):
def __init__(self):
cmd.Cmd.__init__(self)
def do_version(self, args):
"""
Show the version of GNS3 and its dependencies.

View File

@@ -20,6 +20,8 @@ import sys
import struct
import inspect
import datetime
from .qt import QtCore
from .topology import Topology
from .version import __version__
from .console_cmd import ConsoleCmd
@@ -38,12 +40,12 @@ class ConsoleView(PyCutExt, ConsoleCmd):
# Set introduction message
bitness = struct.calcsize("P") * 8
current_year = datetime.date.today().year
self.intro = "GNS3 management console. Running GNS3 version {} on {} ({}-bit).\n" \
"Copyright (c) 2006-{} GNS3 Technologies.".format(__version__, platform.system(), bitness, current_year)
self.intro = "GNS3 management console. Running GNS3 version {} on {} ({}-bit) with Qt {}.\n" \
"Copyright (c) 2006-{} GNS3 Technologies.".format(__version__, platform.system(), bitness, QtCore.QT_VERSION_STR, current_year)
# Parent class initialization
try:
PyCutExt.__init__(self, None, self.intro, parent=parent)
super().__init__(None, self.intro, parent=parent)
# dynamically get all the available commands so we can color them
methods = inspect.getmembers(self, predicate=inspect.ismethod)

View File

@@ -60,7 +60,7 @@ class CrashReport:
if local_server["report_errors"]:
if self._client is None:
self._client = raven.Client(CrashReport.DSN, release=__version__)
self._client.tags_context({
context = {
"os:name": platform.system(),
"os:release": platform.release(),
"os:win_32": " ".join(platform.win32_ver()),
@@ -72,7 +72,9 @@ class CrashReport:
"python:bit": struct.calcsize("P") * 8,
"python:encoding": sys.getdefaultencoding(),
"python:frozen": "{}".format(hasattr(sys, "frozen"))
})
}
context = self._add_qt_informations(context)
self._client.tags_context(context)
try:
report = self._client.captureException((exception, value, tb))
except Exception as e:
@@ -80,6 +82,17 @@ class CrashReport:
return
log.info("Crash report sent with event ID: {}".format(self._client.get_ident(report)))
def _add_qt_informations(self, context):
try:
from .qt import QtCore
import sip
except ImportError:
return context
context["pyqt:version"] = QtCore.PYQT_VERSION_STR
context["qt:version"] = QtCore.QT_VERSION_STR
context["sip:version"] = sip.SIP_VERSION_STR
return context
@classmethod
def instance(cls):
if cls._instance is None:

View File

@@ -15,12 +15,12 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from ..qt import QtGui
from ..qt import QtGui, QtWidgets
from ..version import __version__
from ..ui.about_dialog_ui import Ui_AboutDialog
class AboutDialog(QtGui.QDialog, Ui_AboutDialog):
class AboutDialog(QtWidgets.QDialog, Ui_AboutDialog):
"""
About dialog.
@@ -28,7 +28,7 @@ class AboutDialog(QtGui.QDialog, Ui_AboutDialog):
def __init__(self, parent):
QtGui.QDialog.__init__(self, parent)
super().__init__(parent)
self.setupUi(self)
# dynamically add the current version number

View File

@@ -19,12 +19,12 @@
Dialog to configure and update node settings using widget pages.
"""
from ..qt import QtGui
from ..qt import QtGui, QtWidgets
from ..ui.configuration_dialog_ui import Ui_configurationDialog
from .node_configurator_dialog import ConfigurationError
class ConfigurationDialog(QtGui.QDialog, Ui_configurationDialog):
class ConfigurationDialog(QtWidgets.QDialog, Ui_configurationDialog):
"""
Configuration dialog implementation.
@@ -37,7 +37,7 @@ class ConfigurationDialog(QtGui.QDialog, Ui_configurationDialog):
def __init__(self, name, settings, configuration_page, parent):
QtGui.QDialog.__init__(self, parent)
super().__init__(parent)
self.setupUi(self)
self.uiTitleLabel.setText(name)
@@ -55,11 +55,11 @@ class ConfigurationDialog(QtGui.QDialog, Ui_configurationDialog):
:param button: button that was clicked (QAbstractButton)
"""
if button == self.uiButtonBox.button(QtGui.QDialogButtonBox.Cancel):
QtGui.QDialog.reject(self)
if button == self.uiButtonBox.button(QtWidgets.QDialogButtonBox.Cancel):
QtWidgets.QDialog.reject(self)
else:
try:
self._configuration_page.saveSettings(self._settings)
except ConfigurationError:
return
QtGui.QDialog.accept(self)
QtWidgets.QDialog.accept(self)

View File

@@ -15,11 +15,11 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from ..qt import QtCore, QtGui
from ..qt import QtCore, QtGui, QtWidgets
from ..ui.exec_command_dialog_ui import Ui_ExecCommandDialog
class ExecCommandDialog(QtGui.QDialog, Ui_ExecCommandDialog):
class ExecCommandDialog(QtWidgets.QDialog, Ui_ExecCommandDialog):
"""
Execute a command and display its output.
@@ -27,7 +27,7 @@ class ExecCommandDialog(QtGui.QDialog, Ui_ExecCommandDialog):
def __init__(self, parent, command, params):
QtGui.QDialog.__init__(self, parent)
super().__init__(parent)
self.setupUi(self)
self.setWindowTitle("Executing {}".format(command))
@@ -57,4 +57,4 @@ class ExecCommandDialog(QtGui.QDialog, Ui_ExecCommandDialog):
self._process.kill()
self._process.waitForFinished()
QtGui.QDialog.done(self, result)
super().done(result)

View File

@@ -18,13 +18,13 @@
import os
import sys
from ..qt import QtCore, QtGui, QtWebKit
from ..qt import QtCore, QtGui, QtWebKit, QtWidgets
from ..ui.getting_started_dialog_ui import Ui_GettingStartedDialog
from ..utils.get_resource import get_resource
from ..local_config import LocalConfig
class GettingStartedDialog(QtGui.QDialog, Ui_GettingStartedDialog):
class GettingStartedDialog(QtWidgets.QDialog, Ui_GettingStartedDialog):
"""
GettingStarted dialog.
@@ -32,7 +32,7 @@ class GettingStartedDialog(QtGui.QDialog, Ui_GettingStartedDialog):
def __init__(self, parent):
QtGui.QDialog.__init__(self, parent)
super().__init__(parent)
self.setupUi(self)
self.uiWebView.page().mainFrame().setScrollBarPolicy(QtCore.Qt.Horizontal, QtCore.Qt.ScrollBarAlwaysOff)
@@ -68,7 +68,7 @@ class GettingStartedDialog(QtGui.QDialog, Ui_GettingStartedDialog):
"""
self._local_config.saveSectionSettings("GUI", {"hide_getting_started_dialog": self.uiCheckBox.isChecked()})
QtGui.QDialog.done(self, result)
super().done(result)
def _urlClickedSlot(self, url):
"""
@@ -78,4 +78,4 @@ class GettingStartedDialog(QtGui.QDialog, Ui_GettingStartedDialog):
"""
if QtGui.QDesktopServices.openUrl(url) is False:
QtGui.QMessageBox.critical(self, "Getting started", "Failed to open the URL: {}".format(url))
QtWidgets.QMessageBox.critical(self, "Getting started", "Failed to open the URL: {}".format(url))

View File

@@ -17,12 +17,12 @@
import re
from ..qt import QtGui
from ..qt import QtGui, QtWidgets
from ..topology import Topology
from ..ui.idlepc_dialog_ui import Ui_IdlePCDialog
class IdlePCDialog(QtGui.QDialog, Ui_IdlePCDialog):
class IdlePCDialog(QtWidgets.QDialog, Ui_IdlePCDialog):
"""
Idle-PC dialog.
@@ -30,10 +30,10 @@ class IdlePCDialog(QtGui.QDialog, Ui_IdlePCDialog):
def __init__(self, router, idlepcs, parent):
QtGui.QDialog.__init__(self, parent)
super().__init__(parent)
self.setupUi(self)
self.uiButtonBox.button(QtGui.QDialogButtonBox.Apply).clicked.connect(self._applySlot)
self.uiButtonBox.button(QtGui.QDialogButtonBox.Help).clicked.connect(self._helpSlot)
self.uiButtonBox.button(QtWidgets.QDialogButtonBox.Apply).clicked.connect(self._applySlot)
self.uiButtonBox.button(QtWidgets.QDialogButtonBox.Help).clicked.connect(self._helpSlot)
self._router = router
self._idlepcs = idlepcs
@@ -56,7 +56,7 @@ class IdlePCDialog(QtGui.QDialog, Ui_IdlePCDialog):
"different Idle-PC values and monitoring the CPU usage.\n\nBest Idle-PC values are usually " \
"obtained when IOS is in idle state, the following message being displayed " \
"on the console: {} con0 is now available ... Press RETURN to get started.".format(self._router.name())
QtGui.QMessageBox.information(self, "Hints for Idle-PC", help_text)
QtWidgets.QMessageBox.information(self, "Hints for Idle-PC", help_text)
def _applySlot(self):
"""
@@ -64,7 +64,7 @@ class IdlePCDialog(QtGui.QDialog, Ui_IdlePCDialog):
"""
if not self.uiComboBox.count():
QtGui.QMessageBox.critical(self, "Idle-PC", "Sorry could not find a valid Idle-PC value, please check again with Cisco IOS in a different state")
QtWidgets.QMessageBox.critical(self, "Idle-PC", "Sorry could not find a valid Idle-PC value, please check again with Cisco IOS in a different state")
return
idlepc = self.uiComboBox.itemData(self.uiComboBox.currentIndex())
@@ -83,4 +83,4 @@ class IdlePCDialog(QtGui.QDialog, Ui_IdlePCDialog):
if result:
self._applySlot()
QtGui.QDialog.done(self, result)
super().done(result)

View File

@@ -3,19 +3,19 @@ Dialog for importing cloud projects
"""
from ..ui.import_cloud_project_dialog_ui import Ui_ImportCloudProjectDialog
from ..qt import QtGui
from ..qt import QtGui, QtWidgets
from ..cloud.utils import get_cloud_projects, DownloadProjectThread, DeleteProjectThread
from ..utils.progress_dialog import ProgressDialog
class ImportCloudProjectDialog(QtGui.QDialog, Ui_ImportCloudProjectDialog):
class ImportCloudProjectDialog(QtWidgets.QDialog, Ui_ImportCloudProjectDialog):
"""
Import cloud project dialog implementation.
"""
def __init__(self, parent, project_dest_path, images_dest_path, cloud_settings):
QtGui.QDialog.__init__(self, parent)
super().__init__(parent)
self.setupUi(self)
self.project_dest_path = project_dest_path
@@ -52,15 +52,15 @@ class ImportCloudProjectDialog(QtGui.QDialog, Ui_ImportCloudProjectDialog):
def _deleteProject(self):
project_file_name = self.projects[self.listWidget.currentItem().text()]
button_clicked = QtGui.QMessageBox.question(
button_clicked = QtWidgets.QMessageBox.question(
self,
"Delete project",
"Are you sure you want to delete project " + self.listWidget.currentItem().text(),
QtGui.QMessageBox.Yes | QtGui.QMessageBox.No,
QtGui.QMessageBox.Yes
QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No,
QtWidgets.QMessageBox.Yes
)
if button_clicked == QtGui.QMessageBox.Yes:
if button_clicked == QtWidgets.QMessageBox.Yes:
delete_project_thread = DeleteProjectThread(self, project_file_name, self.cloud_settings)
progress_dialog = ProgressDialog(delete_project_thread, "Deleting project", "Deleting project files...",
"Cancel", parent=self)

View File

@@ -16,12 +16,12 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import os
from ..qt import QtCore, QtGui
from ..qt import QtCore, QtGui, QtWidgets
from ..ui.new_project_dialog_ui import Ui_NewProjectDialog
from ..settings import ENABLE_CLOUD
class NewProjectDialog(QtGui.QDialog, Ui_NewProjectDialog):
class NewProjectDialog(QtWidgets.QDialog, Ui_NewProjectDialog):
"""
New project dialog.
@@ -33,7 +33,7 @@ class NewProjectDialog(QtGui.QDialog, Ui_NewProjectDialog):
def __init__(self, parent, showed_from_startup=False):
QtGui.QDialog.__init__(self, parent)
super().__init__(parent)
self.setupUi(self)
self._main_window = parent
@@ -72,8 +72,8 @@ class NewProjectDialog(QtGui.QDialog, Ui_NewProjectDialog):
Slot to select the a new project location.
"""
path = QtGui.QFileDialog.getSaveFileName(self, "Project location", os.path.join(self._main_window.projectsDirPath(),
self.uiNameLineEdit.text()))
path = QtWidgets.QFileDialog.getSaveFileName(self, "Project location", os.path.join(self._main_window.projectsDirPath(),
self.uiNameLineEdit.text()))
if path:
self.uiLocationLineEdit.setText(path)
@@ -104,7 +104,7 @@ class NewProjectDialog(QtGui.QDialog, Ui_NewProjectDialog):
lot to show all the recent projects in a menu.
"""
menu = QtGui.QMenu()
menu = QtWidgets.QMenu()
menu.triggered.connect(self._menuTriggeredSlot)
for action in self._main_window._recent_file_actions:
menu.addAction(action)
@@ -121,20 +121,20 @@ class NewProjectDialog(QtGui.QDialog, Ui_NewProjectDialog):
project_type = "local"
if not project_name:
QtGui.QMessageBox.critical(self, "New project", "Project name is empty")
QtWidgets.QMessageBox.critical(self, "New project", "Project name is empty")
return
if not project_location:
QtGui.QMessageBox.critical(self, "New project", "Project location is empty")
QtWidgets.QMessageBox.critical(self, "New project", "Project location is empty")
return
if os.path.isdir(project_location):
reply = QtGui.QMessageBox.question(self,
"New project",
"Location {} already exists, overwrite it?".format(project_location),
QtGui.QMessageBox.Yes,
QtGui.QMessageBox.No)
if reply == QtGui.QMessageBox.No:
reply = QtWidgets.QMessageBox.question(self,
"New project",
"Location {} already exists, overwrite it?".format(project_location),
QtWidgets.QMessageBox.Yes,
QtWidgets.QMessageBox.No)
if reply == QtWidgets.QMessageBox.No:
return
self._project_settings["project_name"] = project_name
@@ -142,4 +142,4 @@ class NewProjectDialog(QtGui.QDialog, Ui_NewProjectDialog):
self._project_settings["project_files_dir"] = project_location
self._project_settings["project_type"] = project_type
QtGui.QDialog.done(self, result)
super().done(result)

View File

@@ -22,11 +22,11 @@ Dialog to configure and update node settings using widget pages.
from gns3.http_client import HTTPClient
from gns3.progress import Progress
from ..qt import QtCore, QtGui
from ..qt import QtCore, QtGui, QtWidgets
from ..ui.node_configurator_dialog_ui import Ui_NodeConfiguratorDialog
class NodeConfiguratorDialog(QtGui.QDialog, Ui_NodeConfiguratorDialog):
class NodeConfiguratorDialog(QtWidgets.QDialog, Ui_NodeConfiguratorDialog):
"""
Node configurator implementation.
@@ -37,20 +37,20 @@ class NodeConfiguratorDialog(QtGui.QDialog, Ui_NodeConfiguratorDialog):
def __init__(self, node_items, parent):
QtGui.QDialog.__init__(self, parent)
super().__init__(parent)
self.setupUi(self)
self._node_items = node_items
self._parent_items = {}
self.uiButtonBox.button(QtGui.QDialogButtonBox.Apply).setEnabled(False)
self.uiButtonBox.button(QtGui.QDialogButtonBox.Reset).setEnabled(False)
self.uiButtonBox.button(QtWidgets.QDialogButtonBox.Apply).setEnabled(False)
self.uiButtonBox.button(QtWidgets.QDialogButtonBox.Reset).setEnabled(False)
self.previousItem = None
self.previousPage = None
# load the empty page widget by default
self.uiEmptyPageWidget = self.uiConfigStackedWidget.findChildren(QtGui.QWidget, "uiEmptyPageWidget")[0]
self.uiEmptyPageWidget = self.uiConfigStackedWidget.findChildren(QtWidgets.QWidget, "uiEmptyPageWidget")[0]
self.uiConfigStackedWidget.setCurrentWidget(self.uiEmptyPageWidget)
self._loadNodeItems()
@@ -71,7 +71,7 @@ class NodeConfiguratorDialog(QtGui.QDialog, Ui_NodeConfiguratorDialog):
group_name = " {} group".format(str(node_item.node()))
parent = group_name
if parent not in self._parent_items:
item = QtGui.QTreeWidgetItem(self.uiNodesTreeWidget, [group_name])
item = QtWidgets.QTreeWidgetItem(self.uiNodesTreeWidget, [group_name])
item.setIcon(0, QtGui.QIcon(node_item.node().defaultSymbol()))
item.setExpanded(True)
self._parent_items[parent] = item
@@ -122,11 +122,11 @@ class NodeConfiguratorDialog(QtGui.QDialog, Ui_NodeConfiguratorDialog):
self.uiConfigStackedWidget.setCurrentWidget(page)
if page != self.uiEmptyPageWidget:
self.uiButtonBox.button(QtGui.QDialogButtonBox.Apply).setEnabled(True)
self.uiButtonBox.button(QtGui.QDialogButtonBox.Reset).setEnabled(True)
self.uiButtonBox.button(QtWidgets.QDialogButtonBox.Apply).setEnabled(True)
self.uiButtonBox.button(QtWidgets.QDialogButtonBox.Reset).setEnabled(True)
else:
self.uiButtonBox.button(QtGui.QDialogButtonBox.Apply).setEnabled(False)
self.uiButtonBox.button(QtGui.QDialogButtonBox.Reset).setEnabled(False)
self.uiButtonBox.button(QtWidgets.QDialogButtonBox.Apply).setEnabled(False)
self.uiButtonBox.button(QtWidgets.QDialogButtonBox.Reset).setEnabled(False)
def on_uiButtonBox_clicked(self, button):
"""
@@ -137,17 +137,17 @@ class NodeConfiguratorDialog(QtGui.QDialog, Ui_NodeConfiguratorDialog):
try:
from gns3.main_window import MainWindow
if button == self.uiButtonBox.button(QtGui.QDialogButtonBox.Apply):
if button == self.uiButtonBox.button(QtWidgets.QDialogButtonBox.Apply):
self.applySettings()
elif button == self.uiButtonBox.button(QtGui.QDialogButtonBox.Reset):
elif button == self.uiButtonBox.button(QtWidgets.QDialogButtonBox.Reset):
self.resetSettings()
elif button == self.uiButtonBox.button(QtGui.QDialogButtonBox.Cancel):
elif button == self.uiButtonBox.button(QtWidgets.QDialogButtonBox.Cancel):
HTTPClient.setProgressCallback(Progress(MainWindow.instance()))
QtGui.QDialog.reject(self)
QtWidgets.QDialog.reject(self)
else:
self.applySettings()
HTTPClient.setProgressCallback(Progress(MainWindow.instance()))
QtGui.QDialog.accept(self)
QtWidgets.QDialog.accept(self)
except ConfigurationError:
pass
@@ -208,7 +208,7 @@ class NodeConfiguratorDialog(QtGui.QDialog, Ui_NodeConfiguratorDialog):
child.setSettings(child.node().settings().copy())
class ConfigurationPageItem(QtGui.QTreeWidgetItem):
class ConfigurationPageItem(QtWidgets.QTreeWidgetItem):
"""
Item for the QTreeWidget instance.
@@ -221,7 +221,7 @@ class ConfigurationPageItem(QtGui.QTreeWidgetItem):
def __init__(self, parent, node_item):
self._node = node_item.node()
QtGui.QTreeWidgetItem.__init__(self, parent, [self._node.name()])
super().__init__(parent, [self._node.name()])
# return the configuration page widget used to configure the node.
self._page = self._node.configPage()
@@ -285,4 +285,4 @@ class ConfigurationError(Exception):
def __init__(self):
Exception.__init__(self)
super().__init__()

View File

@@ -19,7 +19,7 @@
Dialog to load module and built-in preference pages.
"""
from ..qt import QtCore, QtGui
from ..qt import QtCore, QtGui, QtWidgets
from ..ui.preferences_dialog_ui import Ui_PreferencesDialog
from ..pages.server_preferences_page import ServerPreferencesPage
from ..pages.general_preferences_page import GeneralPreferencesPage
@@ -31,7 +31,7 @@ from ..http_client import HTTPClient
from ..progress import Progress
class PreferencesDialog(QtGui.QDialog, Ui_PreferencesDialog):
class PreferencesDialog(QtWidgets.QDialog, Ui_PreferencesDialog):
"""
Preferences dialog implementation.
@@ -41,11 +41,11 @@ class PreferencesDialog(QtGui.QDialog, Ui_PreferencesDialog):
def __init__(self, parent):
QtGui.QDialog.__init__(self, parent)
super().__init__(parent)
self.setupUi(self)
self.uiTreeWidget.currentItemChanged.connect(self._showPreferencesPageSlot)
self.uiButtonBox.button(QtGui.QDialogButtonBox.Apply).clicked.connect(self._applyPreferences)
self.uiButtonBox.button(QtWidgets.QDialogButtonBox.Apply).clicked.connect(self._applyPreferences)
self._items = []
self._loadPreferencePages()
@@ -71,7 +71,7 @@ class PreferencesDialog(QtGui.QDialog, Ui_PreferencesDialog):
preferences_page = page(self)
preferences_page.loadPreferences()
name = preferences_page.windowTitle()
item = QtGui.QTreeWidgetItem(self.uiTreeWidget)
item = QtWidgets.QTreeWidgetItem(self.uiTreeWidget)
item.setText(0, name)
item.setData(0, QtCore.Qt.UserRole, preferences_page)
self.uiStackedWidget.addWidget(preferences_page)
@@ -85,7 +85,7 @@ class PreferencesDialog(QtGui.QDialog, Ui_PreferencesDialog):
preferences_page = cls()
preferences_page.loadPreferences()
name = preferences_page.windowTitle()
item = QtGui.QTreeWidgetItem(parent)
item = QtWidgets.QTreeWidgetItem(parent)
item.setText(0, name)
item.setData(0, QtCore.Qt.UserRole, preferences_page)
self.uiStackedWidget.addWidget(preferences_page)
@@ -141,7 +141,7 @@ class PreferencesDialog(QtGui.QDialog, Ui_PreferencesDialog):
from gns3.main_window import MainWindow
HTTPClient.setProgressCallback(Progress(MainWindow.instance()))
QtGui.QDialog.reject(self)
QtWidgets.QDialog.reject(self)
def accept(self):
"""
@@ -156,4 +156,4 @@ class PreferencesDialog(QtGui.QDialog, Ui_PreferencesDialog):
if self._applyPreferences():
from gns3.main_window import MainWindow
HTTPClient.setProgressCallback(Progress(MainWindow.instance()))
QtGui.QDialog.accept(self)
QtWidgets.QDialog.accept(self)

View File

@@ -24,7 +24,7 @@ import re
import time
import os
from ..qt import QtCore, QtGui
from ..qt import QtCore, QtGui, QtWidgets
from ..utils.progress_dialog import ProgressDialog
from ..utils.process_files_thread import ProcessFilesThread
from ..ui.snapshots_dialog_ui import Ui_SnapshotsDialog
@@ -32,7 +32,7 @@ from ..topology import Topology
from ..node import Node
class SnapshotsDialog(QtGui.QDialog, Ui_SnapshotsDialog):
class SnapshotsDialog(QtWidgets.QDialog, Ui_SnapshotsDialog):
"""
Snapshots dialog implementation.
@@ -42,7 +42,7 @@ class SnapshotsDialog(QtGui.QDialog, Ui_SnapshotsDialog):
def __init__(self, parent, project_path, project_files_dir):
QtGui.QDialog.__init__(self, parent)
super().__init__(parent)
self.setupUi(self)
self._project_path = project_path
@@ -70,7 +70,7 @@ class SnapshotsDialog(QtGui.QDialog, Ui_SnapshotsDialog):
snapshot_name = match.group(1)
snapshot_date = match.group(2)[:2] + '/' + match.group(2)[2:4] + '/' + match.group(2)[4:]
snapshot_time = match.group(3)[:2] + ':' + match.group(3)[2:4] + ':' + match.group(3)[4:]
item = QtGui.QListWidgetItem(self.uiSnapshotsList)
item = QtWidgets.QListWidgetItem(self.uiSnapshotsList)
item.setText("{} on {} at {}".format(snapshot_name, snapshot_date, snapshot_time))
item.setData(QtCore.Qt.UserRole, os.path.join(snapshot_dir, snapshot))
@@ -89,7 +89,7 @@ class SnapshotsDialog(QtGui.QDialog, Ui_SnapshotsDialog):
Slot to create a snapshot.
"""
snapshot_name, ok = QtGui.QInputDialog.getText(self, "Snapshot", "Snapshot name:", QtGui.QLineEdit.Normal, "Unnamed")
snapshot_name, ok = QtWidgets.QInputDialog.getText(self, "Snapshot", "Snapshot name:", QtWidgets.QLineEdit.Normal, "Unnamed")
if ok and snapshot_name:
from ..main_window import MainWindow
MainWindow.instance().saveProject(self._project_path)
@@ -135,9 +135,9 @@ class SnapshotsDialog(QtGui.QDialog, Ui_SnapshotsDialog):
snapshot_name = match.group(1)
else:
snapshot_name = "Unknown"
reply = QtGui.QMessageBox.question(self, "Snapshots", "This will discard any changes made to your project since the snapshot \"{}\" was taken?".format(snapshot_name),
QtGui.QMessageBox.Ok, QtGui.QMessageBox.Cancel)
if reply == QtGui.QMessageBox.Cancel:
reply = QtWidgets.QMessageBox.question(self, "Snapshots", "This will discard any changes made to your project since the snapshot \"{}\" was taken?".format(snapshot_name),
QtWidgets.QMessageBox.Ok, QtWidgets.QMessageBox.Cancel)
if reply == QtWidgets.QMessageBox.Cancel:
return
# stop all the nodes

View File

@@ -19,11 +19,11 @@
Style editor to edit Shape items.
"""
from ..qt import QtCore, QtGui
from ..qt import QtCore, QtGui, QtWidgets
from ..ui.style_editor_dialog_ui import Ui_StyleEditorDialog
class StyleEditorDialog(QtGui.QDialog, Ui_StyleEditorDialog):
class StyleEditorDialog(QtWidgets.QDialog, Ui_StyleEditorDialog):
"""
Style editor dialog.
@@ -34,13 +34,13 @@ class StyleEditorDialog(QtGui.QDialog, Ui_StyleEditorDialog):
def __init__(self, parent, items):
QtGui.QDialog.__init__(self, parent)
super().__init__(parent)
self.setupUi(self)
self._items = items
self.uiColorPushButton.clicked.connect(self._setColorSlot)
self.uiBorderColorPushButton.clicked.connect(self._setBorderColorSlot)
self.uiButtonBox.button(QtGui.QDialogButtonBox.Apply).clicked.connect(self._applyPreferencesSlot)
self.uiButtonBox.button(QtWidgets.QDialogButtonBox.Apply).clicked.connect(self._applyPreferencesSlot)
self.uiBorderStyleComboBox.addItem("Solid", QtCore.Qt.SolidLine)
self.uiBorderStyleComboBox.addItem("Dash", QtCore.Qt.DashLine)
@@ -74,7 +74,7 @@ class StyleEditorDialog(QtGui.QDialog, Ui_StyleEditorDialog):
Slot to select the filling color.
"""
color = QtGui.QColorDialog.getColor(self._color, self, "Select Color", QtGui.QColorDialog.ShowAlphaChannel)
color = QtWidgets.QColorDialog.getColor(self._color, self, "Select Color", QtWidgets.QColorDialog.ShowAlphaChannel)
if color.isValid():
self._color = color
self.uiColorPushButton.setStyleSheet("background-color: rgba({}, {}, {}, {});".format(self._color.red(),
@@ -87,7 +87,7 @@ class StyleEditorDialog(QtGui.QDialog, Ui_StyleEditorDialog):
Slot to select the border color.
"""
color = QtGui.QColorDialog.getColor(self._border_color, self, "Select Color", QtGui.QColorDialog.ShowAlphaChannel)
color = QtWidgets.QColorDialog.getColor(self._border_color, self, "Select Color", QtWidgets.QColorDialog.ShowAlphaChannel)
if color.isValid():
self._border_color = color
self.uiBorderColorPushButton.setStyleSheet("background-color: rgba({}, {}, {}, {});".format(self._border_color.red(),
@@ -118,4 +118,4 @@ class StyleEditorDialog(QtGui.QDialog, Ui_StyleEditorDialog):
if result:
self._applyPreferencesSlot()
QtGui.QDialog.done(self, result)
super().done(result)

View File

@@ -19,12 +19,12 @@
Dialog to change the topology symbol of NodeItems
"""
from ..qt import QtSvg, QtCore, QtGui
from ..qt import QtSvg, QtCore, QtGui, QtWidgets
from ..ui.symbol_selection_dialog_ui import Ui_SymbolSelectionDialog
from ..node import Node
class SymbolSelectionDialog(QtGui.QDialog, Ui_SymbolSelectionDialog):
class SymbolSelectionDialog(QtWidgets.QDialog, Ui_SymbolSelectionDialog):
"""
Symbol selection dialog.
@@ -35,16 +35,16 @@ class SymbolSelectionDialog(QtGui.QDialog, Ui_SymbolSelectionDialog):
def __init__(self, parent, items=None, symbol=None, category=None):
QtGui.QDialog.__init__(self, parent)
super().__init__(parent)
self.setupUi(self)
self._items = items
self.uiButtonBox.button(QtGui.QDialogButtonBox.Apply).clicked.connect(self._applyPreferencesSlot)
self.uiButtonBox.button(QtWidgets.QDialogButtonBox.Apply).clicked.connect(self._applyPreferencesSlot)
selected_symbol = symbol
selected_category = category
if not self._items:
self.uiButtonBox.button(QtGui.QDialogButtonBox.Apply).hide()
self.uiButtonBox.button(QtWidgets.QDialogButtonBox.Apply).hide()
# current categories
categories = {"Routers": Node.routers,
@@ -74,7 +74,7 @@ class SymbolSelectionDialog(QtGui.QDialog, Ui_SymbolSelectionDialog):
for symbol in symbol_resources.children():
if symbol.endswith(".normal.svg"):
name = symbol[:-11]
item = QtGui.QListWidgetItem(self.uiSymbolListWidget)
item = QtWidgets.QListWidgetItem(self.uiSymbolListWidget)
item.setText(name)
resource_path = ":/symbols/" + symbol
svg_renderer = QtSvg.QSvgRenderer(resource_path)
@@ -127,4 +127,4 @@ class SymbolSelectionDialog(QtGui.QDialog, Ui_SymbolSelectionDialog):
if result and self._items:
self._applyPreferencesSlot()
QtGui.QDialog.done(self, result)
super().done(result)

View File

@@ -19,11 +19,11 @@
Text editor to edit Note items.
"""
from ..qt import QtCore, QtGui
from ..qt import QtCore, QtGui, QtWidgets
from ..ui.text_editor_dialog_ui import Ui_TextEditorDialog
class TextEditorDialog(QtGui.QDialog, Ui_TextEditorDialog):
class TextEditorDialog(QtWidgets.QDialog, Ui_TextEditorDialog):
"""
Text editor dialog.
@@ -34,13 +34,13 @@ class TextEditorDialog(QtGui.QDialog, Ui_TextEditorDialog):
def __init__(self, parent, items):
QtGui.QDialog.__init__(self, parent)
super().__init__(parent)
self.setupUi(self)
self._items = items
self.uiFontPushButton.clicked.connect(self._setFontSlot)
self.uiColorPushButton.clicked.connect(self._setColorSlot)
self.uiButtonBox.button(QtGui.QDialogButtonBox.Apply).clicked.connect(self._applyPreferencesSlot)
self.uiButtonBox.button(QtWidgets.QDialogButtonBox.Apply).clicked.connect(self._applyPreferencesSlot)
# use the first item in the list as the model
first_item = items[0]
@@ -63,7 +63,7 @@ class TextEditorDialog(QtGui.QDialog, Ui_TextEditorDialog):
Slot to select the font.
"""
selected_font, ok = QtGui.QFontDialog.getFont(self.uiPlainTextEdit.font(), self)
selected_font, ok = QtWidgets.QFontDialog.getFont(self.uiPlainTextEdit.font(), self)
if ok:
self.uiPlainTextEdit.setFont(selected_font)
@@ -72,7 +72,7 @@ class TextEditorDialog(QtGui.QDialog, Ui_TextEditorDialog):
Slot to select the color.
"""
color = QtGui.QColorDialog.getColor(self._color, self)
color = QtWidgets.QColorDialog.getColor(self._color, self)
if color.isValid():
self._color = color
self.uiColorPushButton.setStyleSheet("background-color: {}".format(self._color.name()))
@@ -99,4 +99,4 @@ class TextEditorDialog(QtGui.QDialog, Ui_TextEditorDialog):
if result:
self._applyPreferencesSlot()
QtGui.QDialog.done(self, result)
super().done(result)

View File

@@ -24,7 +24,7 @@ import os
import pickle
import functools
from .qt import QtCore, QtGui, QtNetwork
from .qt import QtCore, QtGui, QtNetwork, QtWidgets
from .servers import Servers
from .items.node_item import NodeItem
from .dialogs.node_configurator_dialog import NodeConfiguratorDialog
@@ -57,7 +57,7 @@ from .items.image_item import ImageItem
log = logging.getLogger(__name__)
class GraphicsView(QtGui.QGraphicsView):
class GraphicsView(QtWidgets.QGraphicsView):
"""
Graphics view that displays the scene.
@@ -71,7 +71,7 @@ class GraphicsView(QtGui.QGraphicsView):
# is the main window.
self._main_window = parent.parent()
QtGui.QGraphicsView.__init__(self, parent)
super().__init__(parent)
self._settings = {}
self._loadSettings()
@@ -85,18 +85,18 @@ class GraphicsView(QtGui.QGraphicsView):
self._topology = Topology.instance()
# set the scene
scene = QtGui.QGraphicsScene(parent=self)
scene = QtWidgets.QGraphicsScene(parent=self)
width = self._settings["scene_width"]
height = self._settings["scene_height"]
scene.setSceneRect(-(width / 2), -(height / 2), width, height)
self.setScene(scene)
# set the custom flags for this view
self.setDragMode(QtGui.QGraphicsView.RubberBandDrag)
self.setCacheMode(QtGui.QGraphicsView.CacheBackground)
self.setDragMode(QtWidgets.QGraphicsView.RubberBandDrag)
self.setCacheMode(QtWidgets.QGraphicsView.CacheBackground)
self.setRenderHint(QtGui.QPainter.Antialiasing)
self.setTransformationAnchor(QtGui.QGraphicsView.AnchorUnderMouse)
self.setResizeAnchor(QtGui.QGraphicsView.AnchorViewCenter)
self.setTransformationAnchor(QtWidgets.QGraphicsView.AnchorUnderMouse)
self.setResizeAnchor(QtWidgets.QGraphicsView.AnchorViewCenter)
self._local_addresses = ['0.0.0.0', '127.0.0.1', 'localhost', '::1', '0:0:0:0:0:0:0:1', '::', QtNetwork.QHostInfo.localHostName()]
@@ -355,10 +355,10 @@ class GraphicsView(QtGui.QGraphicsView):
if not source_port:
return
if not source_item.node().initialized():
QtGui.QMessageBox.critical(self, "Connection", "This node hasn't been initialized correctly")
QtWidgets.QMessageBox.critical(self, "Connection", "This node hasn't been initialized correctly")
return
if not source_port.isFree():
QtGui.QMessageBox.critical(self, "Connection", "Port {} isn't free".format(source_port.name()))
QtWidgets.QMessageBox.critical(self, "Connection", "Port {} isn't free".format(source_port.name()))
return
if source_port.linkType() == "Serial":
self._newlink = SerialLinkItem(source_item, source_port, self.mapToScene(event.pos()), None, adding_flag=True)
@@ -370,25 +370,25 @@ class GraphicsView(QtGui.QGraphicsView):
source_port = self._newlink.sourcePort()
destination_item = item
if source_item == destination_item:
QtGui.QMessageBox.critical(self, "Connection", "Cannot connect to itself!")
QtWidgets.QMessageBox.critical(self, "Connection", "Cannot connect to itself!")
return
destination_port = destination_item.connectToPort()
if not destination_port:
return
if not destination_item.node().initialized():
QtGui.QMessageBox.critical(self, "Connection", "This node hasn't been initialized correctly")
QtWidgets.QMessageBox.critical(self, "Connection", "This node hasn't been initialized correctly")
return
if not destination_port.isFree():
QtGui.QMessageBox.critical(self, "Connection", "Port {} isn't free".format(destination_port.name()))
QtWidgets.QMessageBox.critical(self, "Connection", "Port {} isn't free".format(destination_port.name()))
return
if source_port.isStub() or destination_port.isStub():
pass
elif source_port.linkType() != destination_port.linkType():
QtGui.QMessageBox.critical(self, "Connection", "Cannot connect this port!")
QtWidgets.QMessageBox.critical(self, "Connection", "Cannot connect this port!")
return
if isinstance(source_item.node(), Cloud) and isinstance(destination_item.node(), Cloud):
QtGui.QMessageBox.critical(self, "Connection", "Sorry, you cannot connect a cloud to another cloud!")
QtWidgets.QMessageBox.critical(self, "Connection", "Sorry, you cannot connect a cloud to another cloud!")
return
source_host = source_item.node().server().host
@@ -396,13 +396,13 @@ class GraphicsView(QtGui.QGraphicsView):
# check that the node can be connected to a cloud
if (isinstance(source_item.node(), Cloud) or isinstance(destination_item.node(), Cloud)) and source_host != destination_host:
QtGui.QMessageBox.critical(self, "Connection", "This device can only be connected to a cloud on the same host")
QtWidgets.QMessageBox.critical(self, "Connection", "This device can only be connected to a cloud on the same host")
return
# check if the 2 nodes can communicate
if (source_host in self._local_addresses and destination_host not in self._local_addresses) or \
(destination_host in self._local_addresses and source_host not in self._local_addresses):
QtGui.QMessageBox.critical(self, "Connection", "Server {} cannot communicate with server {}, most likely because your local server host binding is set to a local address".format(source_host, destination_host))
QtWidgets.QMessageBox.critical(self, "Connection", "Server {} cannot communicate with server {}, most likely because your local server host binding is set to a local address".format(source_host, destination_host))
return
self.scene().removeItem(self._newlink)
@@ -487,7 +487,7 @@ class GraphicsView(QtGui.QGraphicsView):
self.setCursor(QtCore.Qt.ArrowCursor)
self._adding_ellipse = False
else:
QtGui.QGraphicsView.mousePressEvent(self, event)
super().mousePressEvent(event)
def mouseReleaseEvent(self, event):
"""
@@ -505,7 +505,7 @@ class GraphicsView(QtGui.QGraphicsView):
else:
if item is not None and not event.modifiers() & QtCore.Qt.ControlModifier:
item.setSelected(True)
QtGui.QGraphicsView.mouseReleaseEvent(self, event)
super().mouseReleaseEvent(event)
def wheelEvent(self, event):
"""
@@ -518,14 +518,14 @@ class GraphicsView(QtGui.QGraphicsView):
# CTRL is pressed then use the mouse wheel to zoom in or out.
self.scaleView(pow(2.0, event.delta() / 240.0))
else:
QtGui.QGraphicsView.wheelEvent(self, event)
super().wheelEvent(event)
def scaleView(self, scale_factor):
"""
Scales the view (zoom in and out).
"""
factor = self.matrix().scale(scale_factor, scale_factor).mapRect(QtCore.QRectF(0, 0, 1, 1)).width()
factor = self.transform().scale(scale_factor, scale_factor).mapRect(QtCore.QRectF(0, 0, 1, 1)).width()
if (factor < 0.10 or factor > 10):
return
self.scale(scale_factor, scale_factor)
@@ -541,12 +541,12 @@ class GraphicsView(QtGui.QGraphicsView):
# check if we are editing an NoteItem instance, then send the delete key event to it
for item in self.scene().selectedItems():
if isinstance(item, NoteItem) and item.hasFocus():
QtGui.QGraphicsView.keyPressEvent(self, event)
super().keyPressEvent(event)
return
self.deleteActionSlot()
QtGui.QGraphicsView.keyPressEvent(self,event)
super().keyPressEvent(event)
else:
QtGui.QGraphicsView.keyPressEvent(self, event)
super().keyPressEvent(event)
def mouseMoveEvent(self, event):
"""
@@ -563,7 +563,7 @@ class GraphicsView(QtGui.QGraphicsView):
hBar = self.horizontalScrollBar()
vBar = self.verticalScrollBar()
delta = mapped_global_pos - self._last_mouse_position
hBar.setValue(hBar.value() + (delta.x() if QtGui.QApplication.isRightToLeft() else -delta.x()))
hBar.setValue(hBar.value() + (delta.x() if QtWidgets.QApplication.isRightToLeft() else -delta.x()))
vBar.setValue(vBar.value() - delta.y())
self._last_mouse_position = mapped_global_pos
if self._adding_link and self._newlink:
@@ -576,7 +576,7 @@ class GraphicsView(QtGui.QGraphicsView):
# show item coords in the status bar
coords = "X: {} Y: {} Z: {}".format(item.x(), item.y(), item.zValue())
self._main_window.uiStatusBar.showMessage(coords, 2000)
QtGui.QGraphicsView.mouseMoveEvent(self, event)
super().mouseMoveEvent(event)
def mouseDoubleClickEvent(self, event):
"""
@@ -593,7 +593,7 @@ class GraphicsView(QtGui.QGraphicsView):
else:
self.configureSlot()
else:
QtGui.QGraphicsView.mouseDoubleClickEvent(self, event)
super().mouseDoubleClickEvent(event)
def configureSlot(self, items=None):
"""
@@ -640,7 +640,7 @@ class GraphicsView(QtGui.QGraphicsView):
if event.keyboardModifiers() == QtCore.Qt.ShiftModifier:
max_nodes_per_line = 10 # max number of nodes on a single line
offset = 100 # spacing between elements
integer, ok = QtGui.QInputDialog.getInteger(self, "Nodes", "Number of nodes:", 2, 1, 100, 1)
integer, ok = QtWidgets.QInputDialog.getInteger(self, "Nodes", "Number of nodes:", 2, 1, 100, 1)
if ok:
for node_number in range(integer):
node_item = self.createNode(node_data, event.pos())
@@ -654,7 +654,7 @@ class GraphicsView(QtGui.QGraphicsView):
self.createNode(node_data, event.pos())
elif event.mimeData().hasFormat("text/uri-list") and event.mimeData().hasUrls():
if len(event.mimeData().urls()) > 1:
QtGui.QMessageBox.critical(self, "Project files", "Please drop only one file")
QtWidgets.QMessageBox.critical(self, "Project files", "Please drop only one file")
return
path = event.mimeData().urls()[0].toLocalFile()
if os.path.isfile(path) and self._main_window.checkForUnsavedChanges():
@@ -670,7 +670,7 @@ class GraphicsView(QtGui.QGraphicsView):
:param pos: position where to display the menu
"""
menu = QtGui.QMenu()
menu = QtWidgets.QMenu()
self.populateDeviceContextualMenu(menu)
menu.exec_(pos)
menu.clear()
@@ -687,103 +687,103 @@ class GraphicsView(QtGui.QGraphicsView):
return
if True in list(map(lambda item: isinstance(item, NodeItem), items)):
configure_action = QtGui.QAction("Configure", menu)
configure_action = QtWidgets.QAction("Configure", menu)
configure_action.setIcon(QtGui.QIcon(':/icons/configuration.svg'))
configure_action.triggered.connect(self.configureActionSlot)
menu.addAction(configure_action)
# Action: Change hostname
change_hostname_action = QtGui.QAction("Change hostname", menu)
change_hostname_action = QtWidgets.QAction("Change hostname", menu)
change_hostname_action.setIcon(QtGui.QIcon(':/icons/show-hostname.svg'))
self.connect(change_hostname_action, QtCore.SIGNAL('triggered()'), self.changeHostnameActionSlot)
menu.addAction(change_hostname_action)
# Action: Change symbol
change_symbol_action = QtGui.QAction("Change symbol", menu)
change_symbol_action = QtWidgets.QAction("Change symbol", menu)
change_symbol_action.setIcon(QtGui.QIcon(':/icons/node_conception.svg'))
self.connect(change_symbol_action, QtCore.SIGNAL('triggered()'), self.changeSymbolActionSlot)
menu.addAction(change_symbol_action)
if True in list(map(lambda item: isinstance(item, NodeItem) and hasattr(item.node(), "console"), items)):
console_action = QtGui.QAction("Console", menu)
console_action = QtWidgets.QAction("Console", menu)
console_action.setIcon(QtGui.QIcon(':/icons/console.svg'))
console_action.triggered.connect(self.consoleActionSlot)
menu.addAction(console_action)
if True in list(map(lambda item: isinstance(item, NodeItem) and hasattr(item.node(), "auxConsole"), items)):
aux_console_action = QtGui.QAction("Auxiliary console", menu)
aux_console_action = QtWidgets.QAction("Auxiliary console", menu)
aux_console_action.setIcon(QtGui.QIcon(':/icons/aux-console.svg'))
aux_console_action.triggered.connect(self.auxConsoleActionSlot)
menu.addAction(aux_console_action)
if True in list(map(lambda item: isinstance(item, NodeItem) and hasattr(item.node(), "importConfig"), items)):
import_config_action = QtGui.QAction("Import config", menu)
import_config_action = QtWidgets.QAction("Import config", menu)
import_config_action.setIcon(QtGui.QIcon(':/icons/import_config.svg'))
import_config_action.triggered.connect(self.importConfigActionSlot)
menu.addAction(import_config_action)
if True in list(map(lambda item: isinstance(item, NodeItem) and hasattr(item.node(), "exportConfig"), items)):
export_config_action = QtGui.QAction("Export config", menu)
export_config_action = QtWidgets.QAction("Export config", menu)
export_config_action.setIcon(QtGui.QIcon(':/icons/export_config.svg'))
export_config_action.triggered.connect(self.exportConfigActionSlot)
menu.addAction(export_config_action)
if True in list(map(lambda item: isinstance(item, NodeItem) and hasattr(item.node(), "saveConfig"), items)):
save_config_action = QtGui.QAction("Save config", menu)
save_config_action = QtWidgets.QAction("Save config", menu)
save_config_action.setIcon(QtGui.QIcon(':/icons/save.svg'))
save_config_action.triggered.connect(self.saveConfigActionSlot)
menu.addAction(save_config_action)
if True in list(map(lambda item: isinstance(item, NodeItem) and hasattr(item.node(), "startPacketCapture"), items)):
capture_action = QtGui.QAction("Capture", menu)
capture_action = QtWidgets.QAction("Capture", menu)
capture_action.setIcon(QtGui.QIcon(':/icons/inspect.svg'))
capture_action.triggered.connect(self.captureActionSlot)
menu.addAction(capture_action)
if True in list(map(lambda item: isinstance(item, NodeItem) and hasattr(item.node(), "idlepc"), items)):
idlepc_action = QtGui.QAction("Idle-PC", menu)
idlepc_action = QtWidgets.QAction("Idle-PC", menu)
idlepc_action.setIcon(QtGui.QIcon(':/icons/calculate.svg'))
idlepc_action.triggered.connect(self.idlepcActionSlot)
menu.addAction(idlepc_action)
if True in list(map(lambda item: isinstance(item, NodeItem) and hasattr(item.node(), "start"), items)):
start_action = QtGui.QAction("Start", menu)
start_action = QtWidgets.QAction("Start", menu)
start_action.setIcon(QtGui.QIcon(':/icons/start.svg'))
start_action.triggered.connect(self.startActionSlot)
menu.addAction(start_action)
if True in list(map(lambda item: isinstance(item, NodeItem) and hasattr(item.node(), "suspend"), items)):
suspend_action = QtGui.QAction("Suspend", menu)
suspend_action = QtWidgets.QAction("Suspend", menu)
suspend_action.setIcon(QtGui.QIcon(':/icons/pause.svg'))
suspend_action.triggered.connect(self.suspendActionSlot)
menu.addAction(suspend_action)
if True in list(map(lambda item: isinstance(item, NodeItem) and hasattr(item.node(), "stop"), items)):
stop_action = QtGui.QAction("Stop", menu)
stop_action = QtWidgets.QAction("Stop", menu)
stop_action.setIcon(QtGui.QIcon(':/icons/stop.svg'))
stop_action.triggered.connect(self.stopActionSlot)
menu.addAction(stop_action)
if True in list(map(lambda item: isinstance(item, NodeItem) and hasattr(item.node(), "reload"), items)):
reload_action = QtGui.QAction("Reload", menu)
reload_action = QtWidgets.QAction("Reload", menu)
reload_action.setIcon(QtGui.QIcon(':/icons/reload.svg'))
reload_action.triggered.connect(self.reloadActionSlot)
menu.addAction(reload_action)
if True in list(map(lambda item: isinstance(item, NoteItem) or isinstance(item, ShapeItem) or isinstance(item, ImageItem), items)):
duplicate_action = QtGui.QAction("Duplicate", menu)
duplicate_action = QtWidgets.QAction("Duplicate", menu)
duplicate_action.setIcon(QtGui.QIcon(':/icons/new.svg'))
duplicate_action.triggered.connect(self.duplicateActionSlot)
menu.addAction(duplicate_action)
if True in list(map(lambda item: isinstance(item, NoteItem), items)):
text_edit_action = QtGui.QAction("Text edit", menu)
text_edit_action = QtWidgets.QAction("Text edit", menu)
text_edit_action.setIcon(QtGui.QIcon(':/icons/show-hostname.svg')) # TODO: change icon for text edit
text_edit_action.triggered.connect(self.textEditActionSlot)
menu.addAction(text_edit_action)
if True in list(map(lambda item: isinstance(item, ShapeItem), items)):
style_action = QtGui.QAction("Style", menu)
style_action = QtWidgets.QAction("Style", menu)
style_action.setIcon(QtGui.QIcon(':/icons/drawing.svg'))
style_action.triggered.connect(self.styleActionSlot)
menu.addAction(style_action)
@@ -792,27 +792,27 @@ class GraphicsView(QtGui.QGraphicsView):
if True in list(map(lambda item: item.parentItem() is None, items)):
if len(items) > 1:
horizontal_align_action = QtGui.QAction("Align horizontally", menu)
horizontal_align_action = QtWidgets.QAction("Align horizontally", menu)
horizontal_align_action.setIcon(QtGui.QIcon(':/icons/horizontally.svg'))
horizontal_align_action.triggered.connect(self.horizontalAlignmentSlot)
menu.addAction(horizontal_align_action)
vertical_align_action = QtGui.QAction("Align vertically", menu)
vertical_align_action = QtWidgets.QAction("Align vertically", menu)
vertical_align_action.setIcon(QtGui.QIcon(':/icons/vertically.svg'))
vertical_align_action.triggered.connect(self.verticalAlignmentSlot)
menu.addAction(vertical_align_action)
raise_layer_action = QtGui.QAction("Raise one layer", menu)
raise_layer_action = QtWidgets.QAction("Raise one layer", menu)
raise_layer_action.setIcon(QtGui.QIcon(':/icons/raise_z_value.svg'))
raise_layer_action.triggered.connect(self.raiseLayerActionSlot)
menu.addAction(raise_layer_action)
lower_layer_action = QtGui.QAction("Lower one layer", menu)
lower_layer_action = QtWidgets.QAction("Lower one layer", menu)
lower_layer_action.setIcon(QtGui.QIcon(':/icons/lower_z_value.svg'))
lower_layer_action.triggered.connect(self.lowerLayerActionSlot)
menu.addAction(lower_layer_action)
delete_action = QtGui.QAction("Delete", menu)
delete_action = QtWidgets.QAction("Delete", menu)
delete_action.setIcon(QtGui.QIcon(':/icons/delete.svg'))
delete_action.triggered.connect(self.deleteActionSlot)
menu.addAction(delete_action)
@@ -879,11 +879,11 @@ class GraphicsView(QtGui.QGraphicsView):
for item in self.scene().selectedItems():
if isinstance(item, NodeItem) and item.node().initialized():
new_hostname, ok = QtGui.QInputDialog.getText(self, "Change hostname", "Hostname:", QtGui.QLineEdit.Normal, item.node().name())
new_hostname, ok = QtWidgets.QInputDialog.getText(self, "Change hostname", "Hostname:", QtWidgets.QLineEdit.Normal, item.node().name())
if ok:
if hasattr(item.node(), "validateHostname"):
if not item.node().validateHostname(new_hostname):
QtGui.QMessageBox.critical(self, "Change hostname", "Invalid name detected for this node: {}".format(new_hostname))
QtWidgets.QMessageBox.critical(self, "Change hostname", "Invalid name detected for this node: {}".format(new_hostname))
continue
item.node().update({"name": new_hostname})
@@ -925,14 +925,14 @@ class GraphicsView(QtGui.QGraphicsView):
from .serial_console import serialConsole
serialConsole(node.name())
except (OSError, ValueError) as e:
QtGui.QMessageBox.critical(self, "Console", "Cannot start serial console application: {}".format(e))
QtWidgets.QMessageBox.critical(self, "Console", "Cannot start serial console application: {}".format(e))
return False
else:
name = node.name()
if aux:
console_port = node.auxConsole()
if console_port is None:
QtGui.QMessageBox.critical(self, "Console", "AUX console port not allocated for {}".format(name))
QtWidgets.QMessageBox.critical(self, "Console", "AUX console port not allocated for {}".format(name))
return False
else:
console_port = node.console()
@@ -961,7 +961,7 @@ class GraphicsView(QtGui.QGraphicsView):
telnetConsole(name, console_host, console_port, telnet_callback)
except (OSError, ValueError) as e:
QtGui.QMessageBox.critical(self, "Console", "Cannot start console application: {}".format(e))
QtWidgets.QMessageBox.critical(self, "Console", "Cannot start console application: {}".format(e))
return False
return True
@@ -1038,25 +1038,25 @@ class GraphicsView(QtGui.QGraphicsView):
return
if len(items) > 1:
path = QtGui.QFileDialog.getExistingDirectory(self, "Import directory", ".", QtGui.QFileDialog.ShowDirsOnly)
path = QtWidgets.QFileDialog.getExistingDirectory(self, "Import directory", ".", QtWidgets.QFileDialog.ShowDirsOnly)
if path:
for item in items:
item.node().importConfigFromDirectory(path)
else:
item = items[0]
path, _ = QtGui.QFileDialog.getOpenFileNameAndFilter(self,
"Import config",
".",
"All files (*.*);;Config files (*.cfg)",
"Config files (*.cfg)")
if path:
item.node().importConfig(path)
if hasattr(item.node(), "importPrivateConfig"):
path, _ = QtGui.QFileDialog.getOpenFileNameAndFilter(self,
"Import private-config",
path, _ = QtWidgets.QFileDialog.getOpenFileNameAndFilter(self,
"Import config",
".",
"All files (*.*);;Config files (*.cfg)",
"Config files (*.cfg)")
if path:
item.node().importConfig(path)
if hasattr(item.node(), "importPrivateConfig"):
path, _ = QtWidgets.QFileDialog.getOpenFileNameAndFilter(self,
"Import private-config",
".",
"All files (*.*);;Config files (*.cfg)",
"Config files (*.cfg)")
if path:
item.node().importPrivateConfig(path)
@@ -1075,15 +1075,15 @@ class GraphicsView(QtGui.QGraphicsView):
return
if len(items) > 1:
path = QtGui.QFileDialog.getExistingDirectory(self, "Export directory", ".", QtGui.QFileDialog.ShowDirsOnly)
path = QtWidgets.QFileDialog.getExistingDirectory(self, "Export directory", ".", QtWidgets.QFileDialog.ShowDirsOnly)
if path:
for item in items:
item.node().exportConfigToDirectory(path)
else:
item = items[0]
config_path = QtGui.QFileDialog.getSaveFileName(self, "Export config")
config_path = QtWidgets.QFileDialog.getSaveFileName(self, "Export config")
if hasattr(item.node(), "importPrivateConfig"):
private_config_path = QtGui.QFileDialog.getSaveFileName(self, "Export private-config")
private_config_path = QtWidgets.QFileDialog.getSaveFileName(self, "Export private-config")
item.node().exportConfig(config_path, private_config_path)
else:
item.node().exportConfig(config_path)
@@ -1114,13 +1114,13 @@ class GraphicsView(QtGui.QGraphicsView):
key = "Port {} ({} encapsulation: {})".format(port.name(), dlt_name, dlt)
ports[key] = [port, dlt]
if ports:
selection, ok = QtGui.QInputDialog.getItem(self, "Capture on {}".format(node.name()), "Please select a port:", list(ports.keys()), 0, False)
selection, ok = QtWidgets.QInputDialog.getItem(self, "Capture on {}".format(node.name()), "Please select a port:", list(ports.keys()), 0, False)
if ok:
if selection in ports:
port, dlt = ports[selection]
node.startPacketCapture(port, port.captureFileName(node.name()), dlt)
else:
QtGui.QMessageBox.warning(self, "Capture", "No port available for packet capture on {}".format(node.name()))
QtWidgets.QMessageBox.warning(self, "Capture", "No port available for packet capture on {}".format(node.name()))
def idlepcActionSlot(self):
"""
@@ -1130,16 +1130,16 @@ class GraphicsView(QtGui.QGraphicsView):
items = self.scene().selectedItems()
if len(items) != 1:
QtGui.QMessageBox.critical(self, "Idle-PC", "Please select only one router")
QtWidgets.QMessageBox.critical(self, "Idle-PC", "Please select only one router")
return
item = items[0]
if isinstance(item, NodeItem) and hasattr(item.node(), "idlepc") and item.node().initialized():
router = item.node()
#question = QtGui.QMessageBox.question(self, "Auto Idle-PC", "Would you like to automatically find a suitable Idle-PC value (but not optimal)?", QtGui.QMessageBox.Yes, QtGui.QMessageBox.No)
#question = QtWidgets.QMessageBox.question(self, "Auto Idle-PC", "Would you like to automatically find a suitable Idle-PC value (but not optimal)?", QtWidgets.QMessageBox.Yes, QtWidgets.QMessageBox.No)
#if question == QtGui.QMessageBox.Yes:
# if question == QtWidgets.QMessageBox.Yes:
# router.computeAutoIdlepc(self._autoIdlepcCallback)
#else:
# else:
router.computeIdlepcs(self._idlepcCallback)
def _idlepcCallback(self, result, error=False, context={}, **kwargs):
@@ -1148,7 +1148,7 @@ class GraphicsView(QtGui.QGraphicsView):
"""
if error:
QtGui.QMessageBox.critical(self, "Idle-PC", "Error: {}".format(result["message"]))
QtWidgets.QMessageBox.critical(self, "Idle-PC", "Error: {}".format(result["message"]))
else:
router = context["router"]
log.info("{} has received Idle-PC proposals".format(router.name()))
@@ -1158,7 +1158,7 @@ class GraphicsView(QtGui.QGraphicsView):
dialog.show()
dialog.exec_()
else:
QtGui.QMessageBox.critical(self, "Idle-PC", "Sorry no Idle-PC values could be computed, please check again with Cisco IOS in a different state")
QtWidgets.QMessageBox.critical(self, "Idle-PC", "Sorry no Idle-PC values could be computed, please check again with Cisco IOS in a different state")
def _autoIdlepcCallback(self, result, error=False, context={}, **kwargs):
"""
@@ -1166,13 +1166,13 @@ class GraphicsView(QtGui.QGraphicsView):
"""
if error:
QtGui.QMessageBox.critical(self, "Auto Idle-PC", "Error: {}".format(result["message"]))
QtWidgets.QMessageBox.critical(self, "Auto Idle-PC", "Error: {}".format(result["message"]))
else:
router = context["router"]
idlepc = result["idlepc"]
log.info("{} has received the auto idle-pc value: {}".format(router.name(), idlepc))
router.setIdlepc(idlepc)
QtGui.QMessageBox.information(self, "Auto Idle-PC", "Idle-PC value {} has been applied on {}".format(idlepc, router.name()))
QtWidgets.QMessageBox.information(self, "Auto Idle-PC", "Idle-PC value {} has been applied on {}".format(idlepc, router.name()))
def duplicateActionSlot(self):
"""
@@ -1279,7 +1279,7 @@ class GraphicsView(QtGui.QGraphicsView):
item.setZValue(current_zvalue - 1)
item.update()
if item.zValue() == -1 and show_message:
QtGui.QMessageBox.information(self, "Layer position", "Object moved to a background layer. You will now have to use the right-click action to select this object in the future and raise it to layer 0 to be able to move it")
QtWidgets.QMessageBox.information(self, "Layer position", "Object moved to a background layer. You will now have to use the right-click action to select this object in the future and raise it to layer 0 to be able to move it")
show_message = False
def deleteActionSlot(self):
@@ -1297,9 +1297,9 @@ class GraphicsView(QtGui.QGraphicsView):
question = "Do you want to permanently delete these {} nodes?".format(len(selected_nodes))
else:
question = "Do you want to permanently delete {}?".format(selected_nodes[0].name())
reply = QtGui.QMessageBox.question(self, "Delete", question,
QtGui.QMessageBox.Yes, QtGui.QMessageBox.No)
if reply == QtGui.QMessageBox.No:
reply = QtWidgets.QMessageBox.question(self, "Delete", question,
QtWidgets.QMessageBox.Yes, QtWidgets.QMessageBox.No)
if reply == QtWidgets.QMessageBox.No:
return
for item in self.scene().selectedItems():
if isinstance(item, NodeItem):
@@ -1353,7 +1353,7 @@ class GraphicsView(QtGui.QGraphicsView):
node_item = NodeItem(node, node_data["default_symbol"], node_data["hover_symbol"])
node_module.setupNode(node, node_data["name"])
except ModuleError as e:
QtGui.QMessageBox.critical(self, "Node creation", "{}".format(e))
QtWidgets.QMessageBox.critical(self, "Node creation", "{}".format(e))
return
node_item.setPos(self.mapToScene(pos))

View File

@@ -19,11 +19,11 @@
Graphical representation of an ellipse on the QGraphicsScene.
"""
from ..qt import QtCore, QtGui
from ..qt import QtCore, QtGui, QtWidgets
from .shape_item import ShapeItem
class EllipseItem(ShapeItem, QtGui.QGraphicsEllipseItem):
class EllipseItem(QtWidgets.QGraphicsEllipseItem, ShapeItem):
"""
Class to draw an ellipse on the scene.
@@ -31,8 +31,8 @@ class EllipseItem(ShapeItem, QtGui.QGraphicsEllipseItem):
def __init__(self, pos=None, width=200, height=200):
QtGui.QGraphicsEllipseItem.__init__(self, 0, 0, width, height)
ShapeItem.__init__(self)
super().__init__()
self.setRect(0, 0, width, height)
pen = QtGui.QPen(QtCore.Qt.black, 2, QtCore.Qt.DashLine, QtCore.Qt.RoundCap, QtCore.Qt.RoundJoin)
self.setPen(pen)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255, 255)) # default color is white and not transparent
@@ -58,7 +58,7 @@ class EllipseItem(ShapeItem, QtGui.QGraphicsEllipseItem):
:param widget: QWidget instance
"""
QtGui.QGraphicsEllipseItem.paint(self, painter, option, widget)
super().paint(painter, option, widget)
self.drawLayerInfo(painter)
def duplicate(self):

View File

@@ -19,7 +19,7 @@
Graphical representation of an Ethernet link for QGraphicsScene.
"""
from ..qt import QtCore, QtGui
from ..qt import QtCore, QtGui, QtWidgets
from .link_item import LinkItem
from .note_item import NoteItem
from ..ports.port import Port
@@ -41,7 +41,7 @@ class EthernetLinkItem(LinkItem):
def __init__(self, source_item, source_port, destination_item, destination_port, link=None, adding_flag=False, multilink=0):
LinkItem.__init__(self, source_item, source_port, destination_item, destination_port, link, adding_flag, multilink)
super().__init__(source_item, source_port, destination_item, destination_port, link, adding_flag, multilink)
self._source_collision_offset = 0.0
self._destination_collision_offset = 0.0
@@ -75,7 +75,7 @@ class EthernetLinkItem(LinkItem):
:returns: QPainterPath instance
"""
path = QtGui.QGraphicsPathItem.shape(self)
path = QtWidgets.QGraphicsPathItem.shape(self)
offset = self._point_size / 2
if not self._adding_flag:
if self.length:
@@ -106,7 +106,7 @@ class EthernetLinkItem(LinkItem):
:param widget: QWidget instance.
"""
QtGui.QGraphicsPathItem.paint(self, painter, option, widget)
QtWidgets.QGraphicsPathItem.paint(self, painter, option, widget)
if not self._adding_flag and self._settings["draw_link_status_points"]:
# points disappears if nodes are too close to each others.

View File

@@ -19,10 +19,10 @@
Graphical representation of an image on the QGraphicsScene.
"""
from ..qt import QtCore, QtGui
from ..qt import QtCore, QtGui, QtWidgets
class ImageItem(QtGui.QGraphicsPixmapItem):
class ImageItem(QtWidgets.QGraphicsPixmapItem):
"""
Class to insert an image on the scene.
@@ -32,7 +32,7 @@ class ImageItem(QtGui.QGraphicsPixmapItem):
def __init__(self, pixmap, image_path, pos=None):
QtGui.QGraphicsPixmapItem.__init__(self, pixmap)
super().__init__(pixmap)
self.setFlags(self.ItemIsMovable | self.ItemIsSelectable)
self.setTransformationMode(QtCore.Qt.SmoothTransformation)
self._image_path = image_path
@@ -68,7 +68,7 @@ class ImageItem(QtGui.QGraphicsPixmapItem):
:param widget: QWidget instance
"""
QtGui.QGraphicsPixmapItem.paint(self, painter, option, widget)
super().paint(painter, option, widget)
if self.show_layer is False:
return
@@ -93,7 +93,7 @@ class ImageItem(QtGui.QGraphicsPixmapItem):
:param value: Z value
"""
QtGui.QGraphicsPixmapItem.setZValue(self, value)
super().setZValue(value)
if self.zValue() < 0:
self.setFlag(self.ItemIsSelectable, False)
self.setFlag(self.ItemIsMovable, False)

View File

@@ -23,10 +23,10 @@ Link items are graphical representation of a link on the QGraphicsScene
import math
import struct
import sys
from ..qt import QtCore, QtGui
from ..qt import QtCore, QtGui, QtWidgets
class LinkItem(QtGui.QGraphicsPathItem):
class LinkItem(QtWidgets.QGraphicsPathItem):
"""
Base class for link items.
@@ -44,8 +44,8 @@ class LinkItem(QtGui.QGraphicsPathItem):
def __init__(self, source_item, source_port, destination_item, destination_port, link=None, adding_flag=False, multilink=0):
QtGui.QGraphicsPathItem.__init__(self)
self.setAcceptsHoverEvents(True)
super().__init__()
self.setAcceptHoverEvents(True)
self.setZValue(-1)
self._link = None
@@ -181,33 +181,33 @@ class LinkItem(QtGui.QGraphicsPathItem):
if not self._source_port.capturing() or not self._destination_port.capturing():
# start capture
start_capture_action = QtGui.QAction("Start capture", menu)
start_capture_action = QtWidgets.QAction("Start capture", menu)
start_capture_action.setIcon(QtGui.QIcon(':/icons/capture-start.svg'))
start_capture_action.triggered.connect(self._startCaptureActionSlot)
menu.addAction(start_capture_action)
if self._source_port.capturing() or self._destination_port.capturing():
# stop capture
stop_capture_action = QtGui.QAction("Stop capture", menu)
stop_capture_action = QtWidgets.QAction("Stop capture", menu)
stop_capture_action.setIcon(QtGui.QIcon(':/icons/capture-stop.svg'))
stop_capture_action.triggered.connect(self._stopCaptureActionSlot)
menu.addAction(stop_capture_action)
# start wireshark
start_wireshark_action = QtGui.QAction("Start Wireshark", menu)
start_wireshark_action = QtWidgets.QAction("Start Wireshark", menu)
start_wireshark_action.setIcon(QtGui.QIcon(":/icons/wireshark.png"))
start_wireshark_action.triggered.connect(self._startWiresharkActionSlot)
menu.addAction(start_wireshark_action)
if sys.platform.startswith("win") and struct.calcsize("P") * 8 == 64:
# Windows 64-bit only (Solarwinds RTV limitation).
analyze_action = QtGui.QAction("Analyze capture", menu)
analyze_action = QtWidgets.QAction("Analyze capture", menu)
analyze_action.setIcon(QtGui.QIcon(':/icons/rtv.png'))
analyze_action.triggered.connect(self._analyzeCaptureActionSlot)
menu.addAction(analyze_action)
# delete
delete_action = QtGui.QAction("Delete", menu)
delete_action = QtWidgets.QAction("Delete", menu)
delete_action.setIcon(QtGui.QIcon(':/icons/delete.svg'))
delete_action.triggered.connect(self._deleteActionSlot)
menu.addAction(delete_action)
@@ -224,15 +224,15 @@ class LinkItem(QtGui.QGraphicsPathItem):
# send a escape key to the main window to cancel the link addition
from ..main_window import MainWindow
key = QtGui.QKeyEvent(QtCore.QEvent.KeyPress, QtCore.Qt.Key_Escape, QtCore.Qt.NoModifier)
QtGui.QApplication.sendEvent(MainWindow.instance(), key)
QtWidgets.QApplication.sendEvent(MainWindow.instance(), key)
return
# create the contextual menu
self.setAcceptsHoverEvents(False)
menu = QtGui.QMenu()
self.setAcceptHoverEvents(False)
menu = QtWidgets.QMenu()
self.populateLinkContextualMenu(menu)
menu.exec_(QtGui.QCursor.pos())
self.setAcceptsHoverEvents(True)
self.setAcceptHoverEvents(True)
self._hovered = False
self.adjust()
@@ -243,7 +243,7 @@ class LinkItem(QtGui.QGraphicsPathItem):
:param event: QKeyEvent
"""
#On pressing backspace or delete key, the selected link gets deleted
# On pressing backspace or delete key, the selected link gets deleted
if event.key() == QtCore.Qt.Key_Delete or event.key() == QtCore.Qt.Key_Backspace:
self._deleteActionSlot()
return
@@ -274,10 +274,10 @@ class LinkItem(QtGui.QGraphicsPathItem):
ports[port] = [self._destination_item.node(), self._destination_port, dlt]
if not ports:
QtGui.QMessageBox.critical(self._main_window, "Packet capture", "Packet capture is not supported on this link")
QtWidgets.QMessageBox.critical(self._main_window, "Packet capture", "Packet capture is not supported on this link")
return
selection, ok = QtGui.QInputDialog.getItem(self._main_window, "Packet capture", "Please select a port:", list(ports.keys()), 0, False)
selection, ok = QtWidgets.QInputDialog.getItem(self._main_window, "Packet capture", "Please select a port:", list(ports.keys()), 0, False)
if ok:
if selection in ports:
node, port, dlt = ports[selection]
@@ -295,7 +295,7 @@ class LinkItem(QtGui.QGraphicsPathItem):
ports[source_port] = [self._source_item.node(), self._source_port]
destination_port = "{} port {}".format(self._destination_item.node().name(), self._destination_port.name())
ports[destination_port] = [self._destination_item.node(), self._destination_port]
selection, ok = QtGui.QInputDialog.getItem(self._main_window, "Packet capture", "Please select a port:", list(ports.keys()), 0, False)
selection, ok = QtWidgets.QInputDialog.getItem(self._main_window, "Packet capture", "Please select a port:", list(ports.keys()), 0, False)
if ok:
if selection in ports:
node, port = ports[selection]
@@ -315,7 +315,7 @@ class LinkItem(QtGui.QGraphicsPathItem):
if self._source_port.capturing() and self._destination_port.capturing():
ports = ["{} port {}".format(self._source_item.node().name(), self._source_port.name()),
"{} port {}".format(self._destination_item.node().name(), self._destination_port.name())]
selection, ok = QtGui.QInputDialog.getItem(self._main_window, "Packet capture", "Please select a port:", ports, 0, False)
selection, ok = QtWidgets.QInputDialog.getItem(self._main_window, "Packet capture", "Please select a port:", ports, 0, False)
if ok:
if selection.endswith(self._source_port.name()):
self._source_port.startPacketCaptureReader()
@@ -326,7 +326,7 @@ class LinkItem(QtGui.QGraphicsPathItem):
elif self._destination_port.capturing():
self._destination_port.startPacketCaptureReader()
except OSError as e:
QtGui.QMessageBox.critical(self._main_window, "Packet capture", "Cannot start Wireshark: {}".format(e))
QtWidgets.QMessageBox.critical(self._main_window, "Packet capture", "Cannot start Wireshark: {}".format(e))
def _analyzeCaptureActionSlot(self):
"""
@@ -338,7 +338,7 @@ class LinkItem(QtGui.QGraphicsPathItem):
if self._source_port.capturing() and self._destination_port.capturing():
ports = ["{} port {}".format(self._source_item.node().name(), self._source_port.name()),
"{} port {}".format(self._destination_item.node().name(), self._destination_port.name())]
selection, ok = QtGui.QInputDialog.getItem(self._main_window, "Capture analyzer", "Please select a port:", ports, 0, False)
selection, ok = QtWidgets.QInputDialog.getItem(self._main_window, "Capture analyzer", "Please select a port:", ports, 0, False)
if ok:
if selection.endswith(self._source_port.name()):
self._source_port.startPacketCaptureAnalyzer()
@@ -349,7 +349,7 @@ class LinkItem(QtGui.QGraphicsPathItem):
elif self._destination_port.capturing():
self._destination_port.startPacketCaptureAnalyzer()
except OSError as e:
QtGui.QMessageBox.critical(self._main_window, "Capture analyzer", "Cannot start the packet capture analyzer program: {}".format(e))
QtWidgets.QMessageBox.critical(self._main_window, "Capture analyzer", "Cannot start the packet capture analyzer program: {}".format(e))
def setHovered(self, value):
"""

View File

@@ -19,7 +19,7 @@
Graphical representation of a node on the QGraphicsScene.
"""
from ..qt import QtCore, QtGui, QtSvg
from ..qt import QtCore, QtGui, QtSvg, QtWidgets
from .note_item import NoteItem
@@ -37,7 +37,7 @@ class NodeItem(QtSvg.QGraphicsSvgItem):
def __init__(self, node, default_symbol=None, hover_symbol=None):
QtSvg.QGraphicsSvgItem.__init__(self)
super().__init__()
# attached node
self._node = node
@@ -53,7 +53,7 @@ class NodeItem(QtSvg.QGraphicsSvgItem):
self.setFlag(QtSvg.QGraphicsSvgItem.ItemIsSelectable)
self.setFlag(QtSvg.QGraphicsSvgItem.ItemIsFocusable)
self.setFlag(QtSvg.QGraphicsSvgItem.ItemSendsGeometryChanges)
self.setAcceptsHoverEvents(True)
self.setAcceptHoverEvents(True)
self.setZValue(1)
# create renderers using symbols paths/resources
@@ -348,10 +348,10 @@ class NodeItem(QtSvg.QGraphicsSvgItem):
"""
self._selected_port = None
menu = QtGui.QMenu()
menu = QtWidgets.QMenu()
ports = self._node.ports()
if not ports:
QtGui.QMessageBox.critical(self.scene().parent(), "Link", "No port available, please configure this device")
QtWidgets.QMessageBox.critical(self.scene().parent(), "Link", "No port available, please configure this device")
return None
# sort the ports
@@ -426,7 +426,7 @@ class NodeItem(QtSvg.QGraphicsSvgItem):
for link in self._links:
link.adjust()
return QtGui.QGraphicsItem.itemChange(self, change, value)
return QtWidgets.QGraphicsItem.itemChange(self, change, value)
def paint(self, painter, option, widget=None):
"""
@@ -439,8 +439,8 @@ class NodeItem(QtSvg.QGraphicsSvgItem):
# don't show the selection rectangle
if not self._settings["draw_rectangle_selected_item"]:
option.state = QtGui.QStyle.State_None
QtSvg.QGraphicsSvgItem.paint(self, painter, option, widget)
option.state = QtWidgets.QStyle.State_None
super().paint(painter, option, widget)
if not self._initialized or self.show_layer:
brect = self.boundingRect()
@@ -464,7 +464,7 @@ class NodeItem(QtSvg.QGraphicsSvgItem):
:param value: Z value
"""
QtSvg.QGraphicsSvgItem.setZValue(self, value)
super().setZValue(value)
if self.zValue() < 0:
self.setFlag(self.ItemIsSelectable, False)
self.setFlag(self.ItemIsMovable, False)
@@ -491,7 +491,7 @@ class NodeItem(QtSvg.QGraphicsSvgItem):
# dynamically change the renderer when this node item is hovered.
if not self.isSelected():
self.setSharedRenderer(self._hover_renderer)
# effect = QtGui.QGraphicsColorizeEffect()
# effect = QtWidgets.QGraphicsColorizeEffect()
# effect.setColor(QtGui.QColor("black"))
# effect.setStrength(0.8)
# self.setGraphicsEffect(effect)

View File

@@ -19,10 +19,10 @@
Graphical representation of a note on the QGraphicsScene.
"""
from ..qt import QtCore, QtGui
from ..qt import QtCore, QtWidgets, QtGui
class NoteItem(QtGui.QGraphicsTextItem):
class NoteItem(QtWidgets.QGraphicsTextItem):
"""
Text note for the QGraphicsView.
@@ -34,7 +34,7 @@ class NoteItem(QtGui.QGraphicsTextItem):
def __init__(self, parent=None):
QtGui.QGraphicsTextItem.__init__(self, parent)
super().__init__(parent)
from ..main_window import MainWindow
main_window = MainWindow.instance()
@@ -101,7 +101,7 @@ class NoteItem(QtGui.QGraphicsTextItem):
if self.rotation() < 360.0:
self.setRotation(self.rotation() + 1)
else:
QtGui.QGraphicsTextItem.keyPressEvent(self, event)
super().keyPressEvent(event)
def editText(self):
"""
@@ -132,7 +132,7 @@ class NoteItem(QtGui.QGraphicsTextItem):
:param event: QFocusEvent instance
"""
self.setFlag(QtGui.QGraphicsItem.ItemIsFocusable, False)
self.setFlag(QtWidgets.QGraphicsItem.ItemIsFocusable, False)
cursor = self.textCursor()
if cursor.hasSelection():
cursor.clearSelection()
@@ -142,7 +142,7 @@ class NoteItem(QtGui.QGraphicsTextItem):
# delete the note if empty
self.delete()
return
return QtGui.QGraphicsTextItem.focusOutEvent(self, event)
return super().focusOutEvent(event)
def paint(self, painter, option, widget=None):
"""
@@ -153,7 +153,7 @@ class NoteItem(QtGui.QGraphicsTextItem):
:param widget: QWidget instance
"""
QtGui.QGraphicsTextItem.paint(self, painter, option, widget)
super().paint(painter, option, widget)
if self.show_layer is False or self.parentItem():
return
@@ -178,7 +178,7 @@ class NoteItem(QtGui.QGraphicsTextItem):
:param value: Z value
"""
QtGui.QGraphicsTextItem.setZValue(self, value)
super().setZValue(value)
if self.zValue() < 0:
self.setFlag(self.ItemIsSelectable, False)
self.setFlag(self.ItemIsMovable, False)

View File

@@ -19,11 +19,11 @@
Graphical representation of a rectangle on the QGraphicsScene.
"""
from ..qt import QtCore, QtGui
from ..qt import QtCore, QtGui, QtWidgets
from .shape_item import ShapeItem
class RectangleItem(ShapeItem, QtGui.QGraphicsRectItem):
class RectangleItem(QtWidgets.QGraphicsRectItem, ShapeItem):
"""
Class to draw a rectangle on the scene.
@@ -31,8 +31,8 @@ class RectangleItem(ShapeItem, QtGui.QGraphicsRectItem):
def __init__(self, pos=None, width=200, height=100):
QtGui.QGraphicsRectItem.__init__(self, 0, 0, width, height)
ShapeItem.__init__(self)
super().__init__()
self.setRect(0, 0, width, height)
pen = QtGui.QPen(QtCore.Qt.black, 2, QtCore.Qt.SolidLine, QtCore.Qt.RoundCap, QtCore.Qt.RoundJoin)
self.setPen(pen)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255, 255)) # default color is white and not transparent
@@ -58,7 +58,7 @@ class RectangleItem(ShapeItem, QtGui.QGraphicsRectItem):
:param widget: QWidget instance
"""
QtGui.QGraphicsRectItem.paint(self, painter, option, widget)
super().paint(painter, option, widget)
self.drawLayerInfo(painter)
def duplicate(self):

View File

@@ -20,7 +20,7 @@ Graphical representation of a Serial link on the QGraphicsScene.
"""
import math
from ..qt import QtCore, QtGui
from ..qt import QtCore, QtGui, QtWidgets
from .link_item import LinkItem
from .note_item import NoteItem
from ..ports.port import Port
@@ -42,7 +42,7 @@ class SerialLinkItem(LinkItem):
def __init__(self, source_item, source_port, destination_item, destination_port, link=None, adding_flag=False, multilink=0):
LinkItem.__init__(self, source_item, source_port, destination_item, destination_port, link, adding_flag, multilink)
super().__init__(source_item, source_port, destination_item, destination_port, link, adding_flag, multilink)
def adjust(self):
"""
@@ -89,7 +89,7 @@ class SerialLinkItem(LinkItem):
:returns: QPainterPath instance
"""
path = QtGui.QGraphicsPathItem.shape(self)
path = QtWidgets.QGraphicsPathItem.shape(self)
offset = self._point_size / 2
point = self.source
path.addEllipse(point.x() - offset, point.y() - offset, self._point_size, self._point_size)
@@ -106,7 +106,7 @@ class SerialLinkItem(LinkItem):
:param widget: QWidget instance.
"""
QtGui.QGraphicsPathItem.paint(self, painter, option, widget)
QtWidgets.QGraphicsPathItem.paint(self, painter, option, widget)
if not self._adding_flag and self._settings["draw_link_status_points"]:

View File

@@ -19,7 +19,7 @@
Base class for shape items (Rectangle, ellipse etc.).
"""
from ..qt import QtCore, QtGui
from ..qt import QtCore, QtGui, QtWidgets
class ShapeItem:
@@ -30,10 +30,10 @@ class ShapeItem:
show_layer = False
def __init__(self):
def __init__(self, **kws):
self.setFlags(QtGui.QGraphicsItem.ItemIsMovable | QtGui.QGraphicsItem.ItemIsFocusable | QtGui.QGraphicsItem.ItemIsSelectable)
self.setAcceptsHoverEvents(True)
self.setFlags(QtWidgets.QGraphicsItem.ItemIsMovable | QtWidgets.QGraphicsItem.ItemIsFocusable | QtWidgets.QGraphicsItem.ItemIsSelectable)
self.setAcceptHoverEvents(True)
self._border = 5
self._edge = None
@@ -58,7 +58,7 @@ class ShapeItem:
if self.rotation() < 360.0:
self.setRotation(self.rotation() + 1)
else:
QtGui.QGraphicsItem.keyPressEvent(self, event)
QtWidgets.QGraphicsItem.keyPressEvent(self, event)
def mousePressEvent(self, event):
"""
@@ -69,22 +69,22 @@ class ShapeItem:
self.update()
if event.pos().x() > (self.rect().right() - self._border):
self.setFlag(QtGui.QGraphicsItem.ItemIsMovable, False)
self.setFlag(QtWidgets.QGraphicsItem.ItemIsMovable, False)
self._edge = "right"
elif event.pos().x() < (self.rect().left() + self._border):
self.setFlag(QtGui.QGraphicsItem.ItemIsMovable, False)
self.setFlag(QtWidgets.QGraphicsItem.ItemIsMovable, False)
self._edge = "left"
elif event.pos().y() < (self.rect().top() + self._border):
self.setFlag(QtGui.QGraphicsItem.ItemIsMovable, False)
self.setFlag(QtWidgets.QGraphicsItem.ItemIsMovable, False)
self._edge = "top"
elif event.pos().y() > (self.rect().bottom() - self._border):
self.setFlag(QtGui.QGraphicsItem.ItemIsMovable, False)
self.setFlag(QtWidgets.QGraphicsItem.ItemIsMovable, False)
self._edge = "bottom"
QtGui.QGraphicsItem.mousePressEvent(self, event)
QtWidgets.QGraphicsItem.mousePressEvent(self, event)
def mouseReleaseEvent(self, event):
"""
@@ -94,9 +94,9 @@ class ShapeItem:
"""
self.update()
self.setFlag(QtGui.QGraphicsItem.ItemIsMovable)
self.setFlag(QtWidgets.QGraphicsItem.ItemIsMovable)
self._edge = None
QtGui.QGraphicsItem.mouseReleaseEvent(self, event)
QtWidgets.QGraphicsItem.mouseReleaseEvent(self, event)
def mouseMoveEvent(self, event):
"""
@@ -145,7 +145,7 @@ class ShapeItem:
self.setPos(scenePos.x(), self.y())
self._edge = "left"
QtGui.QGraphicsItem.mouseMoveEvent(self, event)
QtWidgets.QGraphicsItem.mouseMoveEvent(self, event)
def hoverMoveEvent(self, event):
"""
@@ -208,7 +208,7 @@ class ShapeItem:
:param value: Z value
"""
QtGui.QGraphicsItem.setZValue(self, value)
QtWidgets.QGraphicsItem.setZValue(self, value)
if self.zValue() < 0:
self.setFlag(self.ItemIsSelectable, False)
self.setFlag(self.ItemIsMovable, False)

View File

@@ -48,7 +48,7 @@ class Link(QtCore.QObject):
def __init__(self, source_node, source_port, destination_node, destination_port):
super(Link, self).__init__()
super().__init__()
log.info("adding link from {} {} to {} {}".format(source_node.name(),
source_port.name(),

View File

@@ -34,6 +34,11 @@ import time
import locale
import argparse
try:
from gns3.qt import QtCore, QtGui, QtWidgets, DEFAULT_BINDING
except ImportError:
raise RuntimeError("Can't import Qt modules: Qt and/or PyQt is probably not installed correctly...")
from gns3.main_window import MainWindow
from gns3.logger import init_logger
from gns3.crash_report import CrashReport
@@ -43,12 +48,6 @@ import logging
log = logging.getLogger(__name__)
try:
from gns3.qt import QtCore, QtGui, DEFAULT_BINDING
except ImportError:
raise RuntimeError("Can't import Qt modules: Qt and/or PyQt is probably not installed correctly...")
from gns3.main_window import MainWindow
from gns3.version import __version__
@@ -137,10 +136,8 @@ def main():
print("GNS3 GUI version {}".format(__version__))
print("Copyright (c) 2007-{} GNS3 Technologies Inc.".format(current_year))
# we only support Python 2 version >= 2.7 and Python 3 version >= 3.3
if sys.version_info < (2, 7):
raise RuntimeError("Python 2.7 or higher is required")
elif sys.version_info[0] == 3 and sys.version_info < (3, 3):
# we only support Python 3 version >= 3.3
if sys.version_info[0] == 3 and sys.version_info < (3, 3):
raise RuntimeError("Python 3.3 or higher is required")
def version(version_string):
@@ -150,11 +147,11 @@ def main():
raise RuntimeError("Requirement is Qt version 4.6 or higher, got version {}".format(QtCore.QT_VERSION_STR))
# 4.8.3 because of QSettings (http://pyqt.sourceforge.net/Docs/PyQt4/pyqt_qsettings.html)
if DEFAULT_BINDING == "PyQt" and version(QtCore.BINDING_VERSION_STR) < version("4.8.3"):
if DEFAULT_BINDING == "PyQt4" and version(QtCore.BINDING_VERSION_STR) < version("4.8.3"):
raise RuntimeError("Requirement is PyQt version 4.8.3 or higher, got version {}".format(QtCore.BINDING_VERSION_STR))
if DEFAULT_BINDING == "PySide" and version(QtCore.BINDING_VERSION_STR) < version("1.0"):
raise RuntimeError("Requirement is PySide version 1.0 or higher, got version {}".format(QtCore.BINDING_VERSION_STR))
if DEFAULT_BINDING == "PyQt5" and version(QtCore.BINDING_VERSION_STR) < version("5.0.0"):
raise RuntimeError("Requirement is PyQt5 version 5.0.0 or higher, got version {}".format(QtCore.BINDING_VERSION_STR))
# check for the correct locale
# (UNIX/Linux only)
@@ -186,7 +183,7 @@ def main():
except win32console.error as e:
print("warning: could not allocate console: {}".format(e))
app = QtGui.QApplication(sys.argv)
app = QtWidgets.QApplication(sys.argv)
# this info is necessary for QSettings
app.setOrganizationName("GNS3")

View File

@@ -39,7 +39,7 @@ from .modules import MODULES
from .modules.module_error import ModuleError
from .modules.vpcs import VPCS
from .version import __version__
from .qt import QtGui, QtCore, QtNetwork
from .qt import QtGui, QtCore, QtNetwork, QtWidgets
from .servers import Servers
from .node import Node
from .ui.main_window_ui import Ui_MainWindow
@@ -47,7 +47,6 @@ from .dialogs.about_dialog import AboutDialog
from .dialogs.new_project_dialog import NewProjectDialog
from .dialogs.preferences_dialog import PreferencesDialog
from .dialogs.snapshots_dialog import SnapshotsDialog
from .dialogs.import_cloud_project_dialog import ImportCloudProjectDialog
from .settings import GENERAL_SETTINGS, GENERAL_SETTING_TYPES, CLOUD_SETTINGS, CLOUD_SETTINGS_TYPES, ENABLE_CLOUD
from .utils.progress_dialog import ProgressDialog
from .utils.process_files_thread import ProcessFilesThread
@@ -64,7 +63,6 @@ from .topology import Topology
from .cloud.utils import UploadProjectThread, UploadFilesThread, ssh_client, DownloadImagesThread, DeleteInstanceThread
from .cloud.rackspace_ctrl import get_provider
from .cloud.exceptions import KeyPairExists
from .cloud_instances import CloudInstances
from .project import Project
from .http_client import HTTPClient
from .progress import Progress
@@ -72,7 +70,7 @@ from .progress import Progress
log = logging.getLogger(__name__)
class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
"""
Main window implementation.
@@ -88,8 +86,9 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
def __init__(self, project=None, parent=None):
super(MainWindow, self).__init__(parent)
super().__init__(parent)
self.setupUi(self)
MainWindow._instance = self
self._settings = {}
@@ -126,20 +125,14 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
self.restoreGeometry(QtCore.QByteArray().fromBase64(gui_settings["geometry"]))
self.restoreState(QtCore.QByteArray().fromBase64(gui_settings["state"]))
# do not show the nodes dock widget my default
if not ENABLE_CLOUD:
self.uiCloudInspectorDockWidget.close()
# populate the view -> docks menu
self.uiDocksMenu.addAction(self.uiTopologySummaryDockWidget.toggleViewAction())
self.uiDocksMenu.addAction(self.uiConsoleDockWidget.toggleViewAction())
self.uiDocksMenu.addAction(self.uiNodesDockWidget.toggleViewAction())
if ENABLE_CLOUD:
self.uiDocksMenu.addAction(self.uiCloudInspectorDockWidget.toggleViewAction())
# add recent file actions to the File menu
for i in range(0, self._max_recent_files):
action = QtGui.QAction(self.uiFileMenu)
action = QtWidgets.QAction(self.uiFileMenu)
action.setVisible(False)
action.triggered.connect(self.openRecentFileSlot)
self._recent_file_actions.append(action)
@@ -149,8 +142,6 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
self._updateRecentFileActions()
self._cloud_provider = None
CloudInstances.instance().clear()
CloudInstances.instance().load()
# set the window icon
self.setWindowIcon(QtGui.QIcon(":/images/gns3.ico"))
@@ -158,6 +149,9 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
# Network Manager (used to check for update)
self._network_manager = QtNetwork.QNetworkAccessManager(self)
# restore the style
self._setStyle(self._settings.get("style"))
# load initial stuff once the event loop isn't busy
self.run_later(0, self.startupLoading)
@@ -189,9 +183,6 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
self._settings = local_config.loadSectionSettings(self.__class__.__name__, GENERAL_SETTINGS)
self._cloud_settings = local_config.loadSectionSettings("Cloud", CLOUD_SETTINGS)
# restore the style
self._setStyle(self._settings.get("style"))
# restore packet capture settings
Port.loadPacketCaptureSettings()
@@ -254,8 +245,6 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
self.uiSaveProjectAsAction.triggered.connect(self._saveProjectAsActionSlot)
self.uiExportProjectAction.triggered.connect(self._exportProjectActionSlot)
self.uiImportProjectAction.triggered.connect(self._importProjectActionSlot)
self.uiMoveLocalProjectToCloudAction.triggered.connect(self._moveLocalProjectToCloudActionSlot)
self.uiMoveCloudProjectToLocalAction.triggered.connect(self._moveCloudProjectToLocalActionSlot)
self.uiImportExportConfigsAction.triggered.connect(self._importExportConfigsActionSlot)
self.uiScreenshotAction.triggered.connect(self._screenshotActionSlot)
self.uiSnapshotAction.triggered.connect(self._snapshotActionSlot)
@@ -319,9 +308,6 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
self._project.project_about_to_close_signal.connect(self.shutdown_cloud_instances)
self.project_new_signal.connect(self.project_created)
# cloud inspector
self.CloudInspectorView.instanceSelected.connect(self._cloud_instance_selected)
def project(self):
"""
Return current project
@@ -391,7 +377,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
except FileExistsError:
pass
except OSError as e:
QtGui.QMessageBox.critical(self, "New project", "Could not create project files directory {}: {}".format(new_project_settings["project_files_dir"], e))
QtWidgets.QMessageBox.critical(self, "New project", "Could not create project files directory {}: {}".format(new_project_settings["project_files_dir"], e))
return
# let all modules know about the new project files directory
@@ -399,8 +385,6 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
topology = Topology.instance()
topology.project = self._project
for instance in CloudInstances.instance().instances:
topology.addInstance2(instance)
self._project.setName(new_project_settings["project_name"])
self._project.setTopologyFile(new_project_settings["project_path"])
@@ -433,11 +417,11 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
Slot called to open a project.
"""
path, _ = QtGui.QFileDialog.getOpenFileNameAndFilter(self,
"Open project",
self.projectsDirPath(),
"All files (*.*);;GNS3 project files (*.gns3);;NET files (*.net)",
"GNS3 project files (*.gns3)")
path, _ = QtWidgets.QFileDialog.getOpenFileNameAndFilter(self,
"Open project",
self.projectsDirPath(),
"All files (*.*);;GNS3 project files (*.gns3);;NET files (*.net)",
"GNS3 project files (*.gns3)")
self._loadPath(path)
def openRecentFileSlot(self):
@@ -449,7 +433,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
if action:
path = action.data()
if not os.path.isfile(path):
QtGui.QMessageBox.critical(self, "Recent file", "{}: no such file".format(path))
QtWidgets.QMessageBox.critical(self, "Recent file", "{}: no such file".format(path))
return
self._loadPath(path)
@@ -483,7 +467,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
return self.saveProjectAs()
else:
if not self._project.filesDir():
QtGui.QMessageBox.critical(self, "Project", "Sorry, no project has been created or initialized")
QtWidgets.QMessageBox.critical(self, "Project", "Sorry, no project has been created or initialized")
return
return self.saveProject(self._project.topologyFile())
@@ -501,7 +485,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
"""
options = ["Export configs to a directory", "Import configs from a directory"]
selection, ok = QtGui.QInputDialog.getItem(self, "Import/Export configs", "Please choose an option:", options, 0, False)
selection, ok = QtWidgets.QInputDialog.getItem(self, "Import/Export configs", "Please choose an option:", options, 0, False)
if ok:
if selection == options[0]:
self._exportConfigs()
@@ -513,7 +497,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
Exports all configs to a directory.
"""
path = QtGui.QFileDialog.getExistingDirectory(self, "Export directory", ".", QtGui.QFileDialog.ShowDirsOnly)
path = QtWidgets.QFileDialog.getExistingDirectory(self, "Export directory", ".", QtWidgets.QFileDialog.ShowDirsOnly)
if path:
for module in MODULES:
instance = module.instance()
@@ -525,7 +509,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
Imports all configs from a directory.
"""
path = QtGui.QFileDialog.getExistingDirectory(self, "Import directory", ".", QtGui.QFileDialog.ShowDirsOnly)
path = QtWidgets.QFileDialog.getExistingDirectory(self, "Import directory", ".", QtWidgets.QFileDialog.ShowDirsOnly)
if path:
for module in MODULES:
instance = module.instance()
@@ -567,7 +551,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
screenshot_dir = project_dir
screenshot_path = os.path.join(screenshot_dir, "screenshot")
path, selected_filter = QtGui.QFileDialog.getSaveFileNameAndFilter(self, "Screenshot", screenshot_path, file_formats)
path, selected_filter = QtWidgets.QFileDialog.getSaveFileNameAndFilter(self, "Screenshot", screenshot_path, file_formats)
if not path:
return
@@ -577,7 +561,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
path += file_format
if not self._createScreenshot(path):
QtGui.QMessageBox.critical(self, "Screenshot", "Could not create screenshot file {}".format(path))
QtWidgets.QMessageBox.critical(self, "Screenshot", "Could not create screenshot file {}".format(path))
def _snapshotActionSlot(self):
"""
@@ -585,14 +569,14 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
"""
if self._project.temporary():
QtGui.QMessageBox.critical(self, "Snapshots", "Sorry, snapshots are not supported with temporary projects")
QtWidgets.QMessageBox.critical(self, "Snapshots", "Sorry, snapshots are not supported with temporary projects")
return
# first check if any node doesn't run locally
topology = Topology.instance()
for node in topology.nodes():
if node.server() != Servers.instance().localServer():
QtGui.QMessageBox.critical(self, "Snapshots", "Sorry, snapshots can only be created if all the nodes run locally")
QtWidgets.QMessageBox.critical(self, "Snapshots", "Sorry, snapshots can only be created if all the nodes run locally")
return
dialog = SnapshotsDialog(self,
@@ -768,7 +752,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
vpcs_module = VPCS.instance()
if self._project.filesDir() is None:
QtGui.QMessageBox.critical(self, "VPCS", "Sorry, the project hasn't been initialized yet")
QtWidgets.QMessageBox.critical(self, "VPCS", "Sorry, the project hasn't been initialized yet")
return
try:
@@ -777,20 +761,20 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
except FileExistsError:
pass
except OSError as e:
QtGui.QMessageBox.critical(self, "VPCS", "Could not create the VPCS working directory: {}".format(e))
QtWidgets.QMessageBox.critical(self, "VPCS", "Could not create the VPCS working directory: {}".format(e))
return
try:
vpcs_port = vpcs_module.startMultiHostVPCS(working_dir)
except ModuleError as e:
QtGui.QMessageBox.critical(self, "VPCS", "{}".format(e))
QtWidgets.QMessageBox.critical(self, "VPCS", "{}".format(e))
return
try:
from .telnet_console import telnetConsole
telnetConsole("VPCS multi-host", "127.0.0.1", vpcs_port)
except (OSError, ValueError) as e:
QtGui.QMessageBox.critical(self, "Console", "Cannot start console application: {}".format(e))
QtWidgets.QMessageBox.critical(self, "Console", "Cannot start console application: {}".format(e))
def _addNoteActionSlot(self):
"""
@@ -805,26 +789,26 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
"""
if self._project.filesDir() is None:
QtGui.QMessageBox.critical(self, "Image", "Please create a node first")
QtWidgets.QMessageBox.critical(self, "Image", "Please create a node first")
return
# supported image file formats
file_formats = "PNG File (*.png);;JPG File (*.jpeg *.jpg);;BMP File (*.bmp);;XPM File (*.xpm *.xbm);;PPM File (*.ppm);;TIFF File (*.tiff);;All files (*.*)"
path = QtGui.QFileDialog.getOpenFileName(self, "Image", self.projectsDirPath(), file_formats)
path = QtWidgets.QFileDialog.getOpenFileName(self, "Image", self.projectsDirPath(), file_formats)
if not path:
return
pixmap = QtGui.QPixmap(path)
if pixmap.isNull():
QtGui.QMessageBox.critical(self, "Image", "Image file format not supported")
QtWidgets.QMessageBox.critical(self, "Image", "Image file format not supported")
return
destination_dir = os.path.join(self._project.filesDir(), "project-files", "images")
try:
os.makedirs(destination_dir, exist_ok=True)
except OSError as e:
QtGui.QMessageBox.critical(self, "Image", "Could not create the image directory: {}".format(e))
QtWidgets.QMessageBox.critical(self, "Image", "Could not create the image directory: {}".format(e))
return
image_filename = os.path.basename(path)
@@ -834,7 +818,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
try:
shutil.copyfile(path, destination_image_path)
except OSError as e:
QtGui.QMessageBox.critical(self, "Image", "Could not copy the image to the project image directory: {}".format(e))
QtWidgets.QMessageBox.critical(self, "Image", "Could not copy the image to the project image directory: {}".format(e))
return
# path to the image is relative to the project-files dir
@@ -883,19 +867,19 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
is_silent = network_reply.request().attribute(QtNetwork.QNetworkRequest.User)
if network_reply.error() != QtNetwork.QNetworkReply.NoError and not is_silent:
QtGui.QMessageBox.critical(self, "Check For Update", "Cannot check for update: {}".format(network_reply.errorString()))
QtWidgets.QMessageBox.critical(self, "Check For Update", "Cannot check for update: {}".format(network_reply.errorString()))
else:
latest_release = bytes(network_reply.readAll()).decode().rstrip()
if parse_version(__version__) < parse_version(latest_release):
reply = QtGui.QMessageBox.question(self,
"Check For Update",
"Newer GNS3 version {} is available, do you want to visit our website to download it?".format(latest_release),
QtGui.QMessageBox.Yes,
QtGui.QMessageBox.No)
if reply == QtGui.QMessageBox.Yes:
reply = QtWidgets.QMessageBox.question(self,
"Check For Update",
"Newer GNS3 version {} is available, do you want to visit our website to download it?".format(latest_release),
QtWidgets.QMessageBox.Yes,
QtWidgets.QMessageBox.No)
if reply == QtWidgets.QMessageBox.Yes:
QtGui.QDesktopServices.openUrl(QtCore.QUrl("http://www.gns3.net/download/"))
elif not is_silent:
QtGui.QMessageBox.information(self, "Check For Update", "GNS3 is up-to-date!")
QtWidgets.QMessageBox.information(self, "Check For Update", "GNS3 is up-to-date!")
return
network_reply.deleteLater()
@@ -924,7 +908,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
"""
if self._project.temporary():
QtGui.QMessageBox.critical(self, "Lab instructions", "Sorry, lab instructions are not supported with temporary projects")
QtWidgets.QMessageBox.critical(self, "Lab instructions", "Sorry, lab instructions are not supported with temporary projects")
return
project_dir = os.path.dirname(self._project.topologyFile())
@@ -933,16 +917,16 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
if len(instructions_files):
path = instructions_files[0]
if QtGui.QDesktopServices.openUrl(QtCore.QUrl('file:///' + path, QtCore.QUrl.TolerantMode)) is False and silent is False:
QtGui.QMessageBox.critical(self, "Lab instructions", "Could not open {}".format(path))
QtWidgets.QMessageBox.critical(self, "Lab instructions", "Could not open {}".format(path))
elif silent is False:
QtGui.QMessageBox.critical(self, "Lab instructions", "No instructions found")
QtWidgets.QMessageBox.critical(self, "Lab instructions", "No instructions found")
def _aboutQtActionSlot(self):
"""
Slot to display the Qt About dialog.
"""
QtGui.QMessageBox.aboutQt(self)
QtWidgets.QMessageBox.aboutQt(self)
def _aboutActionSlot(self):
"""
@@ -1041,7 +1025,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
self.uiAddLinkAction.setChecked(False)
self._addLinkActionSlot()
else:
QtGui.QMainWindow.keyPressEvent(self, event)
super().keyPressEvent(event)
def closeEvent(self, event):
"""
@@ -1104,13 +1088,13 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
destination_file = "untitled.gns3"
else:
destination_file = os.path.basename(self._project.topologyFile())
reply = QtGui.QMessageBox.warning(self, "Unsaved changes", 'Save changes to project "{}" before closing?'.format(destination_file),
QtGui.QMessageBox.Discard | QtGui.QMessageBox.Save | QtGui.QMessageBox.Cancel)
if reply == QtGui.QMessageBox.Save:
reply = QtWidgets.QMessageBox.warning(self, "Unsaved changes", 'Save changes to project "{}" before closing?'.format(destination_file),
QtWidgets.QMessageBox.Discard | QtWidgets.QMessageBox.Save | QtWidgets.QMessageBox.Cancel)
if reply == QtWidgets.QMessageBox.Save:
if self._project.temporary():
return self.saveProjectAs()
return self.saveProject(self._project.topologyFile())
elif reply == QtGui.QMessageBox.Cancel:
elif reply == QtWidgets.QMessageBox.Cancel:
return False
else:
# check if any node is running
@@ -1122,9 +1106,9 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
running_node = True
break
if running_node:
reply = QtGui.QMessageBox.warning(self, "GNS3", "A device is still running, would you like to continue?",
QtGui.QMessageBox.Yes | QtGui.QMessageBox.No)
if reply == QtGui.QMessageBox.No:
reply = QtWidgets.QMessageBox.warning(self, "GNS3", "A device is still running, would you like to continue?",
QtWidgets.QMessageBox.Yes | QtWidgets.QMessageBox.No)
if reply == QtWidgets.QMessageBox.No:
return False
return True
@@ -1145,6 +1129,8 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
"""
Called by QTimer.singleShot to load everything needed at startup.
"""
# restore the style
self._setStyle(self._settings.get("style"))
if self._settings["debug_level"]:
root = logging.getLogger()
@@ -1169,10 +1155,10 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
log.warn("No local server is configured")
return
if not os.path.isfile(local_server_path):
QtGui.QMessageBox.critical(self, "Local server", "Could not find local server {}".format(local_server_path))
QtWidgets.QMessageBox.critical(self, "Local server", "Could not find local server {}".format(local_server_path))
return
elif not os.access(local_server_path, os.X_OK):
QtGui.QMessageBox.critical(self, "Local server", "{} is not an executable".format(local_server_path))
QtWidgets.QMessageBox.critical(self, "Local server", "{} is not an executable".format(local_server_path))
return
try:
@@ -1180,7 +1166,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock:
sock.bind((server.host, 0))
except OSError as e:
QtGui.QMessageBox.critical(self, "Local server", "Could not bind with {}: {} (please check your host binding setting in the preferences)".format(server.host, e))
QtWidgets.QMessageBox.critical(self, "Local server", "Could not bind with {}: {} (please check your host binding setting in the preferences)".format(server.host, e))
return
try:
@@ -1200,7 +1186,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
try:
server.port = self._findUnusedLocalPort(server.host)
except OSError as e:
QtGui.QMessageBox.critical(self, "Local server", "Could not find an unused port for the local server: {}".format(e))
QtWidgets.QMessageBox.critical(self, "Local server", "Could not find an unused port for the local server: {}".format(e))
return
log.warning("The server port {} is already in use, fallback to port {}".format(old_port, server.port))
print("The server port {} is already in use, fallback to port {}".format(old_port, server.port))
@@ -1216,7 +1202,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
if not progress_dialog.exec_():
return
else:
QtGui.QMessageBox.critical(self, "Local server", "Could not start the local server process: {}".format(servers.localServerPath()))
QtWidgets.QMessageBox.critical(self, "Local server", "Could not start the local server process: {}".format(servers.localServerPath()))
return
self._createTemporaryProject()
@@ -1271,16 +1257,16 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
projects_dir_path = os.path.normpath(os.path.expanduser("~/GNS3/projects"))
file_dialog = QtGui.QFileDialog(self)
file_dialog = QtWidgets.QFileDialog(self)
file_dialog.setWindowTitle("Save project")
file_dialog.setNameFilters(["Directories"])
file_dialog.setDirectory(projects_dir_path)
file_dialog.setFileMode(QtGui.QFileDialog.AnyFile)
file_dialog.setLabelText(QtGui.QFileDialog.FileName, "Project name:")
file_dialog.setFileMode(QtWidgets.QFileDialog.AnyFile)
file_dialog.setLabelText(QtWidgets.QFileDialog.FileName, "Project name:")
file_dialog.selectFile(default_project_name)
file_dialog.setOptions(QtGui.QFileDialog.ShowDirsOnly)
file_dialog.setAcceptMode(QtGui.QFileDialog.AcceptSave)
if file_dialog.exec_() == QtGui.QFileDialog.Rejected:
file_dialog.setOptions(QtWidgets.QFileDialog.ShowDirsOnly)
file_dialog.setAcceptMode(QtWidgets.QFileDialog.AcceptSave)
if file_dialog.exec_() == QtWidgets.QFileDialog.Rejected:
return
project_dir = file_dialog.selectedFiles()[0]
@@ -1293,7 +1279,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
except FileExistsError:
pass
except OSError as e:
QtGui.QMessageBox.critical(self, "Save project", "Could not create project directory {}: {}".format(project_dir, e))
QtWidgets.QMessageBox.critical(self, "Save project", "Could not create project directory {}: {}".format(project_dir, e))
return
if self._project.temporary():
@@ -1313,7 +1299,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
errors = progress_dialog.errors()
if errors:
errors = "\n".join(errors)
MessageBox(self, "Save project", "Errors detected while saving the project", errors, icon=QtGui.QMessageBox.Warning)
MessageBox(self, "Save project", "Errors detected while saving the project", errors, icon=QtWidgets.QMessageBox.Warning)
self._project.setName(project_name)
if self._project.temporary():
@@ -1342,7 +1328,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
log.info("Saving project: {}".format(path))
json.dump(topo, f, sort_keys=True, indent=4)
except OSError as e:
QtGui.QMessageBox.critical(self, "Save", "Could not save project to {}: {}".format(path, e))
QtWidgets.QMessageBox.critical(self, "Save", "Could not save project to {}: {}".format(path, e))
return False
if self._settings["auto_screenshot"]:
@@ -1362,7 +1348,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
try:
from gns3converter.main import do_conversion, get_snapshots, ConvertError
except ImportError:
QtGui.QMessageBox.critical(self, "GNS3 converter", "Please install gns3-converter in order to open old ini-style GNS3 projects")
QtWidgets.QMessageBox.critical(self, "GNS3 converter", "Please install gns3-converter in order to open old ini-style GNS3 projects")
return
try:
@@ -1370,10 +1356,10 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
project_dir = os.path.join(self.projectsDirPath(), project_name)
while os.path.isdir(project_dir):
text, ok = QtGui.QInputDialog.getText(self,
"GNS3 converter",
"Project '{}' already exists. Please choose an alternative project name:".format(project_name),
text=project_name + "2")
text, ok = QtWidgets.QInputDialog.getText(self,
"GNS3 converter",
"Project '{}' already exists. Please choose an alternative project name:".format(project_name),
text=project_name + "2")
if ok:
project_name = text
project_dir = os.path.join(self.projectsDirPath(), project_name)
@@ -1386,7 +1372,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
topology_def = {'file': path, 'snapshot': False}
do_conversion(topology_def, project_name, project_dir, quiet=True)
except ConvertError as e:
QtGui.QMessageBox.critical(self, "GNS3 converter", "Could not convert {}: {}".format(path, e))
QtWidgets.QMessageBox.critical(self, "GNS3 converter", "Could not convert {}: {}".format(path, e))
return
except Exception:
exc_type, exc_value, exc_tb = sys.exc_info()
@@ -1395,7 +1381,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
MessageBox(self, "GNS3 converter", "Unexpected exception while converting {}".format(path), details=tb)
return
QtGui.QMessageBox.information(self, "GNS3 converter", "Your project has been converted to a new format and can be found in: {}".format(project_dir))
QtWidgets.QMessageBox.information(self, "GNS3 converter", "Your project has been converted to a new format and can be found in: {}".format(project_dir))
project_path = os.path.join(project_dir, project_name + ".gns3")
self.loadProject(project_path)
@@ -1410,7 +1396,7 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
self.uiGraphicsView.reset()
topology = Topology.instance()
try:
QtGui.QApplication.setOverrideCursor(QtCore.Qt.WaitCursor)
QtWidgets.QApplication.setOverrideCursor(QtCore.Qt.WaitCursor)
extension = os.path.splitext(path)[1]
if extension == ".net":
@@ -1428,14 +1414,14 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
# topology.load(json_topology)
except OSError as e:
QtGui.QMessageBox.critical(self, "Load", "Could not load project {}: {}".format(os.path.basename(path), e))
QtWidgets.QMessageBox.critical(self, "Load", "Could not load project {}: {}".format(os.path.basename(path), e))
# log.error("exception {type}".format(type=type(e)), exc_info=1)
return False
except ValueError as e:
QtGui.QMessageBox.critical(self, "Load", "Invalid file: {}".format(e))
QtWidgets.QMessageBox.critical(self, "Load", "Invalid file: {}".format(e))
return False
finally:
QtGui.QApplication.restoreOverrideCursor()
QtWidgets.QApplication.restoreOverrideCursor()
self.uiStatusBar.showMessage("Project loaded {}".format(path), 2000)
self._setCurrentFile(path)
@@ -1594,16 +1580,13 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
with open(project) as f:
json_topology = json.load(f)
self.CloudInspectorView.clear()
if json_topology["resources_type"] != 'cloud':
# do nothing in case of local projects
return
project_instances = json_topology["topology"]["instances"]
self.CloudInspectorView.load(self, [i["id"] for i in project_instances])
except (OSError, ValueError) as e:
QtGui.QMessageBox.critical(self, "Project", "Could not read project: {}".format(e))
QtWidgets.QMessageBox.critical(self, "Project", "Could not read project: {}".format(e))
def add_instance_to_project(self, instance, keypair):
"""
@@ -1620,7 +1603,6 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
topology = Topology.instance()
topology.addInstance(instance.name, instance.id, instance.extra['flavorId'],
default_image_id, keypair.private_key, keypair.public_key)
self.CloudInspectorView.addInstance(instance)
# persist infos saving current project
if not self.loading_cloud_project:
@@ -1673,12 +1655,12 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
def _exportProjectActionSlot(self):
if not ENABLE_CLOUD:
QtGui.QMessageBox.critical(self, "Cloud topology", "Sorry this feature is not yet available")
QtWidgets.QMessageBox.critical(self, "Cloud topology", "Sorry this feature is not yet available")
return
if self.isTemporaryProject():
# do nothing if project is temporary
QtGui.QMessageBox.critical(
QtWidgets.QMessageBox.critical(
self,
"Backup project",
"Cannot backup temporary projects, please save current project first."
@@ -1699,11 +1681,6 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
progress_dialog.exec_()
def _importProjectActionSlot(self):
if not ENABLE_CLOUD:
QtGui.QMessageBox.critical(self, "Cloud topology", "Sorry this feature is not yet available")
return
dialog = ImportCloudProjectDialog(
self,
self.projectsDirPath(),
@@ -1714,230 +1691,6 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
dialog.show()
dialog.exec_()
def _moveLocalProjectToCloudActionSlot(self):
if not ENABLE_CLOUD:
QtGui.QMessageBox.critical(self, "Cloud topology", "Sorry this feature is not yet available")
return
if self.isTemporaryProject():
# do nothing if project is temporary
QtGui.QMessageBox.critical(
self,
"Move project to Cloud",
"Cannot move temporary projects, please save current project first.")
return
if self._project.type() == "cloud":
# do nothing if project is already a cloud project
QtGui.QMessageBox.critical(
self,
"Move project to Cloud",
"This project is already a Cloud Project")
return
if not self.checkForUnsavedChanges():
# do nothing if project is already a cloud project
QtGui.QMessageBox.critical(
self,
"Unsaved changes",
"There are unsaved changes. Please save the project first.")
return
# Upload images to cloud storage
topology = Topology.instance()
images = set([
(
node.settings()['image'],
'images/' + os.path.relpath(node.settings()['image'], self.imagesDirPath())
)
for node in topology.nodes() if 'image' in node.settings()
])
log.debug('uploading images ' + str(images) + ' to cloud')
upload_thread = UploadFilesThread(self, self._cloud_settings, images)
upload_images_progress_dialog = ProgressDialog(upload_thread, "Uploading images", "Uploading image files...",
"Cancel", parent=self)
upload_images_progress_dialog.show()
upload_images_progress_dialog.exec_()
progress_dialog = QtGui.QProgressDialog("Moving project to cloud", "Cancel", 0, 100, self)
progress_dialog.show()
def buildComplete(server_id):
progress_dialog.setValue(80)
log.debug("websocket connected, server_id=" + str(server_id))
instance = topology.getInstance(server_id)
# copy nvram, config, and disk files to server
with ssh_client(instance.host, instance.private_key) as client:
log.debug('copying device files to cloud instance')
sftp = client.open_sftp()
project_files_dir = os.path.join(
os.path.dirname(self._project.topologyFile()),
os.path.basename(os.path.dirname(self._project.topologyFile()))
)
dest_project_path = posixpath.join(
'/root/GNS3/projects',
os.path.basename(os.path.dirname(self._project.topologyFile()))
)
for root, dirs, files in os.walk(project_files_dir):
directory = posixpath.normpath(posixpath.join(
dest_project_path,
os.path.relpath(root, project_files_dir).replace('\\', '/')
))
sftp.mkdir(directory)
sftp.chdir(directory)
for file in files:
local_filepath = os.path.join(root, file)
if os.path.isfile(local_filepath) and not self._should_exclude_copying_file(file):
log.debug('copying file ' + local_filepath)
sftp.put(local_filepath, file)
log.debug('copied file successfully')
sftp.close()
self._project.setType("cloud")
# switch server on all nodes to cloud instance
server = Servers.instance().anyCloudServer()
for node in topology.nodes():
node._server = server
# reload project
self.saveProject(self._project.topologyFile())
topology.reset()
self.loadProject(self._project.topologyFile())
progress_dialog.accept()
instances = CloudInstances.instance().instances
for instance in instances:
topology.addInstance2(instance)
self.CloudInspectorView.load(self, [i.id for i in topology.instances()])
# Create a new instance. At some point we could reuse an existing instance.
builder = self.CloudInspectorView.createInstance(
self._project.name(),
self.cloudSettings()['default_flavor'],
self.cloudSettings()['default_image']
)
builder.buildComplete.connect(buildComplete)
def _moveCloudProjectToLocalActionSlot(self):
if not ENABLE_CLOUD:
QtGui.QMessageBox.critical(self, "Cloud topology", "Sorry this feature is not yet available")
return
if self.isTemporaryProject():
# do nothing if project is temporary
QtGui.QMessageBox.critical(
self,
"Move project to local machine",
"Cannot move temporary projects, please save current project first.")
return
if self._project.type() == "local":
# do nothing if project is already a cloud project
QtGui.QMessageBox.critical(
self,
"Move project to ",
"This project is already a local project")
return
if not self.checkForUnsavedChanges():
# do nothing if project is already a cloud project
QtGui.QMessageBox.critical(
self,
"Unsaved changes",
"There are unsaved changes. Please save the project first.")
return
topology = Topology.instance()
# download images from cloud storage
images = set(
[posixpath.basename(node.settings()["image"]) for node in topology.nodes() if 'image' in node.settings()]
)
log.debug('downloading images ' + str(images))
download_images_thread = DownloadImagesThread(self._cloud_settings, self.imagesDirPath(), images)
download_images_progress_dialog = ProgressDialog(download_images_thread, "Downloading Images",
"Downloading images files...", "Cancel", parent=self)
download_images_progress_dialog.show()
download_images_progress_dialog.exec_()
# copy device files from cloud instances
src_project_path = posixpath.join(
'/root/GNS3/projects',
os.path.basename(os.path.dirname(self._project.topologyFile()))
)
project_files_dir = os.path.join(
os.path.dirname(self._project.topologyFile()),
os.path.basename(os.path.dirname(self._project.topologyFile()))
)
for topology_instance in topology.instances():
log.debug('copying device files from instance ' + str(topology_instance.host))
with ssh_client(topology_instance.host, topology_instance.private_key) as client:
if client is not None:
sftp = client.open_sftp()
def copy_files(src_dir, dest_dir):
if not os.path.exists(dest_dir):
os.makedirs(dest_dir)
files = [f.filename for f in sftp.listdir_attr(src_dir) if stat.S_ISREG(f.st_mode)]
for file in files:
if not self._should_exclude_copying_file(file):
src_filename = posixpath.join(src_dir, file)
dest_filename = os.path.join(dest_dir, file)
sftp.get(src_filename, dest_filename)
dirs = [d.filename for d in sftp.listdir_attr(src_dir) if stat.S_ISDIR(d.st_mode)]
for d in dirs:
copy_files(posixpath.join(src_dir, d), os.path.join(dest_dir, d))
copy_files(src_project_path, project_files_dir)
sftp.close()
else:
log.debug('could not connect to instance ' + str(topology_instance.host))
# switch server on all nodes to local server
server = Servers.instance().localServer()
for node in topology.nodes():
node._server = server
if "image" in node.settings():
node.settings()["image"] = os.path.basename(node.settings()["image"])
# reload project
self._project.setType("local")
self.saveProject(self._project.topologyFile())
topology.reset()
self.loadProject(self._project.topologyFile())
@staticmethod
def _should_exclude_copying_file(filename):
"""
Returns whether or not a file should be excluded from copying when converting projects
from cloud to local or vice versa
:param filename:
:return: True if file should be excluded, False otherwise
"""
return filename.endswith('.ghost')
def _cloud_instance_selected(self, instance_id):
"""
Clear selection, then select all the nodes on the graphics view
running on the instance_id instance
"""
self.uiGraphicsView.scene().clearSelection()
for item in self.uiGraphicsView.scene().items():
if isinstance(item, NodeItem):
if item.node()._server.instance_id == instance_id:
item.setSelected(True)
def _setStyle(self, style):
if style.startswith("Charcoal"):

View File

@@ -19,7 +19,7 @@
Built-in module implementation.
"""
from gns3.qt import QtGui
from gns3.qt import QtGui, QtWidgets
from gns3.servers import Servers
from ..module import Module
from ..module_error import ModuleError
@@ -38,7 +38,7 @@ class Builtin(Module):
"""
def __init__(self):
Module.__init__(self)
super().__init__()
self._nodes = []
@@ -110,7 +110,7 @@ class Builtin(Module):
# TODO: move this to graphics_view
from gns3.main_window import MainWindow
mainwindow = MainWindow.instance()
(selection, ok) = QtGui.QInputDialog.getItem(mainwindow, "Server", "Please choose a server", server_list, 0, False)
(selection, ok) = QtWidgets.QInputDialog.getItem(mainwindow, "Server", "Please choose a server", server_list, 0, False)
if ok:
if selection.startswith("Local server"):
return local_server
@@ -156,15 +156,15 @@ class Builtin(Module):
available_interfaces.append(interface["name"])
if available_interfaces:
selection, ok = QtGui.QInputDialog.getItem(mainwindow,
"Cloud interfaces", "Interface {} could not be found\nPlease select an alternative from your existing interfaces:".format(missing_interface),
available_interfaces, 0, False)
selection, ok = QtWidgets.QInputDialog.getItem(mainwindow,
"Cloud interfaces", "Interface {} could not be found\nPlease select an alternative from your existing interfaces:".format(missing_interface),
available_interfaces, 0, False)
if ok:
return selection
QtGui.QMessageBox.warning(mainwindow, "Cloud interface", "No alternative interface chosen to replace {} on this host, this may lead to issues".format(missing_interface))
QtWidgets.QMessageBox.warning(mainwindow, "Cloud interface", "No alternative interface chosen to replace {} on this host, this may lead to issues".format(missing_interface))
return None
else:
QtGui.QMessageBox.critical(mainwindow, "Cloud interface", "Could not find interface {} on this host".format(missing_interface))
QtWidgets.QMessageBox.critical(mainwindow, "Cloud interface", "Could not find interface {} on this host".format(missing_interface))
return missing_interface
@staticmethod

View File

@@ -48,7 +48,7 @@ class Cloud(Node):
_name_instance_count = 1
def __init__(self, module, server, project):
Node.__init__(self, module, server, project)
super().__init__(module, server, project)
log.info("cloud is being created")
# create an unique id and name

View File

@@ -36,7 +36,7 @@ class Host(Cloud):
_name_instance_count = 1
def __init__(self, module, server, project):
Cloud.__init__(self, module, server, project)
super().__init__(module, server, project)
log.info("host is being created")
# create an unique id and name

View File

@@ -20,11 +20,11 @@ Configuration page for clouds.
"""
import re
from gns3.qt import QtCore, QtGui
from gns3.qt import QtCore, QtGui, QtWidgets
from ..ui.cloud_configuration_page_ui import Ui_cloudConfigPageWidget
class CloudConfigurationPage(QtGui.QWidget, Ui_cloudConfigPageWidget):
class CloudConfigurationPage(QtWidgets.QWidget, Ui_cloudConfigPageWidget):
"""
QWidget configuration page for clouds.
@@ -32,7 +32,7 @@ class CloudConfigurationPage(QtGui.QWidget, Ui_cloudConfigPageWidget):
def __init__(self):
QtGui.QWidget.__init__(self)
super().__init__()
self.setupUi(self)
self._nios = []
@@ -122,7 +122,7 @@ class CloudConfigurationPage(QtGui.QWidget, Ui_cloudConfigPageWidget):
node_ports = self._node.ports()
for node_port in node_ports:
if node_port.name() == nio and not node_port.isFree():
QtGui.QMessageBox.critical(self, self._node.name(), "A link is connected to NIO {}, please remove it first".format(nio))
QtWidgets.QMessageBox.critical(self, self._node.name(), "A link is connected to NIO {}, please remove it first".format(nio))
return
self._nios.remove(nio)
self.uiGenericEthernetListWidget.takeItem(self.uiGenericEthernetListWidget.currentRow())
@@ -171,7 +171,7 @@ class CloudConfigurationPage(QtGui.QWidget, Ui_cloudConfigPageWidget):
node_ports = self._node.ports()
for node_port in node_ports:
if node_port.name() == nio and not node_port.isFree():
QtGui.QMessageBox.critical(self, self._node.name(), "A link is connected to NIO {}, please remove it first".format(nio))
QtWidgets.QMessageBox.critical(self, self._node.name(), "A link is connected to NIO {}, please remove it first".format(nio))
return
self._nios.remove(nio)
self.uiLinuxEthernetListWidget.takeItem(self.uiLinuxEthernetListWidget.currentRow())
@@ -231,7 +231,7 @@ class CloudConfigurationPage(QtGui.QWidget, Ui_cloudConfigPageWidget):
node_ports = self._node.ports()
for node_port in node_ports:
if node_port.name() == nio and not node_port.isFree():
QtGui.QMessageBox.critical(self, self._node.name(), "A link is connected to NIO {}, please remove it first".format(nio))
QtWidgets.QMessageBox.critical(self, self._node.name(), "A link is connected to NIO {}, please remove it first".format(nio))
return
self._nios.remove(nio)
self.uiNIOUDPListWidget.takeItem(self.uiNIOUDPListWidget.currentRow())
@@ -285,7 +285,7 @@ class CloudConfigurationPage(QtGui.QWidget, Ui_cloudConfigPageWidget):
node_ports = self._node.ports()
for node_port in node_ports:
if node_port.name() == nio and not node_port.isFree():
QtGui.QMessageBox.critical(self, self._node.name(), "A link is connected to NIO {}, please remove it first".format(nio))
QtWidgets.QMessageBox.critical(self, self._node.name(), "A link is connected to NIO {}, please remove it first".format(nio))
return
self._nios.remove(nio)
self.uiNIOTAPListWidget.takeItem(self.uiNIOTAPListWidget.currentRow())
@@ -342,7 +342,7 @@ class CloudConfigurationPage(QtGui.QWidget, Ui_cloudConfigPageWidget):
node_ports = self._node.ports()
for node_port in node_ports:
if node_port.name() == nio and not node_port.isFree():
QtGui.QMessageBox.critical(self, self._node.name(), "A link is connected to NIO {}, please remove it first".format(nio))
QtWidgets.QMessageBox.critical(self, self._node.name(), "A link is connected to NIO {}, please remove it first".format(nio))
return
self._nios.remove(nio)
self.uiNIOUNIXListWidget.takeItem(self.uiNIOUNIXListWidget.currentRow())
@@ -398,7 +398,7 @@ class CloudConfigurationPage(QtGui.QWidget, Ui_cloudConfigPageWidget):
node_ports = self._node.ports()
for node_port in node_ports:
if node_port.name() == nio and not node_port.isFree():
QtGui.QMessageBox.critical(self, self._node.name(), "A link is connected to NIO {}, please remove it first".format(nio))
QtWidgets.QMessageBox.critical(self, self._node.name(), "A link is connected to NIO {}, please remove it first".format(nio))
return
self._nios.remove(nio)
self.uiNIOVDEListWidget.takeItem(self.uiNIOVDEListWidget.currentRow())
@@ -450,7 +450,7 @@ class CloudConfigurationPage(QtGui.QWidget, Ui_cloudConfigPageWidget):
node_ports = self._node.ports()
for node_port in node_ports:
if node_port.name() == nio and not node_port.isFree():
QtGui.QMessageBox.critical(self, self._node.name(), "A link is connected to NIO {}, please remove it first".format(nio))
QtWidgets.QMessageBox.critical(self, self._node.name(), "A link is connected to NIO {}, please remove it first".format(nio))
return
self._nios.remove(nio)
self.uiNIONullListWidget.takeItem(self.uiNIONullListWidget.currentRow())
@@ -481,7 +481,7 @@ class CloudConfigurationPage(QtGui.QWidget, Ui_cloudConfigPageWidget):
self.uiGenericEthernetComboBox.addItem(interface["name"])
self.uiGenericEthernetComboBox.setItemData(index, interface["id"], QtCore.Qt.ToolTipRole)
index += 1
self.uiGenericEthernetComboBox.setSizeAdjustPolicy(QtGui.QComboBox.AdjustToContents)
self.uiGenericEthernetComboBox.setSizeAdjustPolicy(QtWidgets.QComboBox.AdjustToContents)
# load all network interfaces
self.uiLinuxEthernetComboBox.clear()
@@ -491,7 +491,7 @@ class CloudConfigurationPage(QtGui.QWidget, Ui_cloudConfigPageWidget):
self.uiLinuxEthernetComboBox.addItem(interface["name"])
self.uiLinuxEthernetComboBox.setItemData(index, interface["id"], QtCore.Qt.ToolTipRole)
index += 1
self.uiLinuxEthernetComboBox.setSizeAdjustPolicy(QtGui.QComboBox.AdjustToContents)
self.uiLinuxEthernetComboBox.setSizeAdjustPolicy(QtWidgets.QComboBox.AdjustToContents)
# populate the NIO lists
self.nios = []

View File

@@ -1,376 +1,361 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file '/home/grossmj/workspace/git/gns3-gui/gns3/modules/dynamips/ui/cloud_configuration_page.ui'
# Form implementation generated from reading ui file '/Users/noplay/code/gns3/gns3-gui/gns3/modules/builtin/ui/cloud_configuration_page.ui'
#
# Created: Mon Mar 17 17:42:16 2014
# by: PyQt4 UI code generator 4.10
# Created: Fri Apr 17 10:44:32 2015
# by: PyQt5 UI code generator 5.4
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
from gns3.qt import QtCore, QtGui, QtWidgets
class Ui_cloudConfigPageWidget(object):
class Ui_cloudConfigPageWidget:
def setupUi(self, cloudConfigPageWidget):
cloudConfigPageWidget.setObjectName(_fromUtf8("cloudConfigPageWidget"))
cloudConfigPageWidget.setObjectName("cloudConfigPageWidget")
cloudConfigPageWidget.resize(542, 500)
self.vboxlayout = QtGui.QVBoxLayout(cloudConfigPageWidget)
self.vboxlayout.setObjectName(_fromUtf8("vboxlayout"))
self.tabWidget = QtGui.QTabWidget(cloudConfigPageWidget)
self.tabWidget.setObjectName(_fromUtf8("tabWidget"))
self.tab = QtGui.QWidget()
self.tab.setObjectName(_fromUtf8("tab"))
self.vboxlayout1 = QtGui.QVBoxLayout(self.tab)
self.vboxlayout1.setObjectName(_fromUtf8("vboxlayout1"))
self.uiGenericEthernetGroupBox = QtGui.QGroupBox(self.tab)
self.uiGenericEthernetGroupBox.setObjectName(_fromUtf8("uiGenericEthernetGroupBox"))
self.gridlayout = QtGui.QGridLayout(self.uiGenericEthernetGroupBox)
self.gridlayout.setObjectName(_fromUtf8("gridlayout"))
self.uiGenericEthernetComboBox = QtGui.QComboBox(self.uiGenericEthernetGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.vboxlayout = QtWidgets.QVBoxLayout(cloudConfigPageWidget)
self.vboxlayout.setObjectName("vboxlayout")
self.tabWidget = QtWidgets.QTabWidget(cloudConfigPageWidget)
self.tabWidget.setObjectName("tabWidget")
self.tab = QtWidgets.QWidget()
self.tab.setObjectName("tab")
self.vboxlayout1 = QtWidgets.QVBoxLayout(self.tab)
self.vboxlayout1.setObjectName("vboxlayout1")
self.uiGenericEthernetGroupBox = QtWidgets.QGroupBox(self.tab)
self.uiGenericEthernetGroupBox.setObjectName("uiGenericEthernetGroupBox")
self.gridlayout = QtWidgets.QGridLayout(self.uiGenericEthernetGroupBox)
self.gridlayout.setObjectName("gridlayout")
self.uiGenericEthernetComboBox = QtWidgets.QComboBox(self.uiGenericEthernetGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiGenericEthernetComboBox.sizePolicy().hasHeightForWidth())
self.uiGenericEthernetComboBox.setSizePolicy(sizePolicy)
self.uiGenericEthernetComboBox.setSizeAdjustPolicy(QtGui.QComboBox.AdjustToContents)
self.uiGenericEthernetComboBox.setObjectName(_fromUtf8("uiGenericEthernetComboBox"))
self.uiGenericEthernetComboBox.setSizeAdjustPolicy(QtWidgets.QComboBox.AdjustToContents)
self.uiGenericEthernetComboBox.setObjectName("uiGenericEthernetComboBox")
self.gridlayout.addWidget(self.uiGenericEthernetComboBox, 0, 0, 1, 3)
self.uiGenericEthernetLineEdit = QtGui.QLineEdit(self.uiGenericEthernetGroupBox)
self.uiGenericEthernetLineEdit.setObjectName(_fromUtf8("uiGenericEthernetLineEdit"))
self.uiGenericEthernetLineEdit = QtWidgets.QLineEdit(self.uiGenericEthernetGroupBox)
self.uiGenericEthernetLineEdit.setObjectName("uiGenericEthernetLineEdit")
self.gridlayout.addWidget(self.uiGenericEthernetLineEdit, 1, 0, 1, 1)
self.uiAddGenericEthernetPushButton = QtGui.QPushButton(self.uiGenericEthernetGroupBox)
self.uiAddGenericEthernetPushButton.setObjectName(_fromUtf8("uiAddGenericEthernetPushButton"))
self.uiAddGenericEthernetPushButton = QtWidgets.QPushButton(self.uiGenericEthernetGroupBox)
self.uiAddGenericEthernetPushButton.setObjectName("uiAddGenericEthernetPushButton")
self.gridlayout.addWidget(self.uiAddGenericEthernetPushButton, 1, 1, 1, 1)
self.uiDeleteGenericEthernetPushButton = QtGui.QPushButton(self.uiGenericEthernetGroupBox)
self.uiDeleteGenericEthernetPushButton = QtWidgets.QPushButton(self.uiGenericEthernetGroupBox)
self.uiDeleteGenericEthernetPushButton.setEnabled(False)
self.uiDeleteGenericEthernetPushButton.setObjectName(_fromUtf8("uiDeleteGenericEthernetPushButton"))
self.uiDeleteGenericEthernetPushButton.setObjectName("uiDeleteGenericEthernetPushButton")
self.gridlayout.addWidget(self.uiDeleteGenericEthernetPushButton, 1, 2, 1, 1)
self.uiGenericEthernetListWidget = QtGui.QListWidget(self.uiGenericEthernetGroupBox)
self.uiGenericEthernetListWidget.setObjectName(_fromUtf8("uiGenericEthernetListWidget"))
self.uiGenericEthernetListWidget = QtWidgets.QListWidget(self.uiGenericEthernetGroupBox)
self.uiGenericEthernetListWidget.setObjectName("uiGenericEthernetListWidget")
self.gridlayout.addWidget(self.uiGenericEthernetListWidget, 2, 0, 1, 3)
self.vboxlayout1.addWidget(self.uiGenericEthernetGroupBox)
self.uiLinuxEthernetGroupBox = QtGui.QGroupBox(self.tab)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Preferred, QtGui.QSizePolicy.Preferred)
self.uiLinuxEthernetGroupBox = QtWidgets.QGroupBox(self.tab)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Preferred, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiLinuxEthernetGroupBox.sizePolicy().hasHeightForWidth())
self.uiLinuxEthernetGroupBox.setSizePolicy(sizePolicy)
self.uiLinuxEthernetGroupBox.setObjectName(_fromUtf8("uiLinuxEthernetGroupBox"))
self.gridlayout1 = QtGui.QGridLayout(self.uiLinuxEthernetGroupBox)
self.gridlayout1.setObjectName(_fromUtf8("gridlayout1"))
self.uiLinuxEthernetComboBox = QtGui.QComboBox(self.uiLinuxEthernetGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.uiLinuxEthernetGroupBox.setObjectName("uiLinuxEthernetGroupBox")
self.gridlayout1 = QtWidgets.QGridLayout(self.uiLinuxEthernetGroupBox)
self.gridlayout1.setObjectName("gridlayout1")
self.uiLinuxEthernetComboBox = QtWidgets.QComboBox(self.uiLinuxEthernetGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiLinuxEthernetComboBox.sizePolicy().hasHeightForWidth())
self.uiLinuxEthernetComboBox.setSizePolicy(sizePolicy)
self.uiLinuxEthernetComboBox.setObjectName(_fromUtf8("uiLinuxEthernetComboBox"))
self.uiLinuxEthernetComboBox.setObjectName("uiLinuxEthernetComboBox")
self.gridlayout1.addWidget(self.uiLinuxEthernetComboBox, 0, 0, 1, 3)
self.uiLinuxEthernetLineEdit = QtGui.QLineEdit(self.uiLinuxEthernetGroupBox)
self.uiLinuxEthernetLineEdit.setObjectName(_fromUtf8("uiLinuxEthernetLineEdit"))
self.uiLinuxEthernetLineEdit = QtWidgets.QLineEdit(self.uiLinuxEthernetGroupBox)
self.uiLinuxEthernetLineEdit.setObjectName("uiLinuxEthernetLineEdit")
self.gridlayout1.addWidget(self.uiLinuxEthernetLineEdit, 1, 0, 1, 1)
self.uiAddLinuxEthernetPushButton = QtGui.QPushButton(self.uiLinuxEthernetGroupBox)
self.uiAddLinuxEthernetPushButton.setObjectName(_fromUtf8("uiAddLinuxEthernetPushButton"))
self.uiAddLinuxEthernetPushButton = QtWidgets.QPushButton(self.uiLinuxEthernetGroupBox)
self.uiAddLinuxEthernetPushButton.setObjectName("uiAddLinuxEthernetPushButton")
self.gridlayout1.addWidget(self.uiAddLinuxEthernetPushButton, 1, 1, 1, 1)
self.uiDeleteLinuxEthernetPushButton = QtGui.QPushButton(self.uiLinuxEthernetGroupBox)
self.uiDeleteLinuxEthernetPushButton = QtWidgets.QPushButton(self.uiLinuxEthernetGroupBox)
self.uiDeleteLinuxEthernetPushButton.setEnabled(False)
self.uiDeleteLinuxEthernetPushButton.setObjectName(_fromUtf8("uiDeleteLinuxEthernetPushButton"))
self.uiDeleteLinuxEthernetPushButton.setObjectName("uiDeleteLinuxEthernetPushButton")
self.gridlayout1.addWidget(self.uiDeleteLinuxEthernetPushButton, 1, 2, 1, 1)
self.uiLinuxEthernetListWidget = QtGui.QListWidget(self.uiLinuxEthernetGroupBox)
self.uiLinuxEthernetListWidget.setObjectName(_fromUtf8("uiLinuxEthernetListWidget"))
self.uiLinuxEthernetListWidget = QtWidgets.QListWidget(self.uiLinuxEthernetGroupBox)
self.uiLinuxEthernetListWidget.setObjectName("uiLinuxEthernetListWidget")
self.gridlayout1.addWidget(self.uiLinuxEthernetListWidget, 2, 0, 1, 3)
self.vboxlayout1.addWidget(self.uiLinuxEthernetGroupBox)
spacerItem = QtGui.QSpacerItem(21, 16, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed)
spacerItem = QtWidgets.QSpacerItem(21, 16, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
self.vboxlayout1.addItem(spacerItem)
self.tabWidget.addTab(self.tab, _fromUtf8(""))
self.tab_2 = QtGui.QWidget()
self.tab_2.setObjectName(_fromUtf8("tab_2"))
self.gridlayout2 = QtGui.QGridLayout(self.tab_2)
self.gridlayout2.setObjectName(_fromUtf8("gridlayout2"))
self.uiNIOUDPSettingsGroupBox = QtGui.QGroupBox(self.tab_2)
self.uiNIOUDPSettingsGroupBox.setObjectName(_fromUtf8("uiNIOUDPSettingsGroupBox"))
self.gridlayout3 = QtGui.QGridLayout(self.uiNIOUDPSettingsGroupBox)
self.gridlayout3.setObjectName(_fromUtf8("gridlayout3"))
self.uiLocalPortLabel = QtGui.QLabel(self.uiNIOUDPSettingsGroupBox)
self.uiLocalPortLabel.setObjectName(_fromUtf8("uiLocalPortLabel"))
self.tabWidget.addTab(self.tab, "")
self.tab_2 = QtWidgets.QWidget()
self.tab_2.setObjectName("tab_2")
self.gridlayout2 = QtWidgets.QGridLayout(self.tab_2)
self.gridlayout2.setObjectName("gridlayout2")
self.uiNIOUDPSettingsGroupBox = QtWidgets.QGroupBox(self.tab_2)
self.uiNIOUDPSettingsGroupBox.setObjectName("uiNIOUDPSettingsGroupBox")
self.gridlayout3 = QtWidgets.QGridLayout(self.uiNIOUDPSettingsGroupBox)
self.gridlayout3.setObjectName("gridlayout3")
self.uiLocalPortLabel = QtWidgets.QLabel(self.uiNIOUDPSettingsGroupBox)
self.uiLocalPortLabel.setObjectName("uiLocalPortLabel")
self.gridlayout3.addWidget(self.uiLocalPortLabel, 0, 0, 1, 1)
self.uiLocalPortSpinBox = QtGui.QSpinBox(self.uiNIOUDPSettingsGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.uiLocalPortSpinBox = QtWidgets.QSpinBox(self.uiNIOUDPSettingsGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiLocalPortSpinBox.sizePolicy().hasHeightForWidth())
self.uiLocalPortSpinBox.setSizePolicy(sizePolicy)
self.uiLocalPortSpinBox.setMaximum(65535)
self.uiLocalPortSpinBox.setProperty("value", 30000)
self.uiLocalPortSpinBox.setObjectName(_fromUtf8("uiLocalPortSpinBox"))
self.uiLocalPortSpinBox.setObjectName("uiLocalPortSpinBox")
self.gridlayout3.addWidget(self.uiLocalPortSpinBox, 0, 1, 1, 1)
self.uiRemoteHostLabel = QtGui.QLabel(self.uiNIOUDPSettingsGroupBox)
self.uiRemoteHostLabel.setObjectName(_fromUtf8("uiRemoteHostLabel"))
self.uiRemoteHostLabel = QtWidgets.QLabel(self.uiNIOUDPSettingsGroupBox)
self.uiRemoteHostLabel.setObjectName("uiRemoteHostLabel")
self.gridlayout3.addWidget(self.uiRemoteHostLabel, 1, 0, 1, 1)
self.uiRemoteHostLineEdit = QtGui.QLineEdit(self.uiNIOUDPSettingsGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.uiRemoteHostLineEdit = QtWidgets.QLineEdit(self.uiNIOUDPSettingsGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiRemoteHostLineEdit.sizePolicy().hasHeightForWidth())
self.uiRemoteHostLineEdit.setSizePolicy(sizePolicy)
self.uiRemoteHostLineEdit.setMinimumSize(QtCore.QSize(80, 0))
self.uiRemoteHostLineEdit.setObjectName(_fromUtf8("uiRemoteHostLineEdit"))
self.uiRemoteHostLineEdit.setObjectName("uiRemoteHostLineEdit")
self.gridlayout3.addWidget(self.uiRemoteHostLineEdit, 1, 1, 1, 1)
self.uiRemotePortLabel = QtGui.QLabel(self.uiNIOUDPSettingsGroupBox)
self.uiRemotePortLabel.setObjectName(_fromUtf8("uiRemotePortLabel"))
self.uiRemotePortLabel = QtWidgets.QLabel(self.uiNIOUDPSettingsGroupBox)
self.uiRemotePortLabel.setObjectName("uiRemotePortLabel")
self.gridlayout3.addWidget(self.uiRemotePortLabel, 2, 0, 1, 1)
self.uiRemotePortSpinBox = QtGui.QSpinBox(self.uiNIOUDPSettingsGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.uiRemotePortSpinBox = QtWidgets.QSpinBox(self.uiNIOUDPSettingsGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiRemotePortSpinBox.sizePolicy().hasHeightForWidth())
self.uiRemotePortSpinBox.setSizePolicy(sizePolicy)
self.uiRemotePortSpinBox.setMaximum(65535)
self.uiRemotePortSpinBox.setProperty("value", 20000)
self.uiRemotePortSpinBox.setObjectName(_fromUtf8("uiRemotePortSpinBox"))
self.uiRemotePortSpinBox.setObjectName("uiRemotePortSpinBox")
self.gridlayout3.addWidget(self.uiRemotePortSpinBox, 2, 1, 1, 1)
self.gridlayout2.addWidget(self.uiNIOUDPSettingsGroupBox, 0, 0, 1, 2)
self.uiNIOUDPListGroupBox = QtGui.QGroupBox(self.tab_2)
self.uiNIOUDPListGroupBox.setObjectName(_fromUtf8("uiNIOUDPListGroupBox"))
self.vboxlayout2 = QtGui.QVBoxLayout(self.uiNIOUDPListGroupBox)
self.vboxlayout2.setObjectName(_fromUtf8("vboxlayout2"))
self.uiNIOUDPListWidget = QtGui.QListWidget(self.uiNIOUDPListGroupBox)
self.uiNIOUDPListWidget.setObjectName(_fromUtf8("uiNIOUDPListWidget"))
self.uiNIOUDPListGroupBox = QtWidgets.QGroupBox(self.tab_2)
self.uiNIOUDPListGroupBox.setObjectName("uiNIOUDPListGroupBox")
self.vboxlayout2 = QtWidgets.QVBoxLayout(self.uiNIOUDPListGroupBox)
self.vboxlayout2.setObjectName("vboxlayout2")
self.uiNIOUDPListWidget = QtWidgets.QListWidget(self.uiNIOUDPListGroupBox)
self.uiNIOUDPListWidget.setObjectName("uiNIOUDPListWidget")
self.vboxlayout2.addWidget(self.uiNIOUDPListWidget)
self.gridlayout2.addWidget(self.uiNIOUDPListGroupBox, 0, 2, 2, 1)
self.uiAddNIOUDPPushButton = QtGui.QPushButton(self.tab_2)
self.uiAddNIOUDPPushButton.setObjectName(_fromUtf8("uiAddNIOUDPPushButton"))
self.uiAddNIOUDPPushButton = QtWidgets.QPushButton(self.tab_2)
self.uiAddNIOUDPPushButton.setObjectName("uiAddNIOUDPPushButton")
self.gridlayout2.addWidget(self.uiAddNIOUDPPushButton, 1, 0, 1, 1)
self.uiDeleteNIOUDPPushButton = QtGui.QPushButton(self.tab_2)
self.uiDeleteNIOUDPPushButton = QtWidgets.QPushButton(self.tab_2)
self.uiDeleteNIOUDPPushButton.setEnabled(False)
self.uiDeleteNIOUDPPushButton.setObjectName(_fromUtf8("uiDeleteNIOUDPPushButton"))
self.uiDeleteNIOUDPPushButton.setObjectName("uiDeleteNIOUDPPushButton")
self.gridlayout2.addWidget(self.uiDeleteNIOUDPPushButton, 1, 1, 1, 1)
spacerItem1 = QtGui.QSpacerItem(20, 211, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
spacerItem1 = QtWidgets.QSpacerItem(20, 211, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.gridlayout2.addItem(spacerItem1, 2, 1, 1, 1)
self.tabWidget.addTab(self.tab_2, _fromUtf8(""))
self.tab_3 = QtGui.QWidget()
self.tab_3.setObjectName(_fromUtf8("tab_3"))
self.vboxlayout3 = QtGui.QVBoxLayout(self.tab_3)
self.vboxlayout3.setObjectName(_fromUtf8("vboxlayout3"))
self.uiNIOTAPGroupBox = QtGui.QGroupBox(self.tab_3)
self.uiNIOTAPGroupBox.setObjectName(_fromUtf8("uiNIOTAPGroupBox"))
self.gridlayout4 = QtGui.QGridLayout(self.uiNIOTAPGroupBox)
self.gridlayout4.setObjectName(_fromUtf8("gridlayout4"))
self.uiNIOTAPLineEdit = QtGui.QLineEdit(self.uiNIOTAPGroupBox)
self.uiNIOTAPLineEdit.setObjectName(_fromUtf8("uiNIOTAPLineEdit"))
self.tabWidget.addTab(self.tab_2, "")
self.tab_3 = QtWidgets.QWidget()
self.tab_3.setObjectName("tab_3")
self.vboxlayout3 = QtWidgets.QVBoxLayout(self.tab_3)
self.vboxlayout3.setObjectName("vboxlayout3")
self.uiNIOTAPGroupBox = QtWidgets.QGroupBox(self.tab_3)
self.uiNIOTAPGroupBox.setObjectName("uiNIOTAPGroupBox")
self.gridlayout4 = QtWidgets.QGridLayout(self.uiNIOTAPGroupBox)
self.gridlayout4.setObjectName("gridlayout4")
self.uiNIOTAPLineEdit = QtWidgets.QLineEdit(self.uiNIOTAPGroupBox)
self.uiNIOTAPLineEdit.setObjectName("uiNIOTAPLineEdit")
self.gridlayout4.addWidget(self.uiNIOTAPLineEdit, 0, 0, 1, 1)
self.uiAddNIOTAPPushButton = QtGui.QPushButton(self.uiNIOTAPGroupBox)
self.uiAddNIOTAPPushButton.setObjectName(_fromUtf8("uiAddNIOTAPPushButton"))
self.uiAddNIOTAPPushButton = QtWidgets.QPushButton(self.uiNIOTAPGroupBox)
self.uiAddNIOTAPPushButton.setObjectName("uiAddNIOTAPPushButton")
self.gridlayout4.addWidget(self.uiAddNIOTAPPushButton, 0, 1, 1, 1)
self.uiDeleteNIOTAPPushButton = QtGui.QPushButton(self.uiNIOTAPGroupBox)
self.uiDeleteNIOTAPPushButton = QtWidgets.QPushButton(self.uiNIOTAPGroupBox)
self.uiDeleteNIOTAPPushButton.setEnabled(False)
self.uiDeleteNIOTAPPushButton.setObjectName(_fromUtf8("uiDeleteNIOTAPPushButton"))
self.uiDeleteNIOTAPPushButton.setObjectName("uiDeleteNIOTAPPushButton")
self.gridlayout4.addWidget(self.uiDeleteNIOTAPPushButton, 0, 2, 1, 1)
self.uiNIOTAPListWidget = QtGui.QListWidget(self.uiNIOTAPGroupBox)
self.uiNIOTAPListWidget.setObjectName(_fromUtf8("uiNIOTAPListWidget"))
self.uiNIOTAPListWidget = QtWidgets.QListWidget(self.uiNIOTAPGroupBox)
self.uiNIOTAPListWidget.setObjectName("uiNIOTAPListWidget")
self.gridlayout4.addWidget(self.uiNIOTAPListWidget, 1, 0, 1, 3)
self.vboxlayout3.addWidget(self.uiNIOTAPGroupBox)
spacerItem2 = QtGui.QSpacerItem(20, 191, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
spacerItem2 = QtWidgets.QSpacerItem(20, 191, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.vboxlayout3.addItem(spacerItem2)
self.tabWidget.addTab(self.tab_3, _fromUtf8(""))
self.tab_4 = QtGui.QWidget()
self.tab_4.setObjectName(_fromUtf8("tab_4"))
self.gridlayout5 = QtGui.QGridLayout(self.tab_4)
self.gridlayout5.setObjectName(_fromUtf8("gridlayout5"))
self.uiNIOUNIXSettingsGroupBox = QtGui.QGroupBox(self.tab_4)
self.uiNIOUNIXSettingsGroupBox.setObjectName(_fromUtf8("uiNIOUNIXSettingsGroupBox"))
self.gridlayout6 = QtGui.QGridLayout(self.uiNIOUNIXSettingsGroupBox)
self.gridlayout6.setObjectName(_fromUtf8("gridlayout6"))
self.gridlayout7 = QtGui.QGridLayout()
self.gridlayout7.setObjectName(_fromUtf8("gridlayout7"))
self.uiLocalFileLabel = QtGui.QLabel(self.uiNIOUNIXSettingsGroupBox)
self.uiLocalFileLabel.setObjectName(_fromUtf8("uiLocalFileLabel"))
self.tabWidget.addTab(self.tab_3, "")
self.tab_4 = QtWidgets.QWidget()
self.tab_4.setObjectName("tab_4")
self.gridlayout5 = QtWidgets.QGridLayout(self.tab_4)
self.gridlayout5.setObjectName("gridlayout5")
self.uiNIOUNIXSettingsGroupBox = QtWidgets.QGroupBox(self.tab_4)
self.uiNIOUNIXSettingsGroupBox.setObjectName("uiNIOUNIXSettingsGroupBox")
self.gridlayout6 = QtWidgets.QGridLayout(self.uiNIOUNIXSettingsGroupBox)
self.gridlayout6.setObjectName("gridlayout6")
self.gridlayout7 = QtWidgets.QGridLayout()
self.gridlayout7.setObjectName("gridlayout7")
self.uiLocalFileLabel = QtWidgets.QLabel(self.uiNIOUNIXSettingsGroupBox)
self.uiLocalFileLabel.setObjectName("uiLocalFileLabel")
self.gridlayout7.addWidget(self.uiLocalFileLabel, 0, 0, 1, 1)
self.uiLocalFileLineEdit = QtGui.QLineEdit(self.uiNIOUNIXSettingsGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.uiLocalFileLineEdit = QtWidgets.QLineEdit(self.uiNIOUNIXSettingsGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiLocalFileLineEdit.sizePolicy().hasHeightForWidth())
self.uiLocalFileLineEdit.setSizePolicy(sizePolicy)
self.uiLocalFileLineEdit.setObjectName(_fromUtf8("uiLocalFileLineEdit"))
self.uiLocalFileLineEdit.setObjectName("uiLocalFileLineEdit")
self.gridlayout7.addWidget(self.uiLocalFileLineEdit, 1, 0, 1, 1)
self.gridlayout6.addLayout(self.gridlayout7, 0, 0, 1, 1)
self.gridlayout8 = QtGui.QGridLayout()
self.gridlayout8.setObjectName(_fromUtf8("gridlayout8"))
self.uiRemoteFileLabel = QtGui.QLabel(self.uiNIOUNIXSettingsGroupBox)
self.uiRemoteFileLabel.setObjectName(_fromUtf8("uiRemoteFileLabel"))
self.gridlayout8 = QtWidgets.QGridLayout()
self.gridlayout8.setObjectName("gridlayout8")
self.uiRemoteFileLabel = QtWidgets.QLabel(self.uiNIOUNIXSettingsGroupBox)
self.uiRemoteFileLabel.setObjectName("uiRemoteFileLabel")
self.gridlayout8.addWidget(self.uiRemoteFileLabel, 0, 0, 1, 1)
self.uiRemoteFileLineEdit = QtGui.QLineEdit(self.uiNIOUNIXSettingsGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.uiRemoteFileLineEdit = QtWidgets.QLineEdit(self.uiNIOUNIXSettingsGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiRemoteFileLineEdit.sizePolicy().hasHeightForWidth())
self.uiRemoteFileLineEdit.setSizePolicy(sizePolicy)
self.uiRemoteFileLineEdit.setObjectName(_fromUtf8("uiRemoteFileLineEdit"))
self.uiRemoteFileLineEdit.setObjectName("uiRemoteFileLineEdit")
self.gridlayout8.addWidget(self.uiRemoteFileLineEdit, 1, 0, 1, 1)
self.gridlayout6.addLayout(self.gridlayout8, 1, 0, 1, 1)
self.gridlayout5.addWidget(self.uiNIOUNIXSettingsGroupBox, 0, 0, 1, 2)
self.uiNIOUNIXListGroupBox = QtGui.QGroupBox(self.tab_4)
self.uiNIOUNIXListGroupBox.setObjectName(_fromUtf8("uiNIOUNIXListGroupBox"))
self.vboxlayout4 = QtGui.QVBoxLayout(self.uiNIOUNIXListGroupBox)
self.vboxlayout4.setObjectName(_fromUtf8("vboxlayout4"))
self.uiNIOUNIXListWidget = QtGui.QListWidget(self.uiNIOUNIXListGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
self.uiNIOUNIXListGroupBox = QtWidgets.QGroupBox(self.tab_4)
self.uiNIOUNIXListGroupBox.setObjectName("uiNIOUNIXListGroupBox")
self.vboxlayout4 = QtWidgets.QVBoxLayout(self.uiNIOUNIXListGroupBox)
self.vboxlayout4.setObjectName("vboxlayout4")
self.uiNIOUNIXListWidget = QtWidgets.QListWidget(self.uiNIOUNIXListGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiNIOUNIXListWidget.sizePolicy().hasHeightForWidth())
self.uiNIOUNIXListWidget.setSizePolicy(sizePolicy)
self.uiNIOUNIXListWidget.setObjectName(_fromUtf8("uiNIOUNIXListWidget"))
self.uiNIOUNIXListWidget.setObjectName("uiNIOUNIXListWidget")
self.vboxlayout4.addWidget(self.uiNIOUNIXListWidget)
self.gridlayout5.addWidget(self.uiNIOUNIXListGroupBox, 0, 2, 3, 1)
self.uiAddNIOUNIXPushButton = QtGui.QPushButton(self.tab_4)
self.uiAddNIOUNIXPushButton.setObjectName(_fromUtf8("uiAddNIOUNIXPushButton"))
self.uiAddNIOUNIXPushButton = QtWidgets.QPushButton(self.tab_4)
self.uiAddNIOUNIXPushButton.setObjectName("uiAddNIOUNIXPushButton")
self.gridlayout5.addWidget(self.uiAddNIOUNIXPushButton, 1, 0, 1, 1)
self.uiDeleteNIOUNIXPushButton = QtGui.QPushButton(self.tab_4)
self.uiDeleteNIOUNIXPushButton = QtWidgets.QPushButton(self.tab_4)
self.uiDeleteNIOUNIXPushButton.setEnabled(False)
self.uiDeleteNIOUNIXPushButton.setObjectName(_fromUtf8("uiDeleteNIOUNIXPushButton"))
self.uiDeleteNIOUNIXPushButton.setObjectName("uiDeleteNIOUNIXPushButton")
self.gridlayout5.addWidget(self.uiDeleteNIOUNIXPushButton, 1, 1, 1, 1)
spacerItem3 = QtGui.QSpacerItem(160, 190, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed)
spacerItem3 = QtWidgets.QSpacerItem(160, 190, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
self.gridlayout5.addItem(spacerItem3, 2, 0, 2, 2)
spacerItem4 = QtGui.QSpacerItem(196, 132, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
spacerItem4 = QtWidgets.QSpacerItem(196, 132, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.gridlayout5.addItem(spacerItem4, 3, 2, 1, 1)
self.tabWidget.addTab(self.tab_4, _fromUtf8(""))
self.tab_5 = QtGui.QWidget()
self.tab_5.setObjectName(_fromUtf8("tab_5"))
self.gridlayout9 = QtGui.QGridLayout(self.tab_5)
self.gridlayout9.setObjectName(_fromUtf8("gridlayout9"))
self.uiNIOVDESettingsGroupBox = QtGui.QGroupBox(self.tab_5)
self.uiNIOVDESettingsGroupBox.setObjectName(_fromUtf8("uiNIOVDESettingsGroupBox"))
self.gridlayout10 = QtGui.QGridLayout(self.uiNIOVDESettingsGroupBox)
self.gridlayout10.setObjectName(_fromUtf8("gridlayout10"))
self.gridlayout11 = QtGui.QGridLayout()
self.gridlayout11.setObjectName(_fromUtf8("gridlayout11"))
self.uiVDEControlFileLabel = QtGui.QLabel(self.uiNIOVDESettingsGroupBox)
self.uiVDEControlFileLabel.setObjectName(_fromUtf8("uiVDEControlFileLabel"))
self.tabWidget.addTab(self.tab_4, "")
self.tab_5 = QtWidgets.QWidget()
self.tab_5.setObjectName("tab_5")
self.gridlayout9 = QtWidgets.QGridLayout(self.tab_5)
self.gridlayout9.setObjectName("gridlayout9")
self.uiNIOVDESettingsGroupBox = QtWidgets.QGroupBox(self.tab_5)
self.uiNIOVDESettingsGroupBox.setObjectName("uiNIOVDESettingsGroupBox")
self.gridlayout10 = QtWidgets.QGridLayout(self.uiNIOVDESettingsGroupBox)
self.gridlayout10.setObjectName("gridlayout10")
self.gridlayout11 = QtWidgets.QGridLayout()
self.gridlayout11.setObjectName("gridlayout11")
self.uiVDEControlFileLabel = QtWidgets.QLabel(self.uiNIOVDESettingsGroupBox)
self.uiVDEControlFileLabel.setObjectName("uiVDEControlFileLabel")
self.gridlayout11.addWidget(self.uiVDEControlFileLabel, 0, 0, 1, 1)
self.uiVDEControlFileLineEdit = QtGui.QLineEdit(self.uiNIOVDESettingsGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.uiVDEControlFileLineEdit = QtWidgets.QLineEdit(self.uiNIOVDESettingsGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiVDEControlFileLineEdit.sizePolicy().hasHeightForWidth())
self.uiVDEControlFileLineEdit.setSizePolicy(sizePolicy)
self.uiVDEControlFileLineEdit.setObjectName(_fromUtf8("uiVDEControlFileLineEdit"))
self.uiVDEControlFileLineEdit.setObjectName("uiVDEControlFileLineEdit")
self.gridlayout11.addWidget(self.uiVDEControlFileLineEdit, 1, 0, 1, 1)
self.gridlayout10.addLayout(self.gridlayout11, 0, 0, 1, 1)
self.gridlayout12 = QtGui.QGridLayout()
self.gridlayout12.setObjectName(_fromUtf8("gridlayout12"))
self.uiVDELocalFileLabel = QtGui.QLabel(self.uiNIOVDESettingsGroupBox)
self.uiVDELocalFileLabel.setObjectName(_fromUtf8("uiVDELocalFileLabel"))
self.gridlayout12 = QtWidgets.QGridLayout()
self.gridlayout12.setObjectName("gridlayout12")
self.uiVDELocalFileLabel = QtWidgets.QLabel(self.uiNIOVDESettingsGroupBox)
self.uiVDELocalFileLabel.setObjectName("uiVDELocalFileLabel")
self.gridlayout12.addWidget(self.uiVDELocalFileLabel, 0, 0, 1, 1)
self.uiVDELocalFileLineEdit = QtGui.QLineEdit(self.uiNIOVDESettingsGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.uiVDELocalFileLineEdit = QtWidgets.QLineEdit(self.uiNIOVDESettingsGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiVDELocalFileLineEdit.sizePolicy().hasHeightForWidth())
self.uiVDELocalFileLineEdit.setSizePolicy(sizePolicy)
self.uiVDELocalFileLineEdit.setObjectName(_fromUtf8("uiVDELocalFileLineEdit"))
self.uiVDELocalFileLineEdit.setObjectName("uiVDELocalFileLineEdit")
self.gridlayout12.addWidget(self.uiVDELocalFileLineEdit, 1, 0, 1, 1)
self.gridlayout10.addLayout(self.gridlayout12, 1, 0, 1, 1)
self.gridlayout9.addWidget(self.uiNIOVDESettingsGroupBox, 0, 0, 1, 2)
self.uiNIOVDEListGroupBox = QtGui.QGroupBox(self.tab_5)
self.uiNIOVDEListGroupBox.setObjectName(_fromUtf8("uiNIOVDEListGroupBox"))
self.vboxlayout5 = QtGui.QVBoxLayout(self.uiNIOVDEListGroupBox)
self.vboxlayout5.setObjectName(_fromUtf8("vboxlayout5"))
self.uiNIOVDEListWidget = QtGui.QListWidget(self.uiNIOVDEListGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
self.uiNIOVDEListGroupBox = QtWidgets.QGroupBox(self.tab_5)
self.uiNIOVDEListGroupBox.setObjectName("uiNIOVDEListGroupBox")
self.vboxlayout5 = QtWidgets.QVBoxLayout(self.uiNIOVDEListGroupBox)
self.vboxlayout5.setObjectName("vboxlayout5")
self.uiNIOVDEListWidget = QtWidgets.QListWidget(self.uiNIOVDEListGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiNIOVDEListWidget.sizePolicy().hasHeightForWidth())
self.uiNIOVDEListWidget.setSizePolicy(sizePolicy)
self.uiNIOVDEListWidget.setObjectName(_fromUtf8("uiNIOVDEListWidget"))
self.uiNIOVDEListWidget.setObjectName("uiNIOVDEListWidget")
self.vboxlayout5.addWidget(self.uiNIOVDEListWidget)
self.gridlayout9.addWidget(self.uiNIOVDEListGroupBox, 0, 2, 3, 1)
self.uiAddNIOVDEPushButton = QtGui.QPushButton(self.tab_5)
self.uiAddNIOVDEPushButton.setObjectName(_fromUtf8("uiAddNIOVDEPushButton"))
self.uiAddNIOVDEPushButton = QtWidgets.QPushButton(self.tab_5)
self.uiAddNIOVDEPushButton.setObjectName("uiAddNIOVDEPushButton")
self.gridlayout9.addWidget(self.uiAddNIOVDEPushButton, 1, 0, 1, 1)
self.uiDeleteNIOVDEPushButton = QtGui.QPushButton(self.tab_5)
self.uiDeleteNIOVDEPushButton = QtWidgets.QPushButton(self.tab_5)
self.uiDeleteNIOVDEPushButton.setEnabled(False)
self.uiDeleteNIOVDEPushButton.setObjectName(_fromUtf8("uiDeleteNIOVDEPushButton"))
self.uiDeleteNIOVDEPushButton.setObjectName("uiDeleteNIOVDEPushButton")
self.gridlayout9.addWidget(self.uiDeleteNIOVDEPushButton, 1, 1, 1, 1)
spacerItem5 = QtGui.QSpacerItem(161, 201, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Fixed)
spacerItem5 = QtWidgets.QSpacerItem(161, 201, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Fixed)
self.gridlayout9.addItem(spacerItem5, 2, 0, 2, 2)
spacerItem6 = QtGui.QSpacerItem(196, 132, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
spacerItem6 = QtWidgets.QSpacerItem(196, 132, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.gridlayout9.addItem(spacerItem6, 3, 2, 1, 1)
self.tabWidget.addTab(self.tab_5, _fromUtf8(""))
self.tab_6 = QtGui.QWidget()
self.tab_6.setObjectName(_fromUtf8("tab_6"))
self.gridlayout13 = QtGui.QGridLayout(self.tab_6)
self.gridlayout13.setObjectName(_fromUtf8("gridlayout13"))
self.uiNIONullSettingsGroupBox = QtGui.QGroupBox(self.tab_6)
self.uiNIONullSettingsGroupBox.setObjectName(_fromUtf8("uiNIONullSettingsGroupBox"))
self.gridlayout14 = QtGui.QGridLayout(self.uiNIONullSettingsGroupBox)
self.gridlayout14.setObjectName(_fromUtf8("gridlayout14"))
self.label_9 = QtGui.QLabel(self.uiNIONullSettingsGroupBox)
self.label_9.setObjectName(_fromUtf8("label_9"))
self.tabWidget.addTab(self.tab_5, "")
self.tab_6 = QtWidgets.QWidget()
self.tab_6.setObjectName("tab_6")
self.gridlayout13 = QtWidgets.QGridLayout(self.tab_6)
self.gridlayout13.setObjectName("gridlayout13")
self.uiNIONullSettingsGroupBox = QtWidgets.QGroupBox(self.tab_6)
self.uiNIONullSettingsGroupBox.setObjectName("uiNIONullSettingsGroupBox")
self.gridlayout14 = QtWidgets.QGridLayout(self.uiNIONullSettingsGroupBox)
self.gridlayout14.setObjectName("gridlayout14")
self.label_9 = QtWidgets.QLabel(self.uiNIONullSettingsGroupBox)
self.label_9.setObjectName("label_9")
self.gridlayout14.addWidget(self.label_9, 0, 0, 1, 1)
self.uiNIONullIdentiferLineEdit = QtGui.QLineEdit(self.uiNIONullSettingsGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.uiNIONullIdentiferLineEdit = QtWidgets.QLineEdit(self.uiNIONullSettingsGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiNIONullIdentiferLineEdit.sizePolicy().hasHeightForWidth())
self.uiNIONullIdentiferLineEdit.setSizePolicy(sizePolicy)
self.uiNIONullIdentiferLineEdit.setObjectName(_fromUtf8("uiNIONullIdentiferLineEdit"))
self.uiNIONullIdentiferLineEdit.setObjectName("uiNIONullIdentiferLineEdit")
self.gridlayout14.addWidget(self.uiNIONullIdentiferLineEdit, 1, 0, 1, 1)
self.gridlayout13.addWidget(self.uiNIONullSettingsGroupBox, 0, 0, 1, 2)
self.uiNIONullListGroupBox = QtGui.QGroupBox(self.tab_6)
self.uiNIONullListGroupBox.setObjectName(_fromUtf8("uiNIONullListGroupBox"))
self.vboxlayout6 = QtGui.QVBoxLayout(self.uiNIONullListGroupBox)
self.vboxlayout6.setObjectName(_fromUtf8("vboxlayout6"))
self.uiNIONullListWidget = QtGui.QListWidget(self.uiNIONullListGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
self.uiNIONullListGroupBox = QtWidgets.QGroupBox(self.tab_6)
self.uiNIONullListGroupBox.setObjectName("uiNIONullListGroupBox")
self.vboxlayout6 = QtWidgets.QVBoxLayout(self.uiNIONullListGroupBox)
self.vboxlayout6.setObjectName("vboxlayout6")
self.uiNIONullListWidget = QtWidgets.QListWidget(self.uiNIONullListGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiNIONullListWidget.sizePolicy().hasHeightForWidth())
self.uiNIONullListWidget.setSizePolicy(sizePolicy)
self.uiNIONullListWidget.setObjectName(_fromUtf8("uiNIONullListWidget"))
self.uiNIONullListWidget.setObjectName("uiNIONullListWidget")
self.vboxlayout6.addWidget(self.uiNIONullListWidget)
self.gridlayout13.addWidget(self.uiNIONullListGroupBox, 0, 2, 3, 1)
self.uiAddNIONullPushButton = QtGui.QPushButton(self.tab_6)
self.uiAddNIONullPushButton.setObjectName(_fromUtf8("uiAddNIONullPushButton"))
self.uiAddNIONullPushButton = QtWidgets.QPushButton(self.tab_6)
self.uiAddNIONullPushButton.setObjectName("uiAddNIONullPushButton")
self.gridlayout13.addWidget(self.uiAddNIONullPushButton, 1, 0, 1, 1)
self.uiDeleteNIONullPushButton = QtGui.QPushButton(self.tab_6)
self.uiDeleteNIONullPushButton = QtWidgets.QPushButton(self.tab_6)
self.uiDeleteNIONullPushButton.setEnabled(False)
self.uiDeleteNIONullPushButton.setObjectName(_fromUtf8("uiDeleteNIONullPushButton"))
self.uiDeleteNIONullPushButton.setObjectName("uiDeleteNIONullPushButton")
self.gridlayout13.addWidget(self.uiDeleteNIONullPushButton, 1, 1, 1, 1)
spacerItem7 = QtGui.QSpacerItem(20, 261, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
spacerItem7 = QtWidgets.QSpacerItem(20, 261, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.gridlayout13.addItem(spacerItem7, 2, 0, 2, 2)
spacerItem8 = QtGui.QSpacerItem(20, 181, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
spacerItem8 = QtWidgets.QSpacerItem(20, 181, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.gridlayout13.addItem(spacerItem8, 3, 2, 1, 1)
self.tabWidget.addTab(self.tab_6, _fromUtf8(""))
self.tab_7 = QtGui.QWidget()
self.tab_7.setObjectName(_fromUtf8("tab_7"))
self.gridLayout = QtGui.QGridLayout(self.tab_7)
self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
self.uiNameLabel = QtGui.QLabel(self.tab_7)
self.uiNameLabel.setObjectName(_fromUtf8("uiNameLabel"))
self.tabWidget.addTab(self.tab_6, "")
self.tab_7 = QtWidgets.QWidget()
self.tab_7.setObjectName("tab_7")
self.gridLayout = QtWidgets.QGridLayout(self.tab_7)
self.gridLayout.setObjectName("gridLayout")
self.uiNameLabel = QtWidgets.QLabel(self.tab_7)
self.uiNameLabel.setObjectName("uiNameLabel")
self.gridLayout.addWidget(self.uiNameLabel, 0, 0, 1, 1)
self.uiNameLineEdit = QtGui.QLineEdit(self.tab_7)
self.uiNameLineEdit.setObjectName(_fromUtf8("uiNameLineEdit"))
self.uiNameLineEdit = QtWidgets.QLineEdit(self.tab_7)
self.uiNameLineEdit.setObjectName("uiNameLineEdit")
self.gridLayout.addWidget(self.uiNameLineEdit, 0, 1, 1, 1)
spacerItem9 = QtGui.QSpacerItem(20, 399, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
spacerItem9 = QtWidgets.QSpacerItem(20, 399, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.gridLayout.addItem(spacerItem9, 1, 1, 1, 1)
self.tabWidget.addTab(self.tab_7, _fromUtf8(""))
self.tabWidget.addTab(self.tab_7, "")
self.vboxlayout.addWidget(self.tabWidget)
self.retranslateUi(cloudConfigPageWidget)
@@ -378,46 +363,47 @@ class Ui_cloudConfigPageWidget(object):
QtCore.QMetaObject.connectSlotsByName(cloudConfigPageWidget)
def retranslateUi(self, cloudConfigPageWidget):
cloudConfigPageWidget.setWindowTitle(_translate("cloudConfigPageWidget", "Cloud configuration", None))
self.uiGenericEthernetGroupBox.setTitle(_translate("cloudConfigPageWidget", "Generic Ethernet NIO (Administrator or root access required)", None))
self.uiAddGenericEthernetPushButton.setText(_translate("cloudConfigPageWidget", "&Add", None))
self.uiDeleteGenericEthernetPushButton.setText(_translate("cloudConfigPageWidget", "&Delete", None))
self.uiLinuxEthernetGroupBox.setTitle(_translate("cloudConfigPageWidget", "Linux Ethernet NIO (Linux only, root access required)", None))
self.uiAddLinuxEthernetPushButton.setText(_translate("cloudConfigPageWidget", "&Add", None))
self.uiDeleteLinuxEthernetPushButton.setText(_translate("cloudConfigPageWidget", "&Delete", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("cloudConfigPageWidget", "NIO Ethernet", None))
self.uiNIOUDPSettingsGroupBox.setTitle(_translate("cloudConfigPageWidget", "Settings", None))
self.uiLocalPortLabel.setText(_translate("cloudConfigPageWidget", "Local port:", None))
self.uiRemoteHostLabel.setText(_translate("cloudConfigPageWidget", "Remote host:", None))
self.uiRemoteHostLineEdit.setText(_translate("cloudConfigPageWidget", "127.0.0.1", None))
self.uiRemotePortLabel.setText(_translate("cloudConfigPageWidget", "Remote port:", None))
self.uiNIOUDPListGroupBox.setTitle(_translate("cloudConfigPageWidget", "NIOs", None))
self.uiAddNIOUDPPushButton.setText(_translate("cloudConfigPageWidget", "&Add", None))
self.uiDeleteNIOUDPPushButton.setText(_translate("cloudConfigPageWidget", "&Delete", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("cloudConfigPageWidget", "NIO UDP", None))
self.uiNIOTAPGroupBox.setTitle(_translate("cloudConfigPageWidget", "TAP interface (require root access)", None))
self.uiAddNIOTAPPushButton.setText(_translate("cloudConfigPageWidget", "&Add", None))
self.uiDeleteNIOTAPPushButton.setText(_translate("cloudConfigPageWidget", "&Delete", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_3), _translate("cloudConfigPageWidget", "NIO TAP", None))
self.uiNIOUNIXSettingsGroupBox.setTitle(_translate("cloudConfigPageWidget", "Settings", None))
self.uiLocalFileLabel.setText(_translate("cloudConfigPageWidget", "Local file:", None))
self.uiRemoteFileLabel.setText(_translate("cloudConfigPageWidget", "Remote file:", None))
self.uiNIOUNIXListGroupBox.setTitle(_translate("cloudConfigPageWidget", "NIOs", None))
self.uiAddNIOUNIXPushButton.setText(_translate("cloudConfigPageWidget", "&Add", None))
self.uiDeleteNIOUNIXPushButton.setText(_translate("cloudConfigPageWidget", "&Delete", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_4), _translate("cloudConfigPageWidget", "NIO UNIX", None))
self.uiNIOVDESettingsGroupBox.setTitle(_translate("cloudConfigPageWidget", "Settings", None))
self.uiVDEControlFileLabel.setText(_translate("cloudConfigPageWidget", "Control file:", None))
self.uiVDELocalFileLabel.setText(_translate("cloudConfigPageWidget", "Local file:", None))
self.uiNIOVDEListGroupBox.setTitle(_translate("cloudConfigPageWidget", "NIOs", None))
self.uiAddNIOVDEPushButton.setText(_translate("cloudConfigPageWidget", "&Add", None))
self.uiDeleteNIOVDEPushButton.setText(_translate("cloudConfigPageWidget", "&Delete", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_5), _translate("cloudConfigPageWidget", "NIO VDE", None))
self.uiNIONullSettingsGroupBox.setTitle(_translate("cloudConfigPageWidget", "Settings", None))
self.label_9.setText(_translate("cloudConfigPageWidget", "Identifier:", None))
self.uiNIONullListGroupBox.setTitle(_translate("cloudConfigPageWidget", "NIOs", None))
self.uiAddNIONullPushButton.setText(_translate("cloudConfigPageWidget", "&Add", None))
self.uiDeleteNIONullPushButton.setText(_translate("cloudConfigPageWidget", "&Delete", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_6), _translate("cloudConfigPageWidget", "NIO NULL", None))
self.uiNameLabel.setText(_translate("cloudConfigPageWidget", "Name:", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_7), _translate("cloudConfigPageWidget", "Misc.", None))
_translate = QtCore.QCoreApplication.translate
cloudConfigPageWidget.setWindowTitle(_translate("cloudConfigPageWidget", "Cloud configuration"))
self.uiGenericEthernetGroupBox.setTitle(_translate("cloudConfigPageWidget", "Generic Ethernet NIO (Administrator or root access required)"))
self.uiAddGenericEthernetPushButton.setText(_translate("cloudConfigPageWidget", "&Add"))
self.uiDeleteGenericEthernetPushButton.setText(_translate("cloudConfigPageWidget", "&Delete"))
self.uiLinuxEthernetGroupBox.setTitle(_translate("cloudConfigPageWidget", "Linux Ethernet NIO (Linux only, root access required)"))
self.uiAddLinuxEthernetPushButton.setText(_translate("cloudConfigPageWidget", "&Add"))
self.uiDeleteLinuxEthernetPushButton.setText(_translate("cloudConfigPageWidget", "&Delete"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("cloudConfigPageWidget", "NIO Ethernet"))
self.uiNIOUDPSettingsGroupBox.setTitle(_translate("cloudConfigPageWidget", "Settings"))
self.uiLocalPortLabel.setText(_translate("cloudConfigPageWidget", "Local port:"))
self.uiRemoteHostLabel.setText(_translate("cloudConfigPageWidget", "Remote host:"))
self.uiRemoteHostLineEdit.setText(_translate("cloudConfigPageWidget", "127.0.0.1"))
self.uiRemotePortLabel.setText(_translate("cloudConfigPageWidget", "Remote port:"))
self.uiNIOUDPListGroupBox.setTitle(_translate("cloudConfigPageWidget", "NIOs"))
self.uiAddNIOUDPPushButton.setText(_translate("cloudConfigPageWidget", "&Add"))
self.uiDeleteNIOUDPPushButton.setText(_translate("cloudConfigPageWidget", "&Delete"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("cloudConfigPageWidget", "NIO UDP"))
self.uiNIOTAPGroupBox.setTitle(_translate("cloudConfigPageWidget", "TAP interface (require root access)"))
self.uiAddNIOTAPPushButton.setText(_translate("cloudConfigPageWidget", "&Add"))
self.uiDeleteNIOTAPPushButton.setText(_translate("cloudConfigPageWidget", "&Delete"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_3), _translate("cloudConfigPageWidget", "NIO TAP"))
self.uiNIOUNIXSettingsGroupBox.setTitle(_translate("cloudConfigPageWidget", "Settings"))
self.uiLocalFileLabel.setText(_translate("cloudConfigPageWidget", "Local file:"))
self.uiRemoteFileLabel.setText(_translate("cloudConfigPageWidget", "Remote file:"))
self.uiNIOUNIXListGroupBox.setTitle(_translate("cloudConfigPageWidget", "NIOs"))
self.uiAddNIOUNIXPushButton.setText(_translate("cloudConfigPageWidget", "&Add"))
self.uiDeleteNIOUNIXPushButton.setText(_translate("cloudConfigPageWidget", "&Delete"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_4), _translate("cloudConfigPageWidget", "NIO UNIX"))
self.uiNIOVDESettingsGroupBox.setTitle(_translate("cloudConfigPageWidget", "Settings"))
self.uiVDEControlFileLabel.setText(_translate("cloudConfigPageWidget", "Control file:"))
self.uiVDELocalFileLabel.setText(_translate("cloudConfigPageWidget", "Local file:"))
self.uiNIOVDEListGroupBox.setTitle(_translate("cloudConfigPageWidget", "NIOs"))
self.uiAddNIOVDEPushButton.setText(_translate("cloudConfigPageWidget", "&Add"))
self.uiDeleteNIOVDEPushButton.setText(_translate("cloudConfigPageWidget", "&Delete"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_5), _translate("cloudConfigPageWidget", "NIO VDE"))
self.uiNIONullSettingsGroupBox.setTitle(_translate("cloudConfigPageWidget", "Settings"))
self.label_9.setText(_translate("cloudConfigPageWidget", "Identifier:"))
self.uiNIONullListGroupBox.setTitle(_translate("cloudConfigPageWidget", "NIOs"))
self.uiAddNIONullPushButton.setText(_translate("cloudConfigPageWidget", "&Add"))
self.uiDeleteNIONullPushButton.setText(_translate("cloudConfigPageWidget", "&Delete"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_6), _translate("cloudConfigPageWidget", "NIO NULL"))
self.uiNameLabel.setText(_translate("cloudConfigPageWidget", "Name:"))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_7), _translate("cloudConfigPageWidget", "Misc."))

View File

@@ -23,7 +23,7 @@ import sys
import os
import shutil
from gns3.qt import QtCore, QtGui
from gns3.qt import QtCore, QtGui, QtWidgets
from gns3.servers import Servers
from gns3.local_config import LocalConfig
from gns3.local_server_config import LocalServerConfig
@@ -68,7 +68,7 @@ class Dynamips(Module):
"""
def __init__(self):
Module.__init__(self)
super().__init__()
self._settings = {}
self._ios_routers = {}
@@ -470,9 +470,9 @@ class Dynamips(Module):
candidate_ios_images[ios_router["image"]] = ios_router
if candidate_ios_images:
selection, ok = QtGui.QInputDialog.getItem(mainwindow,
"IOS image", "IOS image {} could not be found\nPlease select an alternative from your existing images:".format(image),
list(candidate_ios_images.keys()), 0, False)
selection, ok = QtWidgets.QInputDialog.getItem(mainwindow,
"IOS image", "IOS image {} could not be found\nPlease select an alternative from your existing images:".format(image),
list(candidate_ios_images.keys()), 0, False)
if ok:
ios_image = candidate_ios_images[selection]
alternative_image["image"] = ios_router["image"]
@@ -482,7 +482,7 @@ class Dynamips(Module):
return alternative_image
# no registered IOS image is used, let's just ask for an IOS image path
QtGui.QMessageBox.critical(mainwindow, "IOS image", "Could not find the {} IOS image \nPlease select a similar IOS image!".format(image))
QtWidgets.QMessageBox.critical(mainwindow, "IOS image", "Could not find the {} IOS image \nPlease select a similar IOS image!".format(image))
from .pages.ios_router_preferences_page import IOSRouterPreferencesPage
image_path = IOSRouterPreferencesPage.getIOSImage(mainwindow)
if image_path:

View File

@@ -24,7 +24,7 @@ import os
import re
import hashlib
from gns3.qt import QtCore, QtGui
from gns3.qt import QtCore, QtGui, QtWidgets
from gns3.servers import Servers
from gns3.node import Node
from gns3.utils.run_in_terminal import RunInTerminal
@@ -56,7 +56,8 @@ PLATFORM_TO_CLASS = {
import logging
log = logging.getLogger(__name__)
class IOSRouterWizard(QtGui.QWizard, Ui_IOSRouterWizard):
class IOSRouterWizard(QtWidgets.QWizard, Ui_IOSRouterWizard):
"""
Wizard to create an IOS router.
@@ -67,13 +68,13 @@ class IOSRouterWizard(QtGui.QWizard, Ui_IOSRouterWizard):
def __init__(self, ios_routers, parent):
QtGui.QWizard.__init__(self, parent)
super().__init__(parent)
self.setupUi(self)
self.setPixmap(QtGui.QWizard.LogoPixmap, QtGui.QPixmap(":/symbols/router.normal.svg"))
self.setWizardStyle(QtGui.QWizard.ModernStyle)
self.setPixmap(QtWidgets.QWizard.LogoPixmap, QtGui.QPixmap(":/symbols/router.normal.svg"))
self.setWizardStyle(QtWidgets.QWizard.ModernStyle)
if sys.platform.startswith("darwin"):
# we want to see the cancel button on OSX
self.setOptions(QtGui.QWizard.NoDefaultButton)
self.setOptions(QtWidgets.QWizard.NoDefaultButton)
self.uiRemoteRadioButton.toggled.connect(self._remoteServerToggledSlot)
self.uiLoadBalanceCheckBox.toggled.connect(self._loadBalanceToggledSlot)
@@ -176,7 +177,7 @@ class IOSRouterWizard(QtGui.QWizard, Ui_IOSRouterWizard):
ios_image = self.uiIOSImageLineEdit.text()
dynamips = os.path.realpath(Dynamips.instance().settings()["image"])
if not os.path.exists(dynamips):
QtGui.QMessageBox.critical(self, "IOS image", "Could not find Dynamips executable: {}".format(dynamips))
QtWidgets.QMessageBox.critical(self, "IOS image", "Could not find Dynamips executable: {}".format(dynamips))
return
command = '"{path}" -P {platform} -r {ram} "{ios_image}"'.format(path=dynamips,
platform=platform[1:],
@@ -185,7 +186,7 @@ class IOSRouterWizard(QtGui.QWizard, Ui_IOSRouterWizard):
try:
RunInTerminal(command)
except OSError as e:
QtGui.QMessageBox.critical(self, "IOS image", "Could not test the IOS image: {}".format(e))
QtWidgets.QMessageBox.critical(self, "IOS image", "Could not test the IOS image: {}".format(e))
def _idlePCValidateSlot(self):
"""
@@ -256,7 +257,7 @@ class IOSRouterWizard(QtGui.QWizard, Ui_IOSRouterWizard):
:param message: error message from the server.
"""
QtGui.QMessageBox.critical(self, "Idle-PC finder", "Could not create IOS router: {}".format(message))
QtWidgets.QMessageBox.critical(self, "Idle-PC finder", "Could not create IOS router: {}".format(message))
def _computeAutoIdlepcCallback(self, result, error=False, **kwargs):
"""
@@ -270,11 +271,11 @@ class IOSRouterWizard(QtGui.QWizard, Ui_IOSRouterWizard):
self._router.delete()
self._router = None
if error:
QtGui.QMessageBox.critical(self, "Idle-PC finder", "Error: {}".format(result["message"]))
QtWidgets.QMessageBox.critical(self, "Idle-PC finder", "Error: {}".format(result["message"]))
else:
idlepc = result["idlepc"]
self.uiIdlepcLineEdit.setText(idlepc)
QtGui.QMessageBox.information(self, "Idle-PC finder", "Idle-PC value {} has been found suitable for your IOS image".format(idlepc))
QtWidgets.QMessageBox.information(self, "Idle-PC finder", "Idle-PC value {} has been found suitable for your IOS image".format(idlepc))
def _iosImageBrowserSlot(self):
"""
@@ -292,7 +293,7 @@ class IOSRouterWizard(QtGui.QWizard, Ui_IOSRouterWizard):
image = os.path.basename(path)
match = re.match("^(c[0-9]+)p?\\-\w+", image.lower())
if not match:
QtGui.QMessageBox.warning(self, "IOS image", "Could not detect the platform, make sure this is a valid IOS image!")
QtWidgets.QMessageBox.warning(self, "IOS image", "Could not detect the platform, make sure this is a valid IOS image!")
return
detected_platform = match.group(1)
@@ -305,11 +306,11 @@ class IOSRouterWizard(QtGui.QWizard, Ui_IOSRouterWizard):
break
if detected_platform not in PLATFORMS_DEFAULT_RAM:
QtGui.QMessageBox.warning(self, "IOS image", "This IOS image is for the {} platform/chassis and is not supported by this application!".format(detected_platform))
QtWidgets.QMessageBox.warning(self, "IOS image", "This IOS image is for the {} platform/chassis and is not supported by this application!".format(detected_platform))
return
if image.lower().startswith("c7200p"):
QtGui.QMessageBox.warning(self, "IOS image", "This IOS image is for c7200 PowerPC routers and is not recommended. Please use an IOS image that do not start with c7200p.")
QtWidgets.QMessageBox.warning(self, "IOS image", "This IOS image is for c7200 PowerPC routers and is not recommended. Please use an IOS image that do not start with c7200p.")
index = self.uiPlatformComboBox.findText(detected_platform)
if index != -1:
@@ -323,7 +324,7 @@ class IOSRouterWizard(QtGui.QWizard, Ui_IOSRouterWizard):
if self._router:
self._router.delete()
QtGui.QWizard.done(self, result)
super().done(result)
def _populateAdapters(self, platform, chassis):
"""
@@ -428,20 +429,20 @@ class IOSRouterWizard(QtGui.QWizard, Ui_IOSRouterWizard):
name = self.uiNameLineEdit.text()
for ios_router in self._ios_routers.values():
if ios_router["name"] == name:
QtGui.QMessageBox.critical(self, "Name", "{} is already used, please choose another name".format(name))
QtWidgets.QMessageBox.critical(self, "Name", "{} is already used, please choose another name".format(name))
return False
if self.currentPage() == self.uiMemoryWizardPage and self.uiPlatformComboBox.currentText() == "c7200":
if self.uiRamSpinBox.value() > 512:
QtGui.QMessageBox.critical(self, "c7200 RAM requirement", "c7200 routers with NPE-400 are limited to 512MB of RAM")
QtWidgets.QMessageBox.critical(self, "c7200 RAM requirement", "c7200 routers with NPE-400 are limited to 512MB of RAM")
return False
if self.currentPage() == self.uiIdlePCWizardPage:
if not self._idle_valid:
idle_pc = self.uiIdlepcLineEdit.text()
QtGui.QMessageBox.critical(self, "Idle-PC", "{} is not a valid Idle-PC value ".format(idle_pc))
QtWidgets.QMessageBox.critical(self, "Idle-PC", "{} is not a valid Idle-PC value ".format(idle_pc))
return False
if self.currentPage() == self.uiServerWizardPage and self.uiRemoteRadioButton.isChecked():
if not Servers.instance().remoteServers():
QtGui.QMessageBox.critical(self, "Remote server", "There is no remote server registered in Dynamips preferences")
QtWidgets.QMessageBox.critical(self, "Remote server", "There is no remote server registered in Dynamips preferences")
return False
return True
@@ -510,4 +511,4 @@ class IOSRouterWizard(QtGui.QWizard, Ui_IOSRouterWizard):
if platform not in WIC_MATRIX:
# skip the WIC modules page if the platform doesn't support any.
return self.uiNetworkAdaptersWizardPage.nextId() + 1
return QtGui.QWizard.nextId(self)
return QtWidgets.QWizard.nextId(self)

View File

@@ -41,7 +41,7 @@ class ATMSwitch(Device):
def __init__(self, module, server, project):
Device.__init__(self, module, server, project)
super().__init__(module, server, project)
self.setStatus(Node.started) # this is an always-on node
self._ports = []
self._settings = {"name": "",

View File

@@ -34,7 +34,7 @@ class C1700(Router):
def __init__(self, module, server, project, chassis="1720"):
Router.__init__(self, module, server, project, platform="c1700")
super().__init__(module, server, project, platform="c1700")
c1700_settings = {"ram": 128,
"nvram": 32,
"disk0": 0,

View File

@@ -46,7 +46,7 @@ class C2600(Router):
def __init__(self, module, server, project, chassis="2610"):
Router.__init__(self, module, server, project, platform="c2600")
super().__init__(module, server, project, platform="c2600")
c2600_settings = {"ram": 128,
"nvram": 128,
"disk0": 0,

View File

@@ -34,7 +34,7 @@ class C2691(Router):
def __init__(self, module, server, project):
Router.__init__(self, module, server, project, platform="c2691")
super().__init__(module, server, project, platform="c2691")
c2691_settings = {"ram": 192,
"nvram": 112,
"disk0": 16,

View File

@@ -34,7 +34,7 @@ class C3600(Router):
def __init__(self, module, server, project, chassis="3640"):
Router.__init__(self, module, server, project, platform="c3600")
super().__init__(module, server, project, platform="c3600")
c3600_settings = {"ram": 192,
"nvram": 128,
"disk0": 0,

View File

@@ -34,7 +34,7 @@ class C3725(Router):
def __init__(self, module, server, project):
Router.__init__(self, module, server, project, platform="c3725")
super().__init__(module, server, project, platform="c3725")
c3725_settings = {"ram": 128,
"nvram": 112,
"disk0": 16,

View File

@@ -34,7 +34,7 @@ class C3745(Router):
def __init__(self, module, server, project):
Router.__init__(self, module, server, project, platform="c3745")
super().__init__(module, server, project, platform="c3745")
c3745_settings = {"ram": 256,
"nvram": 304,
"disk0": 16,

View File

@@ -34,7 +34,7 @@ class C7200(Router):
def __init__(self, module, server, project, npe="npe-400"):
Router.__init__(self, module, server, project, platform="c7200")
super().__init__(module, server, project, platform="c7200")
c7200_settings = {"ram": 512,
"nvram": 128,
"disk0": 64,

View File

@@ -40,7 +40,7 @@ class EthernetHub(Device):
def __init__(self, module, server, project):
Device.__init__(self, module, server, project)
super().__init__(module, server, project)
self.setStatus(Node.started) # this is an always-on node
self._ports = []
self._settings = {"name": "",

View File

@@ -40,7 +40,7 @@ class EthernetSwitch(Device):
def __init__(self, module, server, project):
Device.__init__(self, module, server, project)
super().__init__(module, server, project)
self.setStatus(Node.started) # this is an always-on node
self._ports = []
self._settings = {"name": "",

View File

@@ -35,7 +35,7 @@ class EtherSwitchRouter(Router):
"""
def __init__(self, module, server, project):
Router.__init__(self, module, server, project, platform="c3725")
super().__init__(module, server, project, platform="c3725")
self._etherswitch_settings = {"ram": 128,
"nvram": 304,

View File

@@ -40,7 +40,7 @@ class FrameRelaySwitch(Device):
def __init__(self, module, server, project):
Device.__init__(self, module, server, project)
super().__init__(module, server, project)
self.setStatus(Node.started) # this is an always-on node
self._ports = []
self._settings = {"name": "",

View File

@@ -51,7 +51,7 @@ class Router(VM):
def __init__(self, module, server, project, platform="c7200"):
VM.__init__(self, module, server, project)
super().__init__(module, server, project)
log.info("Router {} is being created".format(platform))
self._ports = []
self._dynamips_id = None

View File

@@ -20,11 +20,11 @@ Configuration page for Dynamips ATM bridges.
"""
import re
from gns3.qt import QtCore, QtGui
from gns3.qt import QtCore, QtGui, QtWidgets
from ..ui.atm_bridge_configuration_page_ui import Ui_atmBridgeConfigPageWidget
class ATMBridgeConfigurationPage(QtGui.QWidget, Ui_atmBridgeConfigPageWidget):
class ATMBridgeConfigurationPage(QtWidgets.QWidget, Ui_atmBridgeConfigPageWidget):
"""
QWidget configuration page for ATM bridges.
@@ -32,7 +32,7 @@ class ATMBridgeConfigurationPage(QtGui.QWidget, Ui_atmBridgeConfigPageWidget):
def __init__(self):
QtGui.QWidget.__init__(self)
super().__init__()
self.setupUi(self)
self._mapping = {}
@@ -91,7 +91,7 @@ class ATMBridgeConfigurationPage(QtGui.QWidget, Ui_atmBridgeConfigPageWidget):
atm_vci = self.uiATMVCISpinBox.value()
if ethernet_port == atm_port:
QtGui.QMessageBox.critical(self, self._node.name(), "Same source and destination ports")
QtWidgets.QMessageBox.critical(self, self._node.name(), "Same source and destination ports")
return
destination = "{port}:{vpi}:{vci}".format(port=atm_port,
@@ -99,10 +99,10 @@ class ATMBridgeConfigurationPage(QtGui.QWidget, Ui_atmBridgeConfigPageWidget):
vci=atm_vci)
if destination in self._mapping:
QtGui.QMessageBox.critical(self, self._node.name(), "Mapping already defined")
QtWidgets.QMessageBox.critical(self, self._node.name(), "Mapping already defined")
return
item = QtGui.QTreeWidgetItem(self.uiMappingTreeWidget)
item = QtWidgets.QTreeWidgetItem(self.uiMappingTreeWidget)
item.setText(0, str(ethernet_port))
item.setText(1, destination)
self.uiMappingTreeWidget.addTopLevelItem(item)
@@ -125,7 +125,7 @@ class ATMBridgeConfigurationPage(QtGui.QWidget, Ui_atmBridgeConfigPageWidget):
node_ports = self._node.ports()
for node_port in node_ports:
if (node_port.portNumber() == ethernet_port or node_port.portNumber() == atm_port) and not node_port.isFree():
QtGui.QMessageBox.critical(self, self._node.name(), "A link is connected to port {}, please remove it first".format(node_port.name()))
QtWidgets.QMessageBox.critical(self, self._node.name(), "A link is connected to port {}, please remove it first".format(node_port.name()))
return
del self.mapping[ethernet_port]
@@ -150,7 +150,7 @@ class ATMBridgeConfigurationPage(QtGui.QWidget, Ui_atmBridgeConfigPageWidget):
self._node = node
for ethernet_port, destination in settings["mappings"].items():
item = QtGui.QTreeWidgetItem(self.uiMappingTreeWidget)
item = QtWidgets.QTreeWidgetItem(self.uiMappingTreeWidget)
item.setText(0, ethernet_port)
item.setText(1, destination)
self.uiMappingTreeWidget.addTopLevelItem(item)
@@ -172,7 +172,7 @@ class ATMBridgeConfigurationPage(QtGui.QWidget, Ui_atmBridgeConfigPageWidget):
# set the device name
name = self.uiNameLineEdit.text()
if not name:
QtGui.QMessageBox.critical(self, "Name", "ATM bridge name cannot be empty!")
QtWidgets.QMessageBox.critical(self, "Name", "ATM bridge name cannot be empty!")
else:
settings["name"] = name
else:

View File

@@ -20,11 +20,11 @@ Configuration page for Dynamips ATM switches.
"""
import re
from gns3.qt import QtCore, QtGui
from gns3.qt import QtCore, QtGui, QtWidgets
from ..ui.atm_switch_configuration_page_ui import Ui_atmSwitchConfigPageWidget
class ATMSwitchConfigurationPage(QtGui.QWidget, Ui_atmSwitchConfigPageWidget):
class ATMSwitchConfigurationPage(QtWidgets.QWidget, Ui_atmSwitchConfigPageWidget):
"""
QWidget configuration page for ATM switches.
@@ -32,7 +32,7 @@ class ATMSwitchConfigurationPage(QtGui.QWidget, Ui_atmSwitchConfigPageWidget):
def __init__(self):
QtGui.QWidget.__init__(self)
super().__init__()
self.setupUi(self)
self._mapping = {}
@@ -116,10 +116,10 @@ class ATMSwitchConfigurationPage(QtGui.QWidget, Ui_atmSwitchConfigPageWidget):
destination = "{port}:{vpi}".format(port=destination_port, vpi=destination_vpi)
if source in self._mapping or destination in self._mapping:
QtGui.QMessageBox.critical(self, self._node.name(), "Mapping already defined")
QtWidgets.QMessageBox.critical(self, self._node.name(), "Mapping already defined")
return
item = QtGui.QTreeWidgetItem(self.uiMappingTreeWidget)
item = QtWidgets.QTreeWidgetItem(self.uiMappingTreeWidget)
item.setText(0, source)
item.setText(1, destination)
self.uiMappingTreeWidget.addTopLevelItem(item)
@@ -145,7 +145,7 @@ class ATMSwitchConfigurationPage(QtGui.QWidget, Ui_atmSwitchConfigPageWidget):
node_ports = self._node.ports()
for node_port in node_ports:
if (node_port.portNumber() == source_port or node_port.portNumber() == destination_port) and not node_port.isFree():
QtGui.QMessageBox.critical(self, self._node.name(), "A link is connected to port {}, please remove it first".format(node_port.name()))
QtWidgets.QMessageBox.critical(self, self._node.name(), "A link is connected to port {}, please remove it first".format(node_port.name()))
return
del self._mapping[source]
@@ -170,7 +170,7 @@ class ATMSwitchConfigurationPage(QtGui.QWidget, Ui_atmSwitchConfigPageWidget):
self._node = node
for source, destination in settings["mappings"].items():
item = QtGui.QTreeWidgetItem(self.uiMappingTreeWidget)
item = QtWidgets.QTreeWidgetItem(self.uiMappingTreeWidget)
item.setText(0, source)
item.setText(1, destination)
self.uiMappingTreeWidget.addTopLevelItem(item)
@@ -192,7 +192,7 @@ class ATMSwitchConfigurationPage(QtGui.QWidget, Ui_atmSwitchConfigPageWidget):
# set the device name
name = self.uiNameLineEdit.text()
if not name:
QtGui.QMessageBox.critical(self, "Name", "ATM switch name cannot be empty!")
QtWidgets.QMessageBox.critical(self, "Name", "ATM switch name cannot be empty!")
else:
settings["name"] = name
else:

View File

@@ -21,14 +21,14 @@ Configuration page for Dynamips preferences.
import os
import sys
from gns3.qt import QtGui
from gns3.qt import QtGui, QtWidgets
from gns3.servers import Servers
from .. import Dynamips
from ..ui.dynamips_preferences_page_ui import Ui_DynamipsPreferencesPageWidget
from ..settings import DYNAMIPS_SETTINGS
class DynamipsPreferencesPage(QtGui.QWidget, Ui_DynamipsPreferencesPageWidget):
class DynamipsPreferencesPage(QtWidgets.QWidget, Ui_DynamipsPreferencesPageWidget):
"""
QWidget preference page for Dynamips.
@@ -36,7 +36,7 @@ class DynamipsPreferencesPage(QtGui.QWidget, Ui_DynamipsPreferencesPageWidget):
def __init__(self):
QtGui.QWidget.__init__(self)
super().__init__()
self.setupUi(self)
# connect signals
@@ -53,12 +53,12 @@ class DynamipsPreferencesPage(QtGui.QWidget, Ui_DynamipsPreferencesPageWidget):
file_filter = ""
if sys.platform.startswith("win"):
file_filter = "Executable (*.exe);;All files (*.*)"
path = QtGui.QFileDialog.getOpenFileName(self, "Select Dynamips", ".", file_filter)
path = QtWidgets.QFileDialog.getOpenFileName(self, "Select Dynamips", ".", file_filter)
if not path:
return
if not os.access(path, os.X_OK):
QtGui.QMessageBox.critical(self, "Dynamips", "{} is not an executable".format(os.path.basename(path)))
QtWidgets.QMessageBox.critical(self, "Dynamips", "{} is not an executable".format(os.path.basename(path)))
return
self.uiDynamipsPathLineEdit.setText(path)

View File

@@ -19,12 +19,12 @@
Configuration page for Dynamips Ethernet hubs.
"""
from gns3.qt import QtGui
from gns3.qt import QtGui, QtWidgets
from gns3.dialogs.node_configurator_dialog import ConfigurationError
from ..ui.ethernet_hub_configuration_page_ui import Ui_ethernetHubConfigPageWidget
class EthernetHubConfigurationPage(QtGui.QWidget, Ui_ethernetHubConfigPageWidget):
class EthernetHubConfigurationPage(QtWidgets.QWidget, Ui_ethernetHubConfigPageWidget):
"""
QWidget configuration page for Ethernet hubs.
@@ -32,7 +32,7 @@ class EthernetHubConfigurationPage(QtGui.QWidget, Ui_ethernetHubConfigPageWidget
def __init__(self):
QtGui.QWidget.__init__(self)
super().__init__()
self.setupUi(self)
def loadSettings(self, settings, node, group=False):
@@ -66,7 +66,7 @@ class EthernetHubConfigurationPage(QtGui.QWidget, Ui_ethernetHubConfigPageWidget
# set the device name
name = self.uiNameLineEdit.text()
if not name:
QtGui.QMessageBox.critical(self, "Name", "Ethernet hub name cannot be empty!")
QtWidgets.QMessageBox.critical(self, "Name", "Ethernet hub name cannot be empty!")
else:
settings["name"] = name
else:
@@ -80,7 +80,7 @@ class EthernetHubConfigurationPage(QtGui.QWidget, Ui_ethernetHubConfigPageWidget
for port in ports:
if not port.isFree() and port.portNumber() > nbports:
self.loadSettings(settings, node)
QtGui.QMessageBox.critical(self, node.name(), "A link is connected to port {}, please remove it first".format(port.name()))
QtWidgets.QMessageBox.critical(self, node.name(), "A link is connected to port {}, please remove it first".format(port.name()))
raise ConfigurationError()
settings["ports"] = []

View File

@@ -19,12 +19,12 @@
Configuration page for Dynamips Ethernet switches.
"""
from gns3.qt import QtCore, QtGui
from gns3.qt import QtCore, QtGui, QtWidgets
from ..utils.tree_widget_item import TreeWidgetItem
from ..ui.ethernet_switch_configuration_page_ui import Ui_ethernetSwitchConfigPageWidget
class EthernetSwitchConfigurationPage(QtGui.QWidget, Ui_ethernetSwitchConfigPageWidget):
class EthernetSwitchConfigurationPage(QtWidgets.QWidget, Ui_ethernetSwitchConfigPageWidget):
"""
QWidget configuration page for Ethernet switches.
@@ -32,7 +32,7 @@ class EthernetSwitchConfigurationPage(QtGui.QWidget, Ui_ethernetSwitchConfigPage
def __init__(self):
QtGui.QWidget.__init__(self)
super().__init__()
self.setupUi(self)
self._ports = {}
@@ -114,7 +114,7 @@ class EthernetSwitchConfigurationPage(QtGui.QWidget, Ui_ethernetSwitchConfigPage
node_ports = self._node.ports()
for node_port in node_ports:
if node_port.portNumber() == port and not node_port.isFree():
QtGui.QMessageBox.critical(self, self._node.name(), "A link is connected to port {}, please remove it first".format(node_port.name()))
QtWidgets.QMessageBox.critical(self, self._node.name(), "A link is connected to port {}, please remove it first".format(node_port.name()))
return
del self._ports[port]
self.uiPortsTreeWidget.takeTopLevelItem(self.uiPortsTreeWidget.indexOfTopLevelItem(item))
@@ -168,7 +168,7 @@ class EthernetSwitchConfigurationPage(QtGui.QWidget, Ui_ethernetSwitchConfigPage
# set the device name
name = self.uiNameLineEdit.text()
if not name:
QtGui.QMessageBox.critical(self, "Name", "Ethernet switch name cannot be empty!")
QtWidgets.QMessageBox.critical(self, "Name", "Ethernet switch name cannot be empty!")
else:
settings["name"] = name
else:

View File

@@ -19,11 +19,11 @@
Configuration page for Dynamips Frame Relay switches.
"""
from gns3.qt import QtCore, QtGui
from gns3.qt import QtCore, QtGui, QtWidgets
from ..ui.frame_relay_switch_configuration_page_ui import Ui_frameRelaySwitchConfigPageWidget
class FrameRelaySwitchConfigurationPage(QtGui.QWidget, Ui_frameRelaySwitchConfigPageWidget):
class FrameRelaySwitchConfigurationPage(QtWidgets.QWidget, Ui_frameRelaySwitchConfigPageWidget):
"""
QWidget configuration page for Frame Relay switches.
@@ -31,7 +31,7 @@ class FrameRelaySwitchConfigurationPage(QtGui.QWidget, Ui_frameRelaySwitchConfig
def __init__(self):
QtGui.QWidget.__init__(self)
super().__init__()
self.setupUi(self)
self._mapping = {}
@@ -82,17 +82,17 @@ class FrameRelaySwitchConfigurationPage(QtGui.QWidget, Ui_frameRelaySwitchConfig
destination_dlci = self.uiDestinationDLCISpinBox.value()
if source_port == destination_port:
QtGui.QMessageBox.critical(self, self._node.name(), "Same source and destination ports")
QtWidgets.QMessageBox.critical(self, self._node.name(), "Same source and destination ports")
return
source = "{port}:{dlci}".format(port=source_port, dlci=source_dlci)
destination = "{port}:{dlci}".format(port=destination_port, dlci=destination_dlci)
if source in self._mapping or destination in self._mapping:
QtGui.QMessageBox.critical(self, self._node.name(), "Mapping already defined")
QtWidgets.QMessageBox.critical(self, self._node.name(), "Mapping already defined")
return
item = QtGui.QTreeWidgetItem(self.uiMappingTreeWidget)
item = QtWidgets.QTreeWidgetItem(self.uiMappingTreeWidget)
item.setText(0, source)
item.setText(1, destination)
self.uiMappingTreeWidget.addTopLevelItem(item)
@@ -120,7 +120,7 @@ class FrameRelaySwitchConfigurationPage(QtGui.QWidget, Ui_frameRelaySwitchConfig
node_ports = self._node.ports()
for node_port in node_ports:
if (node_port.portNumber() == source_port or node_port.portNumber() == destination_port) and not node_port.isFree():
QtGui.QMessageBox.critical(self, self._node.name(), "A link is connected to port {}, please remove it first".format(node_port.name()))
QtWidgets.QMessageBox.critical(self, self._node.name(), "A link is connected to port {}, please remove it first".format(node_port.name()))
return
del self._mapping[source]
@@ -145,7 +145,7 @@ class FrameRelaySwitchConfigurationPage(QtGui.QWidget, Ui_frameRelaySwitchConfig
self._node = node
for source, destination in settings["mappings"].items():
item = QtGui.QTreeWidgetItem(self.uiMappingTreeWidget)
item = QtWidgets.QTreeWidgetItem(self.uiMappingTreeWidget)
item.setText(0, source)
item.setText(1, destination)
self.uiMappingTreeWidget.addTopLevelItem(item)
@@ -167,7 +167,7 @@ class FrameRelaySwitchConfigurationPage(QtGui.QWidget, Ui_frameRelaySwitchConfig
# set the device name
name = self.uiNameLineEdit.text()
if not name:
QtGui.QMessageBox.critical(self, "Name", "Frame relay switch name cannot be empty!")
QtWidgets.QMessageBox.critical(self, "Name", "Frame relay switch name cannot be empty!")
else:
settings["name"] = name
else:

View File

@@ -22,13 +22,13 @@ Configuration page for Dynamips IOS routers.
import os
import re
from gns3.qt import QtCore, QtGui
from gns3.qt import QtCore, QtGui, QtWidgets
from gns3.dialogs.node_configurator_dialog import ConfigurationError
from ..ui.ios_router_configuration_page_ui import Ui_iosRouterConfigPageWidget
from ..settings import CHASSIS, ADAPTER_MATRIX, WIC_MATRIX
class IOSRouterConfigurationPage(QtGui.QWidget, Ui_iosRouterConfigPageWidget):
class IOSRouterConfigurationPage(QtWidgets.QWidget, Ui_iosRouterConfigPageWidget):
"""
QWidget configuration page for IOS routers.
@@ -36,7 +36,7 @@ class IOSRouterConfigurationPage(QtGui.QWidget, Ui_iosRouterConfigPageWidget):
def __init__(self):
QtGui.QWidget.__init__(self)
super().__init__()
self.setupUi(self)
self._widget_slots = {0: self.uiSlot0comboBox,
@@ -96,7 +96,7 @@ class IOSRouterConfigurationPage(QtGui.QWidget, Ui_iosRouterConfigPageWidget):
image = os.path.basename(path)
match = re.match("^(c[0-9]+)\\-\w+", image)
if not match:
QtGui.QMessageBox.warning(self, "IOS image", "Could not detect the platform, make sure this is a valid IOS image!")
QtWidgets.QMessageBox.warning(self, "IOS image", "Could not detect the platform, make sure this is a valid IOS image!")
return
detected_platform = match.group(1)
@@ -112,10 +112,10 @@ class IOSRouterConfigurationPage(QtGui.QWidget, Ui_iosRouterConfigPageWidget):
chassis = self.uiChassisTextLabel.text()
if detected_platform != platform:
QtGui.QMessageBox.warning(self, "IOS image", "Using an IOS image made for another platform will likely not work!")
QtWidgets.QMessageBox.warning(self, "IOS image", "Using an IOS image made for another platform will likely not work!")
if detected_chassis and chassis and detected_chassis != chassis:
QtGui.QMessageBox.warning(self, "IOS image", "Using an IOS image made for another chassis will likely not work!")
QtWidgets.QMessageBox.warning(self, "IOS image", "Using an IOS image made for another chassis will likely not work!")
def _startupConfigBrowserSlot(self):
"""
@@ -123,12 +123,12 @@ class IOSRouterConfigurationPage(QtGui.QWidget, Ui_iosRouterConfigPageWidget):
"""
config_dir = os.path.join(os.path.dirname(QtCore.QSettings().fileName()), "base_configs")
path = QtGui.QFileDialog.getOpenFileName(self, "Select a startup configuration", config_dir)
path = QtWidgets.QFileDialog.getOpenFileName(self, "Select a startup configuration", config_dir)
if not path:
return
if not os.access(path, os.R_OK):
QtGui.QMessageBox.critical(self, "Startup configuration", "Cannot read {}".format(path))
QtWidgets.QMessageBox.critical(self, "Startup configuration", "Cannot read {}".format(path))
return
self.uiStartupConfigLineEdit.clear()
@@ -140,12 +140,12 @@ class IOSRouterConfigurationPage(QtGui.QWidget, Ui_iosRouterConfigPageWidget):
"""
config_dir = os.path.join(os.path.dirname(QtCore.QSettings().fileName()), "base_configs")
path = QtGui.QFileDialog.getOpenFileName(self, "Select a private configuration", config_dir)
path = QtWidgets.QFileDialog.getOpenFileName(self, "Select a private configuration", config_dir)
if not path:
return
if not os.access(path, os.R_OK):
QtGui.QMessageBox.critical(self, "Private configuration", "Cannot read {}".format(path))
QtWidgets.QMessageBox.critical(self, "Private configuration", "Cannot read {}".format(path))
return
self.uiPrivateConfigLineEdit.clear()
@@ -399,8 +399,8 @@ class IOSRouterConfigurationPage(QtGui.QWidget, Ui_iosRouterConfigPageWidget):
index = self._widget_slots[slot_number].findText(adapter)
if index != -1:
self._widget_slots[slot_number].setCurrentIndex(index)
QtGui.QMessageBox.critical(self, node.name(), "A link is connected to port {} on adapter {}, please remove it first".format(node_port.name(),
adapter))
QtWidgets.QMessageBox.critical(self, node.name(), "A link is connected to port {} on adapter {}, please remove it first".format(node_port.name(),
adapter))
raise ConfigurationError()
def _checkForLinkConnectedToWIC(self, wic_number, settings, node):
@@ -420,8 +420,8 @@ class IOSRouterConfigurationPage(QtGui.QWidget, Ui_iosRouterConfigPageWidget):
index = self._widget_wics[wic_number].findText(wic)
if index != -1:
self._widget_wics[wic_number].setCurrentIndex(index)
QtGui.QMessageBox.critical(self, node.name(), "A link is connected to port {} on {}, please remove it first".format(node_port.name(),
wic))
QtWidgets.QMessageBox.critical(self, node.name(), "A link is connected to port {} on {}, please remove it first".format(node_port.name(),
wic))
raise ConfigurationError()
def saveSettings(self, settings, node=None, group=False):
@@ -438,15 +438,15 @@ class IOSRouterConfigurationPage(QtGui.QWidget, Ui_iosRouterConfigPageWidget):
# Check if the Idle-PC value has been validated okay
if not self._idle_valid:
idle_pc = self.uiIdlepcLineEdit.text()
QtGui.QMessageBox.critical(self, "Idle-PC", "{} is not a valid Idle-PC value ".format(idle_pc))
QtWidgets.QMessageBox.critical(self, "Idle-PC", "{} is not a valid Idle-PC value ".format(idle_pc))
raise ConfigurationError()
# set the device name
name = self.uiNameLineEdit.text()
if not name:
QtGui.QMessageBox.critical(self, "Name", "IOS router name cannot be empty!")
QtWidgets.QMessageBox.critical(self, "Name", "IOS router name cannot be empty!")
elif node and not node.validateHostname(name):
QtGui.QMessageBox.critical(self, "Name", "Invalid name detected for IOS router: {}".format(name))
QtWidgets.QMessageBox.critical(self, "Name", "Invalid name detected for IOS router: {}".format(name))
else:
settings["name"] = name
@@ -459,7 +459,7 @@ class IOSRouterConfigurationPage(QtGui.QWidget, Ui_iosRouterConfigPageWidget):
# check and save the base MAC address
# mac = self.uiBaseMACLineEdit.text()
# if mac and not re.search(r"""^([0-9a-fA-F]{4}\.){2}[0-9a-fA-F]{4}$""", mac):
# QtGui.QMessageBox.critical(self, "MAC address", "Invalid MAC address (format required: hhhh.hhhh.hhhh)")
# QtWidgets.QMessageBox.critical(self, "MAC address", "Invalid MAC address (format required: hhhh.hhhh.hhhh)")
# elif mac != "":
# settings["mac_addr"] = mac
@@ -483,7 +483,7 @@ class IOSRouterConfigurationPage(QtGui.QWidget, Ui_iosRouterConfigPageWidget):
if os.access(startup_config, os.R_OK):
settings["startup_config"] = startup_config
else:
QtGui.QMessageBox.critical(self, "Startup-config", "Cannot read the startup-config file")
QtWidgets.QMessageBox.critical(self, "Startup-config", "Cannot read the startup-config file")
private_config = self.uiPrivateConfigLineEdit.text().strip()
if not private_config:
@@ -492,7 +492,7 @@ class IOSRouterConfigurationPage(QtGui.QWidget, Ui_iosRouterConfigPageWidget):
if os.access(private_config, os.R_OK):
settings["private_config"] = private_config
else:
QtGui.QMessageBox.critical(self, "Private-config", "Cannot read the private-config file")
QtWidgets.QMessageBox.critical(self, "Private-config", "Cannot read the private-config file")
# get the platform and chassis if applicable
platform = settings["platform"]

View File

@@ -27,7 +27,7 @@ import math
import zipfile
import logging
from gns3.qt import QtCore, QtGui
from gns3.qt import QtCore, QtGui, QtWidgets
from gns3.main_window import MainWindow
from gns3.dialogs.symbol_selection_dialog import SymbolSelectionDialog
from gns3.dialogs.configuration_dialog import ConfigurationDialog
@@ -47,14 +47,14 @@ from ..dialogs.ios_router_wizard import IOSRouterWizard
log = logging.getLogger(__name__)
class IOSRouterPreferencesPage(QtGui.QWidget, Ui_IOSRouterPreferencesPageWidget):
class IOSRouterPreferencesPage(QtWidgets.QWidget, Ui_IOSRouterPreferencesPageWidget):
"""
QWidget preference page for IOS routers.
"""
def __init__(self):
QtGui.QWidget.__init__(self)
super().__init__()
self.setupUi(self)
self._main_window = MainWindow.instance()
@@ -109,7 +109,7 @@ class IOSRouterPreferencesPage(QtGui.QWidget, Ui_IOSRouterPreferencesPageWidget)
log.debug(ios_settings["image"])
# Start uploading the image to cloud files
self._upload_image_progress_dialog = QtGui.QProgressDialog("Uploading image file {}".format(ios_settings['image']), "Cancel", 0, 0, parent=self)
self._upload_image_progress_dialog = QtWidgets.QProgressDialog("Uploading image file {}".format(ios_settings['image']), "Cancel", 0, 0, parent=self)
self._upload_image_progress_dialog.setWindowModality(QtCore.Qt.WindowModal)
self._upload_image_progress_dialog.setWindowTitle("IOS image upload")
self._upload_image_progress_dialog.show()
@@ -128,7 +128,7 @@ class IOSRouterPreferencesPage(QtGui.QWidget, Ui_IOSRouterPreferencesPageWidget)
except Exception as e:
self._upload_image_progress_dialog.reject()
log.error(e)
QtGui.QMessageBox.critical(self, "IOS image upload", "Error uploading IOS image: {}".format(e))
QtWidgets.QMessageBox.critical(self, "IOS image upload", "Error uploading IOS image: {}".format(e))
if ios_settings["platform"] == "c7200":
self._ios_routers[key]["midplane"] = "vxr"
@@ -147,7 +147,7 @@ class IOSRouterPreferencesPage(QtGui.QWidget, Ui_IOSRouterPreferencesPageWidget)
self._ios_routers[key][wic] = ios_settings[wic]
self._ios_routers[key].update(ios_settings)
item = QtGui.QTreeWidgetItem(self.uiIOSRoutersTreeWidget)
item = QtWidgets.QTreeWidgetItem(self.uiIOSRoutersTreeWidget)
item.setText(0, self._ios_routers[key]["name"])
item.setIcon(0, QtGui.QIcon(self._ios_routers[key]["default_symbol"]))
item.setData(0, QtCore.Qt.UserRole, key)
@@ -175,8 +175,8 @@ class IOSRouterPreferencesPage(QtGui.QWidget, Ui_IOSRouterPreferencesPageWidget)
# rename the IOS router
new_key = "{server}:{name}".format(server=ios_router["server"], name=ios_router["name"])
if new_key in self._ios_routers:
QtGui.QMessageBox.critical(self, "IOS router", "IOS router name {} already exists for server {}".format(ios_router["name"],
ios_router["server"]))
QtWidgets.QMessageBox.critical(self, "IOS router", "IOS router name {} already exists for server {}".format(ios_router["name"],
ios_router["server"]))
ios_router["name"] = item.text(0)
return
self._ios_routers[new_key] = self._ios_routers[key]
@@ -213,16 +213,16 @@ class IOSRouterPreferencesPage(QtGui.QWidget, Ui_IOSRouterPreferencesPageWidget)
"""
destination_directory = os.path.join(MainWindow.instance().imagesDirPath(), "IOS")
path, _ = QtGui.QFileDialog.getOpenFileNameAndFilter(parent,
"Select an IOS image",
destination_directory,
"All files (*.*);;IOS image (*.bin *.image)",
"IOS image (*.bin *.image)")
path, _ = QtWidgets.QFileDialog.getOpenFileNameAndFilter(parent,
"Select an IOS image",
destination_directory,
"All files (*.*);;IOS image (*.bin *.image)",
"IOS image (*.bin *.image)")
if not path:
return
if not os.access(path, os.R_OK):
QtGui.QMessageBox.critical(parent, "IOS image", "Cannot read {}".format(path))
QtWidgets.QMessageBox.critical(parent, "IOS image", "Cannot read {}".format(path))
return
if sys.platform.startswith('win'):
@@ -230,19 +230,19 @@ class IOSRouterPreferencesPage(QtGui.QWidget, Ui_IOSRouterPreferencesPageWidget)
try:
path.encode('ascii')
except UnicodeEncodeError:
QtGui.QMessageBox.warning(parent, "IOS image", "The IOS image filename should contains only ascii (English) characters.")
QtWidgets.QMessageBox.warning(parent, "IOS image", "The IOS image filename should contains only ascii (English) characters.")
try:
with open(path, "rb") as f:
# read the first 7 bytes of the file.
elf_header_start = f.read(7)
except OSError as e:
QtGui.QMessageBox.critical(parent, "IOS image", "Cannot read ELF magic number: {}".format(e))
QtWidgets.QMessageBox.critical(parent, "IOS image", "Cannot read ELF magic number: {}".format(e))
return
# file must start with the ELF magic number, be 32-bit, big endian and have an ELF version of 1
if elf_header_start != b'\x7fELF\x01\x02\x01':
QtGui.QMessageBox.critical(parent, "IOS image", "Sorry, this is not a valid IOS image!")
QtWidgets.QMessageBox.critical(parent, "IOS image", "Sorry, this is not a valid IOS image!")
return
try:
@@ -250,13 +250,13 @@ class IOSRouterPreferencesPage(QtGui.QWidget, Ui_IOSRouterPreferencesPageWidget)
except FileExistsError:
pass
except OSError as e:
QtGui.QMessageBox.critical(parent, "IOS images directory", "Could not create the IOS images directory {}: {}".format(destination_directory, e))
QtWidgets.QMessageBox.critical(parent, "IOS images directory", "Could not create the IOS images directory {}: {}".format(destination_directory, e))
return
if isIOSCompressed(path):
reply = QtGui.QMessageBox.question(parent, "IOS image", "Would you like to decompress this IOS image?",
QtGui.QMessageBox.Yes, QtGui.QMessageBox.No)
if reply == QtGui.QMessageBox.Yes:
reply = QtWidgets.QMessageBox.question(parent, "IOS image", "Would you like to decompress this IOS image?",
QtWidgets.QMessageBox.Yes, QtWidgets.QMessageBox.No)
if reply == QtWidgets.QMessageBox.Yes:
decompressed_image_path = os.path.join(destination_directory, os.path.basename(os.path.splitext(path)[0] + ".image"))
thread = DecompressIOSThread(path, decompressed_image_path)
progress_dialog = ProgressDialog(thread,
@@ -270,12 +270,12 @@ class IOSRouterPreferencesPage(QtGui.QWidget, Ui_IOSRouterPreferencesPageWidget)
if os.path.normpath(os.path.dirname(path)) != destination_directory:
# the IOS image is not in the default images directory
reply = QtGui.QMessageBox.question(parent,
"IOS image",
"Would you like to copy {} to the default images directory".format(os.path.basename(path)),
QtGui.QMessageBox.Yes,
QtGui.QMessageBox.No)
if reply == QtGui.QMessageBox.Yes:
reply = QtWidgets.QMessageBox.question(parent,
"IOS image",
"Would you like to copy {} to the default images directory".format(os.path.basename(path)),
QtWidgets.QMessageBox.Yes,
QtWidgets.QMessageBox.No)
if reply == QtWidgets.QMessageBox.Yes:
destination_path = os.path.join(destination_directory, os.path.basename(path))
thread = FileCopyThread(path, destination_path)
progress_dialog = ProgressDialog(thread, "IOS image", "Copying {}".format(os.path.basename(path)), "Cancel", busy=True, parent=parent)
@@ -284,7 +284,7 @@ class IOSRouterPreferencesPage(QtGui.QWidget, Ui_IOSRouterPreferencesPageWidget)
progress_dialog.exec_()
errors = progress_dialog.errors()
if errors:
QtGui.QMessageBox.critical(parent, "IOS image", "{}".format("".join(errors)))
QtWidgets.QMessageBox.critical(parent, "IOS image", "{}".format("".join(errors)))
else:
path = destination_path
@@ -327,15 +327,15 @@ class IOSRouterPreferencesPage(QtGui.QWidget, Ui_IOSRouterPreferencesPageWidget)
ios_router = self._ios_routers[key]
path = ios_router["image"]
if not os.path.isfile(path):
QtGui.QMessageBox.critical(self, "IOS image", "IOS image file {} is does not exist".format(path))
QtWidgets.QMessageBox.critical(self, "IOS image", "IOS image file {} is does not exist".format(path))
return
if not isIOSCompressed(path):
QtGui.QMessageBox.critical(self, "IOS image", "IOS image {} is not compressed".format(os.path.basename(path)))
QtWidgets.QMessageBox.critical(self, "IOS image", "IOS image {} is not compressed".format(os.path.basename(path)))
return
decompressed_image_path = os.path.splitext(path)[0] + ".image"
if os.path.isfile(decompressed_image_path):
QtGui.QMessageBox.critical(self, "IOS image", "Decompressed IOS image {} already exist".format(os.path.basename(decompressed_image_path)))
QtWidgets.QMessageBox.critical(self, "IOS image", "Decompressed IOS image {} already exist".format(os.path.basename(decompressed_image_path)))
return
thread = DecompressIOSThread(path, decompressed_image_path)
@@ -351,7 +351,7 @@ class IOSRouterPreferencesPage(QtGui.QWidget, Ui_IOSRouterPreferencesPageWidget)
def _createSectionItem(self, name):
section_item = QtGui.QTreeWidgetItem(self.uiIOSRouterInfoTreeWidget)
section_item = QtWidgets.QTreeWidgetItem(self.uiIOSRouterInfoTreeWidget)
section_item.setText(0, name)
font = section_item.font(0)
font.setBold(True)
@@ -364,37 +364,37 @@ class IOSRouterPreferencesPage(QtGui.QWidget, Ui_IOSRouterPreferencesPageWidget)
# fill out the General section
section_item = self._createSectionItem("General")
QtGui.QTreeWidgetItem(section_item, ["Name:", ios_router["name"]])
QtGui.QTreeWidgetItem(section_item, ["Server:", ios_router["server"]])
QtGui.QTreeWidgetItem(section_item, ["Platform:", ios_router["platform"]])
QtWidgets.QTreeWidgetItem(section_item, ["Name:", ios_router["name"]])
QtWidgets.QTreeWidgetItem(section_item, ["Server:", ios_router["server"]])
QtWidgets.QTreeWidgetItem(section_item, ["Platform:", ios_router["platform"]])
if ios_router["chassis"]:
QtGui.QTreeWidgetItem(section_item, ["Chassis:", ios_router["chassis"]])
QtGui.QTreeWidgetItem(section_item, ["Image:", ios_router["image"]])
QtWidgets.QTreeWidgetItem(section_item, ["Chassis:", ios_router["chassis"]])
QtWidgets.QTreeWidgetItem(section_item, ["Image:", ios_router["image"]])
if ios_router["idlepc"]:
QtGui.QTreeWidgetItem(section_item, ["Idle-PC:", ios_router["idlepc"]])
QtWidgets.QTreeWidgetItem(section_item, ["Idle-PC:", ios_router["idlepc"]])
if ios_router["startup_config"]:
QtGui.QTreeWidgetItem(section_item, ["Startup-config:", ios_router["startup_config"]])
QtWidgets.QTreeWidgetItem(section_item, ["Startup-config:", ios_router["startup_config"]])
if ios_router["private_config"]:
QtGui.QTreeWidgetItem(section_item, ["Private-config:", ios_router["private_config"]])
QtWidgets.QTreeWidgetItem(section_item, ["Private-config:", ios_router["private_config"]])
if ios_router["platform"] == "c7200":
QtGui.QTreeWidgetItem(section_item, ["Midplane:", ios_router["midplane"]])
QtGui.QTreeWidgetItem(section_item, ["NPE:", ios_router["npe"]])
QtWidgets.QTreeWidgetItem(section_item, ["Midplane:", ios_router["midplane"]])
QtWidgets.QTreeWidgetItem(section_item, ["NPE:", ios_router["npe"]])
# fill out the Memories and disk section
section_item = self._createSectionItem("Memories and disks")
QtGui.QTreeWidgetItem(section_item, ["RAM:", "{} MiB".format(ios_router["ram"])])
QtGui.QTreeWidgetItem(section_item, ["NVRAM:", "{} KiB".format(ios_router["nvram"])])
QtWidgets.QTreeWidgetItem(section_item, ["RAM:", "{} MiB".format(ios_router["ram"])])
QtWidgets.QTreeWidgetItem(section_item, ["NVRAM:", "{} KiB".format(ios_router["nvram"])])
if "iomem" in ios_router and ios_router["iomem"]:
QtGui.QTreeWidgetItem(section_item, ["I/O memory:", "{}%".format(ios_router["iomem"])])
QtGui.QTreeWidgetItem(section_item, ["PCMCIA disk0:", "{} MiB".format(ios_router["disk0"])])
QtGui.QTreeWidgetItem(section_item, ["PCMCIA disk1:", "{} MiB".format(ios_router["disk1"])])
QtWidgets.QTreeWidgetItem(section_item, ["I/O memory:", "{}%".format(ios_router["iomem"])])
QtWidgets.QTreeWidgetItem(section_item, ["PCMCIA disk0:", "{} MiB".format(ios_router["disk0"])])
QtWidgets.QTreeWidgetItem(section_item, ["PCMCIA disk1:", "{} MiB".format(ios_router["disk1"])])
# fill out the Adapters section
section_item = self._createSectionItem("Adapters")
for slot_id in range(0, 7):
slot = "slot{}".format(slot_id)
if slot in ios_router and ios_router[slot]:
QtGui.QTreeWidgetItem(section_item, ["Slot {}:".format(slot_id), ios_router[slot]])
QtWidgets.QTreeWidgetItem(section_item, ["Slot {}:".format(slot_id), ios_router[slot]])
if section_item.childCount() == 0:
self.uiIOSRouterInfoTreeWidget.takeTopLevelItem(self.uiIOSRouterInfoTreeWidget.indexOfTopLevelItem(section_item))
@@ -403,7 +403,7 @@ class IOSRouterPreferencesPage(QtGui.QWidget, Ui_IOSRouterPreferencesPageWidget)
for wic_id in range(0, 3):
wic = "wic{}".format(wic_id)
if wic in ios_router and ios_router[wic]:
QtGui.QTreeWidgetItem(section_item, ["WIC {}:".format(wic_id), ios_router[wic]])
QtWidgets.QTreeWidgetItem(section_item, ["WIC {}:".format(wic_id), ios_router[wic]])
if section_item.childCount() == 0:
self.uiIOSRouterInfoTreeWidget.takeTopLevelItem(self.uiIOSRouterInfoTreeWidget.indexOfTopLevelItem(section_item))
@@ -419,7 +419,7 @@ class IOSRouterPreferencesPage(QtGui.QWidget, Ui_IOSRouterPreferencesPageWidget)
:param column: ignored
"""
if QtGui.QApplication.mouseButtons() & QtCore.Qt.RightButton:
if QtWidgets.QApplication.mouseButtons() & QtCore.Qt.RightButton:
self._showContextualMenu()
def _showContextualMenu(self):
@@ -427,8 +427,8 @@ class IOSRouterPreferencesPage(QtGui.QWidget, Ui_IOSRouterPreferencesPageWidget)
Contextual menu.
"""
menu = QtGui.QMenu()
change_symbol_action = QtGui.QAction("Change symbol", menu)
menu = QtWidgets.QMenu()
change_symbol_action = QtWidgets.QAction("Change symbol", menu)
change_symbol_action.setIcon(QtGui.QIcon(":/icons/node_conception.svg"))
self.connect(change_symbol_action, QtCore.SIGNAL('triggered()'), self._changeSymbolSlot)
menu.addAction(change_symbol_action)
@@ -463,7 +463,7 @@ class IOSRouterPreferencesPage(QtGui.QWidget, Ui_IOSRouterPreferencesPageWidget)
self._items.clear()
for key, ios_router in self._ios_routers.items():
item = QtGui.QTreeWidgetItem(self.uiIOSRoutersTreeWidget)
item = QtWidgets.QTreeWidgetItem(self.uiIOSRoutersTreeWidget)
item.setText(0, ios_router["name"])
item.setIcon(0, QtGui.QIcon(ios_router["default_symbol"]))
item.setData(0, QtCore.Qt.UserRole, key)

View File

@@ -1,65 +1,50 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file '/home/grossmj/workspace/git/gns3-gui/gns3/modules/dynamips/ui/atm_bridge_configuration_page.ui'
# Form implementation generated from reading ui file '/Users/noplay/code/gns3/gns3-gui/gns3/modules/dynamips/ui/atm_bridge_configuration_page.ui'
#
# Created: Sun Mar 16 11:16:57 2014
# by: PyQt4 UI code generator 4.10
# Created: Fri Apr 17 10:44:32 2015
# by: PyQt5 UI code generator 5.4
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
from gns3.qt import QtCore, QtGui, QtWidgets
class Ui_atmBridgeConfigPageWidget(object):
class Ui_atmBridgeConfigPageWidget:
def setupUi(self, atmBridgeConfigPageWidget):
atmBridgeConfigPageWidget.setObjectName(_fromUtf8("atmBridgeConfigPageWidget"))
atmBridgeConfigPageWidget.setObjectName("atmBridgeConfigPageWidget")
atmBridgeConfigPageWidget.resize(432, 358)
self.gridLayout_2 = QtGui.QGridLayout(atmBridgeConfigPageWidget)
self.gridLayout_2.setObjectName(_fromUtf8("gridLayout_2"))
self.uiMappingGroupBox = QtGui.QGroupBox(atmBridgeConfigPageWidget)
self.uiMappingGroupBox.setObjectName(_fromUtf8("uiMappingGroupBox"))
self.vboxlayout = QtGui.QVBoxLayout(self.uiMappingGroupBox)
self.vboxlayout.setObjectName(_fromUtf8("vboxlayout"))
self.uiMappingTreeWidget = QtGui.QTreeWidget(self.uiMappingGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
self.gridLayout_2 = QtWidgets.QGridLayout(atmBridgeConfigPageWidget)
self.gridLayout_2.setObjectName("gridLayout_2")
self.uiMappingGroupBox = QtWidgets.QGroupBox(atmBridgeConfigPageWidget)
self.uiMappingGroupBox.setObjectName("uiMappingGroupBox")
self.vboxlayout = QtWidgets.QVBoxLayout(self.uiMappingGroupBox)
self.vboxlayout.setObjectName("vboxlayout")
self.uiMappingTreeWidget = QtWidgets.QTreeWidget(self.uiMappingGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiMappingTreeWidget.sizePolicy().hasHeightForWidth())
self.uiMappingTreeWidget.setSizePolicy(sizePolicy)
self.uiMappingTreeWidget.setRootIsDecorated(False)
self.uiMappingTreeWidget.setObjectName(_fromUtf8("uiMappingTreeWidget"))
self.uiMappingTreeWidget.setObjectName("uiMappingTreeWidget")
self.vboxlayout.addWidget(self.uiMappingTreeWidget)
self.gridLayout_2.addWidget(self.uiMappingGroupBox, 0, 2, 3, 1)
self.uiEthernetGroupBox = QtGui.QGroupBox(atmBridgeConfigPageWidget)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Preferred)
self.uiEthernetGroupBox = QtWidgets.QGroupBox(atmBridgeConfigPageWidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiEthernetGroupBox.sizePolicy().hasHeightForWidth())
self.uiEthernetGroupBox.setSizePolicy(sizePolicy)
self.uiEthernetGroupBox.setObjectName(_fromUtf8("uiEthernetGroupBox"))
self.gridlayout = QtGui.QGridLayout(self.uiEthernetGroupBox)
self.gridlayout.setObjectName(_fromUtf8("gridlayout"))
self.uiEthernetPortLabel = QtGui.QLabel(self.uiEthernetGroupBox)
self.uiEthernetPortLabel.setObjectName(_fromUtf8("uiEthernetPortLabel"))
self.uiEthernetGroupBox.setObjectName("uiEthernetGroupBox")
self.gridlayout = QtWidgets.QGridLayout(self.uiEthernetGroupBox)
self.gridlayout.setObjectName("gridlayout")
self.uiEthernetPortLabel = QtWidgets.QLabel(self.uiEthernetGroupBox)
self.uiEthernetPortLabel.setObjectName("uiEthernetPortLabel")
self.gridlayout.addWidget(self.uiEthernetPortLabel, 0, 0, 1, 1)
self.uiEthernetPortSpinBox = QtGui.QSpinBox(self.uiEthernetGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.uiEthernetPortSpinBox = QtWidgets.QSpinBox(self.uiEthernetGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiEthernetPortSpinBox.sizePolicy().hasHeightForWidth())
@@ -67,23 +52,23 @@ class Ui_atmBridgeConfigPageWidget(object):
self.uiEthernetPortSpinBox.setMinimum(0)
self.uiEthernetPortSpinBox.setMaximum(65535)
self.uiEthernetPortSpinBox.setProperty("value", 1)
self.uiEthernetPortSpinBox.setObjectName(_fromUtf8("uiEthernetPortSpinBox"))
self.uiEthernetPortSpinBox.setObjectName("uiEthernetPortSpinBox")
self.gridlayout.addWidget(self.uiEthernetPortSpinBox, 0, 1, 1, 1)
self.gridLayout_2.addWidget(self.uiEthernetGroupBox, 1, 0, 1, 2)
self.uiATMGroupBox = QtGui.QGroupBox(atmBridgeConfigPageWidget)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Preferred)
self.uiATMGroupBox = QtWidgets.QGroupBox(atmBridgeConfigPageWidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiATMGroupBox.sizePolicy().hasHeightForWidth())
self.uiATMGroupBox.setSizePolicy(sizePolicy)
self.uiATMGroupBox.setObjectName(_fromUtf8("uiATMGroupBox"))
self.gridlayout1 = QtGui.QGridLayout(self.uiATMGroupBox)
self.gridlayout1.setObjectName(_fromUtf8("gridlayout1"))
self.uiATMPortLabel = QtGui.QLabel(self.uiATMGroupBox)
self.uiATMPortLabel.setObjectName(_fromUtf8("uiATMPortLabel"))
self.uiATMGroupBox.setObjectName("uiATMGroupBox")
self.gridlayout1 = QtWidgets.QGridLayout(self.uiATMGroupBox)
self.gridlayout1.setObjectName("gridlayout1")
self.uiATMPortLabel = QtWidgets.QLabel(self.uiATMGroupBox)
self.uiATMPortLabel.setObjectName("uiATMPortLabel")
self.gridlayout1.addWidget(self.uiATMPortLabel, 0, 0, 1, 1)
self.uiATMPortSpinBox = QtGui.QSpinBox(self.uiATMGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.uiATMPortSpinBox = QtWidgets.QSpinBox(self.uiATMGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiATMPortSpinBox.sizePolicy().hasHeightForWidth())
@@ -91,14 +76,14 @@ class Ui_atmBridgeConfigPageWidget(object):
self.uiATMPortSpinBox.setMinimum(0)
self.uiATMPortSpinBox.setMaximum(65535)
self.uiATMPortSpinBox.setProperty("value", 10)
self.uiATMPortSpinBox.setObjectName(_fromUtf8("uiATMPortSpinBox"))
self.uiATMPortSpinBox.setObjectName("uiATMPortSpinBox")
self.gridlayout1.addWidget(self.uiATMPortSpinBox, 0, 1, 1, 1)
self.uiATMVPILabel = QtGui.QLabel(self.uiATMGroupBox)
self.uiATMVPILabel.setObjectName(_fromUtf8("uiATMVPILabel"))
self.uiATMVPILabel = QtWidgets.QLabel(self.uiATMGroupBox)
self.uiATMVPILabel.setObjectName("uiATMVPILabel")
self.gridlayout1.addWidget(self.uiATMVPILabel, 1, 0, 1, 1)
self.uiATMVPISpinBox = QtGui.QSpinBox(self.uiATMGroupBox)
self.uiATMVPISpinBox = QtWidgets.QSpinBox(self.uiATMGroupBox)
self.uiATMVPISpinBox.setEnabled(True)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiATMVPISpinBox.sizePolicy().hasHeightForWidth())
@@ -107,40 +92,40 @@ class Ui_atmBridgeConfigPageWidget(object):
self.uiATMVPISpinBox.setMaximum(65535)
self.uiATMVPISpinBox.setSingleStep(1)
self.uiATMVPISpinBox.setProperty("value", 0)
self.uiATMVPISpinBox.setObjectName(_fromUtf8("uiATMVPISpinBox"))
self.uiATMVPISpinBox.setObjectName("uiATMVPISpinBox")
self.gridlayout1.addWidget(self.uiATMVPISpinBox, 1, 1, 1, 1)
self.uiATMVCILabel = QtGui.QLabel(self.uiATMGroupBox)
self.uiATMVCILabel.setObjectName(_fromUtf8("uiATMVCILabel"))
self.uiATMVCILabel = QtWidgets.QLabel(self.uiATMGroupBox)
self.uiATMVCILabel.setObjectName("uiATMVCILabel")
self.gridlayout1.addWidget(self.uiATMVCILabel, 2, 0, 1, 1)
self.uiATMVCISpinBox = QtGui.QSpinBox(self.uiATMGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.uiATMVCISpinBox = QtWidgets.QSpinBox(self.uiATMGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiATMVCISpinBox.sizePolicy().hasHeightForWidth())
self.uiATMVCISpinBox.setSizePolicy(sizePolicy)
self.uiATMVCISpinBox.setMaximum(65535)
self.uiATMVCISpinBox.setProperty("value", 100)
self.uiATMVCISpinBox.setObjectName(_fromUtf8("uiATMVCISpinBox"))
self.uiATMVCISpinBox.setObjectName("uiATMVCISpinBox")
self.gridlayout1.addWidget(self.uiATMVCISpinBox, 2, 1, 1, 1)
self.gridLayout_2.addWidget(self.uiATMGroupBox, 2, 0, 1, 2)
self.uiAddPushButton = QtGui.QPushButton(atmBridgeConfigPageWidget)
self.uiAddPushButton.setObjectName(_fromUtf8("uiAddPushButton"))
self.uiAddPushButton = QtWidgets.QPushButton(atmBridgeConfigPageWidget)
self.uiAddPushButton.setObjectName("uiAddPushButton")
self.gridLayout_2.addWidget(self.uiAddPushButton, 3, 0, 1, 1)
self.uiDeletePushButton = QtGui.QPushButton(atmBridgeConfigPageWidget)
self.uiDeletePushButton = QtWidgets.QPushButton(atmBridgeConfigPageWidget)
self.uiDeletePushButton.setEnabled(False)
self.uiDeletePushButton.setObjectName(_fromUtf8("uiDeletePushButton"))
self.uiDeletePushButton.setObjectName("uiDeletePushButton")
self.gridLayout_2.addWidget(self.uiDeletePushButton, 3, 1, 1, 1)
spacerItem = QtGui.QSpacerItem(371, 121, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
spacerItem = QtWidgets.QSpacerItem(371, 121, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.gridLayout_2.addItem(spacerItem, 4, 0, 1, 3)
self.uiGeneralGroupBox = QtGui.QGroupBox(atmBridgeConfigPageWidget)
self.uiGeneralGroupBox.setObjectName(_fromUtf8("uiGeneralGroupBox"))
self.gridLayout = QtGui.QGridLayout(self.uiGeneralGroupBox)
self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
self.uiNameLabel = QtGui.QLabel(self.uiGeneralGroupBox)
self.uiNameLabel.setObjectName(_fromUtf8("uiNameLabel"))
self.uiGeneralGroupBox = QtWidgets.QGroupBox(atmBridgeConfigPageWidget)
self.uiGeneralGroupBox.setObjectName("uiGeneralGroupBox")
self.gridLayout = QtWidgets.QGridLayout(self.uiGeneralGroupBox)
self.gridLayout.setObjectName("gridLayout")
self.uiNameLabel = QtWidgets.QLabel(self.uiGeneralGroupBox)
self.uiNameLabel.setObjectName("uiNameLabel")
self.gridLayout.addWidget(self.uiNameLabel, 0, 0, 1, 1)
self.uiNameLineEdit = QtGui.QLineEdit(self.uiGeneralGroupBox)
self.uiNameLineEdit.setObjectName(_fromUtf8("uiNameLineEdit"))
self.uiNameLineEdit = QtWidgets.QLineEdit(self.uiGeneralGroupBox)
self.uiNameLineEdit.setObjectName("uiNameLineEdit")
self.gridLayout.addWidget(self.uiNameLineEdit, 0, 1, 1, 1)
self.gridLayout_2.addWidget(self.uiGeneralGroupBox, 0, 0, 1, 2)
@@ -153,17 +138,18 @@ class Ui_atmBridgeConfigPageWidget(object):
atmBridgeConfigPageWidget.setTabOrder(self.uiAddPushButton, self.uiDeletePushButton)
def retranslateUi(self, atmBridgeConfigPageWidget):
atmBridgeConfigPageWidget.setWindowTitle(_translate("atmBridgeConfigPageWidget", "ATM Bridge", None))
self.uiMappingGroupBox.setTitle(_translate("atmBridgeConfigPageWidget", "Mapping", None))
self.uiMappingTreeWidget.headerItem().setText(0, _translate("atmBridgeConfigPageWidget", "Ethernet Port", None))
self.uiMappingTreeWidget.headerItem().setText(1, _translate("atmBridgeConfigPageWidget", "Port:VPI:VCI", None))
self.uiEthernetGroupBox.setTitle(_translate("atmBridgeConfigPageWidget", "Ethernet side", None))
self.uiEthernetPortLabel.setText(_translate("atmBridgeConfigPageWidget", "Port:", None))
self.uiATMGroupBox.setTitle(_translate("atmBridgeConfigPageWidget", "ATM side", None))
self.uiATMPortLabel.setText(_translate("atmBridgeConfigPageWidget", "Port:", None))
self.uiATMVPILabel.setText(_translate("atmBridgeConfigPageWidget", "VPI:", None))
self.uiATMVCILabel.setText(_translate("atmBridgeConfigPageWidget", "VCI:", None))
self.uiAddPushButton.setText(_translate("atmBridgeConfigPageWidget", "&Add", None))
self.uiDeletePushButton.setText(_translate("atmBridgeConfigPageWidget", "&Delete", None))
self.uiGeneralGroupBox.setTitle(_translate("atmBridgeConfigPageWidget", "General", None))
self.uiNameLabel.setText(_translate("atmBridgeConfigPageWidget", "Name:", None))
_translate = QtCore.QCoreApplication.translate
atmBridgeConfigPageWidget.setWindowTitle(_translate("atmBridgeConfigPageWidget", "ATM Bridge"))
self.uiMappingGroupBox.setTitle(_translate("atmBridgeConfigPageWidget", "Mapping"))
self.uiMappingTreeWidget.headerItem().setText(0, _translate("atmBridgeConfigPageWidget", "Ethernet Port"))
self.uiMappingTreeWidget.headerItem().setText(1, _translate("atmBridgeConfigPageWidget", "Port:VPI:VCI"))
self.uiEthernetGroupBox.setTitle(_translate("atmBridgeConfigPageWidget", "Ethernet side"))
self.uiEthernetPortLabel.setText(_translate("atmBridgeConfigPageWidget", "Port:"))
self.uiATMGroupBox.setTitle(_translate("atmBridgeConfigPageWidget", "ATM side"))
self.uiATMPortLabel.setText(_translate("atmBridgeConfigPageWidget", "Port:"))
self.uiATMVPILabel.setText(_translate("atmBridgeConfigPageWidget", "VPI:"))
self.uiATMVCILabel.setText(_translate("atmBridgeConfigPageWidget", "VCI:"))
self.uiAddPushButton.setText(_translate("atmBridgeConfigPageWidget", "&Add"))
self.uiDeletePushButton.setText(_translate("atmBridgeConfigPageWidget", "&Delete"))
self.uiGeneralGroupBox.setTitle(_translate("atmBridgeConfigPageWidget", "General"))
self.uiNameLabel.setText(_translate("atmBridgeConfigPageWidget", "Name:"))

View File

@@ -1,88 +1,73 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file '/home/grossmj/workspace/git/gns3-gui/gns3/modules/dynamips/ui/atm_switch_configuration_page.ui'
# Form implementation generated from reading ui file '/Users/noplay/code/gns3/gns3-gui/gns3/modules/dynamips/ui/atm_switch_configuration_page.ui'
#
# Created: Sun Mar 16 11:16:57 2014
# by: PyQt4 UI code generator 4.10
# Created: Fri Apr 17 10:44:33 2015
# by: PyQt5 UI code generator 5.4
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
from gns3.qt import QtCore, QtGui, QtWidgets
class Ui_atmSwitchConfigPageWidget(object):
class Ui_atmSwitchConfigPageWidget:
def setupUi(self, atmSwitchConfigPageWidget):
atmSwitchConfigPageWidget.setObjectName(_fromUtf8("atmSwitchConfigPageWidget"))
atmSwitchConfigPageWidget.setObjectName("atmSwitchConfigPageWidget")
atmSwitchConfigPageWidget.resize(459, 419)
self.gridLayout_2 = QtGui.QGridLayout(atmSwitchConfigPageWidget)
self.gridLayout_2.setObjectName(_fromUtf8("gridLayout_2"))
self.uiGeneralGroupBox = QtGui.QGroupBox(atmSwitchConfigPageWidget)
self.uiGeneralGroupBox.setObjectName(_fromUtf8("uiGeneralGroupBox"))
self.gridLayout = QtGui.QGridLayout(self.uiGeneralGroupBox)
self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
self.uiNameLabel = QtGui.QLabel(self.uiGeneralGroupBox)
self.uiNameLabel.setObjectName(_fromUtf8("uiNameLabel"))
self.gridLayout_2 = QtWidgets.QGridLayout(atmSwitchConfigPageWidget)
self.gridLayout_2.setObjectName("gridLayout_2")
self.uiGeneralGroupBox = QtWidgets.QGroupBox(atmSwitchConfigPageWidget)
self.uiGeneralGroupBox.setObjectName("uiGeneralGroupBox")
self.gridLayout = QtWidgets.QGridLayout(self.uiGeneralGroupBox)
self.gridLayout.setObjectName("gridLayout")
self.uiNameLabel = QtWidgets.QLabel(self.uiGeneralGroupBox)
self.uiNameLabel.setObjectName("uiNameLabel")
self.gridLayout.addWidget(self.uiNameLabel, 0, 0, 1, 1)
self.uiNameLineEdit = QtGui.QLineEdit(self.uiGeneralGroupBox)
self.uiNameLineEdit.setObjectName(_fromUtf8("uiNameLineEdit"))
self.uiNameLineEdit = QtWidgets.QLineEdit(self.uiGeneralGroupBox)
self.uiNameLineEdit.setObjectName("uiNameLineEdit")
self.gridLayout.addWidget(self.uiNameLineEdit, 0, 1, 1, 1)
self.uiVPICheckBox = QtGui.QCheckBox(self.uiGeneralGroupBox)
self.uiVPICheckBox.setObjectName(_fromUtf8("uiVPICheckBox"))
self.uiVPICheckBox = QtWidgets.QCheckBox(self.uiGeneralGroupBox)
self.uiVPICheckBox.setObjectName("uiVPICheckBox")
self.gridLayout.addWidget(self.uiVPICheckBox, 1, 0, 1, 2)
self.gridLayout_2.addWidget(self.uiGeneralGroupBox, 0, 0, 1, 3)
self.uiMappingGroupBox = QtGui.QGroupBox(atmSwitchConfigPageWidget)
self.uiMappingGroupBox.setObjectName(_fromUtf8("uiMappingGroupBox"))
self.vboxlayout = QtGui.QVBoxLayout(self.uiMappingGroupBox)
self.vboxlayout.setObjectName(_fromUtf8("vboxlayout"))
self.uiMappingTreeWidget = QtGui.QTreeWidget(self.uiMappingGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
self.uiMappingGroupBox = QtWidgets.QGroupBox(atmSwitchConfigPageWidget)
self.uiMappingGroupBox.setObjectName("uiMappingGroupBox")
self.vboxlayout = QtWidgets.QVBoxLayout(self.uiMappingGroupBox)
self.vboxlayout.setObjectName("vboxlayout")
self.uiMappingTreeWidget = QtWidgets.QTreeWidget(self.uiMappingGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiMappingTreeWidget.sizePolicy().hasHeightForWidth())
self.uiMappingTreeWidget.setSizePolicy(sizePolicy)
self.uiMappingTreeWidget.setRootIsDecorated(False)
self.uiMappingTreeWidget.setObjectName(_fromUtf8("uiMappingTreeWidget"))
self.uiMappingTreeWidget.setObjectName("uiMappingTreeWidget")
self.vboxlayout.addWidget(self.uiMappingTreeWidget)
self.gridLayout_2.addWidget(self.uiMappingGroupBox, 0, 3, 3, 1)
self.uiAddPushButton = QtGui.QPushButton(atmSwitchConfigPageWidget)
self.uiAddPushButton.setObjectName(_fromUtf8("uiAddPushButton"))
self.uiAddPushButton = QtWidgets.QPushButton(atmSwitchConfigPageWidget)
self.uiAddPushButton.setObjectName("uiAddPushButton")
self.gridLayout_2.addWidget(self.uiAddPushButton, 3, 0, 1, 1)
self.uiDeletePushButton = QtGui.QPushButton(atmSwitchConfigPageWidget)
self.uiDeletePushButton = QtWidgets.QPushButton(atmSwitchConfigPageWidget)
self.uiDeletePushButton.setEnabled(False)
self.uiDeletePushButton.setObjectName(_fromUtf8("uiDeletePushButton"))
self.uiDeletePushButton.setObjectName("uiDeletePushButton")
self.gridLayout_2.addWidget(self.uiDeletePushButton, 3, 1, 1, 1)
spacerItem = QtGui.QSpacerItem(213, 31, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
spacerItem = QtWidgets.QSpacerItem(213, 31, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.gridLayout_2.addItem(spacerItem, 4, 2, 1, 2)
self.uiSourceGroupBox = QtGui.QGroupBox(atmSwitchConfigPageWidget)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Preferred)
self.uiSourceGroupBox = QtWidgets.QGroupBox(atmSwitchConfigPageWidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiSourceGroupBox.sizePolicy().hasHeightForWidth())
self.uiSourceGroupBox.setSizePolicy(sizePolicy)
self.uiSourceGroupBox.setObjectName(_fromUtf8("uiSourceGroupBox"))
self.gridlayout = QtGui.QGridLayout(self.uiSourceGroupBox)
self.gridlayout.setObjectName(_fromUtf8("gridlayout"))
self.uiSourcePortLabel = QtGui.QLabel(self.uiSourceGroupBox)
self.uiSourcePortLabel.setObjectName(_fromUtf8("uiSourcePortLabel"))
self.uiSourceGroupBox.setObjectName("uiSourceGroupBox")
self.gridlayout = QtWidgets.QGridLayout(self.uiSourceGroupBox)
self.gridlayout.setObjectName("gridlayout")
self.uiSourcePortLabel = QtWidgets.QLabel(self.uiSourceGroupBox)
self.uiSourcePortLabel.setObjectName("uiSourcePortLabel")
self.gridlayout.addWidget(self.uiSourcePortLabel, 0, 0, 1, 1)
self.uiSourcePortSpinBox = QtGui.QSpinBox(self.uiSourceGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.uiSourcePortSpinBox = QtWidgets.QSpinBox(self.uiSourceGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiSourcePortSpinBox.sizePolicy().hasHeightForWidth())
@@ -90,50 +75,50 @@ class Ui_atmSwitchConfigPageWidget(object):
self.uiSourcePortSpinBox.setMinimum(0)
self.uiSourcePortSpinBox.setMaximum(65535)
self.uiSourcePortSpinBox.setProperty("value", 1)
self.uiSourcePortSpinBox.setObjectName(_fromUtf8("uiSourcePortSpinBox"))
self.uiSourcePortSpinBox.setObjectName("uiSourcePortSpinBox")
self.gridlayout.addWidget(self.uiSourcePortSpinBox, 0, 1, 1, 1)
self.uiSourceVPILabel = QtGui.QLabel(self.uiSourceGroupBox)
self.uiSourceVPILabel.setObjectName(_fromUtf8("uiSourceVPILabel"))
self.uiSourceVPILabel = QtWidgets.QLabel(self.uiSourceGroupBox)
self.uiSourceVPILabel.setObjectName("uiSourceVPILabel")
self.gridlayout.addWidget(self.uiSourceVPILabel, 1, 0, 1, 1)
self.uiSourceVPISpinBox = QtGui.QSpinBox(self.uiSourceGroupBox)
self.uiSourceVPISpinBox = QtWidgets.QSpinBox(self.uiSourceGroupBox)
self.uiSourceVPISpinBox.setEnabled(True)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiSourceVPISpinBox.sizePolicy().hasHeightForWidth())
self.uiSourceVPISpinBox.setSizePolicy(sizePolicy)
self.uiSourceVPISpinBox.setMaximum(65535)
self.uiSourceVPISpinBox.setProperty("value", 0)
self.uiSourceVPISpinBox.setObjectName(_fromUtf8("uiSourceVPISpinBox"))
self.uiSourceVPISpinBox.setObjectName("uiSourceVPISpinBox")
self.gridlayout.addWidget(self.uiSourceVPISpinBox, 1, 1, 1, 1)
self.uiSourceVCILabel = QtGui.QLabel(self.uiSourceGroupBox)
self.uiSourceVCILabel.setObjectName(_fromUtf8("uiSourceVCILabel"))
self.uiSourceVCILabel = QtWidgets.QLabel(self.uiSourceGroupBox)
self.uiSourceVCILabel.setObjectName("uiSourceVCILabel")
self.gridlayout.addWidget(self.uiSourceVCILabel, 2, 0, 1, 1)
self.uiSourceVCISpinBox = QtGui.QSpinBox(self.uiSourceGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.uiSourceVCISpinBox = QtWidgets.QSpinBox(self.uiSourceGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiSourceVCISpinBox.sizePolicy().hasHeightForWidth())
self.uiSourceVCISpinBox.setSizePolicy(sizePolicy)
self.uiSourceVCISpinBox.setMaximum(65535)
self.uiSourceVCISpinBox.setProperty("value", 100)
self.uiSourceVCISpinBox.setObjectName(_fromUtf8("uiSourceVCISpinBox"))
self.uiSourceVCISpinBox.setObjectName("uiSourceVCISpinBox")
self.gridlayout.addWidget(self.uiSourceVCISpinBox, 2, 1, 1, 1)
self.gridLayout_2.addWidget(self.uiSourceGroupBox, 1, 0, 1, 3)
self.uiDestinationGroupBox = QtGui.QGroupBox(atmSwitchConfigPageWidget)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Preferred)
self.uiDestinationGroupBox = QtWidgets.QGroupBox(atmSwitchConfigPageWidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiDestinationGroupBox.sizePolicy().hasHeightForWidth())
self.uiDestinationGroupBox.setSizePolicy(sizePolicy)
self.uiDestinationGroupBox.setObjectName(_fromUtf8("uiDestinationGroupBox"))
self.gridlayout1 = QtGui.QGridLayout(self.uiDestinationGroupBox)
self.gridlayout1.setObjectName(_fromUtf8("gridlayout1"))
self.uiDestinationPortLabel = QtGui.QLabel(self.uiDestinationGroupBox)
self.uiDestinationPortLabel.setObjectName(_fromUtf8("uiDestinationPortLabel"))
self.uiDestinationGroupBox.setObjectName("uiDestinationGroupBox")
self.gridlayout1 = QtWidgets.QGridLayout(self.uiDestinationGroupBox)
self.gridlayout1.setObjectName("gridlayout1")
self.uiDestinationPortLabel = QtWidgets.QLabel(self.uiDestinationGroupBox)
self.uiDestinationPortLabel.setObjectName("uiDestinationPortLabel")
self.gridlayout1.addWidget(self.uiDestinationPortLabel, 0, 0, 1, 1)
self.uiDestinationPortSpinBox = QtGui.QSpinBox(self.uiDestinationGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.uiDestinationPortSpinBox = QtWidgets.QSpinBox(self.uiDestinationGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiDestinationPortSpinBox.sizePolicy().hasHeightForWidth())
@@ -141,34 +126,34 @@ class Ui_atmSwitchConfigPageWidget(object):
self.uiDestinationPortSpinBox.setMinimum(0)
self.uiDestinationPortSpinBox.setMaximum(65535)
self.uiDestinationPortSpinBox.setProperty("value", 10)
self.uiDestinationPortSpinBox.setObjectName(_fromUtf8("uiDestinationPortSpinBox"))
self.uiDestinationPortSpinBox.setObjectName("uiDestinationPortSpinBox")
self.gridlayout1.addWidget(self.uiDestinationPortSpinBox, 0, 1, 1, 1)
self.uiDestinationVPILabel = QtGui.QLabel(self.uiDestinationGroupBox)
self.uiDestinationVPILabel.setObjectName(_fromUtf8("uiDestinationVPILabel"))
self.uiDestinationVPILabel = QtWidgets.QLabel(self.uiDestinationGroupBox)
self.uiDestinationVPILabel.setObjectName("uiDestinationVPILabel")
self.gridlayout1.addWidget(self.uiDestinationVPILabel, 1, 0, 1, 1)
self.uiDestinationVPISpinBox = QtGui.QSpinBox(self.uiDestinationGroupBox)
self.uiDestinationVPISpinBox = QtWidgets.QSpinBox(self.uiDestinationGroupBox)
self.uiDestinationVPISpinBox.setEnabled(True)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiDestinationVPISpinBox.sizePolicy().hasHeightForWidth())
self.uiDestinationVPISpinBox.setSizePolicy(sizePolicy)
self.uiDestinationVPISpinBox.setMaximum(65535)
self.uiDestinationVPISpinBox.setProperty("value", 0)
self.uiDestinationVPISpinBox.setObjectName(_fromUtf8("uiDestinationVPISpinBox"))
self.uiDestinationVPISpinBox.setObjectName("uiDestinationVPISpinBox")
self.gridlayout1.addWidget(self.uiDestinationVPISpinBox, 1, 1, 1, 1)
self.uiDestinationVCILabel = QtGui.QLabel(self.uiDestinationGroupBox)
self.uiDestinationVCILabel.setObjectName(_fromUtf8("uiDestinationVCILabel"))
self.uiDestinationVCILabel = QtWidgets.QLabel(self.uiDestinationGroupBox)
self.uiDestinationVCILabel.setObjectName("uiDestinationVCILabel")
self.gridlayout1.addWidget(self.uiDestinationVCILabel, 2, 0, 1, 1)
self.uiDestinationVCISpinBox = QtGui.QSpinBox(self.uiDestinationGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.uiDestinationVCISpinBox = QtWidgets.QSpinBox(self.uiDestinationGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiDestinationVCISpinBox.sizePolicy().hasHeightForWidth())
self.uiDestinationVCISpinBox.setSizePolicy(sizePolicy)
self.uiDestinationVCISpinBox.setMaximum(65535)
self.uiDestinationVCISpinBox.setProperty("value", 200)
self.uiDestinationVCISpinBox.setObjectName(_fromUtf8("uiDestinationVCISpinBox"))
self.uiDestinationVCISpinBox.setObjectName("uiDestinationVCISpinBox")
self.gridlayout1.addWidget(self.uiDestinationVCISpinBox, 2, 1, 1, 1)
self.gridLayout_2.addWidget(self.uiDestinationGroupBox, 2, 0, 1, 3)
@@ -184,20 +169,21 @@ class Ui_atmSwitchConfigPageWidget(object):
atmSwitchConfigPageWidget.setTabOrder(self.uiAddPushButton, self.uiDeletePushButton)
def retranslateUi(self, atmSwitchConfigPageWidget):
atmSwitchConfigPageWidget.setWindowTitle(_translate("atmSwitchConfigPageWidget", "ATM Switch", None))
self.uiGeneralGroupBox.setTitle(_translate("atmSwitchConfigPageWidget", "General", None))
self.uiNameLabel.setText(_translate("atmSwitchConfigPageWidget", "Name:", None))
self.uiVPICheckBox.setText(_translate("atmSwitchConfigPageWidget", "Use VPI only (VP tunnel)", None))
self.uiMappingGroupBox.setTitle(_translate("atmSwitchConfigPageWidget", "Mapping", None))
self.uiMappingTreeWidget.headerItem().setText(0, _translate("atmSwitchConfigPageWidget", "Port:VPI:VCI", None))
self.uiMappingTreeWidget.headerItem().setText(1, _translate("atmSwitchConfigPageWidget", "Port:VPI:VCI", None))
self.uiAddPushButton.setText(_translate("atmSwitchConfigPageWidget", "&Add", None))
self.uiDeletePushButton.setText(_translate("atmSwitchConfigPageWidget", "&Delete", None))
self.uiSourceGroupBox.setTitle(_translate("atmSwitchConfigPageWidget", "Source", None))
self.uiSourcePortLabel.setText(_translate("atmSwitchConfigPageWidget", "Port:", None))
self.uiSourceVPILabel.setText(_translate("atmSwitchConfigPageWidget", "VPI:", None))
self.uiSourceVCILabel.setText(_translate("atmSwitchConfigPageWidget", "VCI:", None))
self.uiDestinationGroupBox.setTitle(_translate("atmSwitchConfigPageWidget", "Destination", None))
self.uiDestinationPortLabel.setText(_translate("atmSwitchConfigPageWidget", "Port:", None))
self.uiDestinationVPILabel.setText(_translate("atmSwitchConfigPageWidget", "VPI:", None))
self.uiDestinationVCILabel.setText(_translate("atmSwitchConfigPageWidget", "VCI:", None))
_translate = QtCore.QCoreApplication.translate
atmSwitchConfigPageWidget.setWindowTitle(_translate("atmSwitchConfigPageWidget", "ATM Switch"))
self.uiGeneralGroupBox.setTitle(_translate("atmSwitchConfigPageWidget", "General"))
self.uiNameLabel.setText(_translate("atmSwitchConfigPageWidget", "Name:"))
self.uiVPICheckBox.setText(_translate("atmSwitchConfigPageWidget", "Use VPI only (VP tunnel)"))
self.uiMappingGroupBox.setTitle(_translate("atmSwitchConfigPageWidget", "Mapping"))
self.uiMappingTreeWidget.headerItem().setText(0, _translate("atmSwitchConfigPageWidget", "Port:VPI:VCI"))
self.uiMappingTreeWidget.headerItem().setText(1, _translate("atmSwitchConfigPageWidget", "Port:VPI:VCI"))
self.uiAddPushButton.setText(_translate("atmSwitchConfigPageWidget", "&Add"))
self.uiDeletePushButton.setText(_translate("atmSwitchConfigPageWidget", "&Delete"))
self.uiSourceGroupBox.setTitle(_translate("atmSwitchConfigPageWidget", "Source"))
self.uiSourcePortLabel.setText(_translate("atmSwitchConfigPageWidget", "Port:"))
self.uiSourceVPILabel.setText(_translate("atmSwitchConfigPageWidget", "VPI:"))
self.uiSourceVCILabel.setText(_translate("atmSwitchConfigPageWidget", "VCI:"))
self.uiDestinationGroupBox.setTitle(_translate("atmSwitchConfigPageWidget", "Destination"))
self.uiDestinationPortLabel.setText(_translate("atmSwitchConfigPageWidget", "Port:"))
self.uiDestinationVPILabel.setText(_translate("atmSwitchConfigPageWidget", "VPI:"))
self.uiDestinationVCILabel.setText(_translate("atmSwitchConfigPageWidget", "VCI:"))

View File

@@ -1,99 +1,87 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file '/home/grossmj/PycharmProjects/gns3-gui/gns3/modules/dynamips/ui/dynamips_preferences_page.ui'
# Form implementation generated from reading ui file '/Users/noplay/code/gns3/gns3-gui/gns3/modules/dynamips/ui/dynamips_preferences_page.ui'
#
# Created: Mon Mar 9 17:56:06 2015
# by: PyQt4 UI code generator 4.10.4
# Created: Fri Apr 17 10:44:33 2015
# by: PyQt5 UI code generator 5.4
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
from gns3.qt import QtCore, QtGui, QtWidgets
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_DynamipsPreferencesPageWidget:
class Ui_DynamipsPreferencesPageWidget(object):
def setupUi(self, DynamipsPreferencesPageWidget):
DynamipsPreferencesPageWidget.setObjectName(_fromUtf8("DynamipsPreferencesPageWidget"))
DynamipsPreferencesPageWidget.setObjectName("DynamipsPreferencesPageWidget")
DynamipsPreferencesPageWidget.resize(430, 539)
self.vboxlayout = QtGui.QVBoxLayout(DynamipsPreferencesPageWidget)
self.vboxlayout.setObjectName(_fromUtf8("vboxlayout"))
self.uiTabWidget = QtGui.QTabWidget(DynamipsPreferencesPageWidget)
self.uiTabWidget.setObjectName(_fromUtf8("uiTabWidget"))
self.uiGeneralSettingsTabWidget = QtGui.QWidget()
self.uiGeneralSettingsTabWidget.setObjectName(_fromUtf8("uiGeneralSettingsTabWidget"))
self.verticalLayout_2 = QtGui.QVBoxLayout(self.uiGeneralSettingsTabWidget)
self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2"))
self.uiUseLocalServercheckBox = QtGui.QCheckBox(self.uiGeneralSettingsTabWidget)
self.vboxlayout = QtWidgets.QVBoxLayout(DynamipsPreferencesPageWidget)
self.vboxlayout.setObjectName("vboxlayout")
self.uiTabWidget = QtWidgets.QTabWidget(DynamipsPreferencesPageWidget)
self.uiTabWidget.setObjectName("uiTabWidget")
self.uiGeneralSettingsTabWidget = QtWidgets.QWidget()
self.uiGeneralSettingsTabWidget.setObjectName("uiGeneralSettingsTabWidget")
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.uiGeneralSettingsTabWidget)
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.uiUseLocalServercheckBox = QtWidgets.QCheckBox(self.uiGeneralSettingsTabWidget)
self.uiUseLocalServercheckBox.setChecked(True)
self.uiUseLocalServercheckBox.setObjectName(_fromUtf8("uiUseLocalServercheckBox"))
self.uiUseLocalServercheckBox.setObjectName("uiUseLocalServercheckBox")
self.verticalLayout_2.addWidget(self.uiUseLocalServercheckBox)
self.uiDynamipsPathLabel = QtGui.QLabel(self.uiGeneralSettingsTabWidget)
self.uiDynamipsPathLabel.setObjectName(_fromUtf8("uiDynamipsPathLabel"))
self.uiDynamipsPathLabel = QtWidgets.QLabel(self.uiGeneralSettingsTabWidget)
self.uiDynamipsPathLabel.setObjectName("uiDynamipsPathLabel")
self.verticalLayout_2.addWidget(self.uiDynamipsPathLabel)
self.horizontalLayout = QtGui.QHBoxLayout()
self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
self.uiDynamipsPathLineEdit = QtGui.QLineEdit(self.uiGeneralSettingsTabWidget)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.MinimumExpanding, QtGui.QSizePolicy.Fixed)
self.horizontalLayout = QtWidgets.QHBoxLayout()
self.horizontalLayout.setObjectName("horizontalLayout")
self.uiDynamipsPathLineEdit = QtWidgets.QLineEdit(self.uiGeneralSettingsTabWidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiDynamipsPathLineEdit.sizePolicy().hasHeightForWidth())
self.uiDynamipsPathLineEdit.setSizePolicy(sizePolicy)
self.uiDynamipsPathLineEdit.setObjectName(_fromUtf8("uiDynamipsPathLineEdit"))
self.uiDynamipsPathLineEdit.setObjectName("uiDynamipsPathLineEdit")
self.horizontalLayout.addWidget(self.uiDynamipsPathLineEdit)
self.uiDynamipsPathToolButton = QtGui.QToolButton(self.uiGeneralSettingsTabWidget)
self.uiDynamipsPathToolButton = QtWidgets.QToolButton(self.uiGeneralSettingsTabWidget)
self.uiDynamipsPathToolButton.setToolButtonStyle(QtCore.Qt.ToolButtonTextOnly)
self.uiDynamipsPathToolButton.setObjectName(_fromUtf8("uiDynamipsPathToolButton"))
self.uiDynamipsPathToolButton.setObjectName("uiDynamipsPathToolButton")
self.horizontalLayout.addWidget(self.uiDynamipsPathToolButton)
self.verticalLayout_2.addLayout(self.horizontalLayout)
self.uiAllocateAuxConsolePortsCheckBox = QtGui.QCheckBox(self.uiGeneralSettingsTabWidget)
self.uiAllocateAuxConsolePortsCheckBox.setObjectName(_fromUtf8("uiAllocateAuxConsolePortsCheckBox"))
self.uiAllocateAuxConsolePortsCheckBox = QtWidgets.QCheckBox(self.uiGeneralSettingsTabWidget)
self.uiAllocateAuxConsolePortsCheckBox.setObjectName("uiAllocateAuxConsolePortsCheckBox")
self.verticalLayout_2.addWidget(self.uiAllocateAuxConsolePortsCheckBox)
spacerItem = QtGui.QSpacerItem(390, 193, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
spacerItem = QtWidgets.QSpacerItem(390, 193, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout_2.addItem(spacerItem)
self.uiTabWidget.addTab(self.uiGeneralSettingsTabWidget, _fromUtf8(""))
self.uiAdvancedSettingsTabWidget = QtGui.QWidget()
self.uiAdvancedSettingsTabWidget.setObjectName(_fromUtf8("uiAdvancedSettingsTabWidget"))
self.verticalLayout_3 = QtGui.QVBoxLayout(self.uiAdvancedSettingsTabWidget)
self.verticalLayout_3.setObjectName(_fromUtf8("verticalLayout_3"))
self.uiMemoryUsageOptimisationGroupBox = QtGui.QGroupBox(self.uiAdvancedSettingsTabWidget)
self.uiMemoryUsageOptimisationGroupBox.setObjectName(_fromUtf8("uiMemoryUsageOptimisationGroupBox"))
self.verticalLayout = QtGui.QVBoxLayout(self.uiMemoryUsageOptimisationGroupBox)
self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
self.uiGhostIOSSupportCheckBox = QtGui.QCheckBox(self.uiMemoryUsageOptimisationGroupBox)
self.uiTabWidget.addTab(self.uiGeneralSettingsTabWidget, "")
self.uiAdvancedSettingsTabWidget = QtWidgets.QWidget()
self.uiAdvancedSettingsTabWidget.setObjectName("uiAdvancedSettingsTabWidget")
self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.uiAdvancedSettingsTabWidget)
self.verticalLayout_3.setObjectName("verticalLayout_3")
self.uiMemoryUsageOptimisationGroupBox = QtWidgets.QGroupBox(self.uiAdvancedSettingsTabWidget)
self.uiMemoryUsageOptimisationGroupBox.setObjectName("uiMemoryUsageOptimisationGroupBox")
self.verticalLayout = QtWidgets.QVBoxLayout(self.uiMemoryUsageOptimisationGroupBox)
self.verticalLayout.setObjectName("verticalLayout")
self.uiGhostIOSSupportCheckBox = QtWidgets.QCheckBox(self.uiMemoryUsageOptimisationGroupBox)
self.uiGhostIOSSupportCheckBox.setChecked(True)
self.uiGhostIOSSupportCheckBox.setObjectName(_fromUtf8("uiGhostIOSSupportCheckBox"))
self.uiGhostIOSSupportCheckBox.setObjectName("uiGhostIOSSupportCheckBox")
self.verticalLayout.addWidget(self.uiGhostIOSSupportCheckBox)
self.uiMmapSupportCheckBox = QtGui.QCheckBox(self.uiMemoryUsageOptimisationGroupBox)
self.uiMmapSupportCheckBox = QtWidgets.QCheckBox(self.uiMemoryUsageOptimisationGroupBox)
self.uiMmapSupportCheckBox.setChecked(True)
self.uiMmapSupportCheckBox.setObjectName(_fromUtf8("uiMmapSupportCheckBox"))
self.uiMmapSupportCheckBox.setObjectName("uiMmapSupportCheckBox")
self.verticalLayout.addWidget(self.uiMmapSupportCheckBox)
self.uiSparseMemorySupportCheckBox = QtGui.QCheckBox(self.uiMemoryUsageOptimisationGroupBox)
self.uiSparseMemorySupportCheckBox = QtWidgets.QCheckBox(self.uiMemoryUsageOptimisationGroupBox)
self.uiSparseMemorySupportCheckBox.setChecked(False)
self.uiSparseMemorySupportCheckBox.setObjectName(_fromUtf8("uiSparseMemorySupportCheckBox"))
self.uiSparseMemorySupportCheckBox.setObjectName("uiSparseMemorySupportCheckBox")
self.verticalLayout.addWidget(self.uiSparseMemorySupportCheckBox)
self.verticalLayout_3.addWidget(self.uiMemoryUsageOptimisationGroupBox)
spacerItem1 = QtGui.QSpacerItem(390, 12, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
spacerItem1 = QtWidgets.QSpacerItem(390, 12, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout_3.addItem(spacerItem1)
self.uiTabWidget.addTab(self.uiAdvancedSettingsTabWidget, _fromUtf8(""))
self.uiTabWidget.addTab(self.uiAdvancedSettingsTabWidget, "")
self.vboxlayout.addWidget(self.uiTabWidget)
self.horizontalLayout_2 = QtGui.QHBoxLayout()
self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2"))
spacerItem2 = QtGui.QSpacerItem(164, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
spacerItem2 = QtWidgets.QSpacerItem(164, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_2.addItem(spacerItem2)
self.uiRestoreDefaultsPushButton = QtGui.QPushButton(DynamipsPreferencesPageWidget)
self.uiRestoreDefaultsPushButton.setObjectName(_fromUtf8("uiRestoreDefaultsPushButton"))
self.uiRestoreDefaultsPushButton = QtWidgets.QPushButton(DynamipsPreferencesPageWidget)
self.uiRestoreDefaultsPushButton.setObjectName("uiRestoreDefaultsPushButton")
self.horizontalLayout_2.addWidget(self.uiRestoreDefaultsPushButton)
self.vboxlayout.addLayout(self.horizontalLayout_2)
@@ -106,19 +94,19 @@ class Ui_DynamipsPreferencesPageWidget(object):
DynamipsPreferencesPageWidget.setTabOrder(self.uiMmapSupportCheckBox, self.uiSparseMemorySupportCheckBox)
def retranslateUi(self, DynamipsPreferencesPageWidget):
DynamipsPreferencesPageWidget.setWindowTitle(_translate("DynamipsPreferencesPageWidget", "Dynamips", None))
self.uiUseLocalServercheckBox.setText(_translate("DynamipsPreferencesPageWidget", "Use the local server", None))
self.uiDynamipsPathLabel.setText(_translate("DynamipsPreferencesPageWidget", "Path to Dynamips:", None))
self.uiDynamipsPathToolButton.setText(_translate("DynamipsPreferencesPageWidget", "&Browse...", None))
self.uiAllocateAuxConsolePortsCheckBox.setText(_translate("DynamipsPreferencesPageWidget", "Allocate AUX console ports", None))
self.uiTabWidget.setTabText(self.uiTabWidget.indexOf(self.uiGeneralSettingsTabWidget), _translate("DynamipsPreferencesPageWidget", "General settings", None))
self.uiMemoryUsageOptimisationGroupBox.setTitle(_translate("DynamipsPreferencesPageWidget", "Memory usage optimisation", None))
self.uiGhostIOSSupportCheckBox.setToolTip(_translate("DynamipsPreferencesPageWidget", "The ghost IOS feature is a solution that helps to decrease memory usage by sharing an IOS image between different router instances.", None))
self.uiGhostIOSSupportCheckBox.setText(_translate("DynamipsPreferencesPageWidget", "Enable ghost IOS support", None))
self.uiMmapSupportCheckBox.setToolTip(_translate("DynamipsPreferencesPageWidget", "The mmap feature tells Dynamips to use disk files instead of real memory for router instances.", None))
self.uiMmapSupportCheckBox.setText(_translate("DynamipsPreferencesPageWidget", "Enable mmap support", None))
self.uiSparseMemorySupportCheckBox.setToolTip(_translate("DynamipsPreferencesPageWidget", "The sparse memory feature reduces the amount of virtual memory used by router instances.", None))
self.uiSparseMemorySupportCheckBox.setText(_translate("DynamipsPreferencesPageWidget", "Enable sparse memory support", None))
self.uiTabWidget.setTabText(self.uiTabWidget.indexOf(self.uiAdvancedSettingsTabWidget), _translate("DynamipsPreferencesPageWidget", "Advanced settings", None))
self.uiRestoreDefaultsPushButton.setText(_translate("DynamipsPreferencesPageWidget", "Restore defaults", None))
_translate = QtCore.QCoreApplication.translate
DynamipsPreferencesPageWidget.setWindowTitle(_translate("DynamipsPreferencesPageWidget", "Dynamips"))
self.uiUseLocalServercheckBox.setText(_translate("DynamipsPreferencesPageWidget", "Use the local server"))
self.uiDynamipsPathLabel.setText(_translate("DynamipsPreferencesPageWidget", "Path to Dynamips:"))
self.uiDynamipsPathToolButton.setText(_translate("DynamipsPreferencesPageWidget", "&Browse..."))
self.uiAllocateAuxConsolePortsCheckBox.setText(_translate("DynamipsPreferencesPageWidget", "Allocate AUX console ports"))
self.uiTabWidget.setTabText(self.uiTabWidget.indexOf(self.uiGeneralSettingsTabWidget), _translate("DynamipsPreferencesPageWidget", "General settings"))
self.uiMemoryUsageOptimisationGroupBox.setTitle(_translate("DynamipsPreferencesPageWidget", "Memory usage optimisation"))
self.uiGhostIOSSupportCheckBox.setToolTip(_translate("DynamipsPreferencesPageWidget", "The ghost IOS feature is a solution that helps to decrease memory usage by sharing an IOS image between different router instances."))
self.uiGhostIOSSupportCheckBox.setText(_translate("DynamipsPreferencesPageWidget", "Enable ghost IOS support"))
self.uiMmapSupportCheckBox.setToolTip(_translate("DynamipsPreferencesPageWidget", "The mmap feature tells Dynamips to use disk files instead of real memory for router instances."))
self.uiMmapSupportCheckBox.setText(_translate("DynamipsPreferencesPageWidget", "Enable mmap support"))
self.uiSparseMemorySupportCheckBox.setToolTip(_translate("DynamipsPreferencesPageWidget", "The sparse memory feature reduces the amount of virtual memory used by router instances."))
self.uiSparseMemorySupportCheckBox.setText(_translate("DynamipsPreferencesPageWidget", "Enable sparse memory support"))
self.uiTabWidget.setTabText(self.uiTabWidget.indexOf(self.uiAdvancedSettingsTabWidget), _translate("DynamipsPreferencesPageWidget", "Advanced settings"))
self.uiRestoreDefaultsPushButton.setText(_translate("DynamipsPreferencesPageWidget", "Restore defaults"))

View File

@@ -1,57 +1,42 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file '/home/grossmj/workspace/git/gns3-gui/gns3/modules/dynamips/ui/ethernet_hub_configuration_page.ui'
# Form implementation generated from reading ui file '/Users/noplay/code/gns3/gns3-gui/gns3/modules/dynamips/ui/ethernet_hub_configuration_page.ui'
#
# Created: Sun Mar 16 11:16:57 2014
# by: PyQt4 UI code generator 4.10
# Created: Fri Apr 17 10:44:33 2015
# by: PyQt5 UI code generator 5.4
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
from gns3.qt import QtCore, QtGui, QtWidgets
class Ui_ethernetHubConfigPageWidget(object):
class Ui_ethernetHubConfigPageWidget:
def setupUi(self, ethernetHubConfigPageWidget):
ethernetHubConfigPageWidget.setObjectName(_fromUtf8("ethernetHubConfigPageWidget"))
ethernetHubConfigPageWidget.setObjectName("ethernetHubConfigPageWidget")
ethernetHubConfigPageWidget.resize(381, 270)
self.gridlayout = QtGui.QGridLayout(ethernetHubConfigPageWidget)
self.gridlayout.setObjectName(_fromUtf8("gridlayout"))
self.uiSettingsGroupBox = QtGui.QGroupBox(ethernetHubConfigPageWidget)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Preferred)
self.gridlayout = QtWidgets.QGridLayout(ethernetHubConfigPageWidget)
self.gridlayout.setObjectName("gridlayout")
self.uiSettingsGroupBox = QtWidgets.QGroupBox(ethernetHubConfigPageWidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiSettingsGroupBox.sizePolicy().hasHeightForWidth())
self.uiSettingsGroupBox.setSizePolicy(sizePolicy)
self.uiSettingsGroupBox.setObjectName(_fromUtf8("uiSettingsGroupBox"))
self.gridLayout = QtGui.QGridLayout(self.uiSettingsGroupBox)
self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
self.uiNameLabel = QtGui.QLabel(self.uiSettingsGroupBox)
self.uiNameLabel.setObjectName(_fromUtf8("uiNameLabel"))
self.uiSettingsGroupBox.setObjectName("uiSettingsGroupBox")
self.gridLayout = QtWidgets.QGridLayout(self.uiSettingsGroupBox)
self.gridLayout.setObjectName("gridLayout")
self.uiNameLabel = QtWidgets.QLabel(self.uiSettingsGroupBox)
self.uiNameLabel.setObjectName("uiNameLabel")
self.gridLayout.addWidget(self.uiNameLabel, 0, 0, 1, 1)
self.uiNameLineEdit = QtGui.QLineEdit(self.uiSettingsGroupBox)
self.uiNameLineEdit.setObjectName(_fromUtf8("uiNameLineEdit"))
self.uiNameLineEdit = QtWidgets.QLineEdit(self.uiSettingsGroupBox)
self.uiNameLineEdit.setObjectName("uiNameLineEdit")
self.gridLayout.addWidget(self.uiNameLineEdit, 0, 1, 1, 1)
self.uiPortsLabel = QtGui.QLabel(self.uiSettingsGroupBox)
self.uiPortsLabel.setObjectName(_fromUtf8("uiPortsLabel"))
self.uiPortsLabel = QtWidgets.QLabel(self.uiSettingsGroupBox)
self.uiPortsLabel.setObjectName("uiPortsLabel")
self.gridLayout.addWidget(self.uiPortsLabel, 1, 0, 1, 1)
self.uiPortsSpinBox = QtGui.QSpinBox(self.uiSettingsGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.uiPortsSpinBox = QtWidgets.QSpinBox(self.uiSettingsGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiPortsSpinBox.sizePolicy().hasHeightForWidth())
@@ -59,9 +44,9 @@ class Ui_ethernetHubConfigPageWidget(object):
self.uiPortsSpinBox.setMinimum(0)
self.uiPortsSpinBox.setMaximum(65535)
self.uiPortsSpinBox.setProperty("value", 1)
self.uiPortsSpinBox.setObjectName(_fromUtf8("uiPortsSpinBox"))
self.uiPortsSpinBox.setObjectName("uiPortsSpinBox")
self.gridLayout.addWidget(self.uiPortsSpinBox, 1, 1, 1, 1)
spacerItem = QtGui.QSpacerItem(20, 71, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
spacerItem = QtWidgets.QSpacerItem(20, 71, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.gridLayout.addItem(spacerItem, 2, 1, 1, 1)
self.gridlayout.addWidget(self.uiSettingsGroupBox, 0, 1, 1, 1)
@@ -69,7 +54,8 @@ class Ui_ethernetHubConfigPageWidget(object):
QtCore.QMetaObject.connectSlotsByName(ethernetHubConfigPageWidget)
def retranslateUi(self, ethernetHubConfigPageWidget):
ethernetHubConfigPageWidget.setWindowTitle(_translate("ethernetHubConfigPageWidget", "Ethernet hub", None))
self.uiSettingsGroupBox.setTitle(_translate("ethernetHubConfigPageWidget", "Settings", None))
self.uiNameLabel.setText(_translate("ethernetHubConfigPageWidget", "Name:", None))
self.uiPortsLabel.setText(_translate("ethernetHubConfigPageWidget", "Number of ports:", None))
_translate = QtCore.QCoreApplication.translate
ethernetHubConfigPageWidget.setWindowTitle(_translate("ethernetHubConfigPageWidget", "Ethernet hub"))
self.uiSettingsGroupBox.setTitle(_translate("ethernetHubConfigPageWidget", "Settings"))
self.uiNameLabel.setText(_translate("ethernetHubConfigPageWidget", "Name:"))
self.uiPortsLabel.setText(_translate("ethernetHubConfigPageWidget", "Number of ports:"))

View File

@@ -1,76 +1,61 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file '/home/grossmj/PycharmProjects/gns3-gui/gns3/modules/dynamips/ui/ethernet_switch_configuration_page.ui'
# Form implementation generated from reading ui file '/Users/noplay/code/gns3/gns3-gui/gns3/modules/dynamips/ui/ethernet_switch_configuration_page.ui'
#
# Created: Thu Jul 17 16:13:17 2014
# by: PyQt4 UI code generator 4.10.4
# Created: Fri Apr 17 10:44:33 2015
# by: PyQt5 UI code generator 5.4
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
from gns3.qt import QtCore, QtGui, QtWidgets
class Ui_ethernetSwitchConfigPageWidget(object):
class Ui_ethernetSwitchConfigPageWidget:
def setupUi(self, ethernetSwitchConfigPageWidget):
ethernetSwitchConfigPageWidget.setObjectName(_fromUtf8("ethernetSwitchConfigPageWidget"))
ethernetSwitchConfigPageWidget.setObjectName("ethernetSwitchConfigPageWidget")
ethernetSwitchConfigPageWidget.resize(397, 315)
self.gridLayout_2 = QtGui.QGridLayout(ethernetSwitchConfigPageWidget)
self.gridLayout_2.setObjectName(_fromUtf8("gridLayout_2"))
self.uiGeneralGroupBox = QtGui.QGroupBox(ethernetSwitchConfigPageWidget)
self.uiGeneralGroupBox.setObjectName(_fromUtf8("uiGeneralGroupBox"))
self.gridLayout = QtGui.QGridLayout(self.uiGeneralGroupBox)
self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
self.uiNameLabel = QtGui.QLabel(self.uiGeneralGroupBox)
self.uiNameLabel.setObjectName(_fromUtf8("uiNameLabel"))
self.gridLayout_2 = QtWidgets.QGridLayout(ethernetSwitchConfigPageWidget)
self.gridLayout_2.setObjectName("gridLayout_2")
self.uiGeneralGroupBox = QtWidgets.QGroupBox(ethernetSwitchConfigPageWidget)
self.uiGeneralGroupBox.setObjectName("uiGeneralGroupBox")
self.gridLayout = QtWidgets.QGridLayout(self.uiGeneralGroupBox)
self.gridLayout.setObjectName("gridLayout")
self.uiNameLabel = QtWidgets.QLabel(self.uiGeneralGroupBox)
self.uiNameLabel.setObjectName("uiNameLabel")
self.gridLayout.addWidget(self.uiNameLabel, 0, 0, 1, 1)
self.uiNameLineEdit = QtGui.QLineEdit(self.uiGeneralGroupBox)
self.uiNameLineEdit.setObjectName(_fromUtf8("uiNameLineEdit"))
self.uiNameLineEdit = QtWidgets.QLineEdit(self.uiGeneralGroupBox)
self.uiNameLineEdit.setObjectName("uiNameLineEdit")
self.gridLayout.addWidget(self.uiNameLineEdit, 0, 1, 1, 1)
self.gridLayout_2.addWidget(self.uiGeneralGroupBox, 0, 0, 1, 2)
self.uiEthernetSwitchPortsGroupBox = QtGui.QGroupBox(ethernetSwitchConfigPageWidget)
self.uiEthernetSwitchPortsGroupBox.setObjectName(_fromUtf8("uiEthernetSwitchPortsGroupBox"))
self.vboxlayout = QtGui.QVBoxLayout(self.uiEthernetSwitchPortsGroupBox)
self.vboxlayout.setObjectName(_fromUtf8("vboxlayout"))
self.uiPortsTreeWidget = QtGui.QTreeWidget(self.uiEthernetSwitchPortsGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
self.uiEthernetSwitchPortsGroupBox = QtWidgets.QGroupBox(ethernetSwitchConfigPageWidget)
self.uiEthernetSwitchPortsGroupBox.setObjectName("uiEthernetSwitchPortsGroupBox")
self.vboxlayout = QtWidgets.QVBoxLayout(self.uiEthernetSwitchPortsGroupBox)
self.vboxlayout.setObjectName("vboxlayout")
self.uiPortsTreeWidget = QtWidgets.QTreeWidget(self.uiEthernetSwitchPortsGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiPortsTreeWidget.sizePolicy().hasHeightForWidth())
self.uiPortsTreeWidget.setSizePolicy(sizePolicy)
self.uiPortsTreeWidget.setRootIsDecorated(False)
self.uiPortsTreeWidget.setObjectName(_fromUtf8("uiPortsTreeWidget"))
self.uiPortsTreeWidget.setObjectName("uiPortsTreeWidget")
self.vboxlayout.addWidget(self.uiPortsTreeWidget)
self.gridLayout_2.addWidget(self.uiEthernetSwitchPortsGroupBox, 0, 2, 3, 1)
self.uiEthernetSwitchSettingsGroupBox = QtGui.QGroupBox(ethernetSwitchConfigPageWidget)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Preferred)
self.uiEthernetSwitchSettingsGroupBox = QtWidgets.QGroupBox(ethernetSwitchConfigPageWidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiEthernetSwitchSettingsGroupBox.sizePolicy().hasHeightForWidth())
self.uiEthernetSwitchSettingsGroupBox.setSizePolicy(sizePolicy)
self.uiEthernetSwitchSettingsGroupBox.setObjectName(_fromUtf8("uiEthernetSwitchSettingsGroupBox"))
self.gridlayout = QtGui.QGridLayout(self.uiEthernetSwitchSettingsGroupBox)
self.gridlayout.setObjectName(_fromUtf8("gridlayout"))
self.label = QtGui.QLabel(self.uiEthernetSwitchSettingsGroupBox)
self.label.setObjectName(_fromUtf8("label"))
self.uiEthernetSwitchSettingsGroupBox.setObjectName("uiEthernetSwitchSettingsGroupBox")
self.gridlayout = QtWidgets.QGridLayout(self.uiEthernetSwitchSettingsGroupBox)
self.gridlayout.setObjectName("gridlayout")
self.label = QtWidgets.QLabel(self.uiEthernetSwitchSettingsGroupBox)
self.label.setObjectName("label")
self.gridlayout.addWidget(self.label, 0, 0, 1, 1)
self.uiPortSpinBox = QtGui.QSpinBox(self.uiEthernetSwitchSettingsGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.uiPortSpinBox = QtWidgets.QSpinBox(self.uiEthernetSwitchSettingsGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiPortSpinBox.sizePolicy().hasHeightForWidth())
@@ -78,13 +63,13 @@ class Ui_ethernetSwitchConfigPageWidget(object):
self.uiPortSpinBox.setMinimum(1)
self.uiPortSpinBox.setMaximum(65535)
self.uiPortSpinBox.setProperty("value", 1)
self.uiPortSpinBox.setObjectName(_fromUtf8("uiPortSpinBox"))
self.uiPortSpinBox.setObjectName("uiPortSpinBox")
self.gridlayout.addWidget(self.uiPortSpinBox, 0, 1, 1, 1)
self.label_3 = QtGui.QLabel(self.uiEthernetSwitchSettingsGroupBox)
self.label_3.setObjectName(_fromUtf8("label_3"))
self.label_3 = QtWidgets.QLabel(self.uiEthernetSwitchSettingsGroupBox)
self.label_3.setObjectName("label_3")
self.gridlayout.addWidget(self.label_3, 1, 0, 1, 1)
self.uiVlanSpinBox = QtGui.QSpinBox(self.uiEthernetSwitchSettingsGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.uiVlanSpinBox = QtWidgets.QSpinBox(self.uiEthernetSwitchSettingsGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiVlanSpinBox.sizePolicy().hasHeightForWidth())
@@ -92,28 +77,28 @@ class Ui_ethernetSwitchConfigPageWidget(object):
self.uiVlanSpinBox.setMinimum(1)
self.uiVlanSpinBox.setMaximum(65535)
self.uiVlanSpinBox.setProperty("value", 1)
self.uiVlanSpinBox.setObjectName(_fromUtf8("uiVlanSpinBox"))
self.uiVlanSpinBox.setObjectName("uiVlanSpinBox")
self.gridlayout.addWidget(self.uiVlanSpinBox, 1, 1, 1, 1)
self.label_2 = QtGui.QLabel(self.uiEthernetSwitchSettingsGroupBox)
self.label_2.setObjectName(_fromUtf8("label_2"))
self.label_2 = QtWidgets.QLabel(self.uiEthernetSwitchSettingsGroupBox)
self.label_2.setObjectName("label_2")
self.gridlayout.addWidget(self.label_2, 2, 0, 1, 1)
self.uiPortTypeComboBox = QtGui.QComboBox(self.uiEthernetSwitchSettingsGroupBox)
self.uiPortTypeComboBox.setObjectName(_fromUtf8("uiPortTypeComboBox"))
self.uiPortTypeComboBox.addItem(_fromUtf8(""))
self.uiPortTypeComboBox.addItem(_fromUtf8(""))
self.uiPortTypeComboBox.addItem(_fromUtf8(""))
self.uiPortTypeComboBox = QtWidgets.QComboBox(self.uiEthernetSwitchSettingsGroupBox)
self.uiPortTypeComboBox.setObjectName("uiPortTypeComboBox")
self.uiPortTypeComboBox.addItem("")
self.uiPortTypeComboBox.addItem("")
self.uiPortTypeComboBox.addItem("")
self.gridlayout.addWidget(self.uiPortTypeComboBox, 2, 1, 1, 1)
self.gridLayout_2.addWidget(self.uiEthernetSwitchSettingsGroupBox, 1, 0, 1, 2)
self.uiAddPushButton = QtGui.QPushButton(ethernetSwitchConfigPageWidget)
self.uiAddPushButton.setObjectName(_fromUtf8("uiAddPushButton"))
self.uiAddPushButton = QtWidgets.QPushButton(ethernetSwitchConfigPageWidget)
self.uiAddPushButton.setObjectName("uiAddPushButton")
self.gridLayout_2.addWidget(self.uiAddPushButton, 2, 0, 1, 1)
self.uiDeletePushButton = QtGui.QPushButton(ethernetSwitchConfigPageWidget)
self.uiDeletePushButton = QtWidgets.QPushButton(ethernetSwitchConfigPageWidget)
self.uiDeletePushButton.setEnabled(False)
self.uiDeletePushButton.setObjectName(_fromUtf8("uiDeletePushButton"))
self.uiDeletePushButton.setObjectName("uiDeletePushButton")
self.gridLayout_2.addWidget(self.uiDeletePushButton, 2, 1, 1, 1)
spacerItem = QtGui.QSpacerItem(20, 71, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
spacerItem = QtWidgets.QSpacerItem(20, 71, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.gridLayout_2.addItem(spacerItem, 3, 1, 1, 1)
spacerItem1 = QtGui.QSpacerItem(20, 20, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
spacerItem1 = QtWidgets.QSpacerItem(20, 20, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.gridLayout_2.addItem(spacerItem1, 3, 2, 1, 1)
self.retranslateUi(ethernetSwitchConfigPageWidget)
@@ -125,19 +110,20 @@ class Ui_ethernetSwitchConfigPageWidget(object):
ethernetSwitchConfigPageWidget.setTabOrder(self.uiDeletePushButton, self.uiPortsTreeWidget)
def retranslateUi(self, ethernetSwitchConfigPageWidget):
ethernetSwitchConfigPageWidget.setWindowTitle(_translate("ethernetSwitchConfigPageWidget", "Ethernet switch configuration", None))
self.uiGeneralGroupBox.setTitle(_translate("ethernetSwitchConfigPageWidget", "General", None))
self.uiNameLabel.setText(_translate("ethernetSwitchConfigPageWidget", "Name:", None))
self.uiEthernetSwitchPortsGroupBox.setTitle(_translate("ethernetSwitchConfigPageWidget", "Ports", None))
self.uiPortsTreeWidget.headerItem().setText(0, _translate("ethernetSwitchConfigPageWidget", "Port", None))
self.uiPortsTreeWidget.headerItem().setText(1, _translate("ethernetSwitchConfigPageWidget", "VLAN", None))
self.uiPortsTreeWidget.headerItem().setText(2, _translate("ethernetSwitchConfigPageWidget", "Type", None))
self.uiEthernetSwitchSettingsGroupBox.setTitle(_translate("ethernetSwitchConfigPageWidget", "Settings", None))
self.label.setText(_translate("ethernetSwitchConfigPageWidget", "Port:", None))
self.label_3.setText(_translate("ethernetSwitchConfigPageWidget", "VLAN:", None))
self.label_2.setText(_translate("ethernetSwitchConfigPageWidget", "Type:", None))
self.uiPortTypeComboBox.setItemText(0, _translate("ethernetSwitchConfigPageWidget", "access", None))
self.uiPortTypeComboBox.setItemText(1, _translate("ethernetSwitchConfigPageWidget", "dot1q", None))
self.uiPortTypeComboBox.setItemText(2, _translate("ethernetSwitchConfigPageWidget", "qinq", None))
self.uiAddPushButton.setText(_translate("ethernetSwitchConfigPageWidget", "&Add", None))
self.uiDeletePushButton.setText(_translate("ethernetSwitchConfigPageWidget", "&Delete", None))
_translate = QtCore.QCoreApplication.translate
ethernetSwitchConfigPageWidget.setWindowTitle(_translate("ethernetSwitchConfigPageWidget", "Ethernet switch configuration"))
self.uiGeneralGroupBox.setTitle(_translate("ethernetSwitchConfigPageWidget", "General"))
self.uiNameLabel.setText(_translate("ethernetSwitchConfigPageWidget", "Name:"))
self.uiEthernetSwitchPortsGroupBox.setTitle(_translate("ethernetSwitchConfigPageWidget", "Ports"))
self.uiPortsTreeWidget.headerItem().setText(0, _translate("ethernetSwitchConfigPageWidget", "Port"))
self.uiPortsTreeWidget.headerItem().setText(1, _translate("ethernetSwitchConfigPageWidget", "VLAN"))
self.uiPortsTreeWidget.headerItem().setText(2, _translate("ethernetSwitchConfigPageWidget", "Type"))
self.uiEthernetSwitchSettingsGroupBox.setTitle(_translate("ethernetSwitchConfigPageWidget", "Settings"))
self.label.setText(_translate("ethernetSwitchConfigPageWidget", "Port:"))
self.label_3.setText(_translate("ethernetSwitchConfigPageWidget", "VLAN:"))
self.label_2.setText(_translate("ethernetSwitchConfigPageWidget", "Type:"))
self.uiPortTypeComboBox.setItemText(0, _translate("ethernetSwitchConfigPageWidget", "access"))
self.uiPortTypeComboBox.setItemText(1, _translate("ethernetSwitchConfigPageWidget", "dot1q"))
self.uiPortTypeComboBox.setItemText(2, _translate("ethernetSwitchConfigPageWidget", "qinq"))
self.uiAddPushButton.setText(_translate("ethernetSwitchConfigPageWidget", "&Add"))
self.uiDeletePushButton.setText(_translate("ethernetSwitchConfigPageWidget", "&Delete"))

View File

@@ -1,76 +1,61 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file '/home/grossmj/workspace/git/gns3-gui/gns3/modules/dynamips/ui/frame_relay_switch_configuration_page.ui'
# Form implementation generated from reading ui file '/Users/noplay/code/gns3/gns3-gui/gns3/modules/dynamips/ui/frame_relay_switch_configuration_page.ui'
#
# Created: Sun Mar 16 13:50:36 2014
# by: PyQt4 UI code generator 4.10
# Created: Fri Apr 17 10:44:33 2015
# by: PyQt5 UI code generator 5.4
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
from gns3.qt import QtCore, QtGui, QtWidgets
class Ui_frameRelaySwitchConfigPageWidget(object):
class Ui_frameRelaySwitchConfigPageWidget:
def setupUi(self, frameRelaySwitchConfigPageWidget):
frameRelaySwitchConfigPageWidget.setObjectName(_fromUtf8("frameRelaySwitchConfigPageWidget"))
frameRelaySwitchConfigPageWidget.setObjectName("frameRelaySwitchConfigPageWidget")
frameRelaySwitchConfigPageWidget.resize(499, 405)
self.gridLayout_2 = QtGui.QGridLayout(frameRelaySwitchConfigPageWidget)
self.gridLayout_2.setObjectName(_fromUtf8("gridLayout_2"))
self.uiGeneralGroupBox = QtGui.QGroupBox(frameRelaySwitchConfigPageWidget)
self.uiGeneralGroupBox.setObjectName(_fromUtf8("uiGeneralGroupBox"))
self.gridLayout = QtGui.QGridLayout(self.uiGeneralGroupBox)
self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
self.uiNameLabel = QtGui.QLabel(self.uiGeneralGroupBox)
self.uiNameLabel.setObjectName(_fromUtf8("uiNameLabel"))
self.gridLayout_2 = QtWidgets.QGridLayout(frameRelaySwitchConfigPageWidget)
self.gridLayout_2.setObjectName("gridLayout_2")
self.uiGeneralGroupBox = QtWidgets.QGroupBox(frameRelaySwitchConfigPageWidget)
self.uiGeneralGroupBox.setObjectName("uiGeneralGroupBox")
self.gridLayout = QtWidgets.QGridLayout(self.uiGeneralGroupBox)
self.gridLayout.setObjectName("gridLayout")
self.uiNameLabel = QtWidgets.QLabel(self.uiGeneralGroupBox)
self.uiNameLabel.setObjectName("uiNameLabel")
self.gridLayout.addWidget(self.uiNameLabel, 0, 0, 1, 1)
self.uiNameLineEdit = QtGui.QLineEdit(self.uiGeneralGroupBox)
self.uiNameLineEdit.setObjectName(_fromUtf8("uiNameLineEdit"))
self.uiNameLineEdit = QtWidgets.QLineEdit(self.uiGeneralGroupBox)
self.uiNameLineEdit.setObjectName("uiNameLineEdit")
self.gridLayout.addWidget(self.uiNameLineEdit, 0, 1, 1, 1)
self.gridLayout_2.addWidget(self.uiGeneralGroupBox, 0, 0, 1, 2)
self.uiFrameRelayMappingGroupBox = QtGui.QGroupBox(frameRelaySwitchConfigPageWidget)
self.uiFrameRelayMappingGroupBox.setObjectName(_fromUtf8("uiFrameRelayMappingGroupBox"))
self.vboxlayout = QtGui.QVBoxLayout(self.uiFrameRelayMappingGroupBox)
self.vboxlayout.setObjectName(_fromUtf8("vboxlayout"))
self.uiMappingTreeWidget = QtGui.QTreeWidget(self.uiFrameRelayMappingGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)
self.uiFrameRelayMappingGroupBox = QtWidgets.QGroupBox(frameRelaySwitchConfigPageWidget)
self.uiFrameRelayMappingGroupBox.setObjectName("uiFrameRelayMappingGroupBox")
self.vboxlayout = QtWidgets.QVBoxLayout(self.uiFrameRelayMappingGroupBox)
self.vboxlayout.setObjectName("vboxlayout")
self.uiMappingTreeWidget = QtWidgets.QTreeWidget(self.uiFrameRelayMappingGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiMappingTreeWidget.sizePolicy().hasHeightForWidth())
self.uiMappingTreeWidget.setSizePolicy(sizePolicy)
self.uiMappingTreeWidget.setRootIsDecorated(False)
self.uiMappingTreeWidget.setObjectName(_fromUtf8("uiMappingTreeWidget"))
self.uiMappingTreeWidget.setObjectName("uiMappingTreeWidget")
self.vboxlayout.addWidget(self.uiMappingTreeWidget)
self.gridLayout_2.addWidget(self.uiFrameRelayMappingGroupBox, 0, 2, 4, 1)
self.uiFrameRelaySourceGroupBox = QtGui.QGroupBox(frameRelaySwitchConfigPageWidget)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Preferred)
self.uiFrameRelaySourceGroupBox = QtWidgets.QGroupBox(frameRelaySwitchConfigPageWidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiFrameRelaySourceGroupBox.sizePolicy().hasHeightForWidth())
self.uiFrameRelaySourceGroupBox.setSizePolicy(sizePolicy)
self.uiFrameRelaySourceGroupBox.setObjectName(_fromUtf8("uiFrameRelaySourceGroupBox"))
self.gridlayout = QtGui.QGridLayout(self.uiFrameRelaySourceGroupBox)
self.gridlayout.setObjectName(_fromUtf8("gridlayout"))
self.uiSourcePortLabel = QtGui.QLabel(self.uiFrameRelaySourceGroupBox)
self.uiSourcePortLabel.setObjectName(_fromUtf8("uiSourcePortLabel"))
self.uiFrameRelaySourceGroupBox.setObjectName("uiFrameRelaySourceGroupBox")
self.gridlayout = QtWidgets.QGridLayout(self.uiFrameRelaySourceGroupBox)
self.gridlayout.setObjectName("gridlayout")
self.uiSourcePortLabel = QtWidgets.QLabel(self.uiFrameRelaySourceGroupBox)
self.uiSourcePortLabel.setObjectName("uiSourcePortLabel")
self.gridlayout.addWidget(self.uiSourcePortLabel, 0, 0, 1, 1)
self.uiSourcePortSpinBox = QtGui.QSpinBox(self.uiFrameRelaySourceGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.uiSourcePortSpinBox = QtWidgets.QSpinBox(self.uiFrameRelaySourceGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiSourcePortSpinBox.sizePolicy().hasHeightForWidth())
@@ -78,36 +63,36 @@ class Ui_frameRelaySwitchConfigPageWidget(object):
self.uiSourcePortSpinBox.setMinimum(0)
self.uiSourcePortSpinBox.setMaximum(65535)
self.uiSourcePortSpinBox.setProperty("value", 1)
self.uiSourcePortSpinBox.setObjectName(_fromUtf8("uiSourcePortSpinBox"))
self.uiSourcePortSpinBox.setObjectName("uiSourcePortSpinBox")
self.gridlayout.addWidget(self.uiSourcePortSpinBox, 0, 1, 1, 1)
self.uiSourceDLCILabel = QtGui.QLabel(self.uiFrameRelaySourceGroupBox)
self.uiSourceDLCILabel.setObjectName(_fromUtf8("uiSourceDLCILabel"))
self.uiSourceDLCILabel = QtWidgets.QLabel(self.uiFrameRelaySourceGroupBox)
self.uiSourceDLCILabel.setObjectName("uiSourceDLCILabel")
self.gridlayout.addWidget(self.uiSourceDLCILabel, 1, 0, 1, 1)
self.uiSourceDLCISpinBox = QtGui.QSpinBox(self.uiFrameRelaySourceGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.uiSourceDLCISpinBox = QtWidgets.QSpinBox(self.uiFrameRelaySourceGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiSourceDLCISpinBox.sizePolicy().hasHeightForWidth())
self.uiSourceDLCISpinBox.setSizePolicy(sizePolicy)
self.uiSourceDLCISpinBox.setMaximum(65535)
self.uiSourceDLCISpinBox.setProperty("value", 101)
self.uiSourceDLCISpinBox.setObjectName(_fromUtf8("uiSourceDLCISpinBox"))
self.uiSourceDLCISpinBox.setObjectName("uiSourceDLCISpinBox")
self.gridlayout.addWidget(self.uiSourceDLCISpinBox, 1, 1, 1, 1)
self.gridLayout_2.addWidget(self.uiFrameRelaySourceGroupBox, 1, 0, 1, 2)
self.uiFrameRelayDestinationGroupBox = QtGui.QGroupBox(frameRelaySwitchConfigPageWidget)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Preferred)
self.uiFrameRelayDestinationGroupBox = QtWidgets.QGroupBox(frameRelaySwitchConfigPageWidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiFrameRelayDestinationGroupBox.sizePolicy().hasHeightForWidth())
self.uiFrameRelayDestinationGroupBox.setSizePolicy(sizePolicy)
self.uiFrameRelayDestinationGroupBox.setObjectName(_fromUtf8("uiFrameRelayDestinationGroupBox"))
self.gridlayout1 = QtGui.QGridLayout(self.uiFrameRelayDestinationGroupBox)
self.gridlayout1.setObjectName(_fromUtf8("gridlayout1"))
self.uiDestinationPortLabel = QtGui.QLabel(self.uiFrameRelayDestinationGroupBox)
self.uiDestinationPortLabel.setObjectName(_fromUtf8("uiDestinationPortLabel"))
self.uiFrameRelayDestinationGroupBox.setObjectName("uiFrameRelayDestinationGroupBox")
self.gridlayout1 = QtWidgets.QGridLayout(self.uiFrameRelayDestinationGroupBox)
self.gridlayout1.setObjectName("gridlayout1")
self.uiDestinationPortLabel = QtWidgets.QLabel(self.uiFrameRelayDestinationGroupBox)
self.uiDestinationPortLabel.setObjectName("uiDestinationPortLabel")
self.gridlayout1.addWidget(self.uiDestinationPortLabel, 0, 0, 1, 1)
self.uiDestinationPortSpinBox = QtGui.QSpinBox(self.uiFrameRelayDestinationGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.uiDestinationPortSpinBox = QtWidgets.QSpinBox(self.uiFrameRelayDestinationGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiDestinationPortSpinBox.sizePolicy().hasHeightForWidth())
@@ -115,30 +100,30 @@ class Ui_frameRelaySwitchConfigPageWidget(object):
self.uiDestinationPortSpinBox.setMinimum(0)
self.uiDestinationPortSpinBox.setMaximum(65535)
self.uiDestinationPortSpinBox.setProperty("value", 10)
self.uiDestinationPortSpinBox.setObjectName(_fromUtf8("uiDestinationPortSpinBox"))
self.uiDestinationPortSpinBox.setObjectName("uiDestinationPortSpinBox")
self.gridlayout1.addWidget(self.uiDestinationPortSpinBox, 0, 1, 1, 1)
self.uiDestinationDLCILabel = QtGui.QLabel(self.uiFrameRelayDestinationGroupBox)
self.uiDestinationDLCILabel.setObjectName(_fromUtf8("uiDestinationDLCILabel"))
self.uiDestinationDLCILabel = QtWidgets.QLabel(self.uiFrameRelayDestinationGroupBox)
self.uiDestinationDLCILabel.setObjectName("uiDestinationDLCILabel")
self.gridlayout1.addWidget(self.uiDestinationDLCILabel, 1, 0, 1, 1)
self.uiDestinationDLCISpinBox = QtGui.QSpinBox(self.uiFrameRelayDestinationGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.uiDestinationDLCISpinBox = QtWidgets.QSpinBox(self.uiFrameRelayDestinationGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiDestinationDLCISpinBox.sizePolicy().hasHeightForWidth())
self.uiDestinationDLCISpinBox.setSizePolicy(sizePolicy)
self.uiDestinationDLCISpinBox.setMaximum(65535)
self.uiDestinationDLCISpinBox.setProperty("value", 202)
self.uiDestinationDLCISpinBox.setObjectName(_fromUtf8("uiDestinationDLCISpinBox"))
self.uiDestinationDLCISpinBox.setObjectName("uiDestinationDLCISpinBox")
self.gridlayout1.addWidget(self.uiDestinationDLCISpinBox, 1, 1, 1, 1)
self.gridLayout_2.addWidget(self.uiFrameRelayDestinationGroupBox, 2, 0, 1, 2)
self.uiAddPushButton = QtGui.QPushButton(frameRelaySwitchConfigPageWidget)
self.uiAddPushButton.setObjectName(_fromUtf8("uiAddPushButton"))
self.uiAddPushButton = QtWidgets.QPushButton(frameRelaySwitchConfigPageWidget)
self.uiAddPushButton.setObjectName("uiAddPushButton")
self.gridLayout_2.addWidget(self.uiAddPushButton, 3, 0, 1, 1)
self.uiDeletePushButton = QtGui.QPushButton(frameRelaySwitchConfigPageWidget)
self.uiDeletePushButton = QtWidgets.QPushButton(frameRelaySwitchConfigPageWidget)
self.uiDeletePushButton.setEnabled(False)
self.uiDeletePushButton.setObjectName(_fromUtf8("uiDeletePushButton"))
self.uiDeletePushButton.setObjectName("uiDeletePushButton")
self.gridLayout_2.addWidget(self.uiDeletePushButton, 3, 1, 1, 1)
spacerItem = QtGui.QSpacerItem(20, 20, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
spacerItem = QtWidgets.QSpacerItem(20, 20, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.gridLayout_2.addItem(spacerItem, 4, 2, 1, 1)
self.retranslateUi(frameRelaySwitchConfigPageWidget)
@@ -150,17 +135,18 @@ class Ui_frameRelaySwitchConfigPageWidget(object):
frameRelaySwitchConfigPageWidget.setTabOrder(self.uiAddPushButton, self.uiDeletePushButton)
def retranslateUi(self, frameRelaySwitchConfigPageWidget):
frameRelaySwitchConfigPageWidget.setWindowTitle(_translate("frameRelaySwitchConfigPageWidget", "Frame Relay Switch", None))
self.uiGeneralGroupBox.setTitle(_translate("frameRelaySwitchConfigPageWidget", "General", None))
self.uiNameLabel.setText(_translate("frameRelaySwitchConfigPageWidget", "Name:", None))
self.uiFrameRelayMappingGroupBox.setTitle(_translate("frameRelaySwitchConfigPageWidget", "Mapping", None))
self.uiMappingTreeWidget.headerItem().setText(0, _translate("frameRelaySwitchConfigPageWidget", "Port:DLCI", None))
self.uiMappingTreeWidget.headerItem().setText(1, _translate("frameRelaySwitchConfigPageWidget", "Port:DLCI", None))
self.uiFrameRelaySourceGroupBox.setTitle(_translate("frameRelaySwitchConfigPageWidget", "Source", None))
self.uiSourcePortLabel.setText(_translate("frameRelaySwitchConfigPageWidget", "Port:", None))
self.uiSourceDLCILabel.setText(_translate("frameRelaySwitchConfigPageWidget", "DLCI:", None))
self.uiFrameRelayDestinationGroupBox.setTitle(_translate("frameRelaySwitchConfigPageWidget", "Destination", None))
self.uiDestinationPortLabel.setText(_translate("frameRelaySwitchConfigPageWidget", "Port:", None))
self.uiDestinationDLCILabel.setText(_translate("frameRelaySwitchConfigPageWidget", "DLCI:", None))
self.uiAddPushButton.setText(_translate("frameRelaySwitchConfigPageWidget", "&Add", None))
self.uiDeletePushButton.setText(_translate("frameRelaySwitchConfigPageWidget", "&Delete", None))
_translate = QtCore.QCoreApplication.translate
frameRelaySwitchConfigPageWidget.setWindowTitle(_translate("frameRelaySwitchConfigPageWidget", "Frame Relay Switch"))
self.uiGeneralGroupBox.setTitle(_translate("frameRelaySwitchConfigPageWidget", "General"))
self.uiNameLabel.setText(_translate("frameRelaySwitchConfigPageWidget", "Name:"))
self.uiFrameRelayMappingGroupBox.setTitle(_translate("frameRelaySwitchConfigPageWidget", "Mapping"))
self.uiMappingTreeWidget.headerItem().setText(0, _translate("frameRelaySwitchConfigPageWidget", "Port:DLCI"))
self.uiMappingTreeWidget.headerItem().setText(1, _translate("frameRelaySwitchConfigPageWidget", "Port:DLCI"))
self.uiFrameRelaySourceGroupBox.setTitle(_translate("frameRelaySwitchConfigPageWidget", "Source"))
self.uiSourcePortLabel.setText(_translate("frameRelaySwitchConfigPageWidget", "Port:"))
self.uiSourceDLCILabel.setText(_translate("frameRelaySwitchConfigPageWidget", "DLCI:"))
self.uiFrameRelayDestinationGroupBox.setTitle(_translate("frameRelaySwitchConfigPageWidget", "Destination"))
self.uiDestinationPortLabel.setText(_translate("frameRelaySwitchConfigPageWidget", "Port:"))
self.uiDestinationDLCILabel.setText(_translate("frameRelaySwitchConfigPageWidget", "DLCI:"))
self.uiAddPushButton.setText(_translate("frameRelaySwitchConfigPageWidget", "&Add"))
self.uiDeletePushButton.setText(_translate("frameRelaySwitchConfigPageWidget", "&Delete"))

View File

@@ -1,153 +1,141 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file '/home/grossmj/PycharmProjects/gns3-gui/gns3/modules/dynamips/ui/ios_router_configuration_page.ui'
# Form implementation generated from reading ui file '/Users/noplay/code/gns3/gns3-gui/gns3/modules/dynamips/ui/ios_router_configuration_page.ui'
#
# Created: Sat Mar 14 16:29:27 2015
# by: PyQt4 UI code generator 4.10.4
# Created: Fri Apr 17 10:44:33 2015
# by: PyQt5 UI code generator 5.4
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
from gns3.qt import QtCore, QtGui, QtWidgets
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_iosRouterConfigPageWidget:
class Ui_iosRouterConfigPageWidget(object):
def setupUi(self, iosRouterConfigPageWidget):
iosRouterConfigPageWidget.setObjectName(_fromUtf8("iosRouterConfigPageWidget"))
iosRouterConfigPageWidget.setObjectName("iosRouterConfigPageWidget")
iosRouterConfigPageWidget.resize(449, 491)
self.vboxlayout = QtGui.QVBoxLayout(iosRouterConfigPageWidget)
self.vboxlayout.setObjectName(_fromUtf8("vboxlayout"))
self.uiTabWidget = QtGui.QTabWidget(iosRouterConfigPageWidget)
self.uiTabWidget.setObjectName(_fromUtf8("uiTabWidget"))
self.uiGeneralPageWidget = QtGui.QWidget()
self.uiGeneralPageWidget.setObjectName(_fromUtf8("uiGeneralPageWidget"))
self.gridLayout_2 = QtGui.QGridLayout(self.uiGeneralPageWidget)
self.gridLayout_2.setObjectName(_fromUtf8("gridLayout_2"))
self.uiNameLabel = QtGui.QLabel(self.uiGeneralPageWidget)
self.uiNameLabel.setObjectName(_fromUtf8("uiNameLabel"))
self.vboxlayout = QtWidgets.QVBoxLayout(iosRouterConfigPageWidget)
self.vboxlayout.setObjectName("vboxlayout")
self.uiTabWidget = QtWidgets.QTabWidget(iosRouterConfigPageWidget)
self.uiTabWidget.setObjectName("uiTabWidget")
self.uiGeneralPageWidget = QtWidgets.QWidget()
self.uiGeneralPageWidget.setObjectName("uiGeneralPageWidget")
self.gridLayout_2 = QtWidgets.QGridLayout(self.uiGeneralPageWidget)
self.gridLayout_2.setObjectName("gridLayout_2")
self.uiNameLabel = QtWidgets.QLabel(self.uiGeneralPageWidget)
self.uiNameLabel.setObjectName("uiNameLabel")
self.gridLayout_2.addWidget(self.uiNameLabel, 0, 0, 1, 1)
self.uiNameLineEdit = QtGui.QLineEdit(self.uiGeneralPageWidget)
self.uiNameLineEdit.setObjectName(_fromUtf8("uiNameLineEdit"))
self.uiNameLineEdit = QtWidgets.QLineEdit(self.uiGeneralPageWidget)
self.uiNameLineEdit.setObjectName("uiNameLineEdit")
self.gridLayout_2.addWidget(self.uiNameLineEdit, 0, 1, 1, 1)
self.uiPlatformLabel = QtGui.QLabel(self.uiGeneralPageWidget)
self.uiPlatformLabel.setObjectName(_fromUtf8("uiPlatformLabel"))
self.uiPlatformLabel = QtWidgets.QLabel(self.uiGeneralPageWidget)
self.uiPlatformLabel.setObjectName("uiPlatformLabel")
self.gridLayout_2.addWidget(self.uiPlatformLabel, 1, 0, 1, 1)
self.uiPlatformTextLabel = QtGui.QLabel(self.uiGeneralPageWidget)
self.uiPlatformTextLabel.setText(_fromUtf8(""))
self.uiPlatformTextLabel.setObjectName(_fromUtf8("uiPlatformTextLabel"))
self.uiPlatformTextLabel = QtWidgets.QLabel(self.uiGeneralPageWidget)
self.uiPlatformTextLabel.setText("")
self.uiPlatformTextLabel.setObjectName("uiPlatformTextLabel")
self.gridLayout_2.addWidget(self.uiPlatformTextLabel, 1, 1, 1, 1)
self.uiChassisLabel = QtGui.QLabel(self.uiGeneralPageWidget)
self.uiChassisLabel.setObjectName(_fromUtf8("uiChassisLabel"))
self.uiChassisLabel = QtWidgets.QLabel(self.uiGeneralPageWidget)
self.uiChassisLabel.setObjectName("uiChassisLabel")
self.gridLayout_2.addWidget(self.uiChassisLabel, 2, 0, 1, 1)
self.uiChassisTextLabel = QtGui.QLabel(self.uiGeneralPageWidget)
self.uiChassisTextLabel.setText(_fromUtf8(""))
self.uiChassisTextLabel.setObjectName(_fromUtf8("uiChassisTextLabel"))
self.uiChassisTextLabel = QtWidgets.QLabel(self.uiGeneralPageWidget)
self.uiChassisTextLabel.setText("")
self.uiChassisTextLabel.setObjectName("uiChassisTextLabel")
self.gridLayout_2.addWidget(self.uiChassisTextLabel, 2, 1, 1, 1)
self.uiIOSImageLabel = QtGui.QLabel(self.uiGeneralPageWidget)
self.uiIOSImageLabel.setObjectName(_fromUtf8("uiIOSImageLabel"))
self.uiIOSImageLabel = QtWidgets.QLabel(self.uiGeneralPageWidget)
self.uiIOSImageLabel.setObjectName("uiIOSImageLabel")
self.gridLayout_2.addWidget(self.uiIOSImageLabel, 3, 0, 1, 1)
self.horizontalLayout_5 = QtGui.QHBoxLayout()
self.horizontalLayout_5.setObjectName(_fromUtf8("horizontalLayout_5"))
self.uiIOSImageLineEdit = QtGui.QLineEdit(self.uiGeneralPageWidget)
self.uiIOSImageLineEdit.setObjectName(_fromUtf8("uiIOSImageLineEdit"))
self.horizontalLayout_5 = QtWidgets.QHBoxLayout()
self.horizontalLayout_5.setObjectName("horizontalLayout_5")
self.uiIOSImageLineEdit = QtWidgets.QLineEdit(self.uiGeneralPageWidget)
self.uiIOSImageLineEdit.setObjectName("uiIOSImageLineEdit")
self.horizontalLayout_5.addWidget(self.uiIOSImageLineEdit)
self.uiIOSImageToolButton = QtGui.QToolButton(self.uiGeneralPageWidget)
self.uiIOSImageToolButton = QtWidgets.QToolButton(self.uiGeneralPageWidget)
self.uiIOSImageToolButton.setToolButtonStyle(QtCore.Qt.ToolButtonTextOnly)
self.uiIOSImageToolButton.setObjectName(_fromUtf8("uiIOSImageToolButton"))
self.uiIOSImageToolButton.setObjectName("uiIOSImageToolButton")
self.horizontalLayout_5.addWidget(self.uiIOSImageToolButton)
self.gridLayout_2.addLayout(self.horizontalLayout_5, 3, 1, 1, 1)
self.uiStartupConfigLabel = QtGui.QLabel(self.uiGeneralPageWidget)
self.uiStartupConfigLabel.setObjectName(_fromUtf8("uiStartupConfigLabel"))
self.uiStartupConfigLabel = QtWidgets.QLabel(self.uiGeneralPageWidget)
self.uiStartupConfigLabel.setObjectName("uiStartupConfigLabel")
self.gridLayout_2.addWidget(self.uiStartupConfigLabel, 4, 0, 1, 1)
self.horizontalLayout_4 = QtGui.QHBoxLayout()
self.horizontalLayout_4.setObjectName(_fromUtf8("horizontalLayout_4"))
self.uiStartupConfigLineEdit = QtGui.QLineEdit(self.uiGeneralPageWidget)
self.uiStartupConfigLineEdit.setObjectName(_fromUtf8("uiStartupConfigLineEdit"))
self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
self.horizontalLayout_4.setObjectName("horizontalLayout_4")
self.uiStartupConfigLineEdit = QtWidgets.QLineEdit(self.uiGeneralPageWidget)
self.uiStartupConfigLineEdit.setObjectName("uiStartupConfigLineEdit")
self.horizontalLayout_4.addWidget(self.uiStartupConfigLineEdit)
self.uiStartupConfigToolButton = QtGui.QToolButton(self.uiGeneralPageWidget)
self.uiStartupConfigToolButton = QtWidgets.QToolButton(self.uiGeneralPageWidget)
self.uiStartupConfigToolButton.setToolButtonStyle(QtCore.Qt.ToolButtonTextOnly)
self.uiStartupConfigToolButton.setObjectName(_fromUtf8("uiStartupConfigToolButton"))
self.uiStartupConfigToolButton.setObjectName("uiStartupConfigToolButton")
self.horizontalLayout_4.addWidget(self.uiStartupConfigToolButton)
self.gridLayout_2.addLayout(self.horizontalLayout_4, 4, 1, 1, 1)
self.uiPrivateConfigLabel = QtGui.QLabel(self.uiGeneralPageWidget)
self.uiPrivateConfigLabel.setObjectName(_fromUtf8("uiPrivateConfigLabel"))
self.uiPrivateConfigLabel = QtWidgets.QLabel(self.uiGeneralPageWidget)
self.uiPrivateConfigLabel.setObjectName("uiPrivateConfigLabel")
self.gridLayout_2.addWidget(self.uiPrivateConfigLabel, 5, 0, 1, 1)
self.horizontalLayout_6 = QtGui.QHBoxLayout()
self.horizontalLayout_6.setObjectName(_fromUtf8("horizontalLayout_6"))
self.uiPrivateConfigLineEdit = QtGui.QLineEdit(self.uiGeneralPageWidget)
self.uiPrivateConfigLineEdit.setObjectName(_fromUtf8("uiPrivateConfigLineEdit"))
self.horizontalLayout_6 = QtWidgets.QHBoxLayout()
self.horizontalLayout_6.setObjectName("horizontalLayout_6")
self.uiPrivateConfigLineEdit = QtWidgets.QLineEdit(self.uiGeneralPageWidget)
self.uiPrivateConfigLineEdit.setObjectName("uiPrivateConfigLineEdit")
self.horizontalLayout_6.addWidget(self.uiPrivateConfigLineEdit)
self.uiPrivateConfigToolButton = QtGui.QToolButton(self.uiGeneralPageWidget)
self.uiPrivateConfigToolButton = QtWidgets.QToolButton(self.uiGeneralPageWidget)
self.uiPrivateConfigToolButton.setToolButtonStyle(QtCore.Qt.ToolButtonTextOnly)
self.uiPrivateConfigToolButton.setObjectName(_fromUtf8("uiPrivateConfigToolButton"))
self.uiPrivateConfigToolButton.setObjectName("uiPrivateConfigToolButton")
self.horizontalLayout_6.addWidget(self.uiPrivateConfigToolButton)
self.gridLayout_2.addLayout(self.horizontalLayout_6, 5, 1, 1, 1)
self.uiConsolePortLabel = QtGui.QLabel(self.uiGeneralPageWidget)
self.uiConsolePortLabel.setObjectName(_fromUtf8("uiConsolePortLabel"))
self.uiConsolePortLabel = QtWidgets.QLabel(self.uiGeneralPageWidget)
self.uiConsolePortLabel.setObjectName("uiConsolePortLabel")
self.gridLayout_2.addWidget(self.uiConsolePortLabel, 6, 0, 1, 1)
self.uiConsolePortSpinBox = QtGui.QSpinBox(self.uiGeneralPageWidget)
self.uiConsolePortSpinBox = QtWidgets.QSpinBox(self.uiGeneralPageWidget)
self.uiConsolePortSpinBox.setMaximum(65535)
self.uiConsolePortSpinBox.setObjectName(_fromUtf8("uiConsolePortSpinBox"))
self.uiConsolePortSpinBox.setObjectName("uiConsolePortSpinBox")
self.gridLayout_2.addWidget(self.uiConsolePortSpinBox, 6, 1, 1, 1)
self.uiAuxPortLabel = QtGui.QLabel(self.uiGeneralPageWidget)
self.uiAuxPortLabel.setObjectName(_fromUtf8("uiAuxPortLabel"))
self.uiAuxPortLabel = QtWidgets.QLabel(self.uiGeneralPageWidget)
self.uiAuxPortLabel.setObjectName("uiAuxPortLabel")
self.gridLayout_2.addWidget(self.uiAuxPortLabel, 7, 0, 1, 1)
self.uiAuxPortSpinBox = QtGui.QSpinBox(self.uiGeneralPageWidget)
self.uiAuxPortSpinBox = QtWidgets.QSpinBox(self.uiGeneralPageWidget)
self.uiAuxPortSpinBox.setMaximum(65535)
self.uiAuxPortSpinBox.setObjectName(_fromUtf8("uiAuxPortSpinBox"))
self.uiAuxPortSpinBox.setObjectName("uiAuxPortSpinBox")
self.gridLayout_2.addWidget(self.uiAuxPortSpinBox, 7, 1, 1, 1)
self.uiMidplaneLabel = QtGui.QLabel(self.uiGeneralPageWidget)
self.uiMidplaneLabel.setObjectName(_fromUtf8("uiMidplaneLabel"))
self.uiMidplaneLabel = QtWidgets.QLabel(self.uiGeneralPageWidget)
self.uiMidplaneLabel.setObjectName("uiMidplaneLabel")
self.gridLayout_2.addWidget(self.uiMidplaneLabel, 8, 0, 1, 1)
self.uiMidplaneComboBox = QtGui.QComboBox(self.uiGeneralPageWidget)
self.uiMidplaneComboBox = QtWidgets.QComboBox(self.uiGeneralPageWidget)
self.uiMidplaneComboBox.setEnabled(True)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiMidplaneComboBox.sizePolicy().hasHeightForWidth())
self.uiMidplaneComboBox.setSizePolicy(sizePolicy)
self.uiMidplaneComboBox.setObjectName(_fromUtf8("uiMidplaneComboBox"))
self.uiMidplaneComboBox.setObjectName("uiMidplaneComboBox")
self.gridLayout_2.addWidget(self.uiMidplaneComboBox, 8, 1, 1, 1)
self.uiNPELabel = QtGui.QLabel(self.uiGeneralPageWidget)
self.uiNPELabel.setObjectName(_fromUtf8("uiNPELabel"))
self.uiNPELabel = QtWidgets.QLabel(self.uiGeneralPageWidget)
self.uiNPELabel.setObjectName("uiNPELabel")
self.gridLayout_2.addWidget(self.uiNPELabel, 9, 0, 1, 1)
self.uiNPEComboBox = QtGui.QComboBox(self.uiGeneralPageWidget)
self.uiNPEComboBox = QtWidgets.QComboBox(self.uiGeneralPageWidget)
self.uiNPEComboBox.setEnabled(True)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiNPEComboBox.sizePolicy().hasHeightForWidth())
self.uiNPEComboBox.setSizePolicy(sizePolicy)
self.uiNPEComboBox.setObjectName(_fromUtf8("uiNPEComboBox"))
self.uiNPEComboBox.setObjectName("uiNPEComboBox")
self.gridLayout_2.addWidget(self.uiNPEComboBox, 9, 1, 1, 1)
spacerItem = QtGui.QSpacerItem(263, 151, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
spacerItem = QtWidgets.QSpacerItem(263, 151, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.gridLayout_2.addItem(spacerItem, 10, 1, 1, 1)
self.uiTabWidget.addTab(self.uiGeneralPageWidget, _fromUtf8(""))
self.uiMemoriesPageWidget = QtGui.QWidget()
self.uiMemoriesPageWidget.setObjectName(_fromUtf8("uiMemoriesPageWidget"))
self.verticalLayout_2 = QtGui.QVBoxLayout(self.uiMemoriesPageWidget)
self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2"))
self.uiMemoriesGroupBox = QtGui.QGroupBox(self.uiMemoriesPageWidget)
self.uiMemoriesGroupBox.setObjectName(_fromUtf8("uiMemoriesGroupBox"))
self.gridLayout_5 = QtGui.QGridLayout(self.uiMemoriesGroupBox)
self.gridLayout_5.setObjectName(_fromUtf8("gridLayout_5"))
self.uiRamLabel = QtGui.QLabel(self.uiMemoriesGroupBox)
self.uiRamLabel.setObjectName(_fromUtf8("uiRamLabel"))
self.uiTabWidget.addTab(self.uiGeneralPageWidget, "")
self.uiMemoriesPageWidget = QtWidgets.QWidget()
self.uiMemoriesPageWidget.setObjectName("uiMemoriesPageWidget")
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.uiMemoriesPageWidget)
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.uiMemoriesGroupBox = QtWidgets.QGroupBox(self.uiMemoriesPageWidget)
self.uiMemoriesGroupBox.setObjectName("uiMemoriesGroupBox")
self.gridLayout_5 = QtWidgets.QGridLayout(self.uiMemoriesGroupBox)
self.gridLayout_5.setObjectName("gridLayout_5")
self.uiRamLabel = QtWidgets.QLabel(self.uiMemoriesGroupBox)
self.uiRamLabel.setObjectName("uiRamLabel")
self.gridLayout_5.addWidget(self.uiRamLabel, 0, 0, 1, 1)
self.uiRamSpinBox = QtGui.QSpinBox(self.uiMemoriesGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.uiRamSpinBox = QtWidgets.QSpinBox(self.uiMemoriesGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiRamSpinBox.sizePolicy().hasHeightForWidth())
@@ -156,13 +144,13 @@ class Ui_iosRouterConfigPageWidget(object):
self.uiRamSpinBox.setMaximum(65535)
self.uiRamSpinBox.setSingleStep(32)
self.uiRamSpinBox.setProperty("value", 128)
self.uiRamSpinBox.setObjectName(_fromUtf8("uiRamSpinBox"))
self.uiRamSpinBox.setObjectName("uiRamSpinBox")
self.gridLayout_5.addWidget(self.uiRamSpinBox, 0, 1, 1, 1)
self.uiNvramLabel = QtGui.QLabel(self.uiMemoriesGroupBox)
self.uiNvramLabel.setObjectName(_fromUtf8("uiNvramLabel"))
self.uiNvramLabel = QtWidgets.QLabel(self.uiMemoriesGroupBox)
self.uiNvramLabel.setObjectName("uiNvramLabel")
self.gridLayout_5.addWidget(self.uiNvramLabel, 1, 0, 1, 1)
self.uiNvramSpinBox = QtGui.QSpinBox(self.uiMemoriesGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.uiNvramSpinBox = QtWidgets.QSpinBox(self.uiMemoriesGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiNvramSpinBox.sizePolicy().hasHeightForWidth())
@@ -171,14 +159,14 @@ class Ui_iosRouterConfigPageWidget(object):
self.uiNvramSpinBox.setMaximum(65535)
self.uiNvramSpinBox.setSingleStep(32)
self.uiNvramSpinBox.setProperty("value", 128)
self.uiNvramSpinBox.setObjectName(_fromUtf8("uiNvramSpinBox"))
self.uiNvramSpinBox.setObjectName("uiNvramSpinBox")
self.gridLayout_5.addWidget(self.uiNvramSpinBox, 1, 1, 1, 1)
self.uiIomemLabel = QtGui.QLabel(self.uiMemoriesGroupBox)
self.uiIomemLabel.setObjectName(_fromUtf8("uiIomemLabel"))
self.uiIomemLabel = QtWidgets.QLabel(self.uiMemoriesGroupBox)
self.uiIomemLabel.setObjectName("uiIomemLabel")
self.gridLayout_5.addWidget(self.uiIomemLabel, 2, 0, 1, 1)
self.uiIomemSpinBox = QtGui.QSpinBox(self.uiMemoriesGroupBox)
self.uiIomemSpinBox = QtWidgets.QSpinBox(self.uiMemoriesGroupBox)
self.uiIomemSpinBox.setEnabled(True)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiIomemSpinBox.sizePolicy().hasHeightForWidth())
@@ -186,206 +174,206 @@ class Ui_iosRouterConfigPageWidget(object):
self.uiIomemSpinBox.setMaximum(100)
self.uiIomemSpinBox.setSingleStep(5)
self.uiIomemSpinBox.setProperty("value", 5)
self.uiIomemSpinBox.setObjectName(_fromUtf8("uiIomemSpinBox"))
self.uiIomemSpinBox.setObjectName("uiIomemSpinBox")
self.gridLayout_5.addWidget(self.uiIomemSpinBox, 2, 1, 1, 1)
self.verticalLayout_2.addWidget(self.uiMemoriesGroupBox)
self.uiDisksGroupBox = QtGui.QGroupBox(self.uiMemoriesPageWidget)
self.uiDisksGroupBox.setObjectName(_fromUtf8("uiDisksGroupBox"))
self.gridlayout = QtGui.QGridLayout(self.uiDisksGroupBox)
self.gridlayout.setObjectName(_fromUtf8("gridlayout"))
self.uiDisk0Label = QtGui.QLabel(self.uiDisksGroupBox)
self.uiDisk0Label.setObjectName(_fromUtf8("uiDisk0Label"))
self.uiDisksGroupBox = QtWidgets.QGroupBox(self.uiMemoriesPageWidget)
self.uiDisksGroupBox.setObjectName("uiDisksGroupBox")
self.gridlayout = QtWidgets.QGridLayout(self.uiDisksGroupBox)
self.gridlayout.setObjectName("gridlayout")
self.uiDisk0Label = QtWidgets.QLabel(self.uiDisksGroupBox)
self.uiDisk0Label.setObjectName("uiDisk0Label")
self.gridlayout.addWidget(self.uiDisk0Label, 0, 0, 1, 1)
self.uiDisk0SpinBox = QtGui.QSpinBox(self.uiDisksGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.uiDisk0SpinBox = QtWidgets.QSpinBox(self.uiDisksGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiDisk0SpinBox.sizePolicy().hasHeightForWidth())
self.uiDisk0SpinBox.setSizePolicy(sizePolicy)
self.uiDisk0SpinBox.setMaximum(99999)
self.uiDisk0SpinBox.setSingleStep(4)
self.uiDisk0SpinBox.setObjectName(_fromUtf8("uiDisk0SpinBox"))
self.uiDisk0SpinBox.setObjectName("uiDisk0SpinBox")
self.gridlayout.addWidget(self.uiDisk0SpinBox, 0, 1, 1, 1)
self.uiDisk1Label = QtGui.QLabel(self.uiDisksGroupBox)
self.uiDisk1Label.setObjectName(_fromUtf8("uiDisk1Label"))
self.uiDisk1Label = QtWidgets.QLabel(self.uiDisksGroupBox)
self.uiDisk1Label.setObjectName("uiDisk1Label")
self.gridlayout.addWidget(self.uiDisk1Label, 1, 0, 1, 1)
self.uiDisk1SpinBox = QtGui.QSpinBox(self.uiDisksGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.uiDisk1SpinBox = QtWidgets.QSpinBox(self.uiDisksGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiDisk1SpinBox.sizePolicy().hasHeightForWidth())
self.uiDisk1SpinBox.setSizePolicy(sizePolicy)
self.uiDisk1SpinBox.setMaximum(99999)
self.uiDisk1SpinBox.setSingleStep(4)
self.uiDisk1SpinBox.setObjectName(_fromUtf8("uiDisk1SpinBox"))
self.uiDisk1SpinBox.setObjectName("uiDisk1SpinBox")
self.gridlayout.addWidget(self.uiDisk1SpinBox, 1, 1, 1, 1)
self.verticalLayout_2.addWidget(self.uiDisksGroupBox)
spacerItem1 = QtGui.QSpacerItem(20, 21, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
spacerItem1 = QtWidgets.QSpacerItem(20, 21, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout_2.addItem(spacerItem1)
self.uiTabWidget.addTab(self.uiMemoriesPageWidget, _fromUtf8(""))
self.uiSlotsPageWidget = QtGui.QWidget()
self.uiSlotsPageWidget.setObjectName(_fromUtf8("uiSlotsPageWidget"))
self.verticalLayout = QtGui.QVBoxLayout(self.uiSlotsPageWidget)
self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
self.uiAdaptersGroupBox = QtGui.QGroupBox(self.uiSlotsPageWidget)
self.uiAdaptersGroupBox.setObjectName(_fromUtf8("uiAdaptersGroupBox"))
self.gridLayout = QtGui.QGridLayout(self.uiAdaptersGroupBox)
self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
self.uiSlot1comboBox = QtGui.QComboBox(self.uiAdaptersGroupBox)
self.uiSlot1comboBox.setObjectName(_fromUtf8("uiSlot1comboBox"))
self.uiTabWidget.addTab(self.uiMemoriesPageWidget, "")
self.uiSlotsPageWidget = QtWidgets.QWidget()
self.uiSlotsPageWidget.setObjectName("uiSlotsPageWidget")
self.verticalLayout = QtWidgets.QVBoxLayout(self.uiSlotsPageWidget)
self.verticalLayout.setObjectName("verticalLayout")
self.uiAdaptersGroupBox = QtWidgets.QGroupBox(self.uiSlotsPageWidget)
self.uiAdaptersGroupBox.setObjectName("uiAdaptersGroupBox")
self.gridLayout = QtWidgets.QGridLayout(self.uiAdaptersGroupBox)
self.gridLayout.setObjectName("gridLayout")
self.uiSlot1comboBox = QtWidgets.QComboBox(self.uiAdaptersGroupBox)
self.uiSlot1comboBox.setObjectName("uiSlot1comboBox")
self.gridLayout.addWidget(self.uiSlot1comboBox, 1, 1, 1, 1)
self.uiSlot0Label = QtGui.QLabel(self.uiAdaptersGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Preferred)
self.uiSlot0Label = QtWidgets.QLabel(self.uiAdaptersGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiSlot0Label.sizePolicy().hasHeightForWidth())
self.uiSlot0Label.setSizePolicy(sizePolicy)
self.uiSlot0Label.setObjectName(_fromUtf8("uiSlot0Label"))
self.uiSlot0Label.setObjectName("uiSlot0Label")
self.gridLayout.addWidget(self.uiSlot0Label, 0, 0, 1, 1)
self.uiSlot0comboBox = QtGui.QComboBox(self.uiAdaptersGroupBox)
self.uiSlot0comboBox.setObjectName(_fromUtf8("uiSlot0comboBox"))
self.uiSlot0comboBox = QtWidgets.QComboBox(self.uiAdaptersGroupBox)
self.uiSlot0comboBox.setObjectName("uiSlot0comboBox")
self.gridLayout.addWidget(self.uiSlot0comboBox, 0, 1, 1, 1)
self.uiSlot1Label = QtGui.QLabel(self.uiAdaptersGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Preferred)
self.uiSlot1Label = QtWidgets.QLabel(self.uiAdaptersGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiSlot1Label.sizePolicy().hasHeightForWidth())
self.uiSlot1Label.setSizePolicy(sizePolicy)
self.uiSlot1Label.setObjectName(_fromUtf8("uiSlot1Label"))
self.uiSlot1Label.setObjectName("uiSlot1Label")
self.gridLayout.addWidget(self.uiSlot1Label, 1, 0, 1, 1)
self.uiSlot2Label = QtGui.QLabel(self.uiAdaptersGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Preferred)
self.uiSlot2Label = QtWidgets.QLabel(self.uiAdaptersGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiSlot2Label.sizePolicy().hasHeightForWidth())
self.uiSlot2Label.setSizePolicy(sizePolicy)
self.uiSlot2Label.setObjectName(_fromUtf8("uiSlot2Label"))
self.uiSlot2Label.setObjectName("uiSlot2Label")
self.gridLayout.addWidget(self.uiSlot2Label, 2, 0, 1, 1)
self.uiSlot2comboBox = QtGui.QComboBox(self.uiAdaptersGroupBox)
self.uiSlot2comboBox.setObjectName(_fromUtf8("uiSlot2comboBox"))
self.uiSlot2comboBox = QtWidgets.QComboBox(self.uiAdaptersGroupBox)
self.uiSlot2comboBox.setObjectName("uiSlot2comboBox")
self.gridLayout.addWidget(self.uiSlot2comboBox, 2, 1, 1, 1)
self.uiSlot3Label = QtGui.QLabel(self.uiAdaptersGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Preferred)
self.uiSlot3Label = QtWidgets.QLabel(self.uiAdaptersGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiSlot3Label.sizePolicy().hasHeightForWidth())
self.uiSlot3Label.setSizePolicy(sizePolicy)
self.uiSlot3Label.setObjectName(_fromUtf8("uiSlot3Label"))
self.uiSlot3Label.setObjectName("uiSlot3Label")
self.gridLayout.addWidget(self.uiSlot3Label, 3, 0, 1, 1)
self.uiSlot3comboBox = QtGui.QComboBox(self.uiAdaptersGroupBox)
self.uiSlot3comboBox.setObjectName(_fromUtf8("uiSlot3comboBox"))
self.uiSlot3comboBox = QtWidgets.QComboBox(self.uiAdaptersGroupBox)
self.uiSlot3comboBox.setObjectName("uiSlot3comboBox")
self.gridLayout.addWidget(self.uiSlot3comboBox, 3, 1, 1, 1)
self.uiSlot4Label = QtGui.QLabel(self.uiAdaptersGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Preferred)
self.uiSlot4Label = QtWidgets.QLabel(self.uiAdaptersGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiSlot4Label.sizePolicy().hasHeightForWidth())
self.uiSlot4Label.setSizePolicy(sizePolicy)
self.uiSlot4Label.setObjectName(_fromUtf8("uiSlot4Label"))
self.uiSlot4Label.setObjectName("uiSlot4Label")
self.gridLayout.addWidget(self.uiSlot4Label, 4, 0, 1, 1)
self.uiSlot4comboBox = QtGui.QComboBox(self.uiAdaptersGroupBox)
self.uiSlot4comboBox.setObjectName(_fromUtf8("uiSlot4comboBox"))
self.uiSlot4comboBox = QtWidgets.QComboBox(self.uiAdaptersGroupBox)
self.uiSlot4comboBox.setObjectName("uiSlot4comboBox")
self.gridLayout.addWidget(self.uiSlot4comboBox, 4, 1, 1, 1)
self.uiSlot5Label = QtGui.QLabel(self.uiAdaptersGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Preferred)
self.uiSlot5Label = QtWidgets.QLabel(self.uiAdaptersGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiSlot5Label.sizePolicy().hasHeightForWidth())
self.uiSlot5Label.setSizePolicy(sizePolicy)
self.uiSlot5Label.setObjectName(_fromUtf8("uiSlot5Label"))
self.uiSlot5Label.setObjectName("uiSlot5Label")
self.gridLayout.addWidget(self.uiSlot5Label, 5, 0, 1, 1)
self.uiSlot5comboBox = QtGui.QComboBox(self.uiAdaptersGroupBox)
self.uiSlot5comboBox.setObjectName(_fromUtf8("uiSlot5comboBox"))
self.uiSlot5comboBox = QtWidgets.QComboBox(self.uiAdaptersGroupBox)
self.uiSlot5comboBox.setObjectName("uiSlot5comboBox")
self.gridLayout.addWidget(self.uiSlot5comboBox, 5, 1, 1, 1)
self.uiSlot6Label = QtGui.QLabel(self.uiAdaptersGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Preferred)
self.uiSlot6Label = QtWidgets.QLabel(self.uiAdaptersGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiSlot6Label.sizePolicy().hasHeightForWidth())
self.uiSlot6Label.setSizePolicy(sizePolicy)
self.uiSlot6Label.setObjectName(_fromUtf8("uiSlot6Label"))
self.uiSlot6Label.setObjectName("uiSlot6Label")
self.gridLayout.addWidget(self.uiSlot6Label, 6, 0, 1, 1)
self.uiSlot6comboBox = QtGui.QComboBox(self.uiAdaptersGroupBox)
self.uiSlot6comboBox.setObjectName(_fromUtf8("uiSlot6comboBox"))
self.uiSlot6comboBox = QtWidgets.QComboBox(self.uiAdaptersGroupBox)
self.uiSlot6comboBox.setObjectName("uiSlot6comboBox")
self.gridLayout.addWidget(self.uiSlot6comboBox, 6, 1, 1, 1)
self.verticalLayout.addWidget(self.uiAdaptersGroupBox)
self.uiWicsGroupBox = QtGui.QGroupBox(self.uiSlotsPageWidget)
self.uiWicsGroupBox.setObjectName(_fromUtf8("uiWicsGroupBox"))
self.gridlayout1 = QtGui.QGridLayout(self.uiWicsGroupBox)
self.gridlayout1.setObjectName(_fromUtf8("gridlayout1"))
self.uiWic0Label = QtGui.QLabel(self.uiWicsGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Preferred)
self.uiWicsGroupBox = QtWidgets.QGroupBox(self.uiSlotsPageWidget)
self.uiWicsGroupBox.setObjectName("uiWicsGroupBox")
self.gridlayout1 = QtWidgets.QGridLayout(self.uiWicsGroupBox)
self.gridlayout1.setObjectName("gridlayout1")
self.uiWic0Label = QtWidgets.QLabel(self.uiWicsGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiWic0Label.sizePolicy().hasHeightForWidth())
self.uiWic0Label.setSizePolicy(sizePolicy)
self.uiWic0Label.setObjectName(_fromUtf8("uiWic0Label"))
self.uiWic0Label.setObjectName("uiWic0Label")
self.gridlayout1.addWidget(self.uiWic0Label, 0, 0, 1, 1)
self.uiWic0comboBox = QtGui.QComboBox(self.uiWicsGroupBox)
self.uiWic0comboBox.setObjectName(_fromUtf8("uiWic0comboBox"))
self.uiWic0comboBox = QtWidgets.QComboBox(self.uiWicsGroupBox)
self.uiWic0comboBox.setObjectName("uiWic0comboBox")
self.gridlayout1.addWidget(self.uiWic0comboBox, 0, 1, 1, 1)
self.uiWic1Label = QtGui.QLabel(self.uiWicsGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Preferred)
self.uiWic1Label = QtWidgets.QLabel(self.uiWicsGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiWic1Label.sizePolicy().hasHeightForWidth())
self.uiWic1Label.setSizePolicy(sizePolicy)
self.uiWic1Label.setObjectName(_fromUtf8("uiWic1Label"))
self.uiWic1Label.setObjectName("uiWic1Label")
self.gridlayout1.addWidget(self.uiWic1Label, 1, 0, 1, 1)
self.uiWic1comboBox = QtGui.QComboBox(self.uiWicsGroupBox)
self.uiWic1comboBox.setObjectName(_fromUtf8("uiWic1comboBox"))
self.uiWic1comboBox = QtWidgets.QComboBox(self.uiWicsGroupBox)
self.uiWic1comboBox.setObjectName("uiWic1comboBox")
self.gridlayout1.addWidget(self.uiWic1comboBox, 1, 1, 1, 1)
self.uiWic2Label = QtGui.QLabel(self.uiWicsGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Preferred)
self.uiWic2Label = QtWidgets.QLabel(self.uiWicsGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiWic2Label.sizePolicy().hasHeightForWidth())
self.uiWic2Label.setSizePolicy(sizePolicy)
self.uiWic2Label.setObjectName(_fromUtf8("uiWic2Label"))
self.uiWic2Label.setObjectName("uiWic2Label")
self.gridlayout1.addWidget(self.uiWic2Label, 2, 0, 1, 1)
self.uiWic2comboBox = QtGui.QComboBox(self.uiWicsGroupBox)
self.uiWic2comboBox.setObjectName(_fromUtf8("uiWic2comboBox"))
self.uiWic2comboBox = QtWidgets.QComboBox(self.uiWicsGroupBox)
self.uiWic2comboBox.setObjectName("uiWic2comboBox")
self.gridlayout1.addWidget(self.uiWic2comboBox, 2, 1, 1, 1)
self.verticalLayout.addWidget(self.uiWicsGroupBox)
spacerItem2 = QtGui.QSpacerItem(325, 31, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
spacerItem2 = QtWidgets.QSpacerItem(325, 31, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout.addItem(spacerItem2)
self.uiTabWidget.addTab(self.uiSlotsPageWidget, _fromUtf8(""))
self.uiAdvancedPageWidget = QtGui.QWidget()
self.uiAdvancedPageWidget.setObjectName(_fromUtf8("uiAdvancedPageWidget"))
self.verticalLayout_4 = QtGui.QVBoxLayout(self.uiAdvancedPageWidget)
self.verticalLayout_4.setObjectName(_fromUtf8("verticalLayout_4"))
self.uiSystemGroupBox = QtGui.QGroupBox(self.uiAdvancedPageWidget)
self.uiSystemGroupBox.setObjectName(_fromUtf8("uiSystemGroupBox"))
self.gridLayout_6 = QtGui.QGridLayout(self.uiSystemGroupBox)
self.gridLayout_6.setObjectName(_fromUtf8("gridLayout_6"))
self.uiSystemIdLineEdit = QtGui.QLineEdit(self.uiSystemGroupBox)
self.uiSystemIdLineEdit.setObjectName(_fromUtf8("uiSystemIdLineEdit"))
self.uiTabWidget.addTab(self.uiSlotsPageWidget, "")
self.uiAdvancedPageWidget = QtWidgets.QWidget()
self.uiAdvancedPageWidget.setObjectName("uiAdvancedPageWidget")
self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.uiAdvancedPageWidget)
self.verticalLayout_4.setObjectName("verticalLayout_4")
self.uiSystemGroupBox = QtWidgets.QGroupBox(self.uiAdvancedPageWidget)
self.uiSystemGroupBox.setObjectName("uiSystemGroupBox")
self.gridLayout_6 = QtWidgets.QGridLayout(self.uiSystemGroupBox)
self.gridLayout_6.setObjectName("gridLayout_6")
self.uiSystemIdLineEdit = QtWidgets.QLineEdit(self.uiSystemGroupBox)
self.uiSystemIdLineEdit.setObjectName("uiSystemIdLineEdit")
self.gridLayout_6.addWidget(self.uiSystemIdLineEdit, 0, 1, 1, 1)
self.label = QtGui.QLabel(self.uiSystemGroupBox)
self.label.setObjectName(_fromUtf8("label"))
self.label = QtWidgets.QLabel(self.uiSystemGroupBox)
self.label.setObjectName("label")
self.gridLayout_6.addWidget(self.label, 0, 0, 1, 1)
self.uiBaseMacLabel = QtGui.QLabel(self.uiSystemGroupBox)
self.uiBaseMacLabel.setObjectName(_fromUtf8("uiBaseMacLabel"))
self.uiBaseMacLabel = QtWidgets.QLabel(self.uiSystemGroupBox)
self.uiBaseMacLabel.setObjectName("uiBaseMacLabel")
self.gridLayout_6.addWidget(self.uiBaseMacLabel, 1, 0, 1, 1)
self.uiBaseMACLineEdit = QtGui.QLineEdit(self.uiSystemGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.uiBaseMACLineEdit = QtWidgets.QLineEdit(self.uiSystemGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiBaseMACLineEdit.sizePolicy().hasHeightForWidth())
self.uiBaseMACLineEdit.setSizePolicy(sizePolicy)
self.uiBaseMACLineEdit.setText(_fromUtf8(""))
self.uiBaseMACLineEdit.setObjectName(_fromUtf8("uiBaseMACLineEdit"))
self.uiBaseMACLineEdit.setText("")
self.uiBaseMACLineEdit.setObjectName("uiBaseMACLineEdit")
self.gridLayout_6.addWidget(self.uiBaseMACLineEdit, 1, 1, 1, 1)
self.verticalLayout_4.addWidget(self.uiSystemGroupBox)
self.uiOptimizationsGroupBox = QtGui.QGroupBox(self.uiAdvancedPageWidget)
self.uiOptimizationsGroupBox.setObjectName(_fromUtf8("uiOptimizationsGroupBox"))
self.gridLayout_4 = QtGui.QGridLayout(self.uiOptimizationsGroupBox)
self.gridLayout_4.setObjectName(_fromUtf8("gridLayout_4"))
self.uiExecAreaLabel = QtGui.QLabel(self.uiOptimizationsGroupBox)
self.uiExecAreaLabel.setObjectName(_fromUtf8("uiExecAreaLabel"))
self.uiOptimizationsGroupBox = QtWidgets.QGroupBox(self.uiAdvancedPageWidget)
self.uiOptimizationsGroupBox.setObjectName("uiOptimizationsGroupBox")
self.gridLayout_4 = QtWidgets.QGridLayout(self.uiOptimizationsGroupBox)
self.gridLayout_4.setObjectName("gridLayout_4")
self.uiExecAreaLabel = QtWidgets.QLabel(self.uiOptimizationsGroupBox)
self.uiExecAreaLabel.setObjectName("uiExecAreaLabel")
self.gridLayout_4.addWidget(self.uiExecAreaLabel, 3, 0, 1, 1)
self.uiExecAreaSpinBox = QtGui.QSpinBox(self.uiOptimizationsGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.uiExecAreaSpinBox = QtWidgets.QSpinBox(self.uiOptimizationsGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiExecAreaSpinBox.sizePolicy().hasHeightForWidth())
@@ -393,137 +381,137 @@ class Ui_iosRouterConfigPageWidget(object):
self.uiExecAreaSpinBox.setMaximum(4096)
self.uiExecAreaSpinBox.setSingleStep(4)
self.uiExecAreaSpinBox.setProperty("value", 64)
self.uiExecAreaSpinBox.setObjectName(_fromUtf8("uiExecAreaSpinBox"))
self.uiExecAreaSpinBox.setObjectName("uiExecAreaSpinBox")
self.gridLayout_4.addWidget(self.uiExecAreaSpinBox, 3, 1, 1, 1)
self.uiSparseMemoryCheckBox = QtGui.QCheckBox(self.uiOptimizationsGroupBox)
self.uiSparseMemoryCheckBox = QtWidgets.QCheckBox(self.uiOptimizationsGroupBox)
self.uiSparseMemoryCheckBox.setChecked(False)
self.uiSparseMemoryCheckBox.setObjectName(_fromUtf8("uiSparseMemoryCheckBox"))
self.uiSparseMemoryCheckBox.setObjectName("uiSparseMemoryCheckBox")
self.gridLayout_4.addWidget(self.uiSparseMemoryCheckBox, 5, 0, 1, 2)
self.uiIdlepcLabel = QtGui.QLabel(self.uiOptimizationsGroupBox)
self.uiIdlepcLabel.setObjectName(_fromUtf8("uiIdlepcLabel"))
self.uiIdlepcLabel = QtWidgets.QLabel(self.uiOptimizationsGroupBox)
self.uiIdlepcLabel.setObjectName("uiIdlepcLabel")
self.gridLayout_4.addWidget(self.uiIdlepcLabel, 0, 0, 1, 1)
self.uiIdlepcLineEdit = QtGui.QLineEdit(self.uiOptimizationsGroupBox)
self.uiIdlepcLineEdit.setObjectName(_fromUtf8("uiIdlepcLineEdit"))
self.uiIdlepcLineEdit = QtWidgets.QLineEdit(self.uiOptimizationsGroupBox)
self.uiIdlepcLineEdit.setObjectName("uiIdlepcLineEdit")
self.gridLayout_4.addWidget(self.uiIdlepcLineEdit, 0, 1, 1, 1)
self.uiIdlemaxLabel = QtGui.QLabel(self.uiOptimizationsGroupBox)
self.uiIdlemaxLabel.setObjectName(_fromUtf8("uiIdlemaxLabel"))
self.uiIdlemaxLabel = QtWidgets.QLabel(self.uiOptimizationsGroupBox)
self.uiIdlemaxLabel.setObjectName("uiIdlemaxLabel")
self.gridLayout_4.addWidget(self.uiIdlemaxLabel, 1, 0, 1, 1)
self.uiIdlemaxSpinBox = QtGui.QSpinBox(self.uiOptimizationsGroupBox)
self.uiIdlemaxSpinBox = QtWidgets.QSpinBox(self.uiOptimizationsGroupBox)
self.uiIdlemaxSpinBox.setMinimum(100)
self.uiIdlemaxSpinBox.setMaximum(10000)
self.uiIdlemaxSpinBox.setSingleStep(100)
self.uiIdlemaxSpinBox.setProperty("value", 500)
self.uiIdlemaxSpinBox.setObjectName(_fromUtf8("uiIdlemaxSpinBox"))
self.uiIdlemaxSpinBox.setObjectName("uiIdlemaxSpinBox")
self.gridLayout_4.addWidget(self.uiIdlemaxSpinBox, 1, 1, 1, 1)
self.uiIdlesleepLabel = QtGui.QLabel(self.uiOptimizationsGroupBox)
self.uiIdlesleepLabel.setObjectName(_fromUtf8("uiIdlesleepLabel"))
self.uiIdlesleepLabel = QtWidgets.QLabel(self.uiOptimizationsGroupBox)
self.uiIdlesleepLabel.setObjectName("uiIdlesleepLabel")
self.gridLayout_4.addWidget(self.uiIdlesleepLabel, 2, 0, 1, 1)
self.uiMmapCheckBox = QtGui.QCheckBox(self.uiOptimizationsGroupBox)
self.uiMmapCheckBox = QtWidgets.QCheckBox(self.uiOptimizationsGroupBox)
self.uiMmapCheckBox.setChecked(True)
self.uiMmapCheckBox.setObjectName(_fromUtf8("uiMmapCheckBox"))
self.uiMmapCheckBox.setObjectName("uiMmapCheckBox")
self.gridLayout_4.addWidget(self.uiMmapCheckBox, 4, 0, 1, 2)
self.uiIdlesleepSpinBox = QtGui.QSpinBox(self.uiOptimizationsGroupBox)
self.uiIdlesleepSpinBox = QtWidgets.QSpinBox(self.uiOptimizationsGroupBox)
self.uiIdlesleepSpinBox.setMinimum(1)
self.uiIdlesleepSpinBox.setMaximum(500)
self.uiIdlesleepSpinBox.setSingleStep(10)
self.uiIdlesleepSpinBox.setProperty("value", 30)
self.uiIdlesleepSpinBox.setObjectName(_fromUtf8("uiIdlesleepSpinBox"))
self.uiIdlesleepSpinBox.setObjectName("uiIdlesleepSpinBox")
self.gridLayout_4.addWidget(self.uiIdlesleepSpinBox, 2, 1, 1, 1)
self.verticalLayout_4.addWidget(self.uiOptimizationsGroupBox)
spacerItem3 = QtGui.QSpacerItem(304, 251, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
spacerItem3 = QtWidgets.QSpacerItem(304, 251, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout_4.addItem(spacerItem3)
self.uiTabWidget.addTab(self.uiAdvancedPageWidget, _fromUtf8(""))
self.uiEnvironmentPageWidget = QtGui.QWidget()
self.uiEnvironmentPageWidget.setObjectName(_fromUtf8("uiEnvironmentPageWidget"))
self.verticalLayout_3 = QtGui.QVBoxLayout(self.uiEnvironmentPageWidget)
self.verticalLayout_3.setObjectName(_fromUtf8("verticalLayout_3"))
self.uiPowerSuppliesGroupBox = QtGui.QGroupBox(self.uiEnvironmentPageWidget)
self.uiPowerSuppliesGroupBox.setObjectName(_fromUtf8("uiPowerSuppliesGroupBox"))
self.gridLayout_7 = QtGui.QGridLayout(self.uiPowerSuppliesGroupBox)
self.gridLayout_7.setObjectName(_fromUtf8("gridLayout_7"))
self.uiPowerSupply2Label = QtGui.QLabel(self.uiPowerSuppliesGroupBox)
self.uiPowerSupply2Label.setObjectName(_fromUtf8("uiPowerSupply2Label"))
self.uiTabWidget.addTab(self.uiAdvancedPageWidget, "")
self.uiEnvironmentPageWidget = QtWidgets.QWidget()
self.uiEnvironmentPageWidget.setObjectName("uiEnvironmentPageWidget")
self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.uiEnvironmentPageWidget)
self.verticalLayout_3.setObjectName("verticalLayout_3")
self.uiPowerSuppliesGroupBox = QtWidgets.QGroupBox(self.uiEnvironmentPageWidget)
self.uiPowerSuppliesGroupBox.setObjectName("uiPowerSuppliesGroupBox")
self.gridLayout_7 = QtWidgets.QGridLayout(self.uiPowerSuppliesGroupBox)
self.gridLayout_7.setObjectName("gridLayout_7")
self.uiPowerSupply2Label = QtWidgets.QLabel(self.uiPowerSuppliesGroupBox)
self.uiPowerSupply2Label.setObjectName("uiPowerSupply2Label")
self.gridLayout_7.addWidget(self.uiPowerSupply2Label, 1, 0, 1, 1)
self.uiPowerSupply1ComboBox = QtGui.QComboBox(self.uiPowerSuppliesGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.uiPowerSupply1ComboBox = QtWidgets.QComboBox(self.uiPowerSuppliesGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiPowerSupply1ComboBox.sizePolicy().hasHeightForWidth())
self.uiPowerSupply1ComboBox.setSizePolicy(sizePolicy)
self.uiPowerSupply1ComboBox.setObjectName(_fromUtf8("uiPowerSupply1ComboBox"))
self.uiPowerSupply1ComboBox.addItem(_fromUtf8(""))
self.uiPowerSupply1ComboBox.addItem(_fromUtf8(""))
self.uiPowerSupply1ComboBox.setObjectName("uiPowerSupply1ComboBox")
self.uiPowerSupply1ComboBox.addItem("")
self.uiPowerSupply1ComboBox.addItem("")
self.gridLayout_7.addWidget(self.uiPowerSupply1ComboBox, 0, 1, 1, 1)
self.uiPowerSupply1Label = QtGui.QLabel(self.uiPowerSuppliesGroupBox)
self.uiPowerSupply1Label.setObjectName(_fromUtf8("uiPowerSupply1Label"))
self.uiPowerSupply1Label = QtWidgets.QLabel(self.uiPowerSuppliesGroupBox)
self.uiPowerSupply1Label.setObjectName("uiPowerSupply1Label")
self.gridLayout_7.addWidget(self.uiPowerSupply1Label, 0, 0, 1, 1)
self.uiPowerSupply2ComboBox = QtGui.QComboBox(self.uiPowerSuppliesGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.uiPowerSupply2ComboBox = QtWidgets.QComboBox(self.uiPowerSuppliesGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiPowerSupply2ComboBox.sizePolicy().hasHeightForWidth())
self.uiPowerSupply2ComboBox.setSizePolicy(sizePolicy)
self.uiPowerSupply2ComboBox.setObjectName(_fromUtf8("uiPowerSupply2ComboBox"))
self.uiPowerSupply2ComboBox.addItem(_fromUtf8(""))
self.uiPowerSupply2ComboBox.addItem(_fromUtf8(""))
self.uiPowerSupply2ComboBox.setObjectName("uiPowerSupply2ComboBox")
self.uiPowerSupply2ComboBox.addItem("")
self.uiPowerSupply2ComboBox.addItem("")
self.gridLayout_7.addWidget(self.uiPowerSupply2ComboBox, 1, 1, 1, 1)
self.verticalLayout_3.addWidget(self.uiPowerSuppliesGroupBox)
self.uiSensorsGroupBox = QtGui.QGroupBox(self.uiEnvironmentPageWidget)
self.uiSensorsGroupBox.setObjectName(_fromUtf8("uiSensorsGroupBox"))
self.gridLayout_3 = QtGui.QGridLayout(self.uiSensorsGroupBox)
self.gridLayout_3.setObjectName(_fromUtf8("gridLayout_3"))
self.uiSensor1Label = QtGui.QLabel(self.uiSensorsGroupBox)
self.uiSensor1Label.setObjectName(_fromUtf8("uiSensor1Label"))
self.uiSensorsGroupBox = QtWidgets.QGroupBox(self.uiEnvironmentPageWidget)
self.uiSensorsGroupBox.setObjectName("uiSensorsGroupBox")
self.gridLayout_3 = QtWidgets.QGridLayout(self.uiSensorsGroupBox)
self.gridLayout_3.setObjectName("gridLayout_3")
self.uiSensor1Label = QtWidgets.QLabel(self.uiSensorsGroupBox)
self.uiSensor1Label.setObjectName("uiSensor1Label")
self.gridLayout_3.addWidget(self.uiSensor1Label, 0, 0, 1, 1)
self.uiSensor1SpinBox = QtGui.QSpinBox(self.uiSensorsGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.uiSensor1SpinBox = QtWidgets.QSpinBox(self.uiSensorsGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiSensor1SpinBox.sizePolicy().hasHeightForWidth())
self.uiSensor1SpinBox.setSizePolicy(sizePolicy)
self.uiSensor1SpinBox.setMaximum(100)
self.uiSensor1SpinBox.setObjectName(_fromUtf8("uiSensor1SpinBox"))
self.uiSensor1SpinBox.setObjectName("uiSensor1SpinBox")
self.gridLayout_3.addWidget(self.uiSensor1SpinBox, 0, 1, 1, 1)
self.uiSensor2Label = QtGui.QLabel(self.uiSensorsGroupBox)
self.uiSensor2Label.setObjectName(_fromUtf8("uiSensor2Label"))
self.uiSensor2Label = QtWidgets.QLabel(self.uiSensorsGroupBox)
self.uiSensor2Label.setObjectName("uiSensor2Label")
self.gridLayout_3.addWidget(self.uiSensor2Label, 1, 0, 1, 1)
self.uiSensor2SpinBox = QtGui.QSpinBox(self.uiSensorsGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.uiSensor2SpinBox = QtWidgets.QSpinBox(self.uiSensorsGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiSensor2SpinBox.sizePolicy().hasHeightForWidth())
self.uiSensor2SpinBox.setSizePolicy(sizePolicy)
self.uiSensor2SpinBox.setMaximum(100)
self.uiSensor2SpinBox.setObjectName(_fromUtf8("uiSensor2SpinBox"))
self.uiSensor2SpinBox.setObjectName("uiSensor2SpinBox")
self.gridLayout_3.addWidget(self.uiSensor2SpinBox, 1, 1, 1, 1)
self.uiSensor3Label = QtGui.QLabel(self.uiSensorsGroupBox)
self.uiSensor3Label.setObjectName(_fromUtf8("uiSensor3Label"))
self.uiSensor3Label = QtWidgets.QLabel(self.uiSensorsGroupBox)
self.uiSensor3Label.setObjectName("uiSensor3Label")
self.gridLayout_3.addWidget(self.uiSensor3Label, 2, 0, 1, 1)
self.uiSensor3SpinBox = QtGui.QSpinBox(self.uiSensorsGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.uiSensor3SpinBox = QtWidgets.QSpinBox(self.uiSensorsGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiSensor3SpinBox.sizePolicy().hasHeightForWidth())
self.uiSensor3SpinBox.setSizePolicy(sizePolicy)
self.uiSensor3SpinBox.setMaximum(100)
self.uiSensor3SpinBox.setObjectName(_fromUtf8("uiSensor3SpinBox"))
self.uiSensor3SpinBox.setObjectName("uiSensor3SpinBox")
self.gridLayout_3.addWidget(self.uiSensor3SpinBox, 2, 1, 1, 1)
self.uiSensor4Label = QtGui.QLabel(self.uiSensorsGroupBox)
self.uiSensor4Label.setObjectName(_fromUtf8("uiSensor4Label"))
self.uiSensor4Label = QtWidgets.QLabel(self.uiSensorsGroupBox)
self.uiSensor4Label.setObjectName("uiSensor4Label")
self.gridLayout_3.addWidget(self.uiSensor4Label, 3, 0, 1, 1)
self.uiSensor4SpinBox = QtGui.QSpinBox(self.uiSensorsGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.uiSensor4SpinBox = QtWidgets.QSpinBox(self.uiSensorsGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiSensor4SpinBox.sizePolicy().hasHeightForWidth())
self.uiSensor4SpinBox.setSizePolicy(sizePolicy)
self.uiSensor4SpinBox.setMaximum(100)
self.uiSensor4SpinBox.setObjectName(_fromUtf8("uiSensor4SpinBox"))
self.uiSensor4SpinBox.setObjectName("uiSensor4SpinBox")
self.gridLayout_3.addWidget(self.uiSensor4SpinBox, 3, 1, 1, 1)
self.verticalLayout_3.addWidget(self.uiSensorsGroupBox)
spacerItem4 = QtGui.QSpacerItem(20, 194, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
spacerItem4 = QtWidgets.QSpacerItem(20, 194, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout_3.addItem(spacerItem4)
self.uiTabWidget.addTab(self.uiEnvironmentPageWidget, _fromUtf8(""))
self.uiTabWidget.addTab(self.uiEnvironmentPageWidget, "")
self.vboxlayout.addWidget(self.uiTabWidget)
self.retranslateUi(iosRouterConfigPageWidget)
@@ -550,75 +538,75 @@ class Ui_iosRouterConfigPageWidget(object):
iosRouterConfigPageWidget.setTabOrder(self.uiBaseMACLineEdit, self.uiExecAreaSpinBox)
def retranslateUi(self, iosRouterConfigPageWidget):
iosRouterConfigPageWidget.setWindowTitle(_translate("iosRouterConfigPageWidget", "Dynamips IOS Router configuration", None))
self.uiNameLabel.setText(_translate("iosRouterConfigPageWidget", "Name:", None))
self.uiPlatformLabel.setText(_translate("iosRouterConfigPageWidget", "Platform:", None))
self.uiChassisLabel.setText(_translate("iosRouterConfigPageWidget", "Chassis:", None))
self.uiIOSImageLabel.setText(_translate("iosRouterConfigPageWidget", "IOS image path:", None))
self.uiIOSImageToolButton.setText(_translate("iosRouterConfigPageWidget", "&Browse...", None))
self.uiStartupConfigLabel.setText(_translate("iosRouterConfigPageWidget", "Initial startup-config:", None))
self.uiStartupConfigToolButton.setText(_translate("iosRouterConfigPageWidget", "&Browse...", None))
self.uiPrivateConfigLabel.setText(_translate("iosRouterConfigPageWidget", "Initial private-config:", None))
self.uiPrivateConfigToolButton.setText(_translate("iosRouterConfigPageWidget", "&Browse...", None))
self.uiConsolePortLabel.setText(_translate("iosRouterConfigPageWidget", "Console port:", None))
self.uiAuxPortLabel.setText(_translate("iosRouterConfigPageWidget", "Aux port:", None))
self.uiMidplaneLabel.setText(_translate("iosRouterConfigPageWidget", "Midplane:", None))
self.uiNPELabel.setText(_translate("iosRouterConfigPageWidget", "NPE:", None))
self.uiTabWidget.setTabText(self.uiTabWidget.indexOf(self.uiGeneralPageWidget), _translate("iosRouterConfigPageWidget", "General", None))
self.uiMemoriesGroupBox.setTitle(_translate("iosRouterConfigPageWidget", "Memories", None))
self.uiRamLabel.setText(_translate("iosRouterConfigPageWidget", "RAM size:", None))
self.uiRamSpinBox.setSuffix(_translate("iosRouterConfigPageWidget", " MiB", None))
self.uiNvramLabel.setText(_translate("iosRouterConfigPageWidget", "NVRAM size:", None))
self.uiNvramSpinBox.setSuffix(_translate("iosRouterConfigPageWidget", " KiB", None))
self.uiIomemLabel.setText(_translate("iosRouterConfigPageWidget", "I/O memory :", None))
self.uiIomemSpinBox.setSuffix(_translate("iosRouterConfigPageWidget", " %", None))
self.uiDisksGroupBox.setTitle(_translate("iosRouterConfigPageWidget", "Disks", None))
self.uiDisk0Label.setText(_translate("iosRouterConfigPageWidget", "PCMCIA disk0 size:", None))
self.uiDisk0SpinBox.setSuffix(_translate("iosRouterConfigPageWidget", " MiB", None))
self.uiDisk1Label.setText(_translate("iosRouterConfigPageWidget", "PCMCIA disk1 size:", None))
self.uiDisk1SpinBox.setSuffix(_translate("iosRouterConfigPageWidget", " MiB", None))
self.uiTabWidget.setTabText(self.uiTabWidget.indexOf(self.uiMemoriesPageWidget), _translate("iosRouterConfigPageWidget", "Memories and disks", None))
self.uiAdaptersGroupBox.setTitle(_translate("iosRouterConfigPageWidget", "Adapters", None))
self.uiSlot0Label.setText(_translate("iosRouterConfigPageWidget", "slot 0:", None))
self.uiSlot1Label.setText(_translate("iosRouterConfigPageWidget", "slot 1:", None))
self.uiSlot2Label.setText(_translate("iosRouterConfigPageWidget", "slot 2:", None))
self.uiSlot3Label.setText(_translate("iosRouterConfigPageWidget", "slot 3:", None))
self.uiSlot4Label.setText(_translate("iosRouterConfigPageWidget", "slot 4:", None))
self.uiSlot5Label.setText(_translate("iosRouterConfigPageWidget", "slot 5:", None))
self.uiSlot6Label.setText(_translate("iosRouterConfigPageWidget", "slot 6:", None))
self.uiWicsGroupBox.setTitle(_translate("iosRouterConfigPageWidget", "WICs", None))
self.uiWic0Label.setText(_translate("iosRouterConfigPageWidget", "wic 0:", None))
self.uiWic1Label.setText(_translate("iosRouterConfigPageWidget", "wic 1:", None))
self.uiWic2Label.setText(_translate("iosRouterConfigPageWidget", "wic 2:", None))
self.uiTabWidget.setTabText(self.uiTabWidget.indexOf(self.uiSlotsPageWidget), _translate("iosRouterConfigPageWidget", "Slots", None))
self.uiSystemGroupBox.setTitle(_translate("iosRouterConfigPageWidget", "System", None))
self.label.setText(_translate("iosRouterConfigPageWidget", "System ID:", None))
self.uiBaseMacLabel.setText(_translate("iosRouterConfigPageWidget", "Base MAC:", None))
self.uiOptimizationsGroupBox.setTitle(_translate("iosRouterConfigPageWidget", "Optimisations", None))
self.uiExecAreaLabel.setText(_translate("iosRouterConfigPageWidget", "Exec area:", None))
self.uiExecAreaSpinBox.setSuffix(_translate("iosRouterConfigPageWidget", " MiB", None))
self.uiSparseMemoryCheckBox.setText(_translate("iosRouterConfigPageWidget", "Enable sparse memory support", None))
self.uiIdlepcLabel.setText(_translate("iosRouterConfigPageWidget", "Idle-PC:", None))
self.uiIdlemaxLabel.setText(_translate("iosRouterConfigPageWidget", "Idlemax:", None))
self.uiIdlesleepLabel.setText(_translate("iosRouterConfigPageWidget", "Idlesleep:", None))
self.uiMmapCheckBox.setText(_translate("iosRouterConfigPageWidget", "Enable mmap support", None))
self.uiIdlesleepSpinBox.setSuffix(_translate("iosRouterConfigPageWidget", " ms", None))
self.uiTabWidget.setTabText(self.uiTabWidget.indexOf(self.uiAdvancedPageWidget), _translate("iosRouterConfigPageWidget", "Advanced", None))
self.uiPowerSuppliesGroupBox.setTitle(_translate("iosRouterConfigPageWidget", "Power supplies", None))
self.uiPowerSupply2Label.setText(_translate("iosRouterConfigPageWidget", "Power supply 2:", None))
self.uiPowerSupply1ComboBox.setItemText(0, _translate("iosRouterConfigPageWidget", "on", None))
self.uiPowerSupply1ComboBox.setItemText(1, _translate("iosRouterConfigPageWidget", "off", None))
self.uiPowerSupply1Label.setText(_translate("iosRouterConfigPageWidget", "Power supply 1:", None))
self.uiPowerSupply2ComboBox.setItemText(0, _translate("iosRouterConfigPageWidget", "on", None))
self.uiPowerSupply2ComboBox.setItemText(1, _translate("iosRouterConfigPageWidget", "off", None))
self.uiSensorsGroupBox.setTitle(_translate("iosRouterConfigPageWidget", "Temperature sensors", None))
self.uiSensor1Label.setText(_translate("iosRouterConfigPageWidget", "I/0 controller inlet:", None))
self.uiSensor1SpinBox.setSuffix(_translate("iosRouterConfigPageWidget", " C", None))
self.uiSensor2Label.setText(_translate("iosRouterConfigPageWidget", "I/0 controller outlet:", None))
self.uiSensor2SpinBox.setSuffix(_translate("iosRouterConfigPageWidget", " C", None))
self.uiSensor3Label.setText(_translate("iosRouterConfigPageWidget", "NPE inlet:", None))
self.uiSensor3SpinBox.setSuffix(_translate("iosRouterConfigPageWidget", " C", None))
self.uiSensor4Label.setText(_translate("iosRouterConfigPageWidget", "NPE outlet:", None))
self.uiSensor4SpinBox.setSuffix(_translate("iosRouterConfigPageWidget", " C", None))
self.uiTabWidget.setTabText(self.uiTabWidget.indexOf(self.uiEnvironmentPageWidget), _translate("iosRouterConfigPageWidget", "Environment", None))
_translate = QtCore.QCoreApplication.translate
iosRouterConfigPageWidget.setWindowTitle(_translate("iosRouterConfigPageWidget", "Dynamips IOS Router configuration"))
self.uiNameLabel.setText(_translate("iosRouterConfigPageWidget", "Name:"))
self.uiPlatformLabel.setText(_translate("iosRouterConfigPageWidget", "Platform:"))
self.uiChassisLabel.setText(_translate("iosRouterConfigPageWidget", "Chassis:"))
self.uiIOSImageLabel.setText(_translate("iosRouterConfigPageWidget", "IOS image path:"))
self.uiIOSImageToolButton.setText(_translate("iosRouterConfigPageWidget", "&Browse..."))
self.uiStartupConfigLabel.setText(_translate("iosRouterConfigPageWidget", "Initial startup-config:"))
self.uiStartupConfigToolButton.setText(_translate("iosRouterConfigPageWidget", "&Browse..."))
self.uiPrivateConfigLabel.setText(_translate("iosRouterConfigPageWidget", "Initial private-config:"))
self.uiPrivateConfigToolButton.setText(_translate("iosRouterConfigPageWidget", "&Browse..."))
self.uiConsolePortLabel.setText(_translate("iosRouterConfigPageWidget", "Console port:"))
self.uiAuxPortLabel.setText(_translate("iosRouterConfigPageWidget", "Aux port:"))
self.uiMidplaneLabel.setText(_translate("iosRouterConfigPageWidget", "Midplane:"))
self.uiNPELabel.setText(_translate("iosRouterConfigPageWidget", "NPE:"))
self.uiTabWidget.setTabText(self.uiTabWidget.indexOf(self.uiGeneralPageWidget), _translate("iosRouterConfigPageWidget", "General"))
self.uiMemoriesGroupBox.setTitle(_translate("iosRouterConfigPageWidget", "Memories"))
self.uiRamLabel.setText(_translate("iosRouterConfigPageWidget", "RAM size:"))
self.uiRamSpinBox.setSuffix(_translate("iosRouterConfigPageWidget", " MiB"))
self.uiNvramLabel.setText(_translate("iosRouterConfigPageWidget", "NVRAM size:"))
self.uiNvramSpinBox.setSuffix(_translate("iosRouterConfigPageWidget", " KiB"))
self.uiIomemLabel.setText(_translate("iosRouterConfigPageWidget", "I/O memory :"))
self.uiIomemSpinBox.setSuffix(_translate("iosRouterConfigPageWidget", " %"))
self.uiDisksGroupBox.setTitle(_translate("iosRouterConfigPageWidget", "Disks"))
self.uiDisk0Label.setText(_translate("iosRouterConfigPageWidget", "PCMCIA disk0 size:"))
self.uiDisk0SpinBox.setSuffix(_translate("iosRouterConfigPageWidget", " MiB"))
self.uiDisk1Label.setText(_translate("iosRouterConfigPageWidget", "PCMCIA disk1 size:"))
self.uiDisk1SpinBox.setSuffix(_translate("iosRouterConfigPageWidget", " MiB"))
self.uiTabWidget.setTabText(self.uiTabWidget.indexOf(self.uiMemoriesPageWidget), _translate("iosRouterConfigPageWidget", "Memories and disks"))
self.uiAdaptersGroupBox.setTitle(_translate("iosRouterConfigPageWidget", "Adapters"))
self.uiSlot0Label.setText(_translate("iosRouterConfigPageWidget", "slot 0:"))
self.uiSlot1Label.setText(_translate("iosRouterConfigPageWidget", "slot 1:"))
self.uiSlot2Label.setText(_translate("iosRouterConfigPageWidget", "slot 2:"))
self.uiSlot3Label.setText(_translate("iosRouterConfigPageWidget", "slot 3:"))
self.uiSlot4Label.setText(_translate("iosRouterConfigPageWidget", "slot 4:"))
self.uiSlot5Label.setText(_translate("iosRouterConfigPageWidget", "slot 5:"))
self.uiSlot6Label.setText(_translate("iosRouterConfigPageWidget", "slot 6:"))
self.uiWicsGroupBox.setTitle(_translate("iosRouterConfigPageWidget", "WICs"))
self.uiWic0Label.setText(_translate("iosRouterConfigPageWidget", "wic 0:"))
self.uiWic1Label.setText(_translate("iosRouterConfigPageWidget", "wic 1:"))
self.uiWic2Label.setText(_translate("iosRouterConfigPageWidget", "wic 2:"))
self.uiTabWidget.setTabText(self.uiTabWidget.indexOf(self.uiSlotsPageWidget), _translate("iosRouterConfigPageWidget", "Slots"))
self.uiSystemGroupBox.setTitle(_translate("iosRouterConfigPageWidget", "System"))
self.label.setText(_translate("iosRouterConfigPageWidget", "System ID:"))
self.uiBaseMacLabel.setText(_translate("iosRouterConfigPageWidget", "Base MAC:"))
self.uiOptimizationsGroupBox.setTitle(_translate("iosRouterConfigPageWidget", "Optimisations"))
self.uiExecAreaLabel.setText(_translate("iosRouterConfigPageWidget", "Exec area:"))
self.uiExecAreaSpinBox.setSuffix(_translate("iosRouterConfigPageWidget", " MiB"))
self.uiSparseMemoryCheckBox.setText(_translate("iosRouterConfigPageWidget", "Enable sparse memory support"))
self.uiIdlepcLabel.setText(_translate("iosRouterConfigPageWidget", "Idle-PC:"))
self.uiIdlemaxLabel.setText(_translate("iosRouterConfigPageWidget", "Idlemax:"))
self.uiIdlesleepLabel.setText(_translate("iosRouterConfigPageWidget", "Idlesleep:"))
self.uiMmapCheckBox.setText(_translate("iosRouterConfigPageWidget", "Enable mmap support"))
self.uiIdlesleepSpinBox.setSuffix(_translate("iosRouterConfigPageWidget", " ms"))
self.uiTabWidget.setTabText(self.uiTabWidget.indexOf(self.uiAdvancedPageWidget), _translate("iosRouterConfigPageWidget", "Advanced"))
self.uiPowerSuppliesGroupBox.setTitle(_translate("iosRouterConfigPageWidget", "Power supplies"))
self.uiPowerSupply2Label.setText(_translate("iosRouterConfigPageWidget", "Power supply 2:"))
self.uiPowerSupply1ComboBox.setItemText(0, _translate("iosRouterConfigPageWidget", "on"))
self.uiPowerSupply1ComboBox.setItemText(1, _translate("iosRouterConfigPageWidget", "off"))
self.uiPowerSupply1Label.setText(_translate("iosRouterConfigPageWidget", "Power supply 1:"))
self.uiPowerSupply2ComboBox.setItemText(0, _translate("iosRouterConfigPageWidget", "on"))
self.uiPowerSupply2ComboBox.setItemText(1, _translate("iosRouterConfigPageWidget", "off"))
self.uiSensorsGroupBox.setTitle(_translate("iosRouterConfigPageWidget", "Temperature sensors"))
self.uiSensor1Label.setText(_translate("iosRouterConfigPageWidget", "I/0 controller inlet:"))
self.uiSensor1SpinBox.setSuffix(_translate("iosRouterConfigPageWidget", " C"))
self.uiSensor2Label.setText(_translate("iosRouterConfigPageWidget", "I/0 controller outlet:"))
self.uiSensor2SpinBox.setSuffix(_translate("iosRouterConfigPageWidget", " C"))
self.uiSensor3Label.setText(_translate("iosRouterConfigPageWidget", "NPE inlet:"))
self.uiSensor3SpinBox.setSuffix(_translate("iosRouterConfigPageWidget", " C"))
self.uiSensor4Label.setText(_translate("iosRouterConfigPageWidget", "NPE outlet:"))
self.uiSensor4SpinBox.setSuffix(_translate("iosRouterConfigPageWidget", " C"))
self.uiTabWidget.setTabText(self.uiTabWidget.indexOf(self.uiEnvironmentPageWidget), _translate("iosRouterConfigPageWidget", "Environment"))

View File

@@ -1,36 +1,24 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file '/home/grossmj/PycharmProjects/gns3-gui/gns3/modules/dynamips/ui/ios_router_preferences_page.ui'
# Form implementation generated from reading ui file '/Users/noplay/code/gns3/gns3-gui/gns3/modules/dynamips/ui/ios_router_preferences_page.ui'
#
# Created: Wed Mar 11 22:03:56 2015
# by: PyQt4 UI code generator 4.10.4
# Created: Fri Apr 17 10:44:34 2015
# by: PyQt5 UI code generator 5.4
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
from gns3.qt import QtCore, QtGui, QtWidgets
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_IOSRouterPreferencesPageWidget:
class Ui_IOSRouterPreferencesPageWidget(object):
def setupUi(self, IOSRouterPreferencesPageWidget):
IOSRouterPreferencesPageWidget.setObjectName(_fromUtf8("IOSRouterPreferencesPageWidget"))
IOSRouterPreferencesPageWidget.setObjectName("IOSRouterPreferencesPageWidget")
IOSRouterPreferencesPageWidget.resize(560, 518)
self.gridLayout = QtGui.QGridLayout(IOSRouterPreferencesPageWidget)
self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
self.uiIOSRoutersTreeWidget = QtGui.QTreeWidget(IOSRouterPreferencesPageWidget)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
self.gridLayout = QtWidgets.QGridLayout(IOSRouterPreferencesPageWidget)
self.gridLayout.setObjectName("gridLayout")
self.uiIOSRoutersTreeWidget = QtWidgets.QTreeWidget(IOSRouterPreferencesPageWidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiIOSRoutersTreeWidget.sizePolicy().hasHeightForWidth())
@@ -43,37 +31,37 @@ class Ui_IOSRouterPreferencesPageWidget(object):
self.uiIOSRoutersTreeWidget.setFont(font)
self.uiIOSRoutersTreeWidget.setIconSize(QtCore.QSize(32, 32))
self.uiIOSRoutersTreeWidget.setRootIsDecorated(False)
self.uiIOSRoutersTreeWidget.setObjectName(_fromUtf8("uiIOSRoutersTreeWidget"))
self.uiIOSRoutersTreeWidget.headerItem().setText(0, _fromUtf8("1"))
self.uiIOSRoutersTreeWidget.setObjectName("uiIOSRoutersTreeWidget")
self.uiIOSRoutersTreeWidget.headerItem().setText(0, "1")
self.uiIOSRoutersTreeWidget.header().setVisible(False)
self.gridLayout.addWidget(self.uiIOSRoutersTreeWidget, 0, 0, 2, 1)
self.uiIOSRouterInfoTreeWidget = QtGui.QTreeWidget(IOSRouterPreferencesPageWidget)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.MinimumExpanding, QtGui.QSizePolicy.Expanding)
self.uiIOSRouterInfoTreeWidget = QtWidgets.QTreeWidget(IOSRouterPreferencesPageWidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiIOSRouterInfoTreeWidget.sizePolicy().hasHeightForWidth())
self.uiIOSRouterInfoTreeWidget.setSizePolicy(sizePolicy)
self.uiIOSRouterInfoTreeWidget.setIndentation(10)
self.uiIOSRouterInfoTreeWidget.setAllColumnsShowFocus(True)
self.uiIOSRouterInfoTreeWidget.setObjectName(_fromUtf8("uiIOSRouterInfoTreeWidget"))
self.uiIOSRouterInfoTreeWidget.setObjectName("uiIOSRouterInfoTreeWidget")
self.uiIOSRouterInfoTreeWidget.header().setVisible(False)
self.gridLayout.addWidget(self.uiIOSRouterInfoTreeWidget, 0, 1, 1, 1)
self.horizontalLayout_6 = QtGui.QHBoxLayout()
self.horizontalLayout_6.setObjectName(_fromUtf8("horizontalLayout_6"))
self.uiNewIOSRouterPushButton = QtGui.QPushButton(IOSRouterPreferencesPageWidget)
self.uiNewIOSRouterPushButton.setObjectName(_fromUtf8("uiNewIOSRouterPushButton"))
self.horizontalLayout_6 = QtWidgets.QHBoxLayout()
self.horizontalLayout_6.setObjectName("horizontalLayout_6")
self.uiNewIOSRouterPushButton = QtWidgets.QPushButton(IOSRouterPreferencesPageWidget)
self.uiNewIOSRouterPushButton.setObjectName("uiNewIOSRouterPushButton")
self.horizontalLayout_6.addWidget(self.uiNewIOSRouterPushButton)
self.uiDecompressIOSPushButton = QtGui.QPushButton(IOSRouterPreferencesPageWidget)
self.uiDecompressIOSPushButton = QtWidgets.QPushButton(IOSRouterPreferencesPageWidget)
self.uiDecompressIOSPushButton.setEnabled(False)
self.uiDecompressIOSPushButton.setObjectName(_fromUtf8("uiDecompressIOSPushButton"))
self.uiDecompressIOSPushButton.setObjectName("uiDecompressIOSPushButton")
self.horizontalLayout_6.addWidget(self.uiDecompressIOSPushButton)
self.uiEditIOSRouterPushButton = QtGui.QPushButton(IOSRouterPreferencesPageWidget)
self.uiEditIOSRouterPushButton = QtWidgets.QPushButton(IOSRouterPreferencesPageWidget)
self.uiEditIOSRouterPushButton.setEnabled(False)
self.uiEditIOSRouterPushButton.setObjectName(_fromUtf8("uiEditIOSRouterPushButton"))
self.uiEditIOSRouterPushButton.setObjectName("uiEditIOSRouterPushButton")
self.horizontalLayout_6.addWidget(self.uiEditIOSRouterPushButton)
self.uiDeleteIOSRouterPushButton = QtGui.QPushButton(IOSRouterPreferencesPageWidget)
self.uiDeleteIOSRouterPushButton = QtWidgets.QPushButton(IOSRouterPreferencesPageWidget)
self.uiDeleteIOSRouterPushButton.setEnabled(False)
self.uiDeleteIOSRouterPushButton.setObjectName(_fromUtf8("uiDeleteIOSRouterPushButton"))
self.uiDeleteIOSRouterPushButton.setObjectName("uiDeleteIOSRouterPushButton")
self.horizontalLayout_6.addWidget(self.uiDeleteIOSRouterPushButton)
self.gridLayout.addLayout(self.horizontalLayout_6, 1, 1, 1, 1)
@@ -81,12 +69,12 @@ class Ui_IOSRouterPreferencesPageWidget(object):
QtCore.QMetaObject.connectSlotsByName(IOSRouterPreferencesPageWidget)
def retranslateUi(self, IOSRouterPreferencesPageWidget):
IOSRouterPreferencesPageWidget.setWindowTitle(_translate("IOSRouterPreferencesPageWidget", "IOS routers", None))
IOSRouterPreferencesPageWidget.setAccessibleName(_translate("IOSRouterPreferencesPageWidget", "IOS router templates", None))
self.uiIOSRouterInfoTreeWidget.headerItem().setText(0, _translate("IOSRouterPreferencesPageWidget", "1", None))
self.uiIOSRouterInfoTreeWidget.headerItem().setText(1, _translate("IOSRouterPreferencesPageWidget", "2", None))
self.uiNewIOSRouterPushButton.setText(_translate("IOSRouterPreferencesPageWidget", "&New", None))
self.uiDecompressIOSPushButton.setText(_translate("IOSRouterPreferencesPageWidget", "&Decompress", None))
self.uiEditIOSRouterPushButton.setText(_translate("IOSRouterPreferencesPageWidget", "&Edit", None))
self.uiDeleteIOSRouterPushButton.setText(_translate("IOSRouterPreferencesPageWidget", "&Delete", None))
_translate = QtCore.QCoreApplication.translate
IOSRouterPreferencesPageWidget.setWindowTitle(_translate("IOSRouterPreferencesPageWidget", "IOS routers"))
IOSRouterPreferencesPageWidget.setAccessibleName(_translate("IOSRouterPreferencesPageWidget", "IOS router templates"))
self.uiIOSRouterInfoTreeWidget.headerItem().setText(0, _translate("IOSRouterPreferencesPageWidget", "1"))
self.uiIOSRouterInfoTreeWidget.headerItem().setText(1, _translate("IOSRouterPreferencesPageWidget", "2"))
self.uiNewIOSRouterPushButton.setText(_translate("IOSRouterPreferencesPageWidget", "&New"))
self.uiDecompressIOSPushButton.setText(_translate("IOSRouterPreferencesPageWidget", "&Decompress"))
self.uiEditIOSRouterPushButton.setText(_translate("IOSRouterPreferencesPageWidget", "&Edit"))
self.uiDeleteIOSRouterPushButton.setText(_translate("IOSRouterPreferencesPageWidget", "&Delete"))

View File

@@ -2,128 +2,116 @@
# Form implementation generated from reading ui file '/Users/noplay/code/gns3/gns3-gui/gns3/modules/dynamips/ui/ios_router_wizard.ui'
#
# Created: Wed Apr 1 15:15:16 2015
# by: PyQt4 UI code generator 4.11.3
# Created: Fri Apr 17 10:44:34 2015
# by: PyQt5 UI code generator 5.4
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
from gns3.qt import QtCore, QtGui, QtWidgets
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_IOSRouterWizard:
class Ui_IOSRouterWizard(object):
def setupUi(self, IOSRouterWizard):
IOSRouterWizard.setObjectName(_fromUtf8("IOSRouterWizard"))
IOSRouterWizard.setObjectName("IOSRouterWizard")
IOSRouterWizard.resize(585, 398)
IOSRouterWizard.setModal(True)
self.uiServerWizardPage = QtGui.QWizardPage()
self.uiServerWizardPage.setObjectName(_fromUtf8("uiServerWizardPage"))
self.verticalLayout = QtGui.QVBoxLayout(self.uiServerWizardPage)
self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
self.uiServerTypeGroupBox = QtGui.QGroupBox(self.uiServerWizardPage)
self.uiServerTypeGroupBox.setObjectName(_fromUtf8("uiServerTypeGroupBox"))
self.horizontalLayout = QtGui.QHBoxLayout(self.uiServerTypeGroupBox)
self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
self.uiRemoteRadioButton = QtGui.QRadioButton(self.uiServerTypeGroupBox)
self.uiServerWizardPage = QtWidgets.QWizardPage()
self.uiServerWizardPage.setObjectName("uiServerWizardPage")
self.verticalLayout = QtWidgets.QVBoxLayout(self.uiServerWizardPage)
self.verticalLayout.setObjectName("verticalLayout")
self.uiServerTypeGroupBox = QtWidgets.QGroupBox(self.uiServerWizardPage)
self.uiServerTypeGroupBox.setObjectName("uiServerTypeGroupBox")
self.horizontalLayout = QtWidgets.QHBoxLayout(self.uiServerTypeGroupBox)
self.horizontalLayout.setObjectName("horizontalLayout")
self.uiRemoteRadioButton = QtWidgets.QRadioButton(self.uiServerTypeGroupBox)
self.uiRemoteRadioButton.setChecked(True)
self.uiRemoteRadioButton.setObjectName(_fromUtf8("uiRemoteRadioButton"))
self.uiRemoteRadioButton.setObjectName("uiRemoteRadioButton")
self.horizontalLayout.addWidget(self.uiRemoteRadioButton)
self.uiCloudRadioButton = QtGui.QRadioButton(self.uiServerTypeGroupBox)
self.uiCloudRadioButton.setObjectName(_fromUtf8("uiCloudRadioButton"))
self.uiCloudRadioButton = QtWidgets.QRadioButton(self.uiServerTypeGroupBox)
self.uiCloudRadioButton.setObjectName("uiCloudRadioButton")
self.horizontalLayout.addWidget(self.uiCloudRadioButton)
self.uiLocalRadioButton = QtGui.QRadioButton(self.uiServerTypeGroupBox)
self.uiLocalRadioButton.setObjectName(_fromUtf8("uiLocalRadioButton"))
self.uiLocalRadioButton = QtWidgets.QRadioButton(self.uiServerTypeGroupBox)
self.uiLocalRadioButton.setObjectName("uiLocalRadioButton")
self.horizontalLayout.addWidget(self.uiLocalRadioButton)
spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout.addItem(spacerItem)
self.verticalLayout.addWidget(self.uiServerTypeGroupBox)
self.uiRemoteServersGroupBox = QtGui.QGroupBox(self.uiServerWizardPage)
self.uiRemoteServersGroupBox.setObjectName(_fromUtf8("uiRemoteServersGroupBox"))
self.gridLayout_7 = QtGui.QGridLayout(self.uiRemoteServersGroupBox)
self.gridLayout_7.setObjectName(_fromUtf8("gridLayout_7"))
self.uiLoadBalanceCheckBox = QtGui.QCheckBox(self.uiRemoteServersGroupBox)
self.uiRemoteServersGroupBox = QtWidgets.QGroupBox(self.uiServerWizardPage)
self.uiRemoteServersGroupBox.setObjectName("uiRemoteServersGroupBox")
self.gridLayout_7 = QtWidgets.QGridLayout(self.uiRemoteServersGroupBox)
self.gridLayout_7.setObjectName("gridLayout_7")
self.uiLoadBalanceCheckBox = QtWidgets.QCheckBox(self.uiRemoteServersGroupBox)
self.uiLoadBalanceCheckBox.setChecked(True)
self.uiLoadBalanceCheckBox.setObjectName(_fromUtf8("uiLoadBalanceCheckBox"))
self.uiLoadBalanceCheckBox.setObjectName("uiLoadBalanceCheckBox")
self.gridLayout_7.addWidget(self.uiLoadBalanceCheckBox, 0, 0, 1, 2)
self.uiRemoteServersLabel = QtGui.QLabel(self.uiRemoteServersGroupBox)
self.uiRemoteServersLabel.setObjectName(_fromUtf8("uiRemoteServersLabel"))
self.uiRemoteServersLabel = QtWidgets.QLabel(self.uiRemoteServersGroupBox)
self.uiRemoteServersLabel.setObjectName("uiRemoteServersLabel")
self.gridLayout_7.addWidget(self.uiRemoteServersLabel, 1, 0, 1, 1)
self.uiRemoteServersComboBox = QtGui.QComboBox(self.uiRemoteServersGroupBox)
self.uiRemoteServersComboBox = QtWidgets.QComboBox(self.uiRemoteServersGroupBox)
self.uiRemoteServersComboBox.setEnabled(False)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiRemoteServersComboBox.sizePolicy().hasHeightForWidth())
self.uiRemoteServersComboBox.setSizePolicy(sizePolicy)
self.uiRemoteServersComboBox.setObjectName(_fromUtf8("uiRemoteServersComboBox"))
self.uiRemoteServersComboBox.setObjectName("uiRemoteServersComboBox")
self.gridLayout_7.addWidget(self.uiRemoteServersComboBox, 1, 1, 1, 1)
self.verticalLayout.addWidget(self.uiRemoteServersGroupBox)
IOSRouterWizard.addPage(self.uiServerWizardPage)
self.uiIOSImageWizardPage = QtGui.QWizardPage()
self.uiIOSImageWizardPage.setObjectName(_fromUtf8("uiIOSImageWizardPage"))
self.gridLayout_6 = QtGui.QGridLayout(self.uiIOSImageWizardPage)
self.gridLayout_6.setObjectName(_fromUtf8("gridLayout_6"))
self.horizontalLayout_5 = QtGui.QHBoxLayout()
self.horizontalLayout_5.setObjectName(_fromUtf8("horizontalLayout_5"))
self.uiIOSImageLineEdit = QtGui.QLineEdit(self.uiIOSImageWizardPage)
self.uiIOSImageLineEdit.setObjectName(_fromUtf8("uiIOSImageLineEdit"))
self.uiIOSImageWizardPage = QtWidgets.QWizardPage()
self.uiIOSImageWizardPage.setObjectName("uiIOSImageWizardPage")
self.gridLayout_6 = QtWidgets.QGridLayout(self.uiIOSImageWizardPage)
self.gridLayout_6.setObjectName("gridLayout_6")
self.horizontalLayout_5 = QtWidgets.QHBoxLayout()
self.horizontalLayout_5.setObjectName("horizontalLayout_5")
self.uiIOSImageLineEdit = QtWidgets.QLineEdit(self.uiIOSImageWizardPage)
self.uiIOSImageLineEdit.setObjectName("uiIOSImageLineEdit")
self.horizontalLayout_5.addWidget(self.uiIOSImageLineEdit)
self.uiIOSImageToolButton = QtGui.QToolButton(self.uiIOSImageWizardPage)
self.uiIOSImageToolButton = QtWidgets.QToolButton(self.uiIOSImageWizardPage)
self.uiIOSImageToolButton.setToolButtonStyle(QtCore.Qt.ToolButtonTextOnly)
self.uiIOSImageToolButton.setObjectName(_fromUtf8("uiIOSImageToolButton"))
self.uiIOSImageToolButton.setObjectName("uiIOSImageToolButton")
self.horizontalLayout_5.addWidget(self.uiIOSImageToolButton)
self.gridLayout_6.addLayout(self.horizontalLayout_5, 1, 1, 1, 1)
self.uiIOSImageLabel = QtGui.QLabel(self.uiIOSImageWizardPage)
self.uiIOSImageLabel.setObjectName(_fromUtf8("uiIOSImageLabel"))
self.uiIOSImageLabel = QtWidgets.QLabel(self.uiIOSImageWizardPage)
self.uiIOSImageLabel.setObjectName("uiIOSImageLabel")
self.gridLayout_6.addWidget(self.uiIOSImageLabel, 1, 0, 1, 1)
IOSRouterWizard.addPage(self.uiIOSImageWizardPage)
self.uiNamePlatformWizardPage = QtGui.QWizardPage()
self.uiNamePlatformWizardPage.setObjectName(_fromUtf8("uiNamePlatformWizardPage"))
self.gridLayout = QtGui.QGridLayout(self.uiNamePlatformWizardPage)
self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
self.uiNameLineEdit = QtGui.QLineEdit(self.uiNamePlatformWizardPage)
self.uiNameLineEdit.setObjectName(_fromUtf8("uiNameLineEdit"))
self.uiNamePlatformWizardPage = QtWidgets.QWizardPage()
self.uiNamePlatformWizardPage.setObjectName("uiNamePlatformWizardPage")
self.gridLayout = QtWidgets.QGridLayout(self.uiNamePlatformWizardPage)
self.gridLayout.setObjectName("gridLayout")
self.uiNameLineEdit = QtWidgets.QLineEdit(self.uiNamePlatformWizardPage)
self.uiNameLineEdit.setObjectName("uiNameLineEdit")
self.gridLayout.addWidget(self.uiNameLineEdit, 0, 1, 1, 1)
self.uiChassisComboBox = QtGui.QComboBox(self.uiNamePlatformWizardPage)
self.uiChassisComboBox.setObjectName(_fromUtf8("uiChassisComboBox"))
self.uiChassisComboBox = QtWidgets.QComboBox(self.uiNamePlatformWizardPage)
self.uiChassisComboBox.setObjectName("uiChassisComboBox")
self.gridLayout.addWidget(self.uiChassisComboBox, 2, 1, 1, 1)
self.uiTypeLabel = QtGui.QLabel(self.uiNamePlatformWizardPage)
self.uiTypeLabel.setObjectName(_fromUtf8("uiTypeLabel"))
self.uiTypeLabel = QtWidgets.QLabel(self.uiNamePlatformWizardPage)
self.uiTypeLabel.setObjectName("uiTypeLabel")
self.gridLayout.addWidget(self.uiTypeLabel, 1, 0, 1, 1)
self.uiNameLabel = QtGui.QLabel(self.uiNamePlatformWizardPage)
self.uiNameLabel.setObjectName(_fromUtf8("uiNameLabel"))
self.uiNameLabel = QtWidgets.QLabel(self.uiNamePlatformWizardPage)
self.uiNameLabel.setObjectName("uiNameLabel")
self.gridLayout.addWidget(self.uiNameLabel, 0, 0, 1, 1)
self.uiPlatformComboBox = QtGui.QComboBox(self.uiNamePlatformWizardPage)
self.uiPlatformComboBox.setObjectName(_fromUtf8("uiPlatformComboBox"))
self.uiPlatformComboBox = QtWidgets.QComboBox(self.uiNamePlatformWizardPage)
self.uiPlatformComboBox.setObjectName("uiPlatformComboBox")
self.gridLayout.addWidget(self.uiPlatformComboBox, 1, 1, 1, 1)
self.uiChassisLabel = QtGui.QLabel(self.uiNamePlatformWizardPage)
self.uiChassisLabel.setObjectName(_fromUtf8("uiChassisLabel"))
self.uiChassisLabel = QtWidgets.QLabel(self.uiNamePlatformWizardPage)
self.uiChassisLabel.setObjectName("uiChassisLabel")
self.gridLayout.addWidget(self.uiChassisLabel, 2, 0, 1, 1)
self.uiEtherSwitchCheckBox = QtGui.QCheckBox(self.uiNamePlatformWizardPage)
self.uiEtherSwitchCheckBox.setObjectName(_fromUtf8("uiEtherSwitchCheckBox"))
self.uiEtherSwitchCheckBox = QtWidgets.QCheckBox(self.uiNamePlatformWizardPage)
self.uiEtherSwitchCheckBox.setObjectName("uiEtherSwitchCheckBox")
self.gridLayout.addWidget(self.uiEtherSwitchCheckBox, 3, 0, 1, 2)
IOSRouterWizard.addPage(self.uiNamePlatformWizardPage)
self.uiMemoryWizardPage = QtGui.QWizardPage()
self.uiMemoryWizardPage.setObjectName(_fromUtf8("uiMemoryWizardPage"))
self.gridLayout_2 = QtGui.QGridLayout(self.uiMemoryWizardPage)
self.gridLayout_2.setObjectName(_fromUtf8("gridLayout_2"))
self.uiRamLabel = QtGui.QLabel(self.uiMemoryWizardPage)
self.uiRamLabel.setObjectName(_fromUtf8("uiRamLabel"))
self.uiMemoryWizardPage = QtWidgets.QWizardPage()
self.uiMemoryWizardPage.setObjectName("uiMemoryWizardPage")
self.gridLayout_2 = QtWidgets.QGridLayout(self.uiMemoryWizardPage)
self.gridLayout_2.setObjectName("gridLayout_2")
self.uiRamLabel = QtWidgets.QLabel(self.uiMemoryWizardPage)
self.uiRamLabel.setObjectName("uiRamLabel")
self.gridLayout_2.addWidget(self.uiRamLabel, 0, 0, 1, 1)
self.uiRamSpinBox = QtGui.QSpinBox(self.uiMemoryWizardPage)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.uiRamSpinBox = QtWidgets.QSpinBox(self.uiMemoryWizardPage)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiRamSpinBox.sizePolicy().hasHeightForWidth())
@@ -132,149 +120,149 @@ class Ui_IOSRouterWizard(object):
self.uiRamSpinBox.setMaximum(65535)
self.uiRamSpinBox.setSingleStep(32)
self.uiRamSpinBox.setProperty("value", 128)
self.uiRamSpinBox.setObjectName(_fromUtf8("uiRamSpinBox"))
self.uiRamSpinBox.setObjectName("uiRamSpinBox")
self.gridLayout_2.addWidget(self.uiRamSpinBox, 0, 1, 1, 1)
self.uiTestIOSImagePushButton = QtGui.QPushButton(self.uiMemoryWizardPage)
self.uiTestIOSImagePushButton.setObjectName(_fromUtf8("uiTestIOSImagePushButton"))
self.uiTestIOSImagePushButton = QtWidgets.QPushButton(self.uiMemoryWizardPage)
self.uiTestIOSImagePushButton.setObjectName("uiTestIOSImagePushButton")
self.gridLayout_2.addWidget(self.uiTestIOSImagePushButton, 0, 2, 1, 1)
self.label = QtGui.QLabel(self.uiMemoryWizardPage)
self.label = QtWidgets.QLabel(self.uiMemoryWizardPage)
self.label.setWordWrap(False)
self.label.setOpenExternalLinks(True)
self.label.setObjectName(_fromUtf8("label"))
self.label.setObjectName("label")
self.gridLayout_2.addWidget(self.label, 1, 0, 1, 3)
IOSRouterWizard.addPage(self.uiMemoryWizardPage)
self.uiNetworkAdaptersWizardPage = QtGui.QWizardPage()
self.uiNetworkAdaptersWizardPage.setObjectName(_fromUtf8("uiNetworkAdaptersWizardPage"))
self.gridLayout_4 = QtGui.QGridLayout(self.uiNetworkAdaptersWizardPage)
self.gridLayout_4.setObjectName(_fromUtf8("gridLayout_4"))
self.uiSlot0Label = QtGui.QLabel(self.uiNetworkAdaptersWizardPage)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Preferred)
self.uiNetworkAdaptersWizardPage = QtWidgets.QWizardPage()
self.uiNetworkAdaptersWizardPage.setObjectName("uiNetworkAdaptersWizardPage")
self.gridLayout_4 = QtWidgets.QGridLayout(self.uiNetworkAdaptersWizardPage)
self.gridLayout_4.setObjectName("gridLayout_4")
self.uiSlot0Label = QtWidgets.QLabel(self.uiNetworkAdaptersWizardPage)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiSlot0Label.sizePolicy().hasHeightForWidth())
self.uiSlot0Label.setSizePolicy(sizePolicy)
self.uiSlot0Label.setObjectName(_fromUtf8("uiSlot0Label"))
self.uiSlot0Label.setObjectName("uiSlot0Label")
self.gridLayout_4.addWidget(self.uiSlot0Label, 0, 0, 1, 1)
self.uiSlot0comboBox = QtGui.QComboBox(self.uiNetworkAdaptersWizardPage)
self.uiSlot0comboBox.setObjectName(_fromUtf8("uiSlot0comboBox"))
self.uiSlot0comboBox = QtWidgets.QComboBox(self.uiNetworkAdaptersWizardPage)
self.uiSlot0comboBox.setObjectName("uiSlot0comboBox")
self.gridLayout_4.addWidget(self.uiSlot0comboBox, 0, 1, 1, 1)
self.uiSlot1Label = QtGui.QLabel(self.uiNetworkAdaptersWizardPage)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Preferred)
self.uiSlot1Label = QtWidgets.QLabel(self.uiNetworkAdaptersWizardPage)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiSlot1Label.sizePolicy().hasHeightForWidth())
self.uiSlot1Label.setSizePolicy(sizePolicy)
self.uiSlot1Label.setObjectName(_fromUtf8("uiSlot1Label"))
self.uiSlot1Label.setObjectName("uiSlot1Label")
self.gridLayout_4.addWidget(self.uiSlot1Label, 1, 0, 1, 1)
self.uiSlot1comboBox = QtGui.QComboBox(self.uiNetworkAdaptersWizardPage)
self.uiSlot1comboBox.setObjectName(_fromUtf8("uiSlot1comboBox"))
self.uiSlot1comboBox = QtWidgets.QComboBox(self.uiNetworkAdaptersWizardPage)
self.uiSlot1comboBox.setObjectName("uiSlot1comboBox")
self.gridLayout_4.addWidget(self.uiSlot1comboBox, 1, 1, 1, 1)
self.uiSlot2Label = QtGui.QLabel(self.uiNetworkAdaptersWizardPage)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Preferred)
self.uiSlot2Label = QtWidgets.QLabel(self.uiNetworkAdaptersWizardPage)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiSlot2Label.sizePolicy().hasHeightForWidth())
self.uiSlot2Label.setSizePolicy(sizePolicy)
self.uiSlot2Label.setObjectName(_fromUtf8("uiSlot2Label"))
self.uiSlot2Label.setObjectName("uiSlot2Label")
self.gridLayout_4.addWidget(self.uiSlot2Label, 2, 0, 1, 1)
self.uiSlot2comboBox = QtGui.QComboBox(self.uiNetworkAdaptersWizardPage)
self.uiSlot2comboBox.setObjectName(_fromUtf8("uiSlot2comboBox"))
self.uiSlot2comboBox = QtWidgets.QComboBox(self.uiNetworkAdaptersWizardPage)
self.uiSlot2comboBox.setObjectName("uiSlot2comboBox")
self.gridLayout_4.addWidget(self.uiSlot2comboBox, 2, 1, 1, 1)
self.uiSlot3Label = QtGui.QLabel(self.uiNetworkAdaptersWizardPage)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Preferred)
self.uiSlot3Label = QtWidgets.QLabel(self.uiNetworkAdaptersWizardPage)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiSlot3Label.sizePolicy().hasHeightForWidth())
self.uiSlot3Label.setSizePolicy(sizePolicy)
self.uiSlot3Label.setObjectName(_fromUtf8("uiSlot3Label"))
self.uiSlot3Label.setObjectName("uiSlot3Label")
self.gridLayout_4.addWidget(self.uiSlot3Label, 3, 0, 1, 1)
self.uiSlot3comboBox = QtGui.QComboBox(self.uiNetworkAdaptersWizardPage)
self.uiSlot3comboBox.setObjectName(_fromUtf8("uiSlot3comboBox"))
self.uiSlot3comboBox = QtWidgets.QComboBox(self.uiNetworkAdaptersWizardPage)
self.uiSlot3comboBox.setObjectName("uiSlot3comboBox")
self.gridLayout_4.addWidget(self.uiSlot3comboBox, 3, 1, 1, 1)
self.uiSlot4Label = QtGui.QLabel(self.uiNetworkAdaptersWizardPage)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Preferred)
self.uiSlot4Label = QtWidgets.QLabel(self.uiNetworkAdaptersWizardPage)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiSlot4Label.sizePolicy().hasHeightForWidth())
self.uiSlot4Label.setSizePolicy(sizePolicy)
self.uiSlot4Label.setObjectName(_fromUtf8("uiSlot4Label"))
self.uiSlot4Label.setObjectName("uiSlot4Label")
self.gridLayout_4.addWidget(self.uiSlot4Label, 4, 0, 1, 1)
self.uiSlot4comboBox = QtGui.QComboBox(self.uiNetworkAdaptersWizardPage)
self.uiSlot4comboBox.setObjectName(_fromUtf8("uiSlot4comboBox"))
self.uiSlot4comboBox = QtWidgets.QComboBox(self.uiNetworkAdaptersWizardPage)
self.uiSlot4comboBox.setObjectName("uiSlot4comboBox")
self.gridLayout_4.addWidget(self.uiSlot4comboBox, 4, 1, 1, 1)
self.uiSlot5Label = QtGui.QLabel(self.uiNetworkAdaptersWizardPage)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Preferred)
self.uiSlot5Label = QtWidgets.QLabel(self.uiNetworkAdaptersWizardPage)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiSlot5Label.sizePolicy().hasHeightForWidth())
self.uiSlot5Label.setSizePolicy(sizePolicy)
self.uiSlot5Label.setObjectName(_fromUtf8("uiSlot5Label"))
self.uiSlot5Label.setObjectName("uiSlot5Label")
self.gridLayout_4.addWidget(self.uiSlot5Label, 5, 0, 1, 1)
self.uiSlot5comboBox = QtGui.QComboBox(self.uiNetworkAdaptersWizardPage)
self.uiSlot5comboBox.setObjectName(_fromUtf8("uiSlot5comboBox"))
self.uiSlot5comboBox = QtWidgets.QComboBox(self.uiNetworkAdaptersWizardPage)
self.uiSlot5comboBox.setObjectName("uiSlot5comboBox")
self.gridLayout_4.addWidget(self.uiSlot5comboBox, 5, 1, 1, 1)
self.uiSlot6Label = QtGui.QLabel(self.uiNetworkAdaptersWizardPage)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Preferred)
self.uiSlot6Label = QtWidgets.QLabel(self.uiNetworkAdaptersWizardPage)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiSlot6Label.sizePolicy().hasHeightForWidth())
self.uiSlot6Label.setSizePolicy(sizePolicy)
self.uiSlot6Label.setObjectName(_fromUtf8("uiSlot6Label"))
self.uiSlot6Label.setObjectName("uiSlot6Label")
self.gridLayout_4.addWidget(self.uiSlot6Label, 6, 0, 1, 1)
self.uiSlot6comboBox = QtGui.QComboBox(self.uiNetworkAdaptersWizardPage)
self.uiSlot6comboBox.setObjectName(_fromUtf8("uiSlot6comboBox"))
self.uiSlot6comboBox = QtWidgets.QComboBox(self.uiNetworkAdaptersWizardPage)
self.uiSlot6comboBox.setObjectName("uiSlot6comboBox")
self.gridLayout_4.addWidget(self.uiSlot6comboBox, 6, 1, 1, 1)
IOSRouterWizard.addPage(self.uiNetworkAdaptersWizardPage)
self.uiWicWizardPage = QtGui.QWizardPage()
self.uiWicWizardPage.setObjectName(_fromUtf8("uiWicWizardPage"))
self.gridLayout_5 = QtGui.QGridLayout(self.uiWicWizardPage)
self.gridLayout_5.setObjectName(_fromUtf8("gridLayout_5"))
self.uiWic0Label = QtGui.QLabel(self.uiWicWizardPage)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Preferred)
self.uiWicWizardPage = QtWidgets.QWizardPage()
self.uiWicWizardPage.setObjectName("uiWicWizardPage")
self.gridLayout_5 = QtWidgets.QGridLayout(self.uiWicWizardPage)
self.gridLayout_5.setObjectName("gridLayout_5")
self.uiWic0Label = QtWidgets.QLabel(self.uiWicWizardPage)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiWic0Label.sizePolicy().hasHeightForWidth())
self.uiWic0Label.setSizePolicy(sizePolicy)
self.uiWic0Label.setObjectName(_fromUtf8("uiWic0Label"))
self.uiWic0Label.setObjectName("uiWic0Label")
self.gridLayout_5.addWidget(self.uiWic0Label, 0, 0, 1, 1)
self.uiWic0comboBox = QtGui.QComboBox(self.uiWicWizardPage)
self.uiWic0comboBox.setObjectName(_fromUtf8("uiWic0comboBox"))
self.uiWic0comboBox = QtWidgets.QComboBox(self.uiWicWizardPage)
self.uiWic0comboBox.setObjectName("uiWic0comboBox")
self.gridLayout_5.addWidget(self.uiWic0comboBox, 0, 1, 1, 1)
self.uiWic1Label = QtGui.QLabel(self.uiWicWizardPage)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Preferred)
self.uiWic1Label = QtWidgets.QLabel(self.uiWicWizardPage)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiWic1Label.sizePolicy().hasHeightForWidth())
self.uiWic1Label.setSizePolicy(sizePolicy)
self.uiWic1Label.setObjectName(_fromUtf8("uiWic1Label"))
self.uiWic1Label.setObjectName("uiWic1Label")
self.gridLayout_5.addWidget(self.uiWic1Label, 1, 0, 1, 1)
self.uiWic1comboBox = QtGui.QComboBox(self.uiWicWizardPage)
self.uiWic1comboBox.setObjectName(_fromUtf8("uiWic1comboBox"))
self.uiWic1comboBox = QtWidgets.QComboBox(self.uiWicWizardPage)
self.uiWic1comboBox.setObjectName("uiWic1comboBox")
self.gridLayout_5.addWidget(self.uiWic1comboBox, 1, 1, 1, 1)
self.uiWic2Label = QtGui.QLabel(self.uiWicWizardPage)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Preferred)
self.uiWic2Label = QtWidgets.QLabel(self.uiWicWizardPage)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Fixed, QtWidgets.QSizePolicy.Preferred)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiWic2Label.sizePolicy().hasHeightForWidth())
self.uiWic2Label.setSizePolicy(sizePolicy)
self.uiWic2Label.setObjectName(_fromUtf8("uiWic2Label"))
self.uiWic2Label.setObjectName("uiWic2Label")
self.gridLayout_5.addWidget(self.uiWic2Label, 2, 0, 1, 1)
self.uiWic2comboBox = QtGui.QComboBox(self.uiWicWizardPage)
self.uiWic2comboBox.setObjectName(_fromUtf8("uiWic2comboBox"))
self.uiWic2comboBox = QtWidgets.QComboBox(self.uiWicWizardPage)
self.uiWic2comboBox.setObjectName("uiWic2comboBox")
self.gridLayout_5.addWidget(self.uiWic2comboBox, 2, 1, 1, 1)
IOSRouterWizard.addPage(self.uiWicWizardPage)
self.uiIdlePCWizardPage = QtGui.QWizardPage()
self.uiIdlePCWizardPage.setObjectName(_fromUtf8("uiIdlePCWizardPage"))
self.gridLayout_3 = QtGui.QGridLayout(self.uiIdlePCWizardPage)
self.gridLayout_3.setObjectName(_fromUtf8("gridLayout_3"))
self.uiIdlepcLabel = QtGui.QLabel(self.uiIdlePCWizardPage)
self.uiIdlepcLabel.setObjectName(_fromUtf8("uiIdlepcLabel"))
self.uiIdlePCWizardPage = QtWidgets.QWizardPage()
self.uiIdlePCWizardPage.setObjectName("uiIdlePCWizardPage")
self.gridLayout_3 = QtWidgets.QGridLayout(self.uiIdlePCWizardPage)
self.gridLayout_3.setObjectName("gridLayout_3")
self.uiIdlepcLabel = QtWidgets.QLabel(self.uiIdlePCWizardPage)
self.uiIdlepcLabel.setObjectName("uiIdlepcLabel")
self.gridLayout_3.addWidget(self.uiIdlepcLabel, 0, 0, 1, 1)
self.uiIdlepcLineEdit = QtGui.QLineEdit(self.uiIdlePCWizardPage)
self.uiIdlepcLineEdit.setObjectName(_fromUtf8("uiIdlepcLineEdit"))
self.uiIdlepcLineEdit = QtWidgets.QLineEdit(self.uiIdlePCWizardPage)
self.uiIdlepcLineEdit.setObjectName("uiIdlepcLineEdit")
self.gridLayout_3.addWidget(self.uiIdlepcLineEdit, 0, 1, 1, 1)
self.uiIdlePCFinderPushButton = QtGui.QPushButton(self.uiIdlePCWizardPage)
self.uiIdlePCFinderPushButton.setObjectName(_fromUtf8("uiIdlePCFinderPushButton"))
self.uiIdlePCFinderPushButton = QtWidgets.QPushButton(self.uiIdlePCWizardPage)
self.uiIdlePCFinderPushButton.setObjectName("uiIdlePCFinderPushButton")
self.gridLayout_3.addWidget(self.uiIdlePCFinderPushButton, 0, 2, 1, 1)
IOSRouterWizard.addPage(self.uiIdlePCWizardPage)
@@ -283,48 +271,48 @@ class Ui_IOSRouterWizard(object):
IOSRouterWizard.setTabOrder(self.uiNameLineEdit, self.uiPlatformComboBox)
def retranslateUi(self, IOSRouterWizard):
IOSRouterWizard.setWindowTitle(_translate("IOSRouterWizard", "New IOS router template", None))
self.uiServerWizardPage.setTitle(_translate("IOSRouterWizard", "Server", None))
self.uiServerWizardPage.setSubTitle(_translate("IOSRouterWizard", "Please choose a server type to run your new IOS router.", None))
self.uiServerTypeGroupBox.setTitle(_translate("IOSRouterWizard", "Server type", None))
self.uiRemoteRadioButton.setText(_translate("IOSRouterWizard", "Remote", None))
self.uiCloudRadioButton.setText(_translate("IOSRouterWizard", "Cloud", None))
self.uiLocalRadioButton.setText(_translate("IOSRouterWizard", "Local", None))
self.uiRemoteServersGroupBox.setTitle(_translate("IOSRouterWizard", "Remote servers", None))
self.uiLoadBalanceCheckBox.setText(_translate("IOSRouterWizard", "Load balance across all available remote servers", None))
self.uiRemoteServersLabel.setText(_translate("IOSRouterWizard", "Run on server:", None))
self.uiIOSImageWizardPage.setTitle(_translate("IOSRouterWizard", "IOS image", None))
self.uiIOSImageWizardPage.setSubTitle(_translate("IOSRouterWizard", "Please choose an IOS image.", None))
self.uiIOSImageToolButton.setText(_translate("IOSRouterWizard", "&Browse...", None))
self.uiIOSImageLabel.setText(_translate("IOSRouterWizard", "IOS image:", None))
self.uiNamePlatformWizardPage.setTitle(_translate("IOSRouterWizard", "Name and platform", None))
self.uiNamePlatformWizardPage.setSubTitle(_translate("IOSRouterWizard", "Please choose a descriptive name for this new IOS router and verify the platform and chassis.", None))
self.uiTypeLabel.setText(_translate("IOSRouterWizard", "Platform:", None))
self.uiNameLabel.setText(_translate("IOSRouterWizard", "Name:", None))
self.uiChassisLabel.setText(_translate("IOSRouterWizard", "Chassis:", None))
self.uiEtherSwitchCheckBox.setText(_translate("IOSRouterWizard", "This is an EtherSwitch router", None))
self.uiMemoryWizardPage.setTitle(_translate("IOSRouterWizard", "Memory", None))
self.uiMemoryWizardPage.setSubTitle(_translate("IOSRouterWizard", "Please check the amount of memory (RAM) that you allocate to IOS. Too much or not enough RAM could prevent IOS to start.", None))
self.uiRamLabel.setText(_translate("IOSRouterWizard", "Default RAM:", None))
self.uiRamSpinBox.setSuffix(_translate("IOSRouterWizard", " MiB", None))
self.uiTestIOSImagePushButton.setText(_translate("IOSRouterWizard", "&Test IOS image", None))
self.label.setText(_translate("IOSRouterWizard", "<html><head/><body><p><a href=\"http://tools.cisco.com/ITDIT/CFN/jsp/SearchBySoftware.jsp\"><span style=\" text-decoration: underline; color:#0000ff;\">Check for minimum and maximum RAM requirement</span></a></p></body></html>", None))
self.uiNetworkAdaptersWizardPage.setTitle(_translate("IOSRouterWizard", "Network adapters", None))
self.uiNetworkAdaptersWizardPage.setSubTitle(_translate("IOSRouterWizard", "Please choose the default network adapters that should be inserted into every new instance of this router.", None))
self.uiSlot0Label.setText(_translate("IOSRouterWizard", "slot 0:", None))
self.uiSlot1Label.setText(_translate("IOSRouterWizard", "slot 1:", None))
self.uiSlot2Label.setText(_translate("IOSRouterWizard", "slot 2:", None))
self.uiSlot3Label.setText(_translate("IOSRouterWizard", "slot 3:", None))
self.uiSlot4Label.setText(_translate("IOSRouterWizard", "slot 4:", None))
self.uiSlot5Label.setText(_translate("IOSRouterWizard", "slot 5:", None))
self.uiSlot6Label.setText(_translate("IOSRouterWizard", "slot 6:", None))
self.uiWicWizardPage.setTitle(_translate("IOSRouterWizard", "WIC modules", None))
self.uiWicWizardPage.setSubTitle(_translate("IOSRouterWizard", "Please choose the default WIC modules that should be inserted into every new instance of this router.", None))
self.uiWic0Label.setText(_translate("IOSRouterWizard", "wic 0:", None))
self.uiWic1Label.setText(_translate("IOSRouterWizard", "wic 1:", None))
self.uiWic2Label.setText(_translate("IOSRouterWizard", "wic 2:", None))
self.uiIdlePCWizardPage.setTitle(_translate("IOSRouterWizard", "Idle-PC", None))
self.uiIdlePCWizardPage.setSubTitle(_translate("IOSRouterWizard", "An idle-pc value is necessary to prevent IOS to use 100% of your processor or one of its core.", None))
self.uiIdlepcLabel.setText(_translate("IOSRouterWizard", "Idle-PC:", None))
self.uiIdlePCFinderPushButton.setText(_translate("IOSRouterWizard", "Idle-PC finder", None))
_translate = QtCore.QCoreApplication.translate
IOSRouterWizard.setWindowTitle(_translate("IOSRouterWizard", "New IOS router template"))
self.uiServerWizardPage.setTitle(_translate("IOSRouterWizard", "Server"))
self.uiServerWizardPage.setSubTitle(_translate("IOSRouterWizard", "Please choose a server type to run your new IOS router."))
self.uiServerTypeGroupBox.setTitle(_translate("IOSRouterWizard", "Server type"))
self.uiRemoteRadioButton.setText(_translate("IOSRouterWizard", "Remote"))
self.uiCloudRadioButton.setText(_translate("IOSRouterWizard", "Cloud"))
self.uiLocalRadioButton.setText(_translate("IOSRouterWizard", "Local"))
self.uiRemoteServersGroupBox.setTitle(_translate("IOSRouterWizard", "Remote servers"))
self.uiLoadBalanceCheckBox.setText(_translate("IOSRouterWizard", "Load balance across all available remote servers"))
self.uiRemoteServersLabel.setText(_translate("IOSRouterWizard", "Run on server:"))
self.uiIOSImageWizardPage.setTitle(_translate("IOSRouterWizard", "IOS image"))
self.uiIOSImageWizardPage.setSubTitle(_translate("IOSRouterWizard", "Please choose an IOS image."))
self.uiIOSImageToolButton.setText(_translate("IOSRouterWizard", "&Browse..."))
self.uiIOSImageLabel.setText(_translate("IOSRouterWizard", "IOS image:"))
self.uiNamePlatformWizardPage.setTitle(_translate("IOSRouterWizard", "Name and platform"))
self.uiNamePlatformWizardPage.setSubTitle(_translate("IOSRouterWizard", "Please choose a descriptive name for this new IOS router and verify the platform and chassis."))
self.uiTypeLabel.setText(_translate("IOSRouterWizard", "Platform:"))
self.uiNameLabel.setText(_translate("IOSRouterWizard", "Name:"))
self.uiChassisLabel.setText(_translate("IOSRouterWizard", "Chassis:"))
self.uiEtherSwitchCheckBox.setText(_translate("IOSRouterWizard", "This is an EtherSwitch router"))
self.uiMemoryWizardPage.setTitle(_translate("IOSRouterWizard", "Memory"))
self.uiMemoryWizardPage.setSubTitle(_translate("IOSRouterWizard", "Please check the amount of memory (RAM) that you allocate to IOS. Too much or not enough RAM could prevent IOS to start."))
self.uiRamLabel.setText(_translate("IOSRouterWizard", "Default RAM:"))
self.uiRamSpinBox.setSuffix(_translate("IOSRouterWizard", " MiB"))
self.uiTestIOSImagePushButton.setText(_translate("IOSRouterWizard", "&Test IOS image"))
self.label.setText(_translate("IOSRouterWizard", "<html><head/><body><p><a href=\"http://tools.cisco.com/ITDIT/CFN/jsp/SearchBySoftware.jsp\"><span style=\" text-decoration: underline; color:#0000ff;\">Check for minimum and maximum RAM requirement</span></a></p></body></html>"))
self.uiNetworkAdaptersWizardPage.setTitle(_translate("IOSRouterWizard", "Network adapters"))
self.uiNetworkAdaptersWizardPage.setSubTitle(_translate("IOSRouterWizard", "Please choose the default network adapters that should be inserted into every new instance of this router."))
self.uiSlot0Label.setText(_translate("IOSRouterWizard", "slot 0:"))
self.uiSlot1Label.setText(_translate("IOSRouterWizard", "slot 1:"))
self.uiSlot2Label.setText(_translate("IOSRouterWizard", "slot 2:"))
self.uiSlot3Label.setText(_translate("IOSRouterWizard", "slot 3:"))
self.uiSlot4Label.setText(_translate("IOSRouterWizard", "slot 4:"))
self.uiSlot5Label.setText(_translate("IOSRouterWizard", "slot 5:"))
self.uiSlot6Label.setText(_translate("IOSRouterWizard", "slot 6:"))
self.uiWicWizardPage.setTitle(_translate("IOSRouterWizard", "WIC modules"))
self.uiWicWizardPage.setSubTitle(_translate("IOSRouterWizard", "Please choose the default WIC modules that should be inserted into every new instance of this router."))
self.uiWic0Label.setText(_translate("IOSRouterWizard", "wic 0:"))
self.uiWic1Label.setText(_translate("IOSRouterWizard", "wic 1:"))
self.uiWic2Label.setText(_translate("IOSRouterWizard", "wic 2:"))
self.uiIdlePCWizardPage.setTitle(_translate("IOSRouterWizard", "Idle-PC"))
self.uiIdlePCWizardPage.setSubTitle(_translate("IOSRouterWizard", "An idle-pc value is necessary to prevent IOS to use 100% of your processor or one of its core."))
self.uiIdlepcLabel.setText(_translate("IOSRouterWizard", "Idle-PC:"))
self.uiIdlePCFinderPushButton.setText(_translate("IOSRouterWizard", "Idle-PC finder"))

View File

@@ -41,7 +41,7 @@ class DecompressIOSThread(QtCore.QThread):
def __init__(self, ios_image, destination_file):
QtCore.QThread.__init__(self)
super().__init__()
self._ios_image = ios_image
self._destination_file = destination_file
self._is_running = False
@@ -55,8 +55,8 @@ class DecompressIOSThread(QtCore.QThread):
try:
decompressIOS(self._ios_image, self._destination_file)
except zipfile.BadZipFile as e:
self.error.emit("File {} is corrupted {}".format(self._ios_image, e), True)
return
self.error.emit("File {} is corrupted {}".format(self._ios_image, e), True)
return
except OSError as e:
self.error.emit("Could not decompress {}: {}".format(self._ios_image, e), True)
return

View File

@@ -15,10 +15,10 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from gns3.qt import QtGui
from gns3.qt import QtGui, QtWidgets
class TreeWidgetItem(QtGui.QTreeWidgetItem):
class TreeWidgetItem(QtWidgets.QTreeWidgetItem):
"""
QTreeWidgetItem reimplementation to allow numeric sort.
@@ -26,7 +26,7 @@ class TreeWidgetItem(QtGui.QTreeWidgetItem):
def __init__(self, parent=None):
QtGui.QTreeWidgetItem.__init__(self, parent)
super().__init__(parent)
def __lt__(self, other_item):

View File

@@ -23,7 +23,7 @@ import sys
import os
import shutil
from gns3.qt import QtCore, QtGui
from gns3.qt import QtCore, QtGui, QtWidgets
from gns3.local_server_config import LocalServerConfig
from gns3.local_config import LocalConfig
@@ -44,7 +44,7 @@ class IOU(Module):
"""
def __init__(self):
Module.__init__(self)
super().__init__()
self._settings = {}
self._nodes = []
@@ -257,7 +257,7 @@ class IOU(Module):
from gns3.main_window import MainWindow
mainwindow = MainWindow.instance()
(selection, ok) = QtGui.QInputDialog.getItem(mainwindow, "IOU image", "Please choose an image", selected_images, 0, False)
(selection, ok) = QtWidgets.QInputDialog.getItem(mainwindow, "IOU image", "Please choose an image", selected_images, 0, False)
if ok:
iouimage = selection
else:
@@ -333,16 +333,16 @@ class IOU(Module):
candidate_iou_images[iou_device["image"]] = iou_device["path"]
if candidate_iou_images:
selection, ok = QtGui.QInputDialog.getItem(mainwindow,
"IOU image", "IOU image {} could not be found\nPlease select an alternative from your existing images:".format(image),
list(candidate_iou_images.keys()), 0, False)
selection, ok = QtWidgets.QInputDialog.getItem(mainwindow,
"IOU image", "IOU image {} could not be found\nPlease select an alternative from your existing images:".format(image),
list(candidate_iou_images.keys()), 0, False)
if ok:
iou_image = candidate_iou_images[selection]
self._iou_images_cache[image] = iou_image
return iou_image
# no registered IOU image is used, let's just ask for an IOU image path
QtGui.QMessageBox.critical(mainwindow, "IOU image", "Could not find the {} IOU image \nPlease select a similar IOU image!".format(image))
QtWidgets.QMessageBox.critical(mainwindow, "IOU image", "Could not find the {} IOU image \nPlease select a similar IOU image!".format(image))
from .pages.iou_device_preferences_page import IOUDevicePreferencesPage
path = IOUDevicePreferencesPage.getIOUImage(mainwindow)
if path:

View File

@@ -22,7 +22,7 @@ Wizard for IOU devices.
import os
import sys
from gns3.qt import QtGui
from gns3.qt import QtGui, QtWidgets
from gns3.node import Node
from gns3.servers import Servers
from gns3.utils.get_resource import get_resource
@@ -33,7 +33,7 @@ from ..ui.iou_device_wizard_ui import Ui_IOUDeviceWizard
from .. import IOU
class IOUDeviceWizard(QtGui.QWizard, Ui_IOUDeviceWizard):
class IOUDeviceWizard(QtWidgets.QWizard, Ui_IOUDeviceWizard):
"""
Wizard to create an IOU device.
@@ -43,13 +43,13 @@ class IOUDeviceWizard(QtGui.QWizard, Ui_IOUDeviceWizard):
def __init__(self, iou_devices, parent):
QtGui.QWizard.__init__(self, parent)
super().__init__(parent)
self.setupUi(self)
self.setPixmap(QtGui.QWizard.LogoPixmap, QtGui.QPixmap(":/symbols/multilayer_switch.normal.svg"))
self.setWizardStyle(QtGui.QWizard.ModernStyle)
self.setPixmap(QtWidgets.QWizard.LogoPixmap, QtGui.QPixmap(":/symbols/multilayer_switch.normal.svg"))
self.setWizardStyle(QtWidgets.QWizard.ModernStyle)
if sys.platform.startswith("darwin"):
# we want to see the cancel button on OSX
self.setOptions(QtGui.QWizard.NoDefaultButton)
self.setOptions(QtWidgets.QWizard.NoDefaultButton)
self.uiRemoteRadioButton.toggled.connect(self._remoteServerToggledSlot)
self.uiLoadBalanceCheckBox.toggled.connect(self._loadBalanceToggledSlot)
@@ -133,10 +133,10 @@ class IOUDeviceWizard(QtGui.QWizard, Ui_IOUDeviceWizard):
if image_type == "L2 image":
# L2 image
self.setPixmap(QtGui.QWizard.LogoPixmap, QtGui.QPixmap(":/symbols/multilayer_switch.normal.svg"))
self.setPixmap(QtWidgets.QWizard.LogoPixmap, QtGui.QPixmap(":/symbols/multilayer_switch.normal.svg"))
else:
# L3 image
self.setPixmap(QtGui.QWizard.LogoPixmap, QtGui.QPixmap(":/symbols/router.normal.svg"))
self.setPixmap(QtWidgets.QWizard.LogoPixmap, QtGui.QPixmap(":/symbols/router.normal.svg"))
def initializePage(self, page_id):
@@ -146,7 +146,7 @@ class IOUDeviceWizard(QtGui.QWizard, Ui_IOUDeviceWizard):
self.uiRemoteServersComboBox.addItem("{}:{}".format(server.host, server.port), server)
if self.page(page_id) == self.uiNameImageWizardPage:
if not self.uiIOUImageToolButton.isEnabled():
QtGui.QMessageBox.warning(self, "IOU image", "You have chosen to use a remote server, please provide the path to an IOU image located on this server!")
QtWidgets.QMessageBox.warning(self, "IOU image", "You have chosen to use a remote server, please provide the path to an IOU image located on this server!")
def validateCurrentPage(self):
"""
@@ -157,11 +157,11 @@ class IOUDeviceWizard(QtGui.QWizard, Ui_IOUDeviceWizard):
name = self.uiNameLineEdit.text()
for iou_device in self._iou_devices.values():
if iou_device["name"] == name:
QtGui.QMessageBox.critical(self, "Name", "{} is already used, please choose another name".format(name))
QtWidgets.QMessageBox.critical(self, "Name", "{} is already used, please choose another name".format(name))
return False
if self.currentPage() == self.uiServerWizardPage and self.uiRemoteRadioButton.isChecked():
if not Servers.instance().remoteServers():
QtGui.QMessageBox.critical(self, "Remote server", "There is no remote server registered in IOS on UNIX preferences")
QtWidgets.QMessageBox.critical(self, "Remote server", "There is no remote server registered in IOS on UNIX preferences")
return False
return True

View File

@@ -46,7 +46,7 @@ class IOUDevice(VM):
URL_PREFIX = "iou"
def __init__(self, module, server, project):
VM.__init__(self, server, server, project)
super().__init__(server, server, project)
log.info("IOU instance is being created")
self._vm_id = None

View File

@@ -21,14 +21,14 @@ Configuration page for IOU devices.
import os
from gns3.qt import QtCore, QtGui
from gns3.qt import QtCore, QtGui, QtWidgets
from gns3.dialogs.node_configurator_dialog import ConfigurationError
from gns3.utils.get_resource import get_resource
from gns3.utils.get_default_base_config import get_default_base_config
from ..ui.iou_device_configuration_page_ui import Ui_iouDeviceConfigPageWidget
class iouDeviceConfigurationPage(QtGui.QWidget, Ui_iouDeviceConfigPageWidget):
class iouDeviceConfigurationPage(QtWidgets.QWidget, Ui_iouDeviceConfigPageWidget):
"""
QWidget configuration page for IOU devices.
@@ -36,7 +36,7 @@ class iouDeviceConfigurationPage(QtGui.QWidget, Ui_iouDeviceConfigPageWidget):
def __init__(self):
QtGui.QWidget.__init__(self)
super().__init__()
self.setupUi(self)
self.uiInitialConfigToolButton.clicked.connect(self._initialConfigBrowserSlot)
self.uiIOUImageToolButton.clicked.connect(self._iouImageBrowserSlot)
@@ -88,12 +88,12 @@ class iouDeviceConfigurationPage(QtGui.QWidget, Ui_iouDeviceConfigPageWidget):
"""
config_dir = os.path.join(os.path.dirname(QtCore.QSettings().fileName()), "base_configs")
path = QtGui.QFileDialog.getOpenFileName(self, "Select an initial configuration", config_dir)
path = QtWidgets.QFileDialog.getOpenFileName(self, "Select an initial configuration", config_dir)
if not path:
return
if not os.access(path, os.R_OK):
QtGui.QMessageBox.critical(self, "Initial configuration", "Cannot read {}".format(path))
QtWidgets.QMessageBox.critical(self, "Initial configuration", "Cannot read {}".format(path))
return
self.uiInitialConfigLineEdit.clear()
@@ -160,9 +160,9 @@ class iouDeviceConfigurationPage(QtGui.QWidget, Ui_iouDeviceConfigPageWidget):
# set the device name
name = self.uiNameLineEdit.text()
if not name:
QtGui.QMessageBox.critical(self, "Name", "IOU device name cannot be empty!")
QtWidgets.QMessageBox.critical(self, "Name", "IOU device name cannot be empty!")
elif node and not node.validateHostname(name):
QtGui.QMessageBox.critical(self, "Name", "Invalid name detected for IOU device: {}".format(name))
QtWidgets.QMessageBox.critical(self, "Name", "Invalid name detected for IOU device: {}".format(name))
else:
settings["name"] = name
@@ -185,7 +185,7 @@ class iouDeviceConfigurationPage(QtGui.QWidget, Ui_iouDeviceConfigPageWidget):
if os.access(initial_config, os.R_OK):
settings["initial_config"] = initial_config
else:
QtGui.QMessageBox.critical(self, "Initial-config", "Cannot read the initial-config file")
QtWidgets.QMessageBox.critical(self, "Initial-config", "Cannot read the initial-config file")
# save advanced settings
settings["l1_keepalives"] = self.uiL1KeepalivesCheckBox.isChecked()
@@ -196,7 +196,7 @@ class iouDeviceConfigurationPage(QtGui.QWidget, Ui_iouDeviceConfigPageWidget):
ethernet_adapters = self.uiEthernetAdaptersSpinBox.value()
serial_adapters = self.uiSerialAdaptersSpinBox.value()
if ethernet_adapters + serial_adapters > 16:
QtGui.QMessageBox.warning(self, settings["name"], "The total number of adapters cannot exceed 16")
QtWidgets.QMessageBox.warning(self, settings["name"], "The total number of adapters cannot exceed 16")
raise ConfigurationError()
if node:
@@ -205,7 +205,7 @@ class iouDeviceConfigurationPage(QtGui.QWidget, Ui_iouDeviceConfigPageWidget):
node_ports = node.ports()
for node_port in node_ports:
if not node_port.isFree():
QtGui.QMessageBox.critical(self, node.name(), "Changing the number of adapters while links are connected isn't supported yet! Please delete all the links first.")
QtWidgets.QMessageBox.critical(self, node.name(), "Changing the number of adapters while links are connected isn't supported yet! Please delete all the links first.")
raise ConfigurationError()
settings["ethernet_adapters"] = ethernet_adapters

View File

@@ -23,7 +23,7 @@ import copy
import os
import stat
from gns3.qt import QtCore, QtGui
from gns3.qt import QtCore, QtGui, QtWidgets
from gns3.main_window import MainWindow
from gns3.dialogs.symbol_selection_dialog import SymbolSelectionDialog
from gns3.dialogs.configuration_dialog import ConfigurationDialog
@@ -38,14 +38,14 @@ from ..pages.iou_device_configuration_page import iouDeviceConfigurationPage
from ..dialogs.iou_device_wizard import IOUDeviceWizard
class IOUDevicePreferencesPage(QtGui.QWidget, Ui_IOUDevicePreferencesPageWidget):
class IOUDevicePreferencesPage(QtWidgets.QWidget, Ui_IOUDevicePreferencesPageWidget):
"""
QWidget preference page for IOU image & device preferences.
"""
def __init__(self):
QtGui.QWidget.__init__(self)
super().__init__()
self.setupUi(self)
self._main_window = MainWindow.instance()
@@ -90,7 +90,7 @@ class IOUDevicePreferencesPage(QtGui.QWidget, Ui_IOUDevicePreferencesPageWidget)
self._iou_devices[key] = IOU_DEVICE_SETTINGS.copy()
self._iou_devices[key].update(new_device_settings)
item = QtGui.QTreeWidgetItem(self.uiIOUDevicesTreeWidget)
item = QtWidgets.QTreeWidgetItem(self.uiIOUDevicesTreeWidget)
item.setText(0, self._iou_devices[key]["name"])
item.setIcon(0, QtGui.QIcon(self._iou_devices[key]["default_symbol"]))
item.setData(0, QtCore.Qt.UserRole, key)
@@ -102,7 +102,7 @@ class IOUDevicePreferencesPage(QtGui.QWidget, Ui_IOUDevicePreferencesPageWidget)
log = logging.getLogger(__name__)
# Start uploading the image to cloud files
self._upload_image_progress_dialog = QtGui.QProgressDialog(
self._upload_image_progress_dialog = QtWidgets.QProgressDialog(
"Uploading image file {}".format(new_device_settings['image']), "Cancel", 0, 0, parent=self)
self._upload_image_progress_dialog.setWindowModality(QtCore.Qt.WindowModal)
self._upload_image_progress_dialog.setWindowTitle("IOU image upload")
@@ -117,7 +117,7 @@ class IOUDevicePreferencesPage(QtGui.QWidget, Ui_IOUDevicePreferencesPageWidget)
except Exception as e:
self._upload_image_progress_dialog.reject()
log.error(e)
QtGui.QMessageBox.critical(self, "IOU image upload", "Error uploading IOU image: {}".format(e))
QtWidgets.QMessageBox.critical(self, "IOU image upload", "Error uploading IOU image: {}".format(e))
def _imageUploadComplete(self):
if self._upload_image_progress_dialog.wasCanceled():
@@ -139,8 +139,8 @@ class IOUDevicePreferencesPage(QtGui.QWidget, Ui_IOUDevicePreferencesPageWidget)
if iou_device["name"] != item.text(0):
new_key = "{server}:{name}".format(server=iou_device["server"], name=iou_device["name"])
if new_key in self._iou_devices:
QtGui.QMessageBox.critical(self, "IOU device", "IOU device name {} already exists for server {}".format(iou_device["name"],
iou_device["server"]))
QtWidgets.QMessageBox.critical(self, "IOU device", "IOU device name {} already exists for server {}".format(iou_device["name"],
iou_device["server"]))
iou_device["name"] = item.text(0)
return
self._iou_devices[new_key] = self._iou_devices[key]
@@ -162,7 +162,7 @@ class IOUDevicePreferencesPage(QtGui.QWidget, Ui_IOUDevicePreferencesPageWidget)
def _createSectionItem(self, name):
section_item = QtGui.QTreeWidgetItem(self.uiIOUDeviceInfoTreeWidget)
section_item = QtWidgets.QTreeWidgetItem(self.uiIOUDeviceInfoTreeWidget)
section_item.setText(0, name)
font = section_item.font(0)
font.setBold(True)
@@ -175,25 +175,25 @@ class IOUDevicePreferencesPage(QtGui.QWidget, Ui_IOUDevicePreferencesPageWidget)
# fill out the General section
section_item = self._createSectionItem("General")
QtGui.QTreeWidgetItem(section_item, ["Name:", iou_device["name"]])
QtGui.QTreeWidgetItem(section_item, ["Server:", iou_device["server"]])
QtGui.QTreeWidgetItem(section_item, ["Image:", iou_device["image"]])
QtWidgets.QTreeWidgetItem(section_item, ["Name:", iou_device["name"]])
QtWidgets.QTreeWidgetItem(section_item, ["Server:", iou_device["server"]])
QtWidgets.QTreeWidgetItem(section_item, ["Image:", iou_device["image"]])
if iou_device["initial_config"]:
QtGui.QTreeWidgetItem(section_item, ["Initial config:", iou_device["initial_config"]])
QtWidgets.QTreeWidgetItem(section_item, ["Initial config:", iou_device["initial_config"]])
if iou_device["use_default_iou_values"]:
QtGui.QTreeWidgetItem(section_item, ["RAM:", "default"])
QtGui.QTreeWidgetItem(section_item, ["NVRAM:", "default"])
QtWidgets.QTreeWidgetItem(section_item, ["RAM:", "default"])
QtWidgets.QTreeWidgetItem(section_item, ["NVRAM:", "default"])
else:
QtGui.QTreeWidgetItem(section_item, ["RAM:", "{} MiB".format(iou_device["ram"])])
QtGui.QTreeWidgetItem(section_item, ["NVRAM:", "{} KiB".format(iou_device["nvram"])])
QtWidgets.QTreeWidgetItem(section_item, ["RAM:", "{} MiB".format(iou_device["ram"])])
QtWidgets.QTreeWidgetItem(section_item, ["NVRAM:", "{} KiB".format(iou_device["nvram"])])
# fill out the Network section
section_item = self._createSectionItem("Network")
QtGui.QTreeWidgetItem(section_item, ["Ethernet adapters:", "{} ({} interfaces)".format(iou_device["ethernet_adapters"],
iou_device["ethernet_adapters"] * 4)])
QtGui.QTreeWidgetItem(section_item, ["Serial adapters:", "{} ({} interfaces)".format(iou_device["serial_adapters"],
iou_device["serial_adapters"] * 4)])
QtWidgets.QTreeWidgetItem(section_item, ["Ethernet adapters:", "{} ({} interfaces)".format(iou_device["ethernet_adapters"],
iou_device["ethernet_adapters"] * 4)])
QtWidgets.QTreeWidgetItem(section_item, ["Serial adapters:", "{} ({} interfaces)".format(iou_device["serial_adapters"],
iou_device["serial_adapters"] * 4)])
self.uiIOUDeviceInfoTreeWidget.expandAll()
self.uiIOUDeviceInfoTreeWidget.resizeColumnToContents(0)
@@ -209,17 +209,17 @@ class IOUDevicePreferencesPage(QtGui.QWidget, Ui_IOUDevicePreferencesPageWidget)
"""
destination_directory = os.path.join(MainWindow.instance().imagesDirPath(), "IOU")
path, _ = QtGui.QFileDialog.getOpenFileNameAndFilter(parent,
"Select an IOU image",
destination_directory,
"All files (*)",
"IOU image (*.bin *.image)")
path, _ = QtWidgets.QFileDialog.getOpenFileNameAndFilter(parent,
"Select an IOU image",
destination_directory,
"All files (*)",
"IOU image (*.bin *.image)")
if not path:
return
if not os.access(path, os.R_OK):
QtGui.QMessageBox.critical(parent, "IOU image", "Cannot read {}".format(path))
QtWidgets.QMessageBox.critical(parent, "IOU image", "Cannot read {}".format(path))
return
try:
@@ -227,13 +227,13 @@ class IOUDevicePreferencesPage(QtGui.QWidget, Ui_IOUDevicePreferencesPageWidget)
# read the first 7 bytes of the file.
elf_header_start = f.read(7)
except OSError as e:
QtGui.QMessageBox.critical(parent, "IOU image", "Cannot read ELF magic number: {}".format(e))
QtWidgets.QMessageBox.critical(parent, "IOU image", "Cannot read ELF magic number: {}".format(e))
return
# file must start with the ELF magic number, be 32-bit, little endian and have an ELF version of 1
# normal IOS image are big endian!
if elf_header_start != b'\x7fELF\x01\x01\x01':
QtGui.QMessageBox.critical(parent, "IOU image", "Sorry, this is not a valid IOU image!")
QtWidgets.QMessageBox.critical(parent, "IOU image", "Sorry, this is not a valid IOU image!")
return
try:
@@ -241,17 +241,17 @@ class IOUDevicePreferencesPage(QtGui.QWidget, Ui_IOUDevicePreferencesPageWidget)
except FileExistsError:
pass
except OSError as e:
QtGui.QMessageBox.critical(parent, "IOU images directory", "Could not create the IOU images directory {}: {}".format(destination_directory, e))
QtWidgets.QMessageBox.critical(parent, "IOU images directory", "Could not create the IOU images directory {}: {}".format(destination_directory, e))
return
if os.path.normpath(os.path.dirname(path)) != destination_directory:
# the IOU image is not in the default images directory
reply = QtGui.QMessageBox.question(parent,
"IOU image",
"Would you like to copy {} to the default images directory".format(os.path.basename(path)),
QtGui.QMessageBox.Yes,
QtGui.QMessageBox.No)
if reply == QtGui.QMessageBox.Yes:
reply = QtWidgets.QMessageBox.question(parent,
"IOU image",
"Would you like to copy {} to the default images directory".format(os.path.basename(path)),
QtWidgets.QMessageBox.Yes,
QtWidgets.QMessageBox.No)
if reply == QtWidgets.QMessageBox.Yes:
destination_path = os.path.join(destination_directory, os.path.basename(path))
thread = FileCopyThread(path, destination_path)
progress_dialog = ProgressDialog(thread, "Project", "Copying {}".format(os.path.basename(path)), "Cancel", busy=True, parent=parent)
@@ -260,14 +260,14 @@ class IOUDevicePreferencesPage(QtGui.QWidget, Ui_IOUDevicePreferencesPageWidget)
progress_dialog.exec_()
errors = progress_dialog.errors()
if errors:
QtGui.QMessageBox.critical(parent, "IOS image", "{}".format("".join(errors)))
QtWidgets.QMessageBox.critical(parent, "IOS image", "{}".format("".join(errors)))
else:
path = destination_path
mode = os.stat(path).st_mode
os.chmod(path, mode | stat.S_IXUSR)
if not os.access(path, os.X_OK):
QtGui.QMessageBox.warning(parent, "IOU image", "{} is not executable".format(path))
QtWidgets.QMessageBox.warning(parent, "IOU image", "{} is not executable".format(path))
return path
@@ -279,7 +279,7 @@ class IOUDevicePreferencesPage(QtGui.QWidget, Ui_IOUDevicePreferencesPageWidget)
:param column: ignored
"""
if QtGui.QApplication.mouseButtons() & QtCore.Qt.RightButton:
if QtWidgets.QApplication.mouseButtons() & QtCore.Qt.RightButton:
self._showContextualMenu()
def _showContextualMenu(self):
@@ -287,8 +287,8 @@ class IOUDevicePreferencesPage(QtGui.QWidget, Ui_IOUDevicePreferencesPageWidget)
Contextual menu.
"""
menu = QtGui.QMenu()
change_symbol_action = QtGui.QAction("Change symbol", menu)
menu = QtWidgets.QMenu()
change_symbol_action = QtWidgets.QAction("Change symbol", menu)
change_symbol_action.setIcon(QtGui.QIcon(":/icons/node_conception.svg"))
self.connect(change_symbol_action, QtCore.SIGNAL('triggered()'), self._changeSymbolSlot)
menu.addAction(change_symbol_action)
@@ -323,7 +323,7 @@ class IOUDevicePreferencesPage(QtGui.QWidget, Ui_IOUDevicePreferencesPageWidget)
self._items.clear()
for key, iou_device in self._iou_devices.items():
item = QtGui.QTreeWidgetItem(self.uiIOUDevicesTreeWidget)
item = QtWidgets.QTreeWidgetItem(self.uiIOUDevicesTreeWidget)
item.setText(0, iou_device["name"])
item.setIcon(0, QtGui.QIcon(iou_device["default_symbol"]))
item.setData(0, QtCore.Qt.UserRole, key)

View File

@@ -22,14 +22,14 @@ Configuration page for IOU preferences.
import os
import sys
from gns3.qt import QtGui
from gns3.qt import QtGui, QtWidgets
from .. import IOU
from ..ui.iou_preferences_page_ui import Ui_IOUPreferencesPageWidget
from ..settings import IOU_SETTINGS
class IOUPreferencesPage(QtGui.QWidget, Ui_IOUPreferencesPageWidget):
class IOUPreferencesPage(QtWidgets.QWidget, Ui_IOUPreferencesPageWidget):
"""
QWidget preference page for IOU.
@@ -37,7 +37,7 @@ class IOUPreferencesPage(QtGui.QWidget, Ui_IOUPreferencesPageWidget):
def __init__(self):
QtGui.QWidget.__init__(self)
super().__init__()
self.setupUi(self)
# connect signals
@@ -55,12 +55,12 @@ class IOUPreferencesPage(QtGui.QWidget, Ui_IOUPreferencesPageWidget):
Slot to open a file browser and select an iourc file
"""
path = QtGui.QFileDialog.getOpenFileName(self, "Select the IOURC file", ".")
path = QtWidgets.QFileDialog.getOpenFileName(self, "Select the IOURC file", ".")
if not path:
return
if not os.access(path, os.R_OK):
QtGui.QMessageBox.critical(self, "IOURC file", "{} cannot be read".format(os.path.basename(path)))
QtWidgets.QMessageBox.critical(self, "IOURC file", "{} cannot be read".format(os.path.basename(path)))
return
self.uiIOURCPathLineEdit.setText(os.path.normpath(path))
@@ -73,12 +73,12 @@ class IOUPreferencesPage(QtGui.QWidget, Ui_IOUPreferencesPageWidget):
filter = ""
if sys.platform.startswith("win"):
filter = "Executable (*.exe);;All files (*.*)"
path = QtGui.QFileDialog.getOpenFileName(self, "Select iouyap", ".", filter)
path = QtWidgets.QFileDialog.getOpenFileName(self, "Select iouyap", ".", filter)
if not path:
return
if not os.access(path, os.X_OK):
QtGui.QMessageBox.critical(self, "iouyap", "{} is not an executable".format(os.path.basename(path)))
QtWidgets.QMessageBox.critical(self, "iouyap", "{} is not an executable".format(os.path.basename(path)))
return
self.uiIouyapPathLineEdit.setText(os.path.normpath(path))

View File

@@ -1,104 +1,92 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file '/home/grossmj/PycharmProjects/gns3-gui/gns3/modules/iou/ui/iou_device_configuration_page.ui'
# Form implementation generated from reading ui file '/Users/noplay/code/gns3/gns3-gui/gns3/modules/iou/ui/iou_device_configuration_page.ui'
#
# Created: Wed Feb 25 11:53:17 2015
# by: PyQt4 UI code generator 4.10.4
# Created: Fri Apr 17 10:44:34 2015
# by: PyQt5 UI code generator 5.4
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
from gns3.qt import QtCore, QtGui, QtWidgets
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_iouDeviceConfigPageWidget:
class Ui_iouDeviceConfigPageWidget(object):
def setupUi(self, iouDeviceConfigPageWidget):
iouDeviceConfigPageWidget.setObjectName(_fromUtf8("iouDeviceConfigPageWidget"))
iouDeviceConfigPageWidget.setObjectName("iouDeviceConfigPageWidget")
iouDeviceConfigPageWidget.resize(392, 473)
self.verticalLayout = QtGui.QVBoxLayout(iouDeviceConfigPageWidget)
self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
self.uiTabWidget = QtGui.QTabWidget(iouDeviceConfigPageWidget)
self.uiTabWidget.setObjectName(_fromUtf8("uiTabWidget"))
self.tab = QtGui.QWidget()
self.tab.setObjectName(_fromUtf8("tab"))
self.verticalLayout_2 = QtGui.QVBoxLayout(self.tab)
self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2"))
self.uiGeneralgroupBox = QtGui.QGroupBox(self.tab)
self.uiGeneralgroupBox.setStyleSheet(_fromUtf8(""))
self.uiGeneralgroupBox.setObjectName(_fromUtf8("uiGeneralgroupBox"))
self.gridLayout = QtGui.QGridLayout(self.uiGeneralgroupBox)
self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
self.uiNameLabel = QtGui.QLabel(self.uiGeneralgroupBox)
self.uiNameLabel.setObjectName(_fromUtf8("uiNameLabel"))
self.verticalLayout = QtWidgets.QVBoxLayout(iouDeviceConfigPageWidget)
self.verticalLayout.setObjectName("verticalLayout")
self.uiTabWidget = QtWidgets.QTabWidget(iouDeviceConfigPageWidget)
self.uiTabWidget.setObjectName("uiTabWidget")
self.tab = QtWidgets.QWidget()
self.tab.setObjectName("tab")
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.tab)
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.uiGeneralgroupBox = QtWidgets.QGroupBox(self.tab)
self.uiGeneralgroupBox.setStyleSheet("")
self.uiGeneralgroupBox.setObjectName("uiGeneralgroupBox")
self.gridLayout = QtWidgets.QGridLayout(self.uiGeneralgroupBox)
self.gridLayout.setObjectName("gridLayout")
self.uiNameLabel = QtWidgets.QLabel(self.uiGeneralgroupBox)
self.uiNameLabel.setObjectName("uiNameLabel")
self.gridLayout.addWidget(self.uiNameLabel, 0, 0, 1, 1)
self.uiNameLineEdit = QtGui.QLineEdit(self.uiGeneralgroupBox)
self.uiNameLineEdit.setObjectName(_fromUtf8("uiNameLineEdit"))
self.uiNameLineEdit = QtWidgets.QLineEdit(self.uiGeneralgroupBox)
self.uiNameLineEdit.setObjectName("uiNameLineEdit")
self.gridLayout.addWidget(self.uiNameLineEdit, 0, 1, 1, 1)
self.uiIOUImageLabel = QtGui.QLabel(self.uiGeneralgroupBox)
self.uiIOUImageLabel.setObjectName(_fromUtf8("uiIOUImageLabel"))
self.uiIOUImageLabel = QtWidgets.QLabel(self.uiGeneralgroupBox)
self.uiIOUImageLabel.setObjectName("uiIOUImageLabel")
self.gridLayout.addWidget(self.uiIOUImageLabel, 1, 0, 1, 1)
self.horizontalLayout_5 = QtGui.QHBoxLayout()
self.horizontalLayout_5.setObjectName(_fromUtf8("horizontalLayout_5"))
self.uiIOUImageLineEdit = QtGui.QLineEdit(self.uiGeneralgroupBox)
self.uiIOUImageLineEdit.setObjectName(_fromUtf8("uiIOUImageLineEdit"))
self.horizontalLayout_5 = QtWidgets.QHBoxLayout()
self.horizontalLayout_5.setObjectName("horizontalLayout_5")
self.uiIOUImageLineEdit = QtWidgets.QLineEdit(self.uiGeneralgroupBox)
self.uiIOUImageLineEdit.setObjectName("uiIOUImageLineEdit")
self.horizontalLayout_5.addWidget(self.uiIOUImageLineEdit)
self.uiIOUImageToolButton = QtGui.QToolButton(self.uiGeneralgroupBox)
self.uiIOUImageToolButton = QtWidgets.QToolButton(self.uiGeneralgroupBox)
self.uiIOUImageToolButton.setToolButtonStyle(QtCore.Qt.ToolButtonTextOnly)
self.uiIOUImageToolButton.setObjectName(_fromUtf8("uiIOUImageToolButton"))
self.uiIOUImageToolButton.setObjectName("uiIOUImageToolButton")
self.horizontalLayout_5.addWidget(self.uiIOUImageToolButton)
self.gridLayout.addLayout(self.horizontalLayout_5, 1, 1, 1, 1)
self.uiInitialConfigLabel = QtGui.QLabel(self.uiGeneralgroupBox)
self.uiInitialConfigLabel.setObjectName(_fromUtf8("uiInitialConfigLabel"))
self.uiInitialConfigLabel = QtWidgets.QLabel(self.uiGeneralgroupBox)
self.uiInitialConfigLabel.setObjectName("uiInitialConfigLabel")
self.gridLayout.addWidget(self.uiInitialConfigLabel, 2, 0, 1, 1)
self.horizontalLayout_4 = QtGui.QHBoxLayout()
self.horizontalLayout_4.setObjectName(_fromUtf8("horizontalLayout_4"))
self.uiInitialConfigLineEdit = QtGui.QLineEdit(self.uiGeneralgroupBox)
self.uiInitialConfigLineEdit.setObjectName(_fromUtf8("uiInitialConfigLineEdit"))
self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
self.horizontalLayout_4.setObjectName("horizontalLayout_4")
self.uiInitialConfigLineEdit = QtWidgets.QLineEdit(self.uiGeneralgroupBox)
self.uiInitialConfigLineEdit.setObjectName("uiInitialConfigLineEdit")
self.horizontalLayout_4.addWidget(self.uiInitialConfigLineEdit)
self.uiInitialConfigToolButton = QtGui.QToolButton(self.uiGeneralgroupBox)
self.uiInitialConfigToolButton = QtWidgets.QToolButton(self.uiGeneralgroupBox)
self.uiInitialConfigToolButton.setToolButtonStyle(QtCore.Qt.ToolButtonTextOnly)
self.uiInitialConfigToolButton.setObjectName(_fromUtf8("uiInitialConfigToolButton"))
self.uiInitialConfigToolButton.setObjectName("uiInitialConfigToolButton")
self.horizontalLayout_4.addWidget(self.uiInitialConfigToolButton)
self.gridLayout.addLayout(self.horizontalLayout_4, 2, 1, 1, 1)
self.uiConsolePortLabel = QtGui.QLabel(self.uiGeneralgroupBox)
self.uiConsolePortLabel.setObjectName(_fromUtf8("uiConsolePortLabel"))
self.uiConsolePortLabel = QtWidgets.QLabel(self.uiGeneralgroupBox)
self.uiConsolePortLabel.setObjectName("uiConsolePortLabel")
self.gridLayout.addWidget(self.uiConsolePortLabel, 3, 0, 1, 1)
self.uiConsolePortSpinBox = QtGui.QSpinBox(self.uiGeneralgroupBox)
self.uiConsolePortSpinBox = QtWidgets.QSpinBox(self.uiGeneralgroupBox)
self.uiConsolePortSpinBox.setMaximum(65535)
self.uiConsolePortSpinBox.setObjectName(_fromUtf8("uiConsolePortSpinBox"))
self.uiConsolePortSpinBox.setObjectName("uiConsolePortSpinBox")
self.gridLayout.addWidget(self.uiConsolePortSpinBox, 3, 1, 1, 1)
self.verticalLayout_2.addWidget(self.uiGeneralgroupBox)
self.uiOtherSettingsGroupBox = QtGui.QGroupBox(self.tab)
self.uiOtherSettingsGroupBox.setObjectName(_fromUtf8("uiOtherSettingsGroupBox"))
self.gridLayout_2 = QtGui.QGridLayout(self.uiOtherSettingsGroupBox)
self.gridLayout_2.setObjectName(_fromUtf8("gridLayout_2"))
self.uiL1KeepalivesCheckBox = QtGui.QCheckBox(self.uiOtherSettingsGroupBox)
self.uiOtherSettingsGroupBox = QtWidgets.QGroupBox(self.tab)
self.uiOtherSettingsGroupBox.setObjectName("uiOtherSettingsGroupBox")
self.gridLayout_2 = QtWidgets.QGridLayout(self.uiOtherSettingsGroupBox)
self.gridLayout_2.setObjectName("gridLayout_2")
self.uiL1KeepalivesCheckBox = QtWidgets.QCheckBox(self.uiOtherSettingsGroupBox)
self.uiL1KeepalivesCheckBox.setEnabled(True)
self.uiL1KeepalivesCheckBox.setChecked(False)
self.uiL1KeepalivesCheckBox.setObjectName(_fromUtf8("uiL1KeepalivesCheckBox"))
self.uiL1KeepalivesCheckBox.setObjectName("uiL1KeepalivesCheckBox")
self.gridLayout_2.addWidget(self.uiL1KeepalivesCheckBox, 0, 0, 1, 2)
self.uiDefaultValuesCheckBox = QtGui.QCheckBox(self.uiOtherSettingsGroupBox)
self.uiDefaultValuesCheckBox = QtWidgets.QCheckBox(self.uiOtherSettingsGroupBox)
self.uiDefaultValuesCheckBox.setChecked(True)
self.uiDefaultValuesCheckBox.setObjectName(_fromUtf8("uiDefaultValuesCheckBox"))
self.uiDefaultValuesCheckBox.setObjectName("uiDefaultValuesCheckBox")
self.gridLayout_2.addWidget(self.uiDefaultValuesCheckBox, 1, 0, 1, 2)
self.uiRamLabel = QtGui.QLabel(self.uiOtherSettingsGroupBox)
self.uiRamLabel.setObjectName(_fromUtf8("uiRamLabel"))
self.uiRamLabel = QtWidgets.QLabel(self.uiOtherSettingsGroupBox)
self.uiRamLabel.setObjectName("uiRamLabel")
self.gridLayout_2.addWidget(self.uiRamLabel, 2, 0, 1, 1)
self.uiRamSpinBox = QtGui.QSpinBox(self.uiOtherSettingsGroupBox)
self.uiRamSpinBox = QtWidgets.QSpinBox(self.uiOtherSettingsGroupBox)
self.uiRamSpinBox.setEnabled(False)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiRamSpinBox.sizePolicy().hasHeightForWidth())
@@ -107,14 +95,14 @@ class Ui_iouDeviceConfigPageWidget(object):
self.uiRamSpinBox.setMaximum(65535)
self.uiRamSpinBox.setSingleStep(32)
self.uiRamSpinBox.setProperty("value", 128)
self.uiRamSpinBox.setObjectName(_fromUtf8("uiRamSpinBox"))
self.uiRamSpinBox.setObjectName("uiRamSpinBox")
self.gridLayout_2.addWidget(self.uiRamSpinBox, 2, 1, 1, 1)
self.uiNvramLabel = QtGui.QLabel(self.uiOtherSettingsGroupBox)
self.uiNvramLabel.setObjectName(_fromUtf8("uiNvramLabel"))
self.uiNvramLabel = QtWidgets.QLabel(self.uiOtherSettingsGroupBox)
self.uiNvramLabel.setObjectName("uiNvramLabel")
self.gridLayout_2.addWidget(self.uiNvramLabel, 3, 0, 1, 1)
self.uiNvramSpinBox = QtGui.QSpinBox(self.uiOtherSettingsGroupBox)
self.uiNvramSpinBox = QtWidgets.QSpinBox(self.uiOtherSettingsGroupBox)
self.uiNvramSpinBox.setEnabled(False)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiNvramSpinBox.sizePolicy().hasHeightForWidth())
@@ -123,50 +111,50 @@ class Ui_iouDeviceConfigPageWidget(object):
self.uiNvramSpinBox.setMaximum(65535)
self.uiNvramSpinBox.setSingleStep(32)
self.uiNvramSpinBox.setProperty("value", 128)
self.uiNvramSpinBox.setObjectName(_fromUtf8("uiNvramSpinBox"))
self.uiNvramSpinBox.setObjectName("uiNvramSpinBox")
self.gridLayout_2.addWidget(self.uiNvramSpinBox, 3, 1, 1, 1)
self.verticalLayout_2.addWidget(self.uiOtherSettingsGroupBox)
spacerItem = QtGui.QSpacerItem(260, 301, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
spacerItem = QtWidgets.QSpacerItem(260, 301, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout_2.addItem(spacerItem)
self.uiTabWidget.addTab(self.tab, _fromUtf8(""))
self.tab_2 = QtGui.QWidget()
self.tab_2.setObjectName(_fromUtf8("tab_2"))
self.gridLayout_5 = QtGui.QGridLayout(self.tab_2)
self.gridLayout_5.setObjectName(_fromUtf8("gridLayout_5"))
self.groupBox = QtGui.QGroupBox(self.tab_2)
self.groupBox.setObjectName(_fromUtf8("groupBox"))
self.gridLayout_3 = QtGui.QGridLayout(self.groupBox)
self.gridLayout_3.setObjectName(_fromUtf8("gridLayout_3"))
self.uiEthernetAdaptersLabel = QtGui.QLabel(self.groupBox)
self.uiEthernetAdaptersLabel.setObjectName(_fromUtf8("uiEthernetAdaptersLabel"))
self.uiTabWidget.addTab(self.tab, "")
self.tab_2 = QtWidgets.QWidget()
self.tab_2.setObjectName("tab_2")
self.gridLayout_5 = QtWidgets.QGridLayout(self.tab_2)
self.gridLayout_5.setObjectName("gridLayout_5")
self.groupBox = QtWidgets.QGroupBox(self.tab_2)
self.groupBox.setObjectName("groupBox")
self.gridLayout_3 = QtWidgets.QGridLayout(self.groupBox)
self.gridLayout_3.setObjectName("gridLayout_3")
self.uiEthernetAdaptersLabel = QtWidgets.QLabel(self.groupBox)
self.uiEthernetAdaptersLabel.setObjectName("uiEthernetAdaptersLabel")
self.gridLayout_3.addWidget(self.uiEthernetAdaptersLabel, 0, 0, 1, 1)
self.uiEthernetAdaptersSpinBox = QtGui.QSpinBox(self.groupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.uiEthernetAdaptersSpinBox = QtWidgets.QSpinBox(self.groupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiEthernetAdaptersSpinBox.sizePolicy().hasHeightForWidth())
self.uiEthernetAdaptersSpinBox.setSizePolicy(sizePolicy)
self.uiEthernetAdaptersSpinBox.setMaximum(16)
self.uiEthernetAdaptersSpinBox.setSingleStep(2)
self.uiEthernetAdaptersSpinBox.setObjectName(_fromUtf8("uiEthernetAdaptersSpinBox"))
self.uiEthernetAdaptersSpinBox.setObjectName("uiEthernetAdaptersSpinBox")
self.gridLayout_3.addWidget(self.uiEthernetAdaptersSpinBox, 0, 1, 1, 1)
self.uiSerialAdaptersLabel = QtGui.QLabel(self.groupBox)
self.uiSerialAdaptersLabel.setObjectName(_fromUtf8("uiSerialAdaptersLabel"))
self.uiSerialAdaptersLabel = QtWidgets.QLabel(self.groupBox)
self.uiSerialAdaptersLabel.setObjectName("uiSerialAdaptersLabel")
self.gridLayout_3.addWidget(self.uiSerialAdaptersLabel, 1, 0, 1, 1)
self.uiSerialAdaptersSpinBox = QtGui.QSpinBox(self.groupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.uiSerialAdaptersSpinBox = QtWidgets.QSpinBox(self.groupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiSerialAdaptersSpinBox.sizePolicy().hasHeightForWidth())
self.uiSerialAdaptersSpinBox.setSizePolicy(sizePolicy)
self.uiSerialAdaptersSpinBox.setMaximum(16)
self.uiSerialAdaptersSpinBox.setSingleStep(2)
self.uiSerialAdaptersSpinBox.setObjectName(_fromUtf8("uiSerialAdaptersSpinBox"))
self.uiSerialAdaptersSpinBox.setObjectName("uiSerialAdaptersSpinBox")
self.gridLayout_3.addWidget(self.uiSerialAdaptersSpinBox, 1, 1, 1, 1)
self.gridLayout_5.addWidget(self.groupBox, 0, 0, 1, 1)
spacerItem1 = QtGui.QSpacerItem(20, 347, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
spacerItem1 = QtWidgets.QSpacerItem(20, 347, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.gridLayout_5.addItem(spacerItem1, 1, 0, 1, 1)
self.uiTabWidget.addTab(self.tab_2, _fromUtf8(""))
self.uiTabWidget.addTab(self.tab_2, "")
self.verticalLayout.addWidget(self.uiTabWidget)
self.retranslateUi(iouDeviceConfigPageWidget)
@@ -174,26 +162,26 @@ class Ui_iouDeviceConfigPageWidget(object):
QtCore.QMetaObject.connectSlotsByName(iouDeviceConfigPageWidget)
def retranslateUi(self, iouDeviceConfigPageWidget):
iouDeviceConfigPageWidget.setWindowTitle(_translate("iouDeviceConfigPageWidget", "IOU device configuration", None))
self.uiGeneralgroupBox.setTitle(_translate("iouDeviceConfigPageWidget", "General", None))
self.uiNameLabel.setText(_translate("iouDeviceConfigPageWidget", "Name:", None))
self.uiIOUImageLabel.setText(_translate("iouDeviceConfigPageWidget", "IOU image path:", None))
self.uiIOUImageToolButton.setText(_translate("iouDeviceConfigPageWidget", "&Browse...", None))
self.uiInitialConfigLabel.setText(_translate("iouDeviceConfigPageWidget", "Initial startup-config:", None))
self.uiInitialConfigToolButton.setText(_translate("iouDeviceConfigPageWidget", "&Browse...", None))
self.uiConsolePortLabel.setText(_translate("iouDeviceConfigPageWidget", "Console port:", None))
self.uiOtherSettingsGroupBox.setTitle(_translate("iouDeviceConfigPageWidget", "Other settings", None))
self.uiL1KeepalivesCheckBox.setText(_translate("iouDeviceConfigPageWidget", "Enable layer 1 keepalive messages (testing only)", None))
self.uiDefaultValuesCheckBox.setText(_translate("iouDeviceConfigPageWidget", "Use default IOU values for memories", None))
self.uiRamLabel.setText(_translate("iouDeviceConfigPageWidget", "RAM size:", None))
self.uiRamSpinBox.setSuffix(_translate("iouDeviceConfigPageWidget", " MB", None))
self.uiNvramLabel.setText(_translate("iouDeviceConfigPageWidget", "NVRAM size:", None))
self.uiNvramSpinBox.setSuffix(_translate("iouDeviceConfigPageWidget", " KB", None))
self.uiTabWidget.setTabText(self.uiTabWidget.indexOf(self.tab), _translate("iouDeviceConfigPageWidget", "General settings", None))
self.groupBox.setTitle(_translate("iouDeviceConfigPageWidget", "Adapters", None))
self.uiEthernetAdaptersLabel.setText(_translate("iouDeviceConfigPageWidget", "Ethernet adapters:", None))
self.uiEthernetAdaptersSpinBox.setToolTip(_translate("iouDeviceConfigPageWidget", "1 adapter equals 4 Ethernet interfaces", None))
self.uiSerialAdaptersLabel.setText(_translate("iouDeviceConfigPageWidget", "Serial adapters:", None))
self.uiSerialAdaptersSpinBox.setToolTip(_translate("iouDeviceConfigPageWidget", "1 adapter equals 4 serial interfaces", None))
self.uiTabWidget.setTabText(self.uiTabWidget.indexOf(self.tab_2), _translate("iouDeviceConfigPageWidget", "Network", None))
_translate = QtCore.QCoreApplication.translate
iouDeviceConfigPageWidget.setWindowTitle(_translate("iouDeviceConfigPageWidget", "IOU device configuration"))
self.uiGeneralgroupBox.setTitle(_translate("iouDeviceConfigPageWidget", "General"))
self.uiNameLabel.setText(_translate("iouDeviceConfigPageWidget", "Name:"))
self.uiIOUImageLabel.setText(_translate("iouDeviceConfigPageWidget", "IOU image path:"))
self.uiIOUImageToolButton.setText(_translate("iouDeviceConfigPageWidget", "&Browse..."))
self.uiInitialConfigLabel.setText(_translate("iouDeviceConfigPageWidget", "Initial startup-config:"))
self.uiInitialConfigToolButton.setText(_translate("iouDeviceConfigPageWidget", "&Browse..."))
self.uiConsolePortLabel.setText(_translate("iouDeviceConfigPageWidget", "Console port:"))
self.uiOtherSettingsGroupBox.setTitle(_translate("iouDeviceConfigPageWidget", "Other settings"))
self.uiL1KeepalivesCheckBox.setText(_translate("iouDeviceConfigPageWidget", "Enable layer 1 keepalive messages (testing only)"))
self.uiDefaultValuesCheckBox.setText(_translate("iouDeviceConfigPageWidget", "Use default IOU values for memories"))
self.uiRamLabel.setText(_translate("iouDeviceConfigPageWidget", "RAM size:"))
self.uiRamSpinBox.setSuffix(_translate("iouDeviceConfigPageWidget", " MB"))
self.uiNvramLabel.setText(_translate("iouDeviceConfigPageWidget", "NVRAM size:"))
self.uiNvramSpinBox.setSuffix(_translate("iouDeviceConfigPageWidget", " KB"))
self.uiTabWidget.setTabText(self.uiTabWidget.indexOf(self.tab), _translate("iouDeviceConfigPageWidget", "General settings"))
self.groupBox.setTitle(_translate("iouDeviceConfigPageWidget", "Adapters"))
self.uiEthernetAdaptersLabel.setText(_translate("iouDeviceConfigPageWidget", "Ethernet adapters:"))
self.uiEthernetAdaptersSpinBox.setToolTip(_translate("iouDeviceConfigPageWidget", "1 adapter equals 4 Ethernet interfaces"))
self.uiSerialAdaptersLabel.setText(_translate("iouDeviceConfigPageWidget", "Serial adapters:"))
self.uiSerialAdaptersSpinBox.setToolTip(_translate("iouDeviceConfigPageWidget", "1 adapter equals 4 serial interfaces"))
self.uiTabWidget.setTabText(self.uiTabWidget.indexOf(self.tab_2), _translate("iouDeviceConfigPageWidget", "Network"))

View File

@@ -1,36 +1,24 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file '/home/grossmj/PycharmProjects/gns3-gui/gns3/modules/iou/ui/iou_device_preferences_page.ui'
# Form implementation generated from reading ui file '/Users/noplay/code/gns3/gns3-gui/gns3/modules/iou/ui/iou_device_preferences_page.ui'
#
# Created: Wed Mar 11 22:01:55 2015
# by: PyQt4 UI code generator 4.10.4
# Created: Fri Apr 17 10:44:34 2015
# by: PyQt5 UI code generator 5.4
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
from gns3.qt import QtCore, QtGui, QtWidgets
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_IOUDevicePreferencesPageWidget:
class Ui_IOUDevicePreferencesPageWidget(object):
def setupUi(self, IOUDevicePreferencesPageWidget):
IOUDevicePreferencesPageWidget.setObjectName(_fromUtf8("IOUDevicePreferencesPageWidget"))
IOUDevicePreferencesPageWidget.setObjectName("IOUDevicePreferencesPageWidget")
IOUDevicePreferencesPageWidget.resize(506, 508)
self.gridLayout = QtGui.QGridLayout(IOUDevicePreferencesPageWidget)
self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
self.uiIOUDevicesTreeWidget = QtGui.QTreeWidget(IOUDevicePreferencesPageWidget)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
self.gridLayout = QtWidgets.QGridLayout(IOUDevicePreferencesPageWidget)
self.gridLayout.setObjectName("gridLayout")
self.uiIOUDevicesTreeWidget = QtWidgets.QTreeWidget(IOUDevicePreferencesPageWidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiIOUDevicesTreeWidget.sizePolicy().hasHeightForWidth())
@@ -43,33 +31,33 @@ class Ui_IOUDevicePreferencesPageWidget(object):
self.uiIOUDevicesTreeWidget.setFont(font)
self.uiIOUDevicesTreeWidget.setIconSize(QtCore.QSize(32, 32))
self.uiIOUDevicesTreeWidget.setRootIsDecorated(False)
self.uiIOUDevicesTreeWidget.setObjectName(_fromUtf8("uiIOUDevicesTreeWidget"))
self.uiIOUDevicesTreeWidget.headerItem().setText(0, _fromUtf8("1"))
self.uiIOUDevicesTreeWidget.setObjectName("uiIOUDevicesTreeWidget")
self.uiIOUDevicesTreeWidget.headerItem().setText(0, "1")
self.uiIOUDevicesTreeWidget.header().setVisible(False)
self.gridLayout.addWidget(self.uiIOUDevicesTreeWidget, 0, 0, 2, 1)
self.uiIOUDeviceInfoTreeWidget = QtGui.QTreeWidget(IOUDevicePreferencesPageWidget)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.MinimumExpanding, QtGui.QSizePolicy.Expanding)
self.uiIOUDeviceInfoTreeWidget = QtWidgets.QTreeWidget(IOUDevicePreferencesPageWidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiIOUDeviceInfoTreeWidget.sizePolicy().hasHeightForWidth())
self.uiIOUDeviceInfoTreeWidget.setSizePolicy(sizePolicy)
self.uiIOUDeviceInfoTreeWidget.setIndentation(10)
self.uiIOUDeviceInfoTreeWidget.setAllColumnsShowFocus(True)
self.uiIOUDeviceInfoTreeWidget.setObjectName(_fromUtf8("uiIOUDeviceInfoTreeWidget"))
self.uiIOUDeviceInfoTreeWidget.setObjectName("uiIOUDeviceInfoTreeWidget")
self.uiIOUDeviceInfoTreeWidget.header().setVisible(False)
self.gridLayout.addWidget(self.uiIOUDeviceInfoTreeWidget, 0, 1, 1, 1)
self.horizontalLayout_6 = QtGui.QHBoxLayout()
self.horizontalLayout_6.setObjectName(_fromUtf8("horizontalLayout_6"))
self.uiNewIOUDevicePushButton = QtGui.QPushButton(IOUDevicePreferencesPageWidget)
self.uiNewIOUDevicePushButton.setObjectName(_fromUtf8("uiNewIOUDevicePushButton"))
self.horizontalLayout_6 = QtWidgets.QHBoxLayout()
self.horizontalLayout_6.setObjectName("horizontalLayout_6")
self.uiNewIOUDevicePushButton = QtWidgets.QPushButton(IOUDevicePreferencesPageWidget)
self.uiNewIOUDevicePushButton.setObjectName("uiNewIOUDevicePushButton")
self.horizontalLayout_6.addWidget(self.uiNewIOUDevicePushButton)
self.uiEditIOUDevicePushButton = QtGui.QPushButton(IOUDevicePreferencesPageWidget)
self.uiEditIOUDevicePushButton = QtWidgets.QPushButton(IOUDevicePreferencesPageWidget)
self.uiEditIOUDevicePushButton.setEnabled(False)
self.uiEditIOUDevicePushButton.setObjectName(_fromUtf8("uiEditIOUDevicePushButton"))
self.uiEditIOUDevicePushButton.setObjectName("uiEditIOUDevicePushButton")
self.horizontalLayout_6.addWidget(self.uiEditIOUDevicePushButton)
self.uiDeleteIOUDevicePushButton = QtGui.QPushButton(IOUDevicePreferencesPageWidget)
self.uiDeleteIOUDevicePushButton = QtWidgets.QPushButton(IOUDevicePreferencesPageWidget)
self.uiDeleteIOUDevicePushButton.setEnabled(False)
self.uiDeleteIOUDevicePushButton.setObjectName(_fromUtf8("uiDeleteIOUDevicePushButton"))
self.uiDeleteIOUDevicePushButton.setObjectName("uiDeleteIOUDevicePushButton")
self.horizontalLayout_6.addWidget(self.uiDeleteIOUDevicePushButton)
self.gridLayout.addLayout(self.horizontalLayout_6, 1, 1, 1, 1)
@@ -77,11 +65,11 @@ class Ui_IOUDevicePreferencesPageWidget(object):
QtCore.QMetaObject.connectSlotsByName(IOUDevicePreferencesPageWidget)
def retranslateUi(self, IOUDevicePreferencesPageWidget):
IOUDevicePreferencesPageWidget.setWindowTitle(_translate("IOUDevicePreferencesPageWidget", "IOU devices", None))
IOUDevicePreferencesPageWidget.setAccessibleName(_translate("IOUDevicePreferencesPageWidget", "IOU device templates", None))
self.uiIOUDeviceInfoTreeWidget.headerItem().setText(0, _translate("IOUDevicePreferencesPageWidget", "1", None))
self.uiIOUDeviceInfoTreeWidget.headerItem().setText(1, _translate("IOUDevicePreferencesPageWidget", "2", None))
self.uiNewIOUDevicePushButton.setText(_translate("IOUDevicePreferencesPageWidget", "&New", None))
self.uiEditIOUDevicePushButton.setText(_translate("IOUDevicePreferencesPageWidget", "&Edit", None))
self.uiDeleteIOUDevicePushButton.setText(_translate("IOUDevicePreferencesPageWidget", "&Delete", None))
_translate = QtCore.QCoreApplication.translate
IOUDevicePreferencesPageWidget.setWindowTitle(_translate("IOUDevicePreferencesPageWidget", "IOU devices"))
IOUDevicePreferencesPageWidget.setAccessibleName(_translate("IOUDevicePreferencesPageWidget", "IOU device templates"))
self.uiIOUDeviceInfoTreeWidget.headerItem().setText(0, _translate("IOUDevicePreferencesPageWidget", "1"))
self.uiIOUDeviceInfoTreeWidget.headerItem().setText(1, _translate("IOUDevicePreferencesPageWidget", "2"))
self.uiNewIOUDevicePushButton.setText(_translate("IOUDevicePreferencesPageWidget", "&New"))
self.uiEditIOUDevicePushButton.setText(_translate("IOUDevicePreferencesPageWidget", "&Edit"))
self.uiDeleteIOUDevicePushButton.setText(_translate("IOUDevicePreferencesPageWidget", "&Delete"))

View File

@@ -1,104 +1,92 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file '/home/grossmj/PycharmProjects/gns3-gui/gns3/modules/iou/ui/iou_device_wizard.ui'
# Form implementation generated from reading ui file '/Users/noplay/code/gns3/gns3-gui/gns3/modules/iou/ui/iou_device_wizard.ui'
#
# Created: Fri Mar 13 11:09:58 2015
# by: PyQt4 UI code generator 4.10.4
# Created: Fri Apr 17 10:44:34 2015
# by: PyQt5 UI code generator 5.4
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
from gns3.qt import QtCore, QtGui, QtWidgets
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_IOUDeviceWizard:
class Ui_IOUDeviceWizard(object):
def setupUi(self, IOUDeviceWizard):
IOUDeviceWizard.setObjectName(_fromUtf8("IOUDeviceWizard"))
IOUDeviceWizard.setObjectName("IOUDeviceWizard")
IOUDeviceWizard.resize(514, 366)
IOUDeviceWizard.setModal(True)
self.uiServerWizardPage = QtGui.QWizardPage()
self.uiServerWizardPage.setObjectName(_fromUtf8("uiServerWizardPage"))
self.gridLayout_2 = QtGui.QGridLayout(self.uiServerWizardPage)
self.gridLayout_2.setObjectName(_fromUtf8("gridLayout_2"))
self.uiServerTypeGroupBox = QtGui.QGroupBox(self.uiServerWizardPage)
self.uiServerTypeGroupBox.setObjectName(_fromUtf8("uiServerTypeGroupBox"))
self.horizontalLayout = QtGui.QHBoxLayout(self.uiServerTypeGroupBox)
self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
self.uiRemoteRadioButton = QtGui.QRadioButton(self.uiServerTypeGroupBox)
self.uiServerWizardPage = QtWidgets.QWizardPage()
self.uiServerWizardPage.setObjectName("uiServerWizardPage")
self.gridLayout_2 = QtWidgets.QGridLayout(self.uiServerWizardPage)
self.gridLayout_2.setObjectName("gridLayout_2")
self.uiServerTypeGroupBox = QtWidgets.QGroupBox(self.uiServerWizardPage)
self.uiServerTypeGroupBox.setObjectName("uiServerTypeGroupBox")
self.horizontalLayout = QtWidgets.QHBoxLayout(self.uiServerTypeGroupBox)
self.horizontalLayout.setObjectName("horizontalLayout")
self.uiRemoteRadioButton = QtWidgets.QRadioButton(self.uiServerTypeGroupBox)
self.uiRemoteRadioButton.setChecked(True)
self.uiRemoteRadioButton.setObjectName(_fromUtf8("uiRemoteRadioButton"))
self.uiRemoteRadioButton.setObjectName("uiRemoteRadioButton")
self.horizontalLayout.addWidget(self.uiRemoteRadioButton)
self.uiCloudRadioButton = QtGui.QRadioButton(self.uiServerTypeGroupBox)
self.uiCloudRadioButton.setObjectName(_fromUtf8("uiCloudRadioButton"))
self.uiCloudRadioButton = QtWidgets.QRadioButton(self.uiServerTypeGroupBox)
self.uiCloudRadioButton.setObjectName("uiCloudRadioButton")
self.horizontalLayout.addWidget(self.uiCloudRadioButton)
self.uiLocalRadioButton = QtGui.QRadioButton(self.uiServerTypeGroupBox)
self.uiLocalRadioButton.setObjectName(_fromUtf8("uiLocalRadioButton"))
self.uiLocalRadioButton = QtWidgets.QRadioButton(self.uiServerTypeGroupBox)
self.uiLocalRadioButton.setObjectName("uiLocalRadioButton")
self.horizontalLayout.addWidget(self.uiLocalRadioButton)
spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout.addItem(spacerItem)
self.gridLayout_2.addWidget(self.uiServerTypeGroupBox, 0, 0, 1, 1)
self.uiRemoteServersGroupBox = QtGui.QGroupBox(self.uiServerWizardPage)
self.uiRemoteServersGroupBox.setObjectName(_fromUtf8("uiRemoteServersGroupBox"))
self.gridLayout_7 = QtGui.QGridLayout(self.uiRemoteServersGroupBox)
self.gridLayout_7.setObjectName(_fromUtf8("gridLayout_7"))
self.uiLoadBalanceCheckBox = QtGui.QCheckBox(self.uiRemoteServersGroupBox)
self.uiRemoteServersGroupBox = QtWidgets.QGroupBox(self.uiServerWizardPage)
self.uiRemoteServersGroupBox.setObjectName("uiRemoteServersGroupBox")
self.gridLayout_7 = QtWidgets.QGridLayout(self.uiRemoteServersGroupBox)
self.gridLayout_7.setObjectName("gridLayout_7")
self.uiLoadBalanceCheckBox = QtWidgets.QCheckBox(self.uiRemoteServersGroupBox)
self.uiLoadBalanceCheckBox.setChecked(True)
self.uiLoadBalanceCheckBox.setObjectName(_fromUtf8("uiLoadBalanceCheckBox"))
self.uiLoadBalanceCheckBox.setObjectName("uiLoadBalanceCheckBox")
self.gridLayout_7.addWidget(self.uiLoadBalanceCheckBox, 0, 0, 1, 2)
self.uiRemoteServersLabel = QtGui.QLabel(self.uiRemoteServersGroupBox)
self.uiRemoteServersLabel.setObjectName(_fromUtf8("uiRemoteServersLabel"))
self.uiRemoteServersLabel = QtWidgets.QLabel(self.uiRemoteServersGroupBox)
self.uiRemoteServersLabel.setObjectName("uiRemoteServersLabel")
self.gridLayout_7.addWidget(self.uiRemoteServersLabel, 1, 0, 1, 1)
self.uiRemoteServersComboBox = QtGui.QComboBox(self.uiRemoteServersGroupBox)
self.uiRemoteServersComboBox = QtWidgets.QComboBox(self.uiRemoteServersGroupBox)
self.uiRemoteServersComboBox.setEnabled(False)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiRemoteServersComboBox.sizePolicy().hasHeightForWidth())
self.uiRemoteServersComboBox.setSizePolicy(sizePolicy)
self.uiRemoteServersComboBox.setObjectName(_fromUtf8("uiRemoteServersComboBox"))
self.uiRemoteServersComboBox.setObjectName("uiRemoteServersComboBox")
self.gridLayout_7.addWidget(self.uiRemoteServersComboBox, 1, 1, 1, 1)
self.gridLayout_2.addWidget(self.uiRemoteServersGroupBox, 1, 0, 1, 1)
IOUDeviceWizard.addPage(self.uiServerWizardPage)
self.uiNameImageWizardPage = QtGui.QWizardPage()
self.uiNameImageWizardPage.setObjectName(_fromUtf8("uiNameImageWizardPage"))
self.gridLayout = QtGui.QGridLayout(self.uiNameImageWizardPage)
self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
self.uiNameLabel = QtGui.QLabel(self.uiNameImageWizardPage)
self.uiNameLabel.setObjectName(_fromUtf8("uiNameLabel"))
self.uiNameImageWizardPage = QtWidgets.QWizardPage()
self.uiNameImageWizardPage.setObjectName("uiNameImageWizardPage")
self.gridLayout = QtWidgets.QGridLayout(self.uiNameImageWizardPage)
self.gridLayout.setObjectName("gridLayout")
self.uiNameLabel = QtWidgets.QLabel(self.uiNameImageWizardPage)
self.uiNameLabel.setObjectName("uiNameLabel")
self.gridLayout.addWidget(self.uiNameLabel, 0, 0, 1, 1)
self.uiNameLineEdit = QtGui.QLineEdit(self.uiNameImageWizardPage)
self.uiNameLineEdit.setObjectName(_fromUtf8("uiNameLineEdit"))
self.uiNameLineEdit = QtWidgets.QLineEdit(self.uiNameImageWizardPage)
self.uiNameLineEdit.setObjectName("uiNameLineEdit")
self.gridLayout.addWidget(self.uiNameLineEdit, 0, 1, 1, 1)
self.uiIOUImageLabel = QtGui.QLabel(self.uiNameImageWizardPage)
self.uiIOUImageLabel.setObjectName(_fromUtf8("uiIOUImageLabel"))
self.uiIOUImageLabel = QtWidgets.QLabel(self.uiNameImageWizardPage)
self.uiIOUImageLabel.setObjectName("uiIOUImageLabel")
self.gridLayout.addWidget(self.uiIOUImageLabel, 1, 0, 1, 1)
self.horizontalLayout_5 = QtGui.QHBoxLayout()
self.horizontalLayout_5.setObjectName(_fromUtf8("horizontalLayout_5"))
self.uiIOUImageLineEdit = QtGui.QLineEdit(self.uiNameImageWizardPage)
self.uiIOUImageLineEdit.setObjectName(_fromUtf8("uiIOUImageLineEdit"))
self.horizontalLayout_5 = QtWidgets.QHBoxLayout()
self.horizontalLayout_5.setObjectName("horizontalLayout_5")
self.uiIOUImageLineEdit = QtWidgets.QLineEdit(self.uiNameImageWizardPage)
self.uiIOUImageLineEdit.setObjectName("uiIOUImageLineEdit")
self.horizontalLayout_5.addWidget(self.uiIOUImageLineEdit)
self.uiIOUImageToolButton = QtGui.QToolButton(self.uiNameImageWizardPage)
self.uiIOUImageToolButton = QtWidgets.QToolButton(self.uiNameImageWizardPage)
self.uiIOUImageToolButton.setToolButtonStyle(QtCore.Qt.ToolButtonTextOnly)
self.uiIOUImageToolButton.setObjectName(_fromUtf8("uiIOUImageToolButton"))
self.uiIOUImageToolButton.setObjectName("uiIOUImageToolButton")
self.horizontalLayout_5.addWidget(self.uiIOUImageToolButton)
self.gridLayout.addLayout(self.horizontalLayout_5, 1, 1, 1, 1)
self.uiTypeLabel = QtGui.QLabel(self.uiNameImageWizardPage)
self.uiTypeLabel.setObjectName(_fromUtf8("uiTypeLabel"))
self.uiTypeLabel = QtWidgets.QLabel(self.uiNameImageWizardPage)
self.uiTypeLabel.setObjectName("uiTypeLabel")
self.gridLayout.addWidget(self.uiTypeLabel, 2, 0, 1, 1)
self.uiTypeComboBox = QtGui.QComboBox(self.uiNameImageWizardPage)
self.uiTypeComboBox.setObjectName(_fromUtf8("uiTypeComboBox"))
self.uiTypeComboBox = QtWidgets.QComboBox(self.uiNameImageWizardPage)
self.uiTypeComboBox.setObjectName("uiTypeComboBox")
self.gridLayout.addWidget(self.uiTypeComboBox, 2, 1, 1, 1)
IOUDeviceWizard.addPage(self.uiNameImageWizardPage)
@@ -107,20 +95,20 @@ class Ui_IOUDeviceWizard(object):
IOUDeviceWizard.setTabOrder(self.uiNameLineEdit, self.uiTypeComboBox)
def retranslateUi(self, IOUDeviceWizard):
IOUDeviceWizard.setWindowTitle(_translate("IOUDeviceWizard", "New IOU device template", None))
self.uiServerWizardPage.setTitle(_translate("IOUDeviceWizard", "Server", None))
self.uiServerWizardPage.setSubTitle(_translate("IOUDeviceWizard", "Please choose a server type to run your new IOU device.", None))
self.uiServerTypeGroupBox.setTitle(_translate("IOUDeviceWizard", "Server type", None))
self.uiRemoteRadioButton.setText(_translate("IOUDeviceWizard", "Remote", None))
self.uiCloudRadioButton.setText(_translate("IOUDeviceWizard", "Cloud", None))
self.uiLocalRadioButton.setText(_translate("IOUDeviceWizard", "Local", None))
self.uiRemoteServersGroupBox.setTitle(_translate("IOUDeviceWizard", "Remote servers", None))
self.uiLoadBalanceCheckBox.setText(_translate("IOUDeviceWizard", "Load balance across all available remote servers", None))
self.uiRemoteServersLabel.setText(_translate("IOUDeviceWizard", "Run on server:", None))
self.uiNameImageWizardPage.setTitle(_translate("IOUDeviceWizard", "Name and image", None))
self.uiNameImageWizardPage.setSubTitle(_translate("IOUDeviceWizard", "Please choose a descriptive name for the new IOU device and add an IOU image.", None))
self.uiNameLabel.setText(_translate("IOUDeviceWizard", "Name:", None))
self.uiIOUImageLabel.setText(_translate("IOUDeviceWizard", "IOU image:", None))
self.uiIOUImageToolButton.setText(_translate("IOUDeviceWizard", "&Browse...", None))
self.uiTypeLabel.setText(_translate("IOUDeviceWizard", "Type:", None))
_translate = QtCore.QCoreApplication.translate
IOUDeviceWizard.setWindowTitle(_translate("IOUDeviceWizard", "New IOU device template"))
self.uiServerWizardPage.setTitle(_translate("IOUDeviceWizard", "Server"))
self.uiServerWizardPage.setSubTitle(_translate("IOUDeviceWizard", "Please choose a server type to run your new IOU device."))
self.uiServerTypeGroupBox.setTitle(_translate("IOUDeviceWizard", "Server type"))
self.uiRemoteRadioButton.setText(_translate("IOUDeviceWizard", "Remote"))
self.uiCloudRadioButton.setText(_translate("IOUDeviceWizard", "Cloud"))
self.uiLocalRadioButton.setText(_translate("IOUDeviceWizard", "Local"))
self.uiRemoteServersGroupBox.setTitle(_translate("IOUDeviceWizard", "Remote servers"))
self.uiLoadBalanceCheckBox.setText(_translate("IOUDeviceWizard", "Load balance across all available remote servers"))
self.uiRemoteServersLabel.setText(_translate("IOUDeviceWizard", "Run on server:"))
self.uiNameImageWizardPage.setTitle(_translate("IOUDeviceWizard", "Name and image"))
self.uiNameImageWizardPage.setSubTitle(_translate("IOUDeviceWizard", "Please choose a descriptive name for the new IOU device and add an IOU image."))
self.uiNameLabel.setText(_translate("IOUDeviceWizard", "Name:"))
self.uiIOUImageLabel.setText(_translate("IOUDeviceWizard", "IOU image:"))
self.uiIOUImageToolButton.setText(_translate("IOUDeviceWizard", "&Browse..."))
self.uiTypeLabel.setText(_translate("IOUDeviceWizard", "Type:"))

View File

@@ -1,104 +1,92 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file '/home/grossmj/PycharmProjects/gns3-gui/gns3/modules/iou/ui/iou_preferences_page.ui'
# Form implementation generated from reading ui file '/Users/noplay/code/gns3/gns3-gui/gns3/modules/iou/ui/iou_preferences_page.ui'
#
# Created: Tue Mar 17 18:49:46 2015
# by: PyQt4 UI code generator 4.10.4
# Created: Fri Apr 17 10:44:34 2015
# by: PyQt5 UI code generator 5.4
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
from gns3.qt import QtCore, QtGui, QtWidgets
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_IOUPreferencesPageWidget:
class Ui_IOUPreferencesPageWidget(object):
def setupUi(self, IOUPreferencesPageWidget):
IOUPreferencesPageWidget.setObjectName(_fromUtf8("IOUPreferencesPageWidget"))
IOUPreferencesPageWidget.setObjectName("IOUPreferencesPageWidget")
IOUPreferencesPageWidget.resize(425, 467)
self.vboxlayout = QtGui.QVBoxLayout(IOUPreferencesPageWidget)
self.vboxlayout.setObjectName(_fromUtf8("vboxlayout"))
self.uiTabWidget = QtGui.QTabWidget(IOUPreferencesPageWidget)
self.uiTabWidget.setObjectName(_fromUtf8("uiTabWidget"))
self.uiGeneralSettingsTabWidget = QtGui.QWidget()
self.uiGeneralSettingsTabWidget.setObjectName(_fromUtf8("uiGeneralSettingsTabWidget"))
self.verticalLayout = QtGui.QVBoxLayout(self.uiGeneralSettingsTabWidget)
self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
self.uiLocalServerGroupBox = QtGui.QGroupBox(self.uiGeneralSettingsTabWidget)
self.uiLocalServerGroupBox.setObjectName(_fromUtf8("uiLocalServerGroupBox"))
self.gridLayout_3 = QtGui.QGridLayout(self.uiLocalServerGroupBox)
self.gridLayout_3.setObjectName(_fromUtf8("gridLayout_3"))
self.horizontalLayout_6 = QtGui.QHBoxLayout()
self.horizontalLayout_6.setObjectName(_fromUtf8("horizontalLayout_6"))
self.uiIouyapPathLineEdit = QtGui.QLineEdit(self.uiLocalServerGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.MinimumExpanding, QtGui.QSizePolicy.Fixed)
self.vboxlayout = QtWidgets.QVBoxLayout(IOUPreferencesPageWidget)
self.vboxlayout.setObjectName("vboxlayout")
self.uiTabWidget = QtWidgets.QTabWidget(IOUPreferencesPageWidget)
self.uiTabWidget.setObjectName("uiTabWidget")
self.uiGeneralSettingsTabWidget = QtWidgets.QWidget()
self.uiGeneralSettingsTabWidget.setObjectName("uiGeneralSettingsTabWidget")
self.verticalLayout = QtWidgets.QVBoxLayout(self.uiGeneralSettingsTabWidget)
self.verticalLayout.setObjectName("verticalLayout")
self.uiLocalServerGroupBox = QtWidgets.QGroupBox(self.uiGeneralSettingsTabWidget)
self.uiLocalServerGroupBox.setObjectName("uiLocalServerGroupBox")
self.gridLayout_3 = QtWidgets.QGridLayout(self.uiLocalServerGroupBox)
self.gridLayout_3.setObjectName("gridLayout_3")
self.horizontalLayout_6 = QtWidgets.QHBoxLayout()
self.horizontalLayout_6.setObjectName("horizontalLayout_6")
self.uiIouyapPathLineEdit = QtWidgets.QLineEdit(self.uiLocalServerGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiIouyapPathLineEdit.sizePolicy().hasHeightForWidth())
self.uiIouyapPathLineEdit.setSizePolicy(sizePolicy)
self.uiIouyapPathLineEdit.setObjectName(_fromUtf8("uiIouyapPathLineEdit"))
self.uiIouyapPathLineEdit.setObjectName("uiIouyapPathLineEdit")
self.horizontalLayout_6.addWidget(self.uiIouyapPathLineEdit)
self.uiIouyapPathToolButton = QtGui.QToolButton(self.uiLocalServerGroupBox)
self.uiIouyapPathToolButton = QtWidgets.QToolButton(self.uiLocalServerGroupBox)
self.uiIouyapPathToolButton.setToolButtonStyle(QtCore.Qt.ToolButtonTextOnly)
self.uiIouyapPathToolButton.setObjectName(_fromUtf8("uiIouyapPathToolButton"))
self.uiIouyapPathToolButton.setObjectName("uiIouyapPathToolButton")
self.horizontalLayout_6.addWidget(self.uiIouyapPathToolButton)
self.gridLayout_3.addLayout(self.horizontalLayout_6, 5, 0, 1, 2)
self.uiIouyapPathLabel = QtGui.QLabel(self.uiLocalServerGroupBox)
self.uiIouyapPathLabel.setObjectName(_fromUtf8("uiIouyapPathLabel"))
self.uiIouyapPathLabel = QtWidgets.QLabel(self.uiLocalServerGroupBox)
self.uiIouyapPathLabel.setObjectName("uiIouyapPathLabel")
self.gridLayout_3.addWidget(self.uiIouyapPathLabel, 4, 0, 1, 1)
self.uiLicensecheckBox = QtGui.QCheckBox(self.uiLocalServerGroupBox)
self.uiLicensecheckBox = QtWidgets.QCheckBox(self.uiLocalServerGroupBox)
self.uiLicensecheckBox.setChecked(True)
self.uiLicensecheckBox.setObjectName(_fromUtf8("uiLicensecheckBox"))
self.uiLicensecheckBox.setObjectName("uiLicensecheckBox")
self.gridLayout_3.addWidget(self.uiLicensecheckBox, 3, 0, 1, 1)
self.uiUseLocalServercheckBox = QtGui.QCheckBox(self.uiLocalServerGroupBox)
self.uiUseLocalServercheckBox = QtWidgets.QCheckBox(self.uiLocalServerGroupBox)
self.uiUseLocalServercheckBox.setChecked(True)
self.uiUseLocalServercheckBox.setObjectName(_fromUtf8("uiUseLocalServercheckBox"))
self.uiUseLocalServercheckBox.setObjectName("uiUseLocalServercheckBox")
self.gridLayout_3.addWidget(self.uiUseLocalServercheckBox, 0, 0, 1, 1)
self.verticalLayout.addWidget(self.uiLocalServerGroupBox)
self.uiAnyServerGroupBox = QtGui.QGroupBox(self.uiGeneralSettingsTabWidget)
self.uiAnyServerGroupBox.setObjectName(_fromUtf8("uiAnyServerGroupBox"))
self.gridLayout_4 = QtGui.QGridLayout(self.uiAnyServerGroupBox)
self.gridLayout_4.setObjectName(_fromUtf8("gridLayout_4"))
self.uiIOURCPathLabel = QtGui.QLabel(self.uiAnyServerGroupBox)
self.uiIOURCPathLabel.setObjectName(_fromUtf8("uiIOURCPathLabel"))
self.uiAnyServerGroupBox = QtWidgets.QGroupBox(self.uiGeneralSettingsTabWidget)
self.uiAnyServerGroupBox.setObjectName("uiAnyServerGroupBox")
self.gridLayout_4 = QtWidgets.QGridLayout(self.uiAnyServerGroupBox)
self.gridLayout_4.setObjectName("gridLayout_4")
self.uiIOURCPathLabel = QtWidgets.QLabel(self.uiAnyServerGroupBox)
self.uiIOURCPathLabel.setObjectName("uiIOURCPathLabel")
self.gridLayout_4.addWidget(self.uiIOURCPathLabel, 0, 0, 1, 1)
self.horizontalLayout_5 = QtGui.QHBoxLayout()
self.horizontalLayout_5.setObjectName(_fromUtf8("horizontalLayout_5"))
self.uiIOURCPathLineEdit = QtGui.QLineEdit(self.uiAnyServerGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.MinimumExpanding, QtGui.QSizePolicy.Fixed)
self.horizontalLayout_5 = QtWidgets.QHBoxLayout()
self.horizontalLayout_5.setObjectName("horizontalLayout_5")
self.uiIOURCPathLineEdit = QtWidgets.QLineEdit(self.uiAnyServerGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiIOURCPathLineEdit.sizePolicy().hasHeightForWidth())
self.uiIOURCPathLineEdit.setSizePolicy(sizePolicy)
self.uiIOURCPathLineEdit.setObjectName(_fromUtf8("uiIOURCPathLineEdit"))
self.uiIOURCPathLineEdit.setObjectName("uiIOURCPathLineEdit")
self.horizontalLayout_5.addWidget(self.uiIOURCPathLineEdit)
self.uiIOURCPathToolButton = QtGui.QToolButton(self.uiAnyServerGroupBox)
self.uiIOURCPathToolButton = QtWidgets.QToolButton(self.uiAnyServerGroupBox)
self.uiIOURCPathToolButton.setToolButtonStyle(QtCore.Qt.ToolButtonTextOnly)
self.uiIOURCPathToolButton.setObjectName(_fromUtf8("uiIOURCPathToolButton"))
self.uiIOURCPathToolButton.setObjectName("uiIOURCPathToolButton")
self.horizontalLayout_5.addWidget(self.uiIOURCPathToolButton)
self.gridLayout_4.addLayout(self.horizontalLayout_5, 1, 0, 1, 1)
self.verticalLayout.addWidget(self.uiAnyServerGroupBox)
spacerItem = QtGui.QSpacerItem(20, 40, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout.addItem(spacerItem)
self.uiTabWidget.addTab(self.uiGeneralSettingsTabWidget, _fromUtf8(""))
self.uiTabWidget.addTab(self.uiGeneralSettingsTabWidget, "")
self.vboxlayout.addWidget(self.uiTabWidget)
self.horizontalLayout_2 = QtGui.QHBoxLayout()
self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2"))
spacerItem1 = QtGui.QSpacerItem(164, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
spacerItem1 = QtWidgets.QSpacerItem(164, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_2.addItem(spacerItem1)
self.uiRestoreDefaultsPushButton = QtGui.QPushButton(IOUPreferencesPageWidget)
self.uiRestoreDefaultsPushButton.setObjectName(_fromUtf8("uiRestoreDefaultsPushButton"))
self.uiRestoreDefaultsPushButton = QtWidgets.QPushButton(IOUPreferencesPageWidget)
self.uiRestoreDefaultsPushButton.setObjectName("uiRestoreDefaultsPushButton")
self.horizontalLayout_2.addWidget(self.uiRestoreDefaultsPushButton)
self.vboxlayout.addLayout(self.horizontalLayout_2)
@@ -107,15 +95,15 @@ class Ui_IOUPreferencesPageWidget(object):
QtCore.QMetaObject.connectSlotsByName(IOUPreferencesPageWidget)
def retranslateUi(self, IOUPreferencesPageWidget):
IOUPreferencesPageWidget.setWindowTitle(_translate("IOUPreferencesPageWidget", "IOS on UNIX", None))
self.uiLocalServerGroupBox.setTitle(_translate("IOUPreferencesPageWidget", "Local server", None))
self.uiIouyapPathToolButton.setText(_translate("IOUPreferencesPageWidget", "&Browse...", None))
self.uiIouyapPathLabel.setText(_translate("IOUPreferencesPageWidget", "Path to iouyap:", None))
self.uiLicensecheckBox.setText(_translate("IOUPreferencesPageWidget", "Check for a valid IOU license key", None))
self.uiUseLocalServercheckBox.setText(_translate("IOUPreferencesPageWidget", "Use the local server (Linux only)", None))
self.uiAnyServerGroupBox.setTitle(_translate("IOUPreferencesPageWidget", "Any server", None))
self.uiIOURCPathLabel.setText(_translate("IOUPreferencesPageWidget", "Path to IOURC (license, pushed to servers):", None))
self.uiIOURCPathToolButton.setText(_translate("IOUPreferencesPageWidget", "&Browse...", None))
self.uiTabWidget.setTabText(self.uiTabWidget.indexOf(self.uiGeneralSettingsTabWidget), _translate("IOUPreferencesPageWidget", "General settings", None))
self.uiRestoreDefaultsPushButton.setText(_translate("IOUPreferencesPageWidget", "Restore defaults", None))
_translate = QtCore.QCoreApplication.translate
IOUPreferencesPageWidget.setWindowTitle(_translate("IOUPreferencesPageWidget", "IOS on UNIX"))
self.uiLocalServerGroupBox.setTitle(_translate("IOUPreferencesPageWidget", "Local server"))
self.uiIouyapPathToolButton.setText(_translate("IOUPreferencesPageWidget", "&Browse..."))
self.uiIouyapPathLabel.setText(_translate("IOUPreferencesPageWidget", "Path to iouyap:"))
self.uiLicensecheckBox.setText(_translate("IOUPreferencesPageWidget", "Check for a valid IOU license key"))
self.uiUseLocalServercheckBox.setText(_translate("IOUPreferencesPageWidget", "Use the local server (Linux only)"))
self.uiAnyServerGroupBox.setTitle(_translate("IOUPreferencesPageWidget", "Any server"))
self.uiIOURCPathLabel.setText(_translate("IOUPreferencesPageWidget", "Path to IOURC (license, pushed to servers):"))
self.uiIOURCPathToolButton.setText(_translate("IOUPreferencesPageWidget", "&Browse..."))
self.uiTabWidget.setTabText(self.uiTabWidget.indexOf(self.uiGeneralSettingsTabWidget), _translate("IOUPreferencesPageWidget", "General settings"))
self.uiRestoreDefaultsPushButton.setText(_translate("IOUPreferencesPageWidget", "Restore defaults"))

View File

@@ -35,7 +35,7 @@ class Module(QtCore.QObject):
def __init__(self):
super(Module, self).__init__()
super().__init__()
@staticmethod
def nodes(self):

View File

@@ -24,7 +24,7 @@ class ModuleError(Exception):
def __init__(self, message, original_exception=None):
Exception.__init__(self, message)
super().__init__(message)
self._message = message
self._original_exception = original_exception

View File

@@ -19,7 +19,7 @@
QEMU module implementation.
"""
from gns3.qt import QtCore, QtGui
from gns3.qt import QtCore, QtGui, QtWidgets
from gns3.local_config import LocalConfig
from ..module import Module
@@ -39,7 +39,7 @@ class Qemu(Module):
"""
def __init__(self):
Module.__init__(self)
super().__init__()
self._settings = {}
self._qemu_vms = {}
@@ -230,7 +230,7 @@ class Qemu(Module):
from gns3.main_window import MainWindow
mainwindow = MainWindow.instance()
(selection, ok) = QtGui.QInputDialog.getItem(mainwindow, "QEMU VM", "Please choose a VM", selected_vms, 0, False)
(selection, ok) = QtWidgets.QInputDialog.getItem(mainwindow, "QEMU VM", "Please choose a VM", selected_vms, 0, False)
if ok:
vm = selection
else:

View File

@@ -21,7 +21,7 @@ Wizard for QEMU VMs.
import sys
from gns3.qt import QtCore, QtGui
from gns3.qt import QtCore, QtGui, QtWidgets
from gns3.servers import Servers
from gns3.node import Node
from gns3.modules.module_error import ModuleError
@@ -33,7 +33,7 @@ from ..pages.qemu_vm_configuration_page import QemuVMConfigurationPage
from ..settings import QEMU_BINARIES_FOR_CLOUD
class QemuVMWizard(QtGui.QWizard, Ui_QemuVMWizard):
class QemuVMWizard(QtWidgets.QWizard, Ui_QemuVMWizard):
"""
Wizard to create a Qemu VM.
@@ -43,13 +43,13 @@ class QemuVMWizard(QtGui.QWizard, Ui_QemuVMWizard):
def __init__(self, qemu_vms, parent):
QtGui.QWizard.__init__(self, parent)
super().__init__(parent)
self.setupUi(self)
self.setPixmap(QtGui.QWizard.LogoPixmap, QtGui.QPixmap(":/icons/qemu.svg"))
self.setWizardStyle(QtGui.QWizard.ModernStyle)
self.setPixmap(QtWidgets.QWizard.LogoPixmap, QtGui.QPixmap(":/icons/qemu.svg"))
self.setWizardStyle(QtWidgets.QWizard.ModernStyle)
if sys.platform.startswith("darwin"):
# we want to see the cancel button on OSX
self.setOptions(QtGui.QWizard.NoDefaultButton)
self.setOptions(QtWidgets.QWizard.NoDefaultButton)
self.uiRemoteRadioButton.toggled.connect(self._remoteServerToggledSlot)
self.uiHdaDiskImageToolButton.clicked.connect(self._hdaDiskImageBrowserSlot)
@@ -100,22 +100,22 @@ class QemuVMWizard(QtGui.QWizard, Ui_QemuVMWizard):
"""
if vm_type == "IOSv":
self.setPixmap(QtGui.QWizard.LogoPixmap, QtGui.QPixmap(":/symbols/iosv_virl.normal.svg"))
self.setPixmap(QtWidgets.QWizard.LogoPixmap, QtGui.QPixmap(":/symbols/iosv_virl.normal.svg"))
self.uiNameLineEdit.setText("vIOS")
self.uiHdaDiskImageLabel.setText("IOSv VDMK file:")
elif vm_type == "IOSv-L2":
self.setPixmap(QtGui.QWizard.LogoPixmap, QtGui.QPixmap(":/symbols/iosv_l2_virl.normal.svg"))
self.setPixmap(QtWidgets.QWizard.LogoPixmap, QtGui.QPixmap(":/symbols/iosv_l2_virl.normal.svg"))
self.uiNameLineEdit.setText("vIOS-L2")
self.uiHdaDiskImageLabel.setText("IOSv-L2 VDMK file:")
elif vm_type == "ASA 8.4(2)":
self.setPixmap(QtGui.QWizard.LogoPixmap, QtGui.QPixmap(":/symbols/asa.normal.svg"))
self.setPixmap(QtWidgets.QWizard.LogoPixmap, QtGui.QPixmap(":/symbols/asa.normal.svg"))
self.uiNameLineEdit.setText("ASA")
elif vm_type == "IDS":
self.setPixmap(QtGui.QWizard.LogoPixmap, QtGui.QPixmap(":/symbols/ids.normal.svg"))
self.setPixmap(QtWidgets.QWizard.LogoPixmap, QtGui.QPixmap(":/symbols/ids.normal.svg"))
self.uiNameLineEdit.setText("IDS")
self.uiHdaDiskImageLabel.setText("Disk image (hda):")
else:
self.setPixmap(QtGui.QWizard.LogoPixmap, QtGui.QPixmap(":/icons/qemu.svg"))
self.setPixmap(QtWidgets.QWizard.LogoPixmap, QtGui.QPixmap(":/icons/qemu.svg"))
self.uiHdaDiskImageLabel.setText("Disk image (hda):")
self.uiNameLineEdit.setText("")
@@ -171,7 +171,7 @@ class QemuVMWizard(QtGui.QWizard, Ui_QemuVMWizard):
server = Servers.instance().localServer()
elif self.uiRemoteRadioButton.isChecked():
if not Servers.instance().remoteServers():
QtGui.QMessageBox.critical(self, "Remote server", "There is no remote server registered in QEMU preferences")
QtWidgets.QMessageBox.critical(self, "Remote server", "There is no remote server registered in QEMU preferences")
return False
server = self.uiRemoteServersComboBox.itemData(self.uiRemoteServersComboBox.currentIndex())
self._server = server
@@ -180,12 +180,12 @@ class QemuVMWizard(QtGui.QWizard, Ui_QemuVMWizard):
name = self.uiNameLineEdit.text()
for qemu_vm in self._qemu_vms.values():
if qemu_vm["name"] == name:
QtGui.QMessageBox.critical(self, "Name", "{} is already used, please choose another name".format(name))
QtWidgets.QMessageBox.critical(self, "Name", "{} is already used, please choose another name".format(name))
return False
if self.currentPage() == self.uiBinaryMemoryWizardPage:
if not self.uiQemuListComboBox.count():
QtGui.QMessageBox.critical(self, "QEMU binaries", "Sorry, no QEMU binary has been found. Please make sure QEMU is installed before continuing")
QtWidgets.QMessageBox.critical(self, "QEMU binaries", "Sorry, no QEMU binary has been found. Please make sure QEMU is installed before continuing")
return False
return True
@@ -208,7 +208,7 @@ class QemuVMWizard(QtGui.QWizard, Ui_QemuVMWizard):
try:
Qemu.instance().getQemuBinariesFromServer(self._server, self._getQemuBinariesFromServerCallback)
except ModuleError as e:
QtGui.QMessageBox.critical(self, "Qemu binaries", "Error while getting the QEMU binaries: {}".format(e))
QtWidgets.QMessageBox.critical(self, "Qemu binaries", "Error while getting the QEMU binaries: {}".format(e))
def _getQemuBinariesFromServerCallback(self, result, error=False, **kwargs):
"""
@@ -219,7 +219,7 @@ class QemuVMWizard(QtGui.QWizard, Ui_QemuVMWizard):
"""
if error:
QtGui.QMessageBox.critical(self, "Qemu binaries", "{}".format(result["message"]))
QtWidgets.QMessageBox.critical(self, "Qemu binaries", "{}".format(result["message"]))
else:
self.uiQemuListComboBox.clear()
for qemu in result:
@@ -348,4 +348,4 @@ class QemuVMWizard(QtGui.QWizard, Ui_QemuVMWizard):
elif self.page(current_id) == self.uiASAWizardPage:
return -1
return QtGui.QWizard.nextId(self)
return QtWidgets.QWizard.nextId(self)

View File

@@ -19,13 +19,13 @@
Configuration page for QEMU preferences.
"""
from gns3.qt import QtGui
from gns3.qt import QtGui, QtWidgets
from .. import Qemu
from ..ui.qemu_preferences_page_ui import Ui_QemuPreferencesPageWidget
from ..settings import QEMU_SETTINGS
class QemuPreferencesPage(QtGui.QWidget, Ui_QemuPreferencesPageWidget):
class QemuPreferencesPage(QtWidgets.QWidget, Ui_QemuPreferencesPageWidget):
"""
QWidget preference page for QEMU.
@@ -33,7 +33,7 @@ class QemuPreferencesPage(QtGui.QWidget, Ui_QemuPreferencesPageWidget):
def __init__(self):
QtGui.QWidget.__init__(self)
super().__init__()
self.setupUi(self)
# connect signals

View File

@@ -23,7 +23,7 @@ import os
from functools import partial
from collections import OrderedDict
from gns3.qt import QtCore, QtGui
from gns3.qt import QtCore, QtGui, QtWidgets
from gns3.servers import Servers
from gns3.modules.module_error import ModuleError
from gns3.main_window import MainWindow
@@ -36,7 +36,7 @@ from .. import Qemu
from ..settings import QEMU_BINARIES_FOR_CLOUD
class QemuVMConfigurationPage(QtGui.QWidget, Ui_QemuVMConfigPageWidget):
class QemuVMConfigurationPage(QtWidgets.QWidget, Ui_QemuVMConfigPageWidget):
"""
QWidget configuration page for QEMU VMs.
@@ -44,7 +44,7 @@ class QemuVMConfigurationPage(QtGui.QWidget, Ui_QemuVMConfigPageWidget):
def __init__(self):
QtGui.QWidget.__init__(self)
super().__init__()
self.setupUi(self)
self.uiHdaDiskImageToolButton.clicked.connect(self._hdaDiskImageBrowserSlot)
@@ -97,14 +97,14 @@ class QemuVMConfigurationPage(QtGui.QWidget, Ui_QemuVMConfigPageWidget):
def getDiskImage(parent):
destination_directory = os.path.join(MainWindow.instance().imagesDirPath(), "QEMU")
path, _ = QtGui.QFileDialog.getOpenFileNameAndFilter(parent,
"Select a QEMU disk image",
destination_directory)
path, _ = QtWidgets.QFileDialog.getOpenFileNameAndFilter(parent,
"Select a QEMU disk image",
destination_directory)
if not path:
return
if not os.access(path, os.R_OK):
QtGui.QMessageBox.critical(parent, "QEMU disk image", "Cannot read {}".format(path))
QtWidgets.QMessageBox.critical(parent, "QEMU disk image", "Cannot read {}".format(path))
return
try:
@@ -112,17 +112,17 @@ class QemuVMConfigurationPage(QtGui.QWidget, Ui_QemuVMConfigPageWidget):
except FileExistsError:
pass
except OSError as e:
QtGui.QMessageBox.critical(parent, "QEMU disk images directory", "Could not create the QEMU disk images directory {}: {}".format(destination_directory, e))
QtWidgets.QMessageBox.critical(parent, "QEMU disk images directory", "Could not create the QEMU disk images directory {}: {}".format(destination_directory, e))
return
if os.path.normpath(os.path.dirname(path)) != destination_directory:
# the QEMU disk image is not in the default images directory
reply = QtGui.QMessageBox.question(parent,
"QEMU disk image",
"Would you like to copy {} to the default images directory".format(os.path.basename(path)),
QtGui.QMessageBox.Yes,
QtGui.QMessageBox.No)
if reply == QtGui.QMessageBox.Yes:
reply = QtWidgets.QMessageBox.question(parent,
"QEMU disk image",
"Would you like to copy {} to the default images directory".format(os.path.basename(path)),
QtWidgets.QMessageBox.Yes,
QtWidgets.QMessageBox.No)
if reply == QtWidgets.QMessageBox.Yes:
destination_path = os.path.join(destination_directory, os.path.basename(path))
thread = FileCopyThread(path, destination_path)
progress_dialog = ProgressDialog(thread, "QEMU disk image", "Copying {}".format(os.path.basename(path)), "Cancel", busy=True, parent=parent)
@@ -131,7 +131,7 @@ class QemuVMConfigurationPage(QtGui.QWidget, Ui_QemuVMConfigPageWidget):
progress_dialog.exec_()
errors = progress_dialog.errors()
if errors:
QtGui.QMessageBox.critical(parent, "QEMU disk image", "{}".format("".join(errors)))
QtWidgets.QMessageBox.critical(parent, "QEMU disk image", "{}".format("".join(errors)))
else:
path = destination_path
@@ -206,7 +206,7 @@ class QemuVMConfigurationPage(QtGui.QWidget, Ui_QemuVMConfigPageWidget):
"""
if error:
QtGui.QMessageBox.critical(self, "Qemu binaries", "Error: ".format(result["message"]))
QtWidgets.QMessageBox.critical(self, "Qemu binaries", "Error: ".format(result["message"]))
else:
self.uiQemuListComboBox.clear()
for qemu in result:
@@ -219,7 +219,7 @@ class QemuVMConfigurationPage(QtGui.QWidget, Ui_QemuVMConfigPageWidget):
if index != -1:
self.uiQemuListComboBox.setCurrentIndex(index)
else:
QtGui.QMessageBox.critical(self, "Qemu", "Could not find {} in the Qemu binaries list".format(qemu_path))
QtWidgets.QMessageBox.critical(self, "Qemu", "Could not find {} in the Qemu binaries list".format(qemu_path))
self.uiQemuListComboBox.clear()
def _cpuThrottlingChangedSlot(self, state):
@@ -269,7 +269,7 @@ class QemuVMConfigurationPage(QtGui.QWidget, Ui_QemuVMConfigPageWidget):
try:
Qemu.instance().getQemuBinariesFromServer(server, callback)
except ModuleError as e:
QtGui.QMessageBox.critical(self, "Qemu binaries", "Error while getting the QEMU binaries: {}".format(e))
QtWidgets.QMessageBox.critical(self, "Qemu binaries", "Error while getting the QEMU binaries: {}".format(e))
self.uiQemuListComboBox.clear()
if not group:
@@ -338,7 +338,7 @@ class QemuVMConfigurationPage(QtGui.QWidget, Ui_QemuVMConfigPageWidget):
name = self.uiNameLineEdit.text()
if not name:
QtGui.QMessageBox.critical(self, "Name", "The QEMU VM name cannot be empty!")
QtWidgets.QMessageBox.critical(self, "Name", "The QEMU VM name cannot be empty!")
else:
settings["name"] = name
@@ -375,7 +375,7 @@ class QemuVMConfigurationPage(QtGui.QWidget, Ui_QemuVMConfigPageWidget):
node_ports = node.ports()
for node_port in node_ports:
if not node_port.isFree():
QtGui.QMessageBox.critical(self, node.name(), "Changing the number of adapters while links are connected isn't supported yet! Please delete all the links first.")
QtWidgets.QMessageBox.critical(self, node.name(), "Changing the number of adapters while links are connected isn't supported yet! Please delete all the links first.")
raise ConfigurationError()
settings["adapters"] = adapters

View File

@@ -23,7 +23,7 @@ import ntpath
import os
import copy
from gns3.qt import QtCore, QtGui
from gns3.qt import QtCore, QtGui, QtWidgets
from gns3.node import Node
from gns3.main_window import MainWindow
from gns3.dialogs.symbol_selection_dialog import SymbolSelectionDialog
@@ -37,14 +37,14 @@ from ..pages.qemu_vm_configuration_page import QemuVMConfigurationPage
from ..dialogs.qemu_vm_wizard import QemuVMWizard
class QemuVMPreferencesPage(QtGui.QWidget, Ui_QemuVMPreferencesPageWidget):
class QemuVMPreferencesPage(QtWidgets.QWidget, Ui_QemuVMPreferencesPageWidget):
"""
QWidget preference page for QEMU VM preferences.
"""
def __init__(self):
QtGui.QWidget.__init__(self)
super().__init__()
self.setupUi(self)
self._main_window = MainWindow.instance()
@@ -59,7 +59,7 @@ class QemuVMPreferencesPage(QtGui.QWidget, Ui_QemuVMPreferencesPageWidget):
def _createSectionItem(self, name):
section_item = QtGui.QTreeWidgetItem(self.uiQemuVMInfoTreeWidget)
section_item = QtWidgets.QTreeWidgetItem(self.uiQemuVMInfoTreeWidget)
section_item.setText(0, name)
font = section_item.font(0)
font.setBold(True)
@@ -72,51 +72,51 @@ class QemuVMPreferencesPage(QtGui.QWidget, Ui_QemuVMPreferencesPageWidget):
# fill out the General section
section_item = self._createSectionItem("General")
QtGui.QTreeWidgetItem(section_item, ["VM name:", qemu_vm["name"]])
QtGui.QTreeWidgetItem(section_item, ["Server:", qemu_vm["server"]])
QtGui.QTreeWidgetItem(section_item, ["Memory:", "{} MB".format(qemu_vm["ram"])])
QtWidgets.QTreeWidgetItem(section_item, ["VM name:", qemu_vm["name"]])
QtWidgets.QTreeWidgetItem(section_item, ["Server:", qemu_vm["server"]])
QtWidgets.QTreeWidgetItem(section_item, ["Memory:", "{} MB".format(qemu_vm["ram"])])
if qemu_vm["qemu_path"]:
QtGui.QTreeWidgetItem(section_item, ["QEMU binary:", os.path.basename(qemu_vm["qemu_path"])])
QtWidgets.QTreeWidgetItem(section_item, ["QEMU binary:", os.path.basename(qemu_vm["qemu_path"])])
# fill out the Hard disks section
if qemu_vm["hda_disk_image"] or qemu_vm["hdb_disk_image"] or qemu_vm["hdc_disk_image"] or qemu_vm["hdd_disk_image"]:
section_item = self._createSectionItem("Hard disks")
if qemu_vm["hda_disk_image"]:
QtGui.QTreeWidgetItem(section_item, ["Disk image (hda):", qemu_vm["hda_disk_image"]])
QtWidgets.QTreeWidgetItem(section_item, ["Disk image (hda):", qemu_vm["hda_disk_image"]])
if qemu_vm["hdb_disk_image"]:
QtGui.QTreeWidgetItem(section_item, ["Disk image (hdb):", qemu_vm["hdb_disk_image"]])
QtWidgets.QTreeWidgetItem(section_item, ["Disk image (hdb):", qemu_vm["hdb_disk_image"]])
if qemu_vm["hdc_disk_image"]:
QtGui.QTreeWidgetItem(section_item, ["Disk image (hdc):", qemu_vm["hdc_disk_image"]])
QtWidgets.QTreeWidgetItem(section_item, ["Disk image (hdc):", qemu_vm["hdc_disk_image"]])
if qemu_vm["hdd_disk_image"]:
QtGui.QTreeWidgetItem(section_item, ["Disk image (hdd):", qemu_vm["hdd_disk_image"]])
QtWidgets.QTreeWidgetItem(section_item, ["Disk image (hdd):", qemu_vm["hdd_disk_image"]])
# fill out the Network section
section_item = self._createSectionItem("Network")
QtGui.QTreeWidgetItem(section_item, ["Adapters:", str(qemu_vm["adapters"])])
QtGui.QTreeWidgetItem(section_item, ["Type:", qemu_vm["adapter_type"]])
QtWidgets.QTreeWidgetItem(section_item, ["Adapters:", str(qemu_vm["adapters"])])
QtWidgets.QTreeWidgetItem(section_item, ["Type:", qemu_vm["adapter_type"]])
# fill out the Linux boot section
if qemu_vm["initrd"] or qemu_vm["kernel_image"] or qemu_vm["kernel_command_line"]:
section_item = self._createSectionItem("Linux boot")
if qemu_vm["initrd"]:
QtGui.QTreeWidgetItem(section_item, ["Initial RAM disk:", qemu_vm["initrd"]])
QtWidgets.QTreeWidgetItem(section_item, ["Initial RAM disk:", qemu_vm["initrd"]])
if qemu_vm["kernel_image"]:
QtGui.QTreeWidgetItem(section_item, ["Kernel image:", qemu_vm["kernel_image"]])
QtWidgets.QTreeWidgetItem(section_item, ["Kernel image:", qemu_vm["kernel_image"]])
if qemu_vm["kernel_command_line"]:
QtGui.QTreeWidgetItem(section_item, ["Kernel command line:", qemu_vm["kernel_command_line"]])
QtWidgets.QTreeWidgetItem(section_item, ["Kernel command line:", qemu_vm["kernel_command_line"]])
# performance section
section_item = self._createSectionItem("Optimizations")
if qemu_vm["cpu_throttling"]:
QtGui.QTreeWidgetItem(section_item, ["CPU throttling:", "{}%".format(qemu_vm["cpu_throttling"])])
QtWidgets.QTreeWidgetItem(section_item, ["CPU throttling:", "{}%".format(qemu_vm["cpu_throttling"])])
else:
QtGui.QTreeWidgetItem(section_item, ["CPU throttling:", "disabled"])
QtGui.QTreeWidgetItem(section_item, ["Process priority:", qemu_vm["process_priority"]])
QtWidgets.QTreeWidgetItem(section_item, ["CPU throttling:", "disabled"])
QtWidgets.QTreeWidgetItem(section_item, ["Process priority:", qemu_vm["process_priority"]])
# fill out the Additional options section
if qemu_vm["options"]:
section_item = self._createSectionItem("Additional options")
QtGui.QTreeWidgetItem(section_item, ["Options:", qemu_vm["options"]])
QtWidgets.QTreeWidgetItem(section_item, ["Options:", qemu_vm["options"]])
self.uiQemuVMInfoTreeWidget.expandAll()
self.uiQemuVMInfoTreeWidget.resizeColumnToContents(0)
@@ -152,12 +152,12 @@ class QemuVMPreferencesPage(QtGui.QWidget, Ui_QemuVMPreferencesPageWidget):
new_vm_settings = wizard.getSettings()
key = "{server}:{name}".format(server=new_vm_settings["server"], name=new_vm_settings["name"])
if key in self._qemu_vms:
QtGui.QMessageBox.critical(self, "New QEMU VM", "VM name {} already exists".format(new_vm_settings["name"]))
QtWidgets.QMessageBox.critical(self, "New QEMU VM", "VM name {} already exists".format(new_vm_settings["name"]))
return
self._qemu_vms[key] = QEMU_VM_SETTINGS.copy()
self._qemu_vms[key].update(new_vm_settings)
item = QtGui.QTreeWidgetItem(self.uiQemuVMsTreeWidget)
item = QtWidgets.QTreeWidgetItem(self.uiQemuVMsTreeWidget)
item.setText(0, self._qemu_vms[key]["name"])
item.setIcon(0, QtGui.QIcon(self._qemu_vms[key]["default_symbol"]))
item.setData(0, QtCore.Qt.UserRole, key)
@@ -179,7 +179,7 @@ class QemuVMPreferencesPage(QtGui.QWidget, Ui_QemuVMPreferencesPageWidget):
"""
# Start uploading the image to cloud files
self._upload_image_progress_dialog = QtGui.QProgressDialog(
self._upload_image_progress_dialog = QtWidgets.QProgressDialog(
"Uploading image file(s)", "Cancel", 0, 0, parent=self)
self._upload_image_progress_dialog.setWindowModality(QtCore.Qt.WindowModal)
self._upload_image_progress_dialog.setWindowTitle("Qemu image upload")
@@ -231,7 +231,7 @@ class QemuVMPreferencesPage(QtGui.QWidget, Ui_QemuVMPreferencesPageWidget):
import logging
log = logging.getLogger(__name__)
log.error(e)
QtGui.QMessageBox.critical(self, "Qemu image upload", "Error uploading Qemu image: {}".format(e))
QtWidgets.QMessageBox.critical(self, "Qemu image upload", "Error uploading Qemu image: {}".format(e))
def _qemuVMEditSlot(self):
"""
@@ -248,8 +248,8 @@ class QemuVMPreferencesPage(QtGui.QWidget, Ui_QemuVMPreferencesPageWidget):
if qemu_vm["name"] != item.text(0):
new_key = "{server}:{name}".format(server=qemu_vm["server"], name=qemu_vm["name"])
if new_key in self._qemu_vms:
QtGui.QMessageBox.critical(self, "QEMU VM", "QEMU VM name {} already exists for server {}".format(qemu_vm["name"],
qemu_vm["server"]))
QtWidgets.QMessageBox.critical(self, "QEMU VM", "QEMU VM name {} already exists for server {}".format(qemu_vm["name"],
qemu_vm["server"]))
qemu_vm["name"] = item.text(0)
return
self._qemu_vms[new_key] = self._qemu_vms[key]
@@ -278,7 +278,7 @@ class QemuVMPreferencesPage(QtGui.QWidget, Ui_QemuVMPreferencesPageWidget):
Slot for item pressed.
"""
if QtGui.QApplication.mouseButtons() & QtCore.Qt.RightButton:
if QtWidgets.QApplication.mouseButtons() & QtCore.Qt.RightButton:
self._showContextualMenu()
def _showContextualMenu(self):
@@ -286,8 +286,8 @@ class QemuVMPreferencesPage(QtGui.QWidget, Ui_QemuVMPreferencesPageWidget):
Contextual menu.
"""
menu = QtGui.QMenu()
change_symbol_action = QtGui.QAction("Change symbol", menu)
menu = QtWidgets.QMenu()
change_symbol_action = QtWidgets.QAction("Change symbol", menu)
change_symbol_action.setIcon(QtGui.QIcon(":/icons/node_conception.svg"))
self.connect(change_symbol_action, QtCore.SIGNAL('triggered()'), self._changeSymbolSlot)
menu.addAction(change_symbol_action)
@@ -322,7 +322,7 @@ class QemuVMPreferencesPage(QtGui.QWidget, Ui_QemuVMPreferencesPageWidget):
self._items.clear()
for key, qemu_vm in self._qemu_vms.items():
item = QtGui.QTreeWidgetItem(self.uiQemuVMsTreeWidget)
item = QtWidgets.QTreeWidgetItem(self.uiQemuVMsTreeWidget)
item.setText(0, qemu_vm["name"])
item.setIcon(0, QtGui.QIcon(qemu_vm["default_symbol"]))
item.setData(0, QtCore.Qt.UserRole, key)

View File

@@ -40,7 +40,7 @@ class QemuVM(VM):
URL_PREFIX = "qemu"
def __init__(self, module, server, project):
VM.__init__(self, module, server, project)
super().__init__(module, server, project)
log.info("QEMU VM instance is being created")
self._defaults = {}

View File

@@ -1,55 +1,43 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file '/home/grossmj/PycharmProjects/gns3-gui/gns3/modules/qemu/ui/qemu_preferences_page.ui'
# Form implementation generated from reading ui file '/Users/noplay/code/gns3/gns3-gui/gns3/modules/qemu/ui/qemu_preferences_page.ui'
#
# Created: Mon Mar 9 18:00:29 2015
# by: PyQt4 UI code generator 4.10.4
# Created: Fri Apr 17 10:44:35 2015
# by: PyQt5 UI code generator 5.4
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
from gns3.qt import QtCore, QtGui, QtWidgets
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_QemuPreferencesPageWidget:
class Ui_QemuPreferencesPageWidget(object):
def setupUi(self, QemuPreferencesPageWidget):
QemuPreferencesPageWidget.setObjectName(_fromUtf8("QemuPreferencesPageWidget"))
QemuPreferencesPageWidget.setObjectName("QemuPreferencesPageWidget")
QemuPreferencesPageWidget.resize(374, 495)
self.verticalLayout = QtGui.QVBoxLayout(QemuPreferencesPageWidget)
self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
self.uiTabWidget = QtGui.QTabWidget(QemuPreferencesPageWidget)
self.verticalLayout = QtWidgets.QVBoxLayout(QemuPreferencesPageWidget)
self.verticalLayout.setObjectName("verticalLayout")
self.uiTabWidget = QtWidgets.QTabWidget(QemuPreferencesPageWidget)
self.uiTabWidget.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
self.uiTabWidget.setObjectName(_fromUtf8("uiTabWidget"))
self.uiServerSettingsTabWidget = QtGui.QWidget()
self.uiServerSettingsTabWidget.setObjectName(_fromUtf8("uiServerSettingsTabWidget"))
self.verticalLayout_2 = QtGui.QVBoxLayout(self.uiServerSettingsTabWidget)
self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2"))
self.uiUseLocalServercheckBox = QtGui.QCheckBox(self.uiServerSettingsTabWidget)
self.uiTabWidget.setObjectName("uiTabWidget")
self.uiServerSettingsTabWidget = QtWidgets.QWidget()
self.uiServerSettingsTabWidget.setObjectName("uiServerSettingsTabWidget")
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.uiServerSettingsTabWidget)
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.uiUseLocalServercheckBox = QtWidgets.QCheckBox(self.uiServerSettingsTabWidget)
self.uiUseLocalServercheckBox.setChecked(True)
self.uiUseLocalServercheckBox.setObjectName(_fromUtf8("uiUseLocalServercheckBox"))
self.uiUseLocalServercheckBox.setObjectName("uiUseLocalServercheckBox")
self.verticalLayout_2.addWidget(self.uiUseLocalServercheckBox)
spacerItem = QtGui.QSpacerItem(20, 455, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
spacerItem = QtWidgets.QSpacerItem(20, 455, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout_2.addItem(spacerItem)
self.uiTabWidget.addTab(self.uiServerSettingsTabWidget, _fromUtf8(""))
self.uiTabWidget.addTab(self.uiServerSettingsTabWidget, "")
self.verticalLayout.addWidget(self.uiTabWidget)
self.horizontalLayout_2 = QtGui.QHBoxLayout()
self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2"))
spacerItem1 = QtGui.QSpacerItem(254, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
spacerItem1 = QtWidgets.QSpacerItem(254, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout_2.addItem(spacerItem1)
self.uiRestoreDefaultsPushButton = QtGui.QPushButton(QemuPreferencesPageWidget)
self.uiRestoreDefaultsPushButton.setObjectName(_fromUtf8("uiRestoreDefaultsPushButton"))
self.uiRestoreDefaultsPushButton = QtWidgets.QPushButton(QemuPreferencesPageWidget)
self.uiRestoreDefaultsPushButton.setObjectName("uiRestoreDefaultsPushButton")
self.horizontalLayout_2.addWidget(self.uiRestoreDefaultsPushButton)
self.verticalLayout.addLayout(self.horizontalLayout_2)
@@ -58,8 +46,8 @@ class Ui_QemuPreferencesPageWidget(object):
QtCore.QMetaObject.connectSlotsByName(QemuPreferencesPageWidget)
def retranslateUi(self, QemuPreferencesPageWidget):
QemuPreferencesPageWidget.setWindowTitle(_translate("QemuPreferencesPageWidget", "QEMU", None))
self.uiUseLocalServercheckBox.setText(_translate("QemuPreferencesPageWidget", "Use the local server", None))
self.uiTabWidget.setTabText(self.uiTabWidget.indexOf(self.uiServerSettingsTabWidget), _translate("QemuPreferencesPageWidget", "General settings", None))
self.uiRestoreDefaultsPushButton.setText(_translate("QemuPreferencesPageWidget", "Restore defaults", None))
_translate = QtCore.QCoreApplication.translate
QemuPreferencesPageWidget.setWindowTitle(_translate("QemuPreferencesPageWidget", "QEMU"))
self.uiUseLocalServercheckBox.setText(_translate("QemuPreferencesPageWidget", "Use the local server"))
self.uiTabWidget.setTabText(self.uiTabWidget.indexOf(self.uiServerSettingsTabWidget), _translate("QemuPreferencesPageWidget", "General settings"))
self.uiRestoreDefaultsPushButton.setText(_translate("QemuPreferencesPageWidget", "Restore defaults"))

View File

@@ -1,253 +1,241 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file '/home/grossmj/PycharmProjects/gns3-gui/gns3/modules/qemu/ui/qemu_vm_configuration_page.ui'
# Form implementation generated from reading ui file '/Users/noplay/code/gns3/gns3-gui/gns3/modules/qemu/ui/qemu_vm_configuration_page.ui'
#
# Created: Mon Mar 23 22:22:18 2015
# by: PyQt4 UI code generator 4.10.4
# Created: Fri Apr 17 10:44:35 2015
# by: PyQt5 UI code generator 5.4
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
from gns3.qt import QtCore, QtGui, QtWidgets
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_QemuVMConfigPageWidget:
class Ui_QemuVMConfigPageWidget(object):
def setupUi(self, QemuVMConfigPageWidget):
QemuVMConfigPageWidget.setObjectName(_fromUtf8("QemuVMConfigPageWidget"))
QemuVMConfigPageWidget.setObjectName("QemuVMConfigPageWidget")
QemuVMConfigPageWidget.resize(486, 407)
self.verticalLayout = QtGui.QVBoxLayout(QemuVMConfigPageWidget)
self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
self.uiQemutabWidget = QtGui.QTabWidget(QemuVMConfigPageWidget)
self.uiQemutabWidget.setObjectName(_fromUtf8("uiQemutabWidget"))
self.tab = QtGui.QWidget()
self.tab.setObjectName(_fromUtf8("tab"))
self.gridLayout_4 = QtGui.QGridLayout(self.tab)
self.gridLayout_4.setObjectName(_fromUtf8("gridLayout_4"))
self.uiQemuListLabel = QtGui.QLabel(self.tab)
self.uiQemuListLabel.setObjectName(_fromUtf8("uiQemuListLabel"))
self.verticalLayout = QtWidgets.QVBoxLayout(QemuVMConfigPageWidget)
self.verticalLayout.setObjectName("verticalLayout")
self.uiQemutabWidget = QtWidgets.QTabWidget(QemuVMConfigPageWidget)
self.uiQemutabWidget.setObjectName("uiQemutabWidget")
self.tab = QtWidgets.QWidget()
self.tab.setObjectName("tab")
self.gridLayout_4 = QtWidgets.QGridLayout(self.tab)
self.gridLayout_4.setObjectName("gridLayout_4")
self.uiQemuListLabel = QtWidgets.QLabel(self.tab)
self.uiQemuListLabel.setObjectName("uiQemuListLabel")
self.gridLayout_4.addWidget(self.uiQemuListLabel, 2, 0, 1, 2)
self.uiNameLineEdit = QtGui.QLineEdit(self.tab)
self.uiNameLineEdit.setObjectName(_fromUtf8("uiNameLineEdit"))
self.uiNameLineEdit = QtWidgets.QLineEdit(self.tab)
self.uiNameLineEdit.setObjectName("uiNameLineEdit")
self.gridLayout_4.addWidget(self.uiNameLineEdit, 0, 2, 1, 1)
spacerItem = QtGui.QSpacerItem(263, 94, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
spacerItem = QtWidgets.QSpacerItem(263, 94, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.gridLayout_4.addItem(spacerItem, 4, 1, 1, 2)
self.uiQemuListComboBox = QtGui.QComboBox(self.tab)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.uiQemuListComboBox = QtWidgets.QComboBox(self.tab)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiQemuListComboBox.sizePolicy().hasHeightForWidth())
self.uiQemuListComboBox.setSizePolicy(sizePolicy)
self.uiQemuListComboBox.setObjectName(_fromUtf8("uiQemuListComboBox"))
self.uiQemuListComboBox.setObjectName("uiQemuListComboBox")
self.gridLayout_4.addWidget(self.uiQemuListComboBox, 2, 2, 1, 1)
self.uiConsolePortSpinBox = QtGui.QSpinBox(self.tab)
self.uiConsolePortSpinBox = QtWidgets.QSpinBox(self.tab)
self.uiConsolePortSpinBox.setMaximum(65535)
self.uiConsolePortSpinBox.setObjectName(_fromUtf8("uiConsolePortSpinBox"))
self.uiConsolePortSpinBox.setObjectName("uiConsolePortSpinBox")
self.gridLayout_4.addWidget(self.uiConsolePortSpinBox, 3, 2, 1, 1)
self.uiConsolePortLabel = QtGui.QLabel(self.tab)
self.uiConsolePortLabel.setObjectName(_fromUtf8("uiConsolePortLabel"))
self.uiConsolePortLabel = QtWidgets.QLabel(self.tab)
self.uiConsolePortLabel.setObjectName("uiConsolePortLabel")
self.gridLayout_4.addWidget(self.uiConsolePortLabel, 3, 0, 1, 2)
self.uiNameLabel = QtGui.QLabel(self.tab)
self.uiNameLabel.setObjectName(_fromUtf8("uiNameLabel"))
self.uiNameLabel = QtWidgets.QLabel(self.tab)
self.uiNameLabel.setObjectName("uiNameLabel")
self.gridLayout_4.addWidget(self.uiNameLabel, 0, 0, 1, 1)
self.uiRamLabel = QtGui.QLabel(self.tab)
self.uiRamLabel.setObjectName(_fromUtf8("uiRamLabel"))
self.uiRamLabel = QtWidgets.QLabel(self.tab)
self.uiRamLabel.setObjectName("uiRamLabel")
self.gridLayout_4.addWidget(self.uiRamLabel, 1, 0, 1, 1)
self.uiRamSpinBox = QtGui.QSpinBox(self.tab)
self.uiRamSpinBox = QtWidgets.QSpinBox(self.tab)
self.uiRamSpinBox.setMinimum(32)
self.uiRamSpinBox.setMaximum(65535)
self.uiRamSpinBox.setProperty("value", 256)
self.uiRamSpinBox.setObjectName(_fromUtf8("uiRamSpinBox"))
self.uiRamSpinBox.setObjectName("uiRamSpinBox")
self.gridLayout_4.addWidget(self.uiRamSpinBox, 1, 2, 1, 1)
self.uiQemutabWidget.addTab(self.tab, _fromUtf8(""))
self.tab_3 = QtGui.QWidget()
self.tab_3.setObjectName(_fromUtf8("tab_3"))
self.gridLayout_6 = QtGui.QGridLayout(self.tab_3)
self.gridLayout_6.setObjectName(_fromUtf8("gridLayout_6"))
self.uiHdaDiskImageLabel = QtGui.QLabel(self.tab_3)
self.uiHdaDiskImageLabel.setObjectName(_fromUtf8("uiHdaDiskImageLabel"))
self.uiQemutabWidget.addTab(self.tab, "")
self.tab_3 = QtWidgets.QWidget()
self.tab_3.setObjectName("tab_3")
self.gridLayout_6 = QtWidgets.QGridLayout(self.tab_3)
self.gridLayout_6.setObjectName("gridLayout_6")
self.uiHdaDiskImageLabel = QtWidgets.QLabel(self.tab_3)
self.uiHdaDiskImageLabel.setObjectName("uiHdaDiskImageLabel")
self.gridLayout_6.addWidget(self.uiHdaDiskImageLabel, 0, 0, 1, 1)
self.horizontalLayout_8 = QtGui.QHBoxLayout()
self.horizontalLayout_8.setObjectName(_fromUtf8("horizontalLayout_8"))
self.uiHdaDiskImageLineEdit = QtGui.QLineEdit(self.tab_3)
self.uiHdaDiskImageLineEdit.setObjectName(_fromUtf8("uiHdaDiskImageLineEdit"))
self.horizontalLayout_8 = QtWidgets.QHBoxLayout()
self.horizontalLayout_8.setObjectName("horizontalLayout_8")
self.uiHdaDiskImageLineEdit = QtWidgets.QLineEdit(self.tab_3)
self.uiHdaDiskImageLineEdit.setObjectName("uiHdaDiskImageLineEdit")
self.horizontalLayout_8.addWidget(self.uiHdaDiskImageLineEdit)
self.uiHdaDiskImageToolButton = QtGui.QToolButton(self.tab_3)
self.uiHdaDiskImageToolButton = QtWidgets.QToolButton(self.tab_3)
self.uiHdaDiskImageToolButton.setToolButtonStyle(QtCore.Qt.ToolButtonTextOnly)
self.uiHdaDiskImageToolButton.setObjectName(_fromUtf8("uiHdaDiskImageToolButton"))
self.uiHdaDiskImageToolButton.setObjectName("uiHdaDiskImageToolButton")
self.horizontalLayout_8.addWidget(self.uiHdaDiskImageToolButton)
self.gridLayout_6.addLayout(self.horizontalLayout_8, 0, 1, 1, 1)
self.uiHdbDiskImageLabel = QtGui.QLabel(self.tab_3)
self.uiHdbDiskImageLabel.setObjectName(_fromUtf8("uiHdbDiskImageLabel"))
self.uiHdbDiskImageLabel = QtWidgets.QLabel(self.tab_3)
self.uiHdbDiskImageLabel.setObjectName("uiHdbDiskImageLabel")
self.gridLayout_6.addWidget(self.uiHdbDiskImageLabel, 1, 0, 1, 1)
self.horizontalLayout_4 = QtGui.QHBoxLayout()
self.horizontalLayout_4.setObjectName(_fromUtf8("horizontalLayout_4"))
self.uiHdbDiskImageLineEdit = QtGui.QLineEdit(self.tab_3)
self.uiHdbDiskImageLineEdit.setObjectName(_fromUtf8("uiHdbDiskImageLineEdit"))
self.horizontalLayout_4 = QtWidgets.QHBoxLayout()
self.horizontalLayout_4.setObjectName("horizontalLayout_4")
self.uiHdbDiskImageLineEdit = QtWidgets.QLineEdit(self.tab_3)
self.uiHdbDiskImageLineEdit.setObjectName("uiHdbDiskImageLineEdit")
self.horizontalLayout_4.addWidget(self.uiHdbDiskImageLineEdit)
self.uiHdbDiskImageToolButton = QtGui.QToolButton(self.tab_3)
self.uiHdbDiskImageToolButton = QtWidgets.QToolButton(self.tab_3)
self.uiHdbDiskImageToolButton.setToolButtonStyle(QtCore.Qt.ToolButtonTextOnly)
self.uiHdbDiskImageToolButton.setObjectName(_fromUtf8("uiHdbDiskImageToolButton"))
self.uiHdbDiskImageToolButton.setObjectName("uiHdbDiskImageToolButton")
self.horizontalLayout_4.addWidget(self.uiHdbDiskImageToolButton)
self.gridLayout_6.addLayout(self.horizontalLayout_4, 1, 1, 1, 1)
self.uiHdcDiskImageLabel = QtGui.QLabel(self.tab_3)
self.uiHdcDiskImageLabel.setObjectName(_fromUtf8("uiHdcDiskImageLabel"))
self.uiHdcDiskImageLabel = QtWidgets.QLabel(self.tab_3)
self.uiHdcDiskImageLabel.setObjectName("uiHdcDiskImageLabel")
self.gridLayout_6.addWidget(self.uiHdcDiskImageLabel, 2, 0, 1, 1)
self.horizontalLayout_9 = QtGui.QHBoxLayout()
self.horizontalLayout_9.setObjectName(_fromUtf8("horizontalLayout_9"))
self.uiHdcDiskImageLineEdit = QtGui.QLineEdit(self.tab_3)
self.uiHdcDiskImageLineEdit.setObjectName(_fromUtf8("uiHdcDiskImageLineEdit"))
self.horizontalLayout_9 = QtWidgets.QHBoxLayout()
self.horizontalLayout_9.setObjectName("horizontalLayout_9")
self.uiHdcDiskImageLineEdit = QtWidgets.QLineEdit(self.tab_3)
self.uiHdcDiskImageLineEdit.setObjectName("uiHdcDiskImageLineEdit")
self.horizontalLayout_9.addWidget(self.uiHdcDiskImageLineEdit)
self.uiHdcDiskImageToolButton = QtGui.QToolButton(self.tab_3)
self.uiHdcDiskImageToolButton = QtWidgets.QToolButton(self.tab_3)
self.uiHdcDiskImageToolButton.setToolButtonStyle(QtCore.Qt.ToolButtonTextOnly)
self.uiHdcDiskImageToolButton.setObjectName(_fromUtf8("uiHdcDiskImageToolButton"))
self.uiHdcDiskImageToolButton.setObjectName("uiHdcDiskImageToolButton")
self.horizontalLayout_9.addWidget(self.uiHdcDiskImageToolButton)
self.gridLayout_6.addLayout(self.horizontalLayout_9, 2, 1, 1, 1)
self.uiHddDiskImageLabel = QtGui.QLabel(self.tab_3)
self.uiHddDiskImageLabel.setObjectName(_fromUtf8("uiHddDiskImageLabel"))
self.uiHddDiskImageLabel = QtWidgets.QLabel(self.tab_3)
self.uiHddDiskImageLabel.setObjectName("uiHddDiskImageLabel")
self.gridLayout_6.addWidget(self.uiHddDiskImageLabel, 3, 0, 1, 1)
self.horizontalLayout_10 = QtGui.QHBoxLayout()
self.horizontalLayout_10.setObjectName(_fromUtf8("horizontalLayout_10"))
self.uiHddDiskImageLineEdit = QtGui.QLineEdit(self.tab_3)
self.uiHddDiskImageLineEdit.setObjectName(_fromUtf8("uiHddDiskImageLineEdit"))
self.horizontalLayout_10 = QtWidgets.QHBoxLayout()
self.horizontalLayout_10.setObjectName("horizontalLayout_10")
self.uiHddDiskImageLineEdit = QtWidgets.QLineEdit(self.tab_3)
self.uiHddDiskImageLineEdit.setObjectName("uiHddDiskImageLineEdit")
self.horizontalLayout_10.addWidget(self.uiHddDiskImageLineEdit)
self.uiHddDiskImageToolButton = QtGui.QToolButton(self.tab_3)
self.uiHddDiskImageToolButton = QtWidgets.QToolButton(self.tab_3)
self.uiHddDiskImageToolButton.setToolButtonStyle(QtCore.Qt.ToolButtonTextOnly)
self.uiHddDiskImageToolButton.setObjectName(_fromUtf8("uiHddDiskImageToolButton"))
self.uiHddDiskImageToolButton.setObjectName("uiHddDiskImageToolButton")
self.horizontalLayout_10.addWidget(self.uiHddDiskImageToolButton)
self.gridLayout_6.addLayout(self.horizontalLayout_10, 3, 1, 1, 1)
spacerItem1 = QtGui.QSpacerItem(438, 257, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
spacerItem1 = QtWidgets.QSpacerItem(438, 257, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.gridLayout_6.addItem(spacerItem1, 4, 0, 1, 2)
self.uiQemutabWidget.addTab(self.tab_3, _fromUtf8(""))
self.tab_7 = QtGui.QWidget()
self.tab_7.setObjectName(_fromUtf8("tab_7"))
self.gridLayout_5 = QtGui.QGridLayout(self.tab_7)
self.gridLayout_5.setObjectName(_fromUtf8("gridLayout_5"))
self.uiAdaptersLabel = QtGui.QLabel(self.tab_7)
self.uiAdaptersLabel.setObjectName(_fromUtf8("uiAdaptersLabel"))
self.uiQemutabWidget.addTab(self.tab_3, "")
self.tab_7 = QtWidgets.QWidget()
self.tab_7.setObjectName("tab_7")
self.gridLayout_5 = QtWidgets.QGridLayout(self.tab_7)
self.gridLayout_5.setObjectName("gridLayout_5")
self.uiAdaptersLabel = QtWidgets.QLabel(self.tab_7)
self.uiAdaptersLabel.setObjectName("uiAdaptersLabel")
self.gridLayout_5.addWidget(self.uiAdaptersLabel, 0, 0, 1, 1)
self.uiAdaptersSpinBox = QtGui.QSpinBox(self.tab_7)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.uiAdaptersSpinBox = QtWidgets.QSpinBox(self.tab_7)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiAdaptersSpinBox.sizePolicy().hasHeightForWidth())
self.uiAdaptersSpinBox.setSizePolicy(sizePolicy)
self.uiAdaptersSpinBox.setMinimum(0)
self.uiAdaptersSpinBox.setMaximum(32)
self.uiAdaptersSpinBox.setObjectName(_fromUtf8("uiAdaptersSpinBox"))
self.uiAdaptersSpinBox.setObjectName("uiAdaptersSpinBox")
self.gridLayout_5.addWidget(self.uiAdaptersSpinBox, 0, 1, 1, 1)
self.uiAdapterTypesLabel = QtGui.QLabel(self.tab_7)
self.uiAdapterTypesLabel.setObjectName(_fromUtf8("uiAdapterTypesLabel"))
self.uiAdapterTypesLabel = QtWidgets.QLabel(self.tab_7)
self.uiAdapterTypesLabel.setObjectName("uiAdapterTypesLabel")
self.gridLayout_5.addWidget(self.uiAdapterTypesLabel, 1, 0, 1, 1)
self.uiAdapterTypesComboBox = QtGui.QComboBox(self.tab_7)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.uiAdapterTypesComboBox = QtWidgets.QComboBox(self.tab_7)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiAdapterTypesComboBox.sizePolicy().hasHeightForWidth())
self.uiAdapterTypesComboBox.setSizePolicy(sizePolicy)
self.uiAdapterTypesComboBox.setObjectName(_fromUtf8("uiAdapterTypesComboBox"))
self.uiAdapterTypesComboBox.setObjectName("uiAdapterTypesComboBox")
self.gridLayout_5.addWidget(self.uiAdapterTypesComboBox, 1, 1, 1, 1)
self.uiLegacyNetworkingCheckBox = QtGui.QCheckBox(self.tab_7)
self.uiLegacyNetworkingCheckBox.setObjectName(_fromUtf8("uiLegacyNetworkingCheckBox"))
self.uiLegacyNetworkingCheckBox = QtWidgets.QCheckBox(self.tab_7)
self.uiLegacyNetworkingCheckBox.setObjectName("uiLegacyNetworkingCheckBox")
self.gridLayout_5.addWidget(self.uiLegacyNetworkingCheckBox, 2, 0, 1, 2)
spacerItem2 = QtGui.QSpacerItem(20, 261, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
spacerItem2 = QtWidgets.QSpacerItem(20, 261, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.gridLayout_5.addItem(spacerItem2, 3, 1, 1, 1)
self.uiQemutabWidget.addTab(self.tab_7, _fromUtf8(""))
self.tab_2 = QtGui.QWidget()
self.tab_2.setObjectName(_fromUtf8("tab_2"))
self.verticalLayout_2 = QtGui.QVBoxLayout(self.tab_2)
self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2"))
self.uiLinuxBootGroupBox = QtGui.QGroupBox(self.tab_2)
self.uiLinuxBootGroupBox.setObjectName(_fromUtf8("uiLinuxBootGroupBox"))
self.gridLayout_2 = QtGui.QGridLayout(self.uiLinuxBootGroupBox)
self.gridLayout_2.setObjectName(_fromUtf8("gridLayout_2"))
self.uiKernelImageLineEdit = QtGui.QLineEdit(self.uiLinuxBootGroupBox)
self.uiKernelImageLineEdit.setObjectName(_fromUtf8("uiKernelImageLineEdit"))
self.uiQemutabWidget.addTab(self.tab_7, "")
self.tab_2 = QtWidgets.QWidget()
self.tab_2.setObjectName("tab_2")
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.tab_2)
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.uiLinuxBootGroupBox = QtWidgets.QGroupBox(self.tab_2)
self.uiLinuxBootGroupBox.setObjectName("uiLinuxBootGroupBox")
self.gridLayout_2 = QtWidgets.QGridLayout(self.uiLinuxBootGroupBox)
self.gridLayout_2.setObjectName("gridLayout_2")
self.uiKernelImageLineEdit = QtWidgets.QLineEdit(self.uiLinuxBootGroupBox)
self.uiKernelImageLineEdit.setObjectName("uiKernelImageLineEdit")
self.gridLayout_2.addWidget(self.uiKernelImageLineEdit, 1, 1, 1, 1)
self.uiKernelCommandLineLabel = QtGui.QLabel(self.uiLinuxBootGroupBox)
self.uiKernelCommandLineLabel.setObjectName(_fromUtf8("uiKernelCommandLineLabel"))
self.uiKernelCommandLineLabel = QtWidgets.QLabel(self.uiLinuxBootGroupBox)
self.uiKernelCommandLineLabel.setObjectName("uiKernelCommandLineLabel")
self.gridLayout_2.addWidget(self.uiKernelCommandLineLabel, 2, 0, 1, 1)
self.uiInitrdLabel = QtGui.QLabel(self.uiLinuxBootGroupBox)
self.uiInitrdLabel.setObjectName(_fromUtf8("uiInitrdLabel"))
self.uiInitrdLabel = QtWidgets.QLabel(self.uiLinuxBootGroupBox)
self.uiInitrdLabel.setObjectName("uiInitrdLabel")
self.gridLayout_2.addWidget(self.uiInitrdLabel, 0, 0, 1, 1)
self.uiKernelImageLabel = QtGui.QLabel(self.uiLinuxBootGroupBox)
self.uiKernelImageLabel.setObjectName(_fromUtf8("uiKernelImageLabel"))
self.uiKernelImageLabel = QtWidgets.QLabel(self.uiLinuxBootGroupBox)
self.uiKernelImageLabel.setObjectName("uiKernelImageLabel")
self.gridLayout_2.addWidget(self.uiKernelImageLabel, 1, 0, 1, 1)
self.uiInitrdLineEdit = QtGui.QLineEdit(self.uiLinuxBootGroupBox)
self.uiInitrdLineEdit.setObjectName(_fromUtf8("uiInitrdLineEdit"))
self.uiInitrdLineEdit = QtWidgets.QLineEdit(self.uiLinuxBootGroupBox)
self.uiInitrdLineEdit.setObjectName("uiInitrdLineEdit")
self.gridLayout_2.addWidget(self.uiInitrdLineEdit, 0, 1, 1, 1)
self.uiInitrdToolButton = QtGui.QToolButton(self.uiLinuxBootGroupBox)
self.uiInitrdToolButton = QtWidgets.QToolButton(self.uiLinuxBootGroupBox)
self.uiInitrdToolButton.setToolButtonStyle(QtCore.Qt.ToolButtonTextOnly)
self.uiInitrdToolButton.setObjectName(_fromUtf8("uiInitrdToolButton"))
self.uiInitrdToolButton.setObjectName("uiInitrdToolButton")
self.gridLayout_2.addWidget(self.uiInitrdToolButton, 0, 2, 1, 1)
self.uiKernelImageToolButton = QtGui.QToolButton(self.uiLinuxBootGroupBox)
self.uiKernelImageToolButton = QtWidgets.QToolButton(self.uiLinuxBootGroupBox)
self.uiKernelImageToolButton.setToolButtonStyle(QtCore.Qt.ToolButtonTextOnly)
self.uiKernelImageToolButton.setObjectName(_fromUtf8("uiKernelImageToolButton"))
self.uiKernelImageToolButton.setObjectName("uiKernelImageToolButton")
self.gridLayout_2.addWidget(self.uiKernelImageToolButton, 1, 2, 1, 1)
self.uiKernelCommandLineEdit = QtGui.QLineEdit(self.uiLinuxBootGroupBox)
self.uiKernelCommandLineEdit.setObjectName(_fromUtf8("uiKernelCommandLineEdit"))
self.uiKernelCommandLineEdit = QtWidgets.QLineEdit(self.uiLinuxBootGroupBox)
self.uiKernelCommandLineEdit.setObjectName("uiKernelCommandLineEdit")
self.gridLayout_2.addWidget(self.uiKernelCommandLineEdit, 2, 1, 1, 2)
self.verticalLayout_2.addWidget(self.uiLinuxBootGroupBox)
self.uiOptimizationGroupBox = QtGui.QGroupBox(self.tab_2)
self.uiOptimizationGroupBox.setObjectName(_fromUtf8("uiOptimizationGroupBox"))
self.gridLayout = QtGui.QGridLayout(self.uiOptimizationGroupBox)
self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
self.uiActivateCPUThrottlingCheckBox = QtGui.QCheckBox(self.uiOptimizationGroupBox)
self.uiOptimizationGroupBox = QtWidgets.QGroupBox(self.tab_2)
self.uiOptimizationGroupBox.setObjectName("uiOptimizationGroupBox")
self.gridLayout = QtWidgets.QGridLayout(self.uiOptimizationGroupBox)
self.gridLayout.setObjectName("gridLayout")
self.uiActivateCPUThrottlingCheckBox = QtWidgets.QCheckBox(self.uiOptimizationGroupBox)
self.uiActivateCPUThrottlingCheckBox.setChecked(True)
self.uiActivateCPUThrottlingCheckBox.setObjectName(_fromUtf8("uiActivateCPUThrottlingCheckBox"))
self.uiActivateCPUThrottlingCheckBox.setObjectName("uiActivateCPUThrottlingCheckBox")
self.gridLayout.addWidget(self.uiActivateCPUThrottlingCheckBox, 0, 0, 1, 2)
self.uiCPUThrottlingLabel = QtGui.QLabel(self.uiOptimizationGroupBox)
self.uiCPUThrottlingLabel.setObjectName(_fromUtf8("uiCPUThrottlingLabel"))
self.uiCPUThrottlingLabel = QtWidgets.QLabel(self.uiOptimizationGroupBox)
self.uiCPUThrottlingLabel.setObjectName("uiCPUThrottlingLabel")
self.gridLayout.addWidget(self.uiCPUThrottlingLabel, 1, 0, 1, 1)
self.uiCPUThrottlingSpinBox = QtGui.QSpinBox(self.uiOptimizationGroupBox)
self.uiCPUThrottlingSpinBox = QtWidgets.QSpinBox(self.uiOptimizationGroupBox)
self.uiCPUThrottlingSpinBox.setMinimum(1)
self.uiCPUThrottlingSpinBox.setMaximum(800)
self.uiCPUThrottlingSpinBox.setProperty("value", 100)
self.uiCPUThrottlingSpinBox.setObjectName(_fromUtf8("uiCPUThrottlingSpinBox"))
self.uiCPUThrottlingSpinBox.setObjectName("uiCPUThrottlingSpinBox")
self.gridLayout.addWidget(self.uiCPUThrottlingSpinBox, 1, 1, 1, 1)
self.uiProcessPriorityLabel = QtGui.QLabel(self.uiOptimizationGroupBox)
self.uiProcessPriorityLabel.setObjectName(_fromUtf8("uiProcessPriorityLabel"))
self.uiProcessPriorityLabel = QtWidgets.QLabel(self.uiOptimizationGroupBox)
self.uiProcessPriorityLabel.setObjectName("uiProcessPriorityLabel")
self.gridLayout.addWidget(self.uiProcessPriorityLabel, 2, 0, 1, 1)
self.uiProcessPriorityComboBox = QtGui.QComboBox(self.uiOptimizationGroupBox)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.uiProcessPriorityComboBox = QtWidgets.QComboBox(self.uiOptimizationGroupBox)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiProcessPriorityComboBox.sizePolicy().hasHeightForWidth())
self.uiProcessPriorityComboBox.setSizePolicy(sizePolicy)
self.uiProcessPriorityComboBox.setObjectName(_fromUtf8("uiProcessPriorityComboBox"))
self.uiProcessPriorityComboBox.addItem(_fromUtf8(""))
self.uiProcessPriorityComboBox.addItem(_fromUtf8(""))
self.uiProcessPriorityComboBox.addItem(_fromUtf8(""))
self.uiProcessPriorityComboBox.addItem(_fromUtf8(""))
self.uiProcessPriorityComboBox.addItem(_fromUtf8(""))
self.uiProcessPriorityComboBox.addItem(_fromUtf8(""))
self.uiProcessPriorityComboBox.setObjectName("uiProcessPriorityComboBox")
self.uiProcessPriorityComboBox.addItem("")
self.uiProcessPriorityComboBox.addItem("")
self.uiProcessPriorityComboBox.addItem("")
self.uiProcessPriorityComboBox.addItem("")
self.uiProcessPriorityComboBox.addItem("")
self.uiProcessPriorityComboBox.addItem("")
self.gridLayout.addWidget(self.uiProcessPriorityComboBox, 2, 1, 1, 1)
self.verticalLayout_2.addWidget(self.uiOptimizationGroupBox)
self.groupBox = QtGui.QGroupBox(self.tab_2)
self.groupBox.setObjectName(_fromUtf8("groupBox"))
self.gridLayout_3 = QtGui.QGridLayout(self.groupBox)
self.gridLayout_3.setObjectName(_fromUtf8("gridLayout_3"))
self.uiQemuOptionsLabel = QtGui.QLabel(self.groupBox)
self.uiQemuOptionsLabel.setObjectName(_fromUtf8("uiQemuOptionsLabel"))
self.groupBox = QtWidgets.QGroupBox(self.tab_2)
self.groupBox.setObjectName("groupBox")
self.gridLayout_3 = QtWidgets.QGridLayout(self.groupBox)
self.gridLayout_3.setObjectName("gridLayout_3")
self.uiQemuOptionsLabel = QtWidgets.QLabel(self.groupBox)
self.uiQemuOptionsLabel.setObjectName("uiQemuOptionsLabel")
self.gridLayout_3.addWidget(self.uiQemuOptionsLabel, 0, 0, 1, 1)
self.uiQemuOptionsLineEdit = QtGui.QLineEdit(self.groupBox)
self.uiQemuOptionsLineEdit.setObjectName(_fromUtf8("uiQemuOptionsLineEdit"))
self.uiQemuOptionsLineEdit = QtWidgets.QLineEdit(self.groupBox)
self.uiQemuOptionsLineEdit.setObjectName("uiQemuOptionsLineEdit")
self.gridLayout_3.addWidget(self.uiQemuOptionsLineEdit, 0, 2, 1, 1)
self.verticalLayout_2.addWidget(self.groupBox)
spacerItem3 = QtGui.QSpacerItem(20, 90, QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
spacerItem3 = QtWidgets.QSpacerItem(20, 90, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
self.verticalLayout_2.addItem(spacerItem3)
self.uiQemutabWidget.addTab(self.tab_2, _fromUtf8(""))
self.uiQemutabWidget.addTab(self.tab_2, "")
self.verticalLayout.addWidget(self.uiQemutabWidget)
self.retranslateUi(QemuVMConfigPageWidget)
@@ -256,44 +244,44 @@ class Ui_QemuVMConfigPageWidget(object):
QtCore.QMetaObject.connectSlotsByName(QemuVMConfigPageWidget)
def retranslateUi(self, QemuVMConfigPageWidget):
QemuVMConfigPageWidget.setWindowTitle(_translate("QemuVMConfigPageWidget", "QEMU VM configuration", None))
self.uiQemuListLabel.setText(_translate("QemuVMConfigPageWidget", "Qemu binary:", None))
self.uiConsolePortLabel.setText(_translate("QemuVMConfigPageWidget", "Console port:", None))
self.uiNameLabel.setText(_translate("QemuVMConfigPageWidget", "VM name:", None))
self.uiRamLabel.setText(_translate("QemuVMConfigPageWidget", "RAM:", None))
self.uiRamSpinBox.setSuffix(_translate("QemuVMConfigPageWidget", " MB", None))
self.uiQemutabWidget.setTabText(self.uiQemutabWidget.indexOf(self.tab), _translate("QemuVMConfigPageWidget", "General settings", None))
self.uiHdaDiskImageLabel.setText(_translate("QemuVMConfigPageWidget", "Disk image (hda):", None))
self.uiHdaDiskImageToolButton.setText(_translate("QemuVMConfigPageWidget", "&Browse...", None))
self.uiHdbDiskImageLabel.setText(_translate("QemuVMConfigPageWidget", "Disk image (hdb):", None))
self.uiHdbDiskImageToolButton.setText(_translate("QemuVMConfigPageWidget", "&Browse...", None))
self.uiHdcDiskImageLabel.setText(_translate("QemuVMConfigPageWidget", "Disk image (hdc):", None))
self.uiHdcDiskImageToolButton.setText(_translate("QemuVMConfigPageWidget", "&Browse...", None))
self.uiHddDiskImageLabel.setText(_translate("QemuVMConfigPageWidget", "Disk image (hdd):", None))
self.uiHddDiskImageToolButton.setText(_translate("QemuVMConfigPageWidget", "&Browse...", None))
self.uiQemutabWidget.setTabText(self.uiQemutabWidget.indexOf(self.tab_3), _translate("QemuVMConfigPageWidget", "HDD", None))
self.uiAdaptersLabel.setText(_translate("QemuVMConfigPageWidget", "Adapters:", None))
self.uiAdapterTypesLabel.setText(_translate("QemuVMConfigPageWidget", "Type:", None))
self.uiLegacyNetworkingCheckBox.setText(_translate("QemuVMConfigPageWidget", "Use the legacy networking mode", None))
self.uiQemutabWidget.setTabText(self.uiQemutabWidget.indexOf(self.tab_7), _translate("QemuVMConfigPageWidget", "Network", None))
self.uiLinuxBootGroupBox.setTitle(_translate("QemuVMConfigPageWidget", "Linux boot specific settings", None))
self.uiKernelCommandLineLabel.setText(_translate("QemuVMConfigPageWidget", "Kernel command line:", None))
self.uiInitrdLabel.setText(_translate("QemuVMConfigPageWidget", "Initial RAM disk (initrd):", None))
self.uiKernelImageLabel.setText(_translate("QemuVMConfigPageWidget", "Kernel image:", None))
self.uiInitrdToolButton.setText(_translate("QemuVMConfigPageWidget", "&Browse...", None))
self.uiKernelImageToolButton.setText(_translate("QemuVMConfigPageWidget", "&Browse...", None))
self.uiOptimizationGroupBox.setTitle(_translate("QemuVMConfigPageWidget", "Optimizations", None))
self.uiActivateCPUThrottlingCheckBox.setText(_translate("QemuVMConfigPageWidget", "Activate CPU throttling", None))
self.uiCPUThrottlingLabel.setText(_translate("QemuVMConfigPageWidget", "Percentage of CPU allowed:", None))
self.uiCPUThrottlingSpinBox.setSuffix(_translate("QemuVMConfigPageWidget", " %", None))
self.uiProcessPriorityLabel.setText(_translate("QemuVMConfigPageWidget", "Process priority:", None))
self.uiProcessPriorityComboBox.setItemText(0, _translate("QemuVMConfigPageWidget", "Realtime", None))
self.uiProcessPriorityComboBox.setItemText(1, _translate("QemuVMConfigPageWidget", "Very high", None))
self.uiProcessPriorityComboBox.setItemText(2, _translate("QemuVMConfigPageWidget", "High", None))
self.uiProcessPriorityComboBox.setItemText(3, _translate("QemuVMConfigPageWidget", "Normal", None))
self.uiProcessPriorityComboBox.setItemText(4, _translate("QemuVMConfigPageWidget", "Low", None))
self.uiProcessPriorityComboBox.setItemText(5, _translate("QemuVMConfigPageWidget", "Very low", None))
self.groupBox.setTitle(_translate("QemuVMConfigPageWidget", "Aditional settings", None))
self.uiQemuOptionsLabel.setText(_translate("QemuVMConfigPageWidget", "Options:", None))
self.uiQemutabWidget.setTabText(self.uiQemutabWidget.indexOf(self.tab_2), _translate("QemuVMConfigPageWidget", "Advanced settings", None))
_translate = QtCore.QCoreApplication.translate
QemuVMConfigPageWidget.setWindowTitle(_translate("QemuVMConfigPageWidget", "QEMU VM configuration"))
self.uiQemuListLabel.setText(_translate("QemuVMConfigPageWidget", "Qemu binary:"))
self.uiConsolePortLabel.setText(_translate("QemuVMConfigPageWidget", "Console port:"))
self.uiNameLabel.setText(_translate("QemuVMConfigPageWidget", "VM name:"))
self.uiRamLabel.setText(_translate("QemuVMConfigPageWidget", "RAM:"))
self.uiRamSpinBox.setSuffix(_translate("QemuVMConfigPageWidget", " MB"))
self.uiQemutabWidget.setTabText(self.uiQemutabWidget.indexOf(self.tab), _translate("QemuVMConfigPageWidget", "General settings"))
self.uiHdaDiskImageLabel.setText(_translate("QemuVMConfigPageWidget", "Disk image (hda):"))
self.uiHdaDiskImageToolButton.setText(_translate("QemuVMConfigPageWidget", "&Browse..."))
self.uiHdbDiskImageLabel.setText(_translate("QemuVMConfigPageWidget", "Disk image (hdb):"))
self.uiHdbDiskImageToolButton.setText(_translate("QemuVMConfigPageWidget", "&Browse..."))
self.uiHdcDiskImageLabel.setText(_translate("QemuVMConfigPageWidget", "Disk image (hdc):"))
self.uiHdcDiskImageToolButton.setText(_translate("QemuVMConfigPageWidget", "&Browse..."))
self.uiHddDiskImageLabel.setText(_translate("QemuVMConfigPageWidget", "Disk image (hdd):"))
self.uiHddDiskImageToolButton.setText(_translate("QemuVMConfigPageWidget", "&Browse..."))
self.uiQemutabWidget.setTabText(self.uiQemutabWidget.indexOf(self.tab_3), _translate("QemuVMConfigPageWidget", "HDD"))
self.uiAdaptersLabel.setText(_translate("QemuVMConfigPageWidget", "Adapters:"))
self.uiAdapterTypesLabel.setText(_translate("QemuVMConfigPageWidget", "Type:"))
self.uiLegacyNetworkingCheckBox.setText(_translate("QemuVMConfigPageWidget", "Use the legacy networking mode"))
self.uiQemutabWidget.setTabText(self.uiQemutabWidget.indexOf(self.tab_7), _translate("QemuVMConfigPageWidget", "Network"))
self.uiLinuxBootGroupBox.setTitle(_translate("QemuVMConfigPageWidget", "Linux boot specific settings"))
self.uiKernelCommandLineLabel.setText(_translate("QemuVMConfigPageWidget", "Kernel command line:"))
self.uiInitrdLabel.setText(_translate("QemuVMConfigPageWidget", "Initial RAM disk (initrd):"))
self.uiKernelImageLabel.setText(_translate("QemuVMConfigPageWidget", "Kernel image:"))
self.uiInitrdToolButton.setText(_translate("QemuVMConfigPageWidget", "&Browse..."))
self.uiKernelImageToolButton.setText(_translate("QemuVMConfigPageWidget", "&Browse..."))
self.uiOptimizationGroupBox.setTitle(_translate("QemuVMConfigPageWidget", "Optimizations"))
self.uiActivateCPUThrottlingCheckBox.setText(_translate("QemuVMConfigPageWidget", "Activate CPU throttling"))
self.uiCPUThrottlingLabel.setText(_translate("QemuVMConfigPageWidget", "Percentage of CPU allowed:"))
self.uiCPUThrottlingSpinBox.setSuffix(_translate("QemuVMConfigPageWidget", " %"))
self.uiProcessPriorityLabel.setText(_translate("QemuVMConfigPageWidget", "Process priority:"))
self.uiProcessPriorityComboBox.setItemText(0, _translate("QemuVMConfigPageWidget", "Realtime"))
self.uiProcessPriorityComboBox.setItemText(1, _translate("QemuVMConfigPageWidget", "Very high"))
self.uiProcessPriorityComboBox.setItemText(2, _translate("QemuVMConfigPageWidget", "High"))
self.uiProcessPriorityComboBox.setItemText(3, _translate("QemuVMConfigPageWidget", "Normal"))
self.uiProcessPriorityComboBox.setItemText(4, _translate("QemuVMConfigPageWidget", "Low"))
self.uiProcessPriorityComboBox.setItemText(5, _translate("QemuVMConfigPageWidget", "Very low"))
self.groupBox.setTitle(_translate("QemuVMConfigPageWidget", "Aditional settings"))
self.uiQemuOptionsLabel.setText(_translate("QemuVMConfigPageWidget", "Options:"))
self.uiQemutabWidget.setTabText(self.uiQemutabWidget.indexOf(self.tab_2), _translate("QemuVMConfigPageWidget", "Advanced settings"))

View File

@@ -1,36 +1,24 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file '/home/grossmj/PycharmProjects/gns3-gui/gns3/modules/qemu/ui/qemu_vm_preferences_page.ui'
# Form implementation generated from reading ui file '/Users/noplay/code/gns3/gns3-gui/gns3/modules/qemu/ui/qemu_vm_preferences_page.ui'
#
# Created: Wed Mar 11 22:03:56 2015
# by: PyQt4 UI code generator 4.10.4
# Created: Fri Apr 17 10:44:35 2015
# by: PyQt5 UI code generator 5.4
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
from gns3.qt import QtCore, QtGui, QtWidgets
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_QemuVMPreferencesPageWidget:
class Ui_QemuVMPreferencesPageWidget(object):
def setupUi(self, QemuVMPreferencesPageWidget):
QemuVMPreferencesPageWidget.setObjectName(_fromUtf8("QemuVMPreferencesPageWidget"))
QemuVMPreferencesPageWidget.setObjectName("QemuVMPreferencesPageWidget")
QemuVMPreferencesPageWidget.resize(511, 543)
self.gridLayout = QtGui.QGridLayout(QemuVMPreferencesPageWidget)
self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
self.uiQemuVMsTreeWidget = QtGui.QTreeWidget(QemuVMPreferencesPageWidget)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Minimum, QtGui.QSizePolicy.Expanding)
self.gridLayout = QtWidgets.QGridLayout(QemuVMPreferencesPageWidget)
self.gridLayout.setObjectName("gridLayout")
self.uiQemuVMsTreeWidget = QtWidgets.QTreeWidget(QemuVMPreferencesPageWidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiQemuVMsTreeWidget.sizePolicy().hasHeightForWidth())
@@ -43,33 +31,33 @@ class Ui_QemuVMPreferencesPageWidget(object):
self.uiQemuVMsTreeWidget.setFont(font)
self.uiQemuVMsTreeWidget.setIconSize(QtCore.QSize(32, 32))
self.uiQemuVMsTreeWidget.setRootIsDecorated(False)
self.uiQemuVMsTreeWidget.setObjectName(_fromUtf8("uiQemuVMsTreeWidget"))
self.uiQemuVMsTreeWidget.headerItem().setText(0, _fromUtf8("1"))
self.uiQemuVMsTreeWidget.setObjectName("uiQemuVMsTreeWidget")
self.uiQemuVMsTreeWidget.headerItem().setText(0, "1")
self.uiQemuVMsTreeWidget.header().setVisible(False)
self.gridLayout.addWidget(self.uiQemuVMsTreeWidget, 0, 0, 2, 1)
self.uiQemuVMInfoTreeWidget = QtGui.QTreeWidget(QemuVMPreferencesPageWidget)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.MinimumExpanding, QtGui.QSizePolicy.Expanding)
self.uiQemuVMInfoTreeWidget = QtWidgets.QTreeWidget(QemuVMPreferencesPageWidget)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.Expanding)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiQemuVMInfoTreeWidget.sizePolicy().hasHeightForWidth())
self.uiQemuVMInfoTreeWidget.setSizePolicy(sizePolicy)
self.uiQemuVMInfoTreeWidget.setIndentation(10)
self.uiQemuVMInfoTreeWidget.setAllColumnsShowFocus(True)
self.uiQemuVMInfoTreeWidget.setObjectName(_fromUtf8("uiQemuVMInfoTreeWidget"))
self.uiQemuVMInfoTreeWidget.setObjectName("uiQemuVMInfoTreeWidget")
self.uiQemuVMInfoTreeWidget.header().setVisible(False)
self.gridLayout.addWidget(self.uiQemuVMInfoTreeWidget, 0, 1, 1, 1)
self.horizontalLayout_5 = QtGui.QHBoxLayout()
self.horizontalLayout_5.setObjectName(_fromUtf8("horizontalLayout_5"))
self.uiNewQemuVMPushButton = QtGui.QPushButton(QemuVMPreferencesPageWidget)
self.uiNewQemuVMPushButton.setObjectName(_fromUtf8("uiNewQemuVMPushButton"))
self.horizontalLayout_5 = QtWidgets.QHBoxLayout()
self.horizontalLayout_5.setObjectName("horizontalLayout_5")
self.uiNewQemuVMPushButton = QtWidgets.QPushButton(QemuVMPreferencesPageWidget)
self.uiNewQemuVMPushButton.setObjectName("uiNewQemuVMPushButton")
self.horizontalLayout_5.addWidget(self.uiNewQemuVMPushButton)
self.uiEditQemuVMPushButton = QtGui.QPushButton(QemuVMPreferencesPageWidget)
self.uiEditQemuVMPushButton = QtWidgets.QPushButton(QemuVMPreferencesPageWidget)
self.uiEditQemuVMPushButton.setEnabled(False)
self.uiEditQemuVMPushButton.setObjectName(_fromUtf8("uiEditQemuVMPushButton"))
self.uiEditQemuVMPushButton.setObjectName("uiEditQemuVMPushButton")
self.horizontalLayout_5.addWidget(self.uiEditQemuVMPushButton)
self.uiDeleteQemuVMPushButton = QtGui.QPushButton(QemuVMPreferencesPageWidget)
self.uiDeleteQemuVMPushButton = QtWidgets.QPushButton(QemuVMPreferencesPageWidget)
self.uiDeleteQemuVMPushButton.setEnabled(False)
self.uiDeleteQemuVMPushButton.setObjectName(_fromUtf8("uiDeleteQemuVMPushButton"))
self.uiDeleteQemuVMPushButton.setObjectName("uiDeleteQemuVMPushButton")
self.horizontalLayout_5.addWidget(self.uiDeleteQemuVMPushButton)
self.gridLayout.addLayout(self.horizontalLayout_5, 1, 1, 1, 1)
@@ -78,11 +66,11 @@ class Ui_QemuVMPreferencesPageWidget(object):
QemuVMPreferencesPageWidget.setTabOrder(self.uiNewQemuVMPushButton, self.uiDeleteQemuVMPushButton)
def retranslateUi(self, QemuVMPreferencesPageWidget):
QemuVMPreferencesPageWidget.setWindowTitle(_translate("QemuVMPreferencesPageWidget", "QEMU VMs", None))
QemuVMPreferencesPageWidget.setAccessibleName(_translate("QemuVMPreferencesPageWidget", "QEMU VM templates", None))
self.uiQemuVMInfoTreeWidget.headerItem().setText(0, _translate("QemuVMPreferencesPageWidget", "1", None))
self.uiQemuVMInfoTreeWidget.headerItem().setText(1, _translate("QemuVMPreferencesPageWidget", "2", None))
self.uiNewQemuVMPushButton.setText(_translate("QemuVMPreferencesPageWidget", "&New", None))
self.uiEditQemuVMPushButton.setText(_translate("QemuVMPreferencesPageWidget", "&Edit", None))
self.uiDeleteQemuVMPushButton.setText(_translate("QemuVMPreferencesPageWidget", "&Delete", None))
_translate = QtCore.QCoreApplication.translate
QemuVMPreferencesPageWidget.setWindowTitle(_translate("QemuVMPreferencesPageWidget", "QEMU VMs"))
QemuVMPreferencesPageWidget.setAccessibleName(_translate("QemuVMPreferencesPageWidget", "QEMU VM templates"))
self.uiQemuVMInfoTreeWidget.headerItem().setText(0, _translate("QemuVMPreferencesPageWidget", "1"))
self.uiQemuVMInfoTreeWidget.headerItem().setText(1, _translate("QemuVMPreferencesPageWidget", "2"))
self.uiNewQemuVMPushButton.setText(_translate("QemuVMPreferencesPageWidget", "&New"))
self.uiEditQemuVMPushButton.setText(_translate("QemuVMPreferencesPageWidget", "&Edit"))
self.uiDeleteQemuVMPushButton.setText(_translate("QemuVMPreferencesPageWidget", "&Delete"))

View File

@@ -1,187 +1,175 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file '/home/grossmj/PycharmProjects/gns3-gui/gns3/modules/qemu/ui/qemu_vm_wizard.ui'
# Form implementation generated from reading ui file '/Users/noplay/code/gns3/gns3-gui/gns3/modules/qemu/ui/qemu_vm_wizard.ui'
#
# Created: Fri Mar 13 11:09:58 2015
# by: PyQt4 UI code generator 4.10.4
# Created: Fri Apr 17 10:44:35 2015
# by: PyQt5 UI code generator 5.4
#
# WARNING! All changes made in this file will be lost!
from PyQt4 import QtCore, QtGui
from gns3.qt import QtCore, QtGui, QtWidgets
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_QemuVMWizard:
class Ui_QemuVMWizard(object):
def setupUi(self, QemuVMWizard):
QemuVMWizard.setObjectName(_fromUtf8("QemuVMWizard"))
QemuVMWizard.setObjectName("QemuVMWizard")
QemuVMWizard.resize(514, 366)
QemuVMWizard.setModal(True)
self.uiServerWizardPage = QtGui.QWizardPage()
self.uiServerWizardPage.setObjectName(_fromUtf8("uiServerWizardPage"))
self.gridLayout_4 = QtGui.QGridLayout(self.uiServerWizardPage)
self.gridLayout_4.setObjectName(_fromUtf8("gridLayout_4"))
self.uiServerTypeGroupBox = QtGui.QGroupBox(self.uiServerWizardPage)
self.uiServerTypeGroupBox.setObjectName(_fromUtf8("uiServerTypeGroupBox"))
self.horizontalLayout = QtGui.QHBoxLayout(self.uiServerTypeGroupBox)
self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
self.uiRemoteRadioButton = QtGui.QRadioButton(self.uiServerTypeGroupBox)
self.uiServerWizardPage = QtWidgets.QWizardPage()
self.uiServerWizardPage.setObjectName("uiServerWizardPage")
self.gridLayout_4 = QtWidgets.QGridLayout(self.uiServerWizardPage)
self.gridLayout_4.setObjectName("gridLayout_4")
self.uiServerTypeGroupBox = QtWidgets.QGroupBox(self.uiServerWizardPage)
self.uiServerTypeGroupBox.setObjectName("uiServerTypeGroupBox")
self.horizontalLayout = QtWidgets.QHBoxLayout(self.uiServerTypeGroupBox)
self.horizontalLayout.setObjectName("horizontalLayout")
self.uiRemoteRadioButton = QtWidgets.QRadioButton(self.uiServerTypeGroupBox)
self.uiRemoteRadioButton.setChecked(True)
self.uiRemoteRadioButton.setObjectName(_fromUtf8("uiRemoteRadioButton"))
self.uiRemoteRadioButton.setObjectName("uiRemoteRadioButton")
self.horizontalLayout.addWidget(self.uiRemoteRadioButton)
self.uiCloudRadioButton = QtGui.QRadioButton(self.uiServerTypeGroupBox)
self.uiCloudRadioButton.setObjectName(_fromUtf8("uiCloudRadioButton"))
self.uiCloudRadioButton = QtWidgets.QRadioButton(self.uiServerTypeGroupBox)
self.uiCloudRadioButton.setObjectName("uiCloudRadioButton")
self.horizontalLayout.addWidget(self.uiCloudRadioButton)
self.uiLocalRadioButton = QtGui.QRadioButton(self.uiServerTypeGroupBox)
self.uiLocalRadioButton.setObjectName(_fromUtf8("uiLocalRadioButton"))
self.uiLocalRadioButton = QtWidgets.QRadioButton(self.uiServerTypeGroupBox)
self.uiLocalRadioButton.setObjectName("uiLocalRadioButton")
self.horizontalLayout.addWidget(self.uiLocalRadioButton)
spacerItem = QtGui.QSpacerItem(40, 20, QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Minimum)
spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
self.horizontalLayout.addItem(spacerItem)
self.gridLayout_4.addWidget(self.uiServerTypeGroupBox, 0, 0, 1, 1)
self.uiRemoteServersGroupBox = QtGui.QGroupBox(self.uiServerWizardPage)
self.uiRemoteServersGroupBox.setObjectName(_fromUtf8("uiRemoteServersGroupBox"))
self.gridLayout_8 = QtGui.QGridLayout(self.uiRemoteServersGroupBox)
self.gridLayout_8.setObjectName(_fromUtf8("gridLayout_8"))
self.uiRemoteServersComboBox = QtGui.QComboBox(self.uiRemoteServersGroupBox)
self.uiRemoteServersGroupBox = QtWidgets.QGroupBox(self.uiServerWizardPage)
self.uiRemoteServersGroupBox.setObjectName("uiRemoteServersGroupBox")
self.gridLayout_8 = QtWidgets.QGridLayout(self.uiRemoteServersGroupBox)
self.gridLayout_8.setObjectName("gridLayout_8")
self.uiRemoteServersComboBox = QtWidgets.QComboBox(self.uiRemoteServersGroupBox)
self.uiRemoteServersComboBox.setEnabled(True)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiRemoteServersComboBox.sizePolicy().hasHeightForWidth())
self.uiRemoteServersComboBox.setSizePolicy(sizePolicy)
self.uiRemoteServersComboBox.setObjectName(_fromUtf8("uiRemoteServersComboBox"))
self.uiRemoteServersComboBox.setObjectName("uiRemoteServersComboBox")
self.gridLayout_8.addWidget(self.uiRemoteServersComboBox, 0, 1, 1, 1)
self.uiRemoteServersLabel = QtGui.QLabel(self.uiRemoteServersGroupBox)
self.uiRemoteServersLabel.setObjectName(_fromUtf8("uiRemoteServersLabel"))
self.uiRemoteServersLabel = QtWidgets.QLabel(self.uiRemoteServersGroupBox)
self.uiRemoteServersLabel.setObjectName("uiRemoteServersLabel")
self.gridLayout_8.addWidget(self.uiRemoteServersLabel, 0, 0, 1, 1)
self.gridLayout_4.addWidget(self.uiRemoteServersGroupBox, 1, 0, 1, 1)
QemuVMWizard.addPage(self.uiServerWizardPage)
self.uiTypeWizardPage = QtGui.QWizardPage()
self.uiTypeWizardPage.setObjectName(_fromUtf8("uiTypeWizardPage"))
self.horizontalLayout_2 = QtGui.QHBoxLayout(self.uiTypeWizardPage)
self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2"))
self.uiTypeLabel = QtGui.QLabel(self.uiTypeWizardPage)
self.uiTypeLabel.setObjectName(_fromUtf8("uiTypeLabel"))
self.uiTypeWizardPage = QtWidgets.QWizardPage()
self.uiTypeWizardPage.setObjectName("uiTypeWizardPage")
self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.uiTypeWizardPage)
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
self.uiTypeLabel = QtWidgets.QLabel(self.uiTypeWizardPage)
self.uiTypeLabel.setObjectName("uiTypeLabel")
self.horizontalLayout_2.addWidget(self.uiTypeLabel)
self.uiTypeComboBox = QtGui.QComboBox(self.uiTypeWizardPage)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.uiTypeComboBox = QtWidgets.QComboBox(self.uiTypeWizardPage)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiTypeComboBox.sizePolicy().hasHeightForWidth())
self.uiTypeComboBox.setSizePolicy(sizePolicy)
self.uiTypeComboBox.setObjectName(_fromUtf8("uiTypeComboBox"))
self.uiTypeComboBox.setObjectName("uiTypeComboBox")
self.horizontalLayout_2.addWidget(self.uiTypeComboBox)
QemuVMWizard.addPage(self.uiTypeWizardPage)
self.uiNameWizardPage = QtGui.QWizardPage()
self.uiNameWizardPage.setObjectName(_fromUtf8("uiNameWizardPage"))
self.gridLayout = QtGui.QGridLayout(self.uiNameWizardPage)
self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
self.uiNameLineEdit = QtGui.QLineEdit(self.uiNameWizardPage)
self.uiNameLineEdit.setObjectName(_fromUtf8("uiNameLineEdit"))
self.uiNameWizardPage = QtWidgets.QWizardPage()
self.uiNameWizardPage.setObjectName("uiNameWizardPage")
self.gridLayout = QtWidgets.QGridLayout(self.uiNameWizardPage)
self.gridLayout.setObjectName("gridLayout")
self.uiNameLineEdit = QtWidgets.QLineEdit(self.uiNameWizardPage)
self.uiNameLineEdit.setObjectName("uiNameLineEdit")
self.gridLayout.addWidget(self.uiNameLineEdit, 0, 1, 1, 1)
self.uiNameLabel = QtGui.QLabel(self.uiNameWizardPage)
self.uiNameLabel.setObjectName(_fromUtf8("uiNameLabel"))
self.uiNameLabel = QtWidgets.QLabel(self.uiNameWizardPage)
self.uiNameLabel.setObjectName("uiNameLabel")
self.gridLayout.addWidget(self.uiNameLabel, 0, 0, 1, 1)
QemuVMWizard.addPage(self.uiNameWizardPage)
self.uiBinaryMemoryWizardPage = QtGui.QWizardPage()
self.uiBinaryMemoryWizardPage.setObjectName(_fromUtf8("uiBinaryMemoryWizardPage"))
self.gridLayout_2 = QtGui.QGridLayout(self.uiBinaryMemoryWizardPage)
self.gridLayout_2.setObjectName(_fromUtf8("gridLayout_2"))
self.uiRamLabel = QtGui.QLabel(self.uiBinaryMemoryWizardPage)
self.uiRamLabel.setObjectName(_fromUtf8("uiRamLabel"))
self.uiBinaryMemoryWizardPage = QtWidgets.QWizardPage()
self.uiBinaryMemoryWizardPage.setObjectName("uiBinaryMemoryWizardPage")
self.gridLayout_2 = QtWidgets.QGridLayout(self.uiBinaryMemoryWizardPage)
self.gridLayout_2.setObjectName("gridLayout_2")
self.uiRamLabel = QtWidgets.QLabel(self.uiBinaryMemoryWizardPage)
self.uiRamLabel.setObjectName("uiRamLabel")
self.gridLayout_2.addWidget(self.uiRamLabel, 1, 0, 1, 1)
self.uiQemuListLabel = QtGui.QLabel(self.uiBinaryMemoryWizardPage)
self.uiQemuListLabel.setObjectName(_fromUtf8("uiQemuListLabel"))
self.uiQemuListLabel = QtWidgets.QLabel(self.uiBinaryMemoryWizardPage)
self.uiQemuListLabel.setObjectName("uiQemuListLabel")
self.gridLayout_2.addWidget(self.uiQemuListLabel, 0, 0, 1, 1)
self.uiRamSpinBox = QtGui.QSpinBox(self.uiBinaryMemoryWizardPage)
self.uiRamSpinBox = QtWidgets.QSpinBox(self.uiBinaryMemoryWizardPage)
self.uiRamSpinBox.setMinimum(32)
self.uiRamSpinBox.setMaximum(65535)
self.uiRamSpinBox.setProperty("value", 256)
self.uiRamSpinBox.setObjectName(_fromUtf8("uiRamSpinBox"))
self.uiRamSpinBox.setObjectName("uiRamSpinBox")
self.gridLayout_2.addWidget(self.uiRamSpinBox, 1, 1, 1, 1)
self.uiQemuListComboBox = QtGui.QComboBox(self.uiBinaryMemoryWizardPage)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed)
self.uiQemuListComboBox = QtWidgets.QComboBox(self.uiBinaryMemoryWizardPage)
sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.uiQemuListComboBox.sizePolicy().hasHeightForWidth())
self.uiQemuListComboBox.setSizePolicy(sizePolicy)
self.uiQemuListComboBox.setObjectName(_fromUtf8("uiQemuListComboBox"))
self.uiQemuListComboBox.setObjectName("uiQemuListComboBox")
self.gridLayout_2.addWidget(self.uiQemuListComboBox, 0, 1, 1, 1)
QemuVMWizard.addPage(self.uiBinaryMemoryWizardPage)
self.uiDiskWizardPage = QtGui.QWizardPage()
self.uiDiskWizardPage.setObjectName(_fromUtf8("uiDiskWizardPage"))
self.gridLayout_6 = QtGui.QGridLayout(self.uiDiskWizardPage)
self.gridLayout_6.setObjectName(_fromUtf8("gridLayout_6"))
self.horizontalLayout_8 = QtGui.QHBoxLayout()
self.horizontalLayout_8.setObjectName(_fromUtf8("horizontalLayout_8"))
self.uiHdaDiskImageLineEdit = QtGui.QLineEdit(self.uiDiskWizardPage)
self.uiHdaDiskImageLineEdit.setObjectName(_fromUtf8("uiHdaDiskImageLineEdit"))
self.uiDiskWizardPage = QtWidgets.QWizardPage()
self.uiDiskWizardPage.setObjectName("uiDiskWizardPage")
self.gridLayout_6 = QtWidgets.QGridLayout(self.uiDiskWizardPage)
self.gridLayout_6.setObjectName("gridLayout_6")
self.horizontalLayout_8 = QtWidgets.QHBoxLayout()
self.horizontalLayout_8.setObjectName("horizontalLayout_8")
self.uiHdaDiskImageLineEdit = QtWidgets.QLineEdit(self.uiDiskWizardPage)
self.uiHdaDiskImageLineEdit.setObjectName("uiHdaDiskImageLineEdit")
self.horizontalLayout_8.addWidget(self.uiHdaDiskImageLineEdit)
self.uiHdaDiskImageToolButton = QtGui.QToolButton(self.uiDiskWizardPage)
self.uiHdaDiskImageToolButton = QtWidgets.QToolButton(self.uiDiskWizardPage)
self.uiHdaDiskImageToolButton.setToolButtonStyle(QtCore.Qt.ToolButtonTextOnly)
self.uiHdaDiskImageToolButton.setObjectName(_fromUtf8("uiHdaDiskImageToolButton"))
self.uiHdaDiskImageToolButton.setObjectName("uiHdaDiskImageToolButton")
self.horizontalLayout_8.addWidget(self.uiHdaDiskImageToolButton)
self.gridLayout_6.addLayout(self.horizontalLayout_8, 0, 1, 1, 1)
self.uiHdaDiskImageLabel = QtGui.QLabel(self.uiDiskWizardPage)
self.uiHdaDiskImageLabel.setObjectName(_fromUtf8("uiHdaDiskImageLabel"))
self.uiHdaDiskImageLabel = QtWidgets.QLabel(self.uiDiskWizardPage)
self.uiHdaDiskImageLabel.setObjectName("uiHdaDiskImageLabel")
self.gridLayout_6.addWidget(self.uiHdaDiskImageLabel, 0, 0, 1, 1)
QemuVMWizard.addPage(self.uiDiskWizardPage)
self.uiASAWizardPage = QtGui.QWizardPage()
self.uiASAWizardPage.setObjectName(_fromUtf8("uiASAWizardPage"))
self.gridLayout_5 = QtGui.QGridLayout(self.uiASAWizardPage)
self.gridLayout_5.setObjectName(_fromUtf8("gridLayout_5"))
self.uiLinuxBootGroupBox = QtGui.QGroupBox(self.uiASAWizardPage)
self.uiLinuxBootGroupBox.setObjectName(_fromUtf8("uiLinuxBootGroupBox"))
self.gridLayout_3 = QtGui.QGridLayout(self.uiLinuxBootGroupBox)
self.gridLayout_3.setObjectName(_fromUtf8("gridLayout_3"))
self.uiKernelImageLineEdit = QtGui.QLineEdit(self.uiLinuxBootGroupBox)
self.uiKernelImageLineEdit.setObjectName(_fromUtf8("uiKernelImageLineEdit"))
self.uiASAWizardPage = QtWidgets.QWizardPage()
self.uiASAWizardPage.setObjectName("uiASAWizardPage")
self.gridLayout_5 = QtWidgets.QGridLayout(self.uiASAWizardPage)
self.gridLayout_5.setObjectName("gridLayout_5")
self.uiLinuxBootGroupBox = QtWidgets.QGroupBox(self.uiASAWizardPage)
self.uiLinuxBootGroupBox.setObjectName("uiLinuxBootGroupBox")
self.gridLayout_3 = QtWidgets.QGridLayout(self.uiLinuxBootGroupBox)
self.gridLayout_3.setObjectName("gridLayout_3")
self.uiKernelImageLineEdit = QtWidgets.QLineEdit(self.uiLinuxBootGroupBox)
self.uiKernelImageLineEdit.setObjectName("uiKernelImageLineEdit")
self.gridLayout_3.addWidget(self.uiKernelImageLineEdit, 1, 1, 1, 1)
self.uiInitrdLabel = QtGui.QLabel(self.uiLinuxBootGroupBox)
self.uiInitrdLabel.setObjectName(_fromUtf8("uiInitrdLabel"))
self.uiInitrdLabel = QtWidgets.QLabel(self.uiLinuxBootGroupBox)
self.uiInitrdLabel.setObjectName("uiInitrdLabel")
self.gridLayout_3.addWidget(self.uiInitrdLabel, 0, 0, 1, 1)
self.uiKernelImageLabel = QtGui.QLabel(self.uiLinuxBootGroupBox)
self.uiKernelImageLabel.setObjectName(_fromUtf8("uiKernelImageLabel"))
self.uiKernelImageLabel = QtWidgets.QLabel(self.uiLinuxBootGroupBox)
self.uiKernelImageLabel.setObjectName("uiKernelImageLabel")
self.gridLayout_3.addWidget(self.uiKernelImageLabel, 1, 0, 1, 1)
self.uiInitrdLineEdit = QtGui.QLineEdit(self.uiLinuxBootGroupBox)
self.uiInitrdLineEdit.setObjectName(_fromUtf8("uiInitrdLineEdit"))
self.uiInitrdLineEdit = QtWidgets.QLineEdit(self.uiLinuxBootGroupBox)
self.uiInitrdLineEdit.setObjectName("uiInitrdLineEdit")
self.gridLayout_3.addWidget(self.uiInitrdLineEdit, 0, 1, 1, 1)
self.uiInitrdToolButton = QtGui.QToolButton(self.uiLinuxBootGroupBox)
self.uiInitrdToolButton = QtWidgets.QToolButton(self.uiLinuxBootGroupBox)
self.uiInitrdToolButton.setToolButtonStyle(QtCore.Qt.ToolButtonTextOnly)
self.uiInitrdToolButton.setObjectName(_fromUtf8("uiInitrdToolButton"))
self.uiInitrdToolButton.setObjectName("uiInitrdToolButton")
self.gridLayout_3.addWidget(self.uiInitrdToolButton, 0, 2, 1, 1)
self.uiKernelImageToolButton = QtGui.QToolButton(self.uiLinuxBootGroupBox)
self.uiKernelImageToolButton = QtWidgets.QToolButton(self.uiLinuxBootGroupBox)
self.uiKernelImageToolButton.setToolButtonStyle(QtCore.Qt.ToolButtonTextOnly)
self.uiKernelImageToolButton.setObjectName(_fromUtf8("uiKernelImageToolButton"))
self.uiKernelImageToolButton.setObjectName("uiKernelImageToolButton")
self.gridLayout_3.addWidget(self.uiKernelImageToolButton, 1, 2, 1, 1)
self.gridLayout_5.addWidget(self.uiLinuxBootGroupBox, 0, 0, 1, 1)
QemuVMWizard.addPage(self.uiASAWizardPage)
self.uiDiskImageHdbWizardPage = QtGui.QWizardPage()
self.uiDiskImageHdbWizardPage.setObjectName(_fromUtf8("uiDiskImageHdbWizardPage"))
self.gridLayout_7 = QtGui.QGridLayout(self.uiDiskImageHdbWizardPage)
self.gridLayout_7.setObjectName(_fromUtf8("gridLayout_7"))
self.uiHdbDiskImageLabel = QtGui.QLabel(self.uiDiskImageHdbWizardPage)
self.uiHdbDiskImageLabel.setObjectName(_fromUtf8("uiHdbDiskImageLabel"))
self.uiDiskImageHdbWizardPage = QtWidgets.QWizardPage()
self.uiDiskImageHdbWizardPage.setObjectName("uiDiskImageHdbWizardPage")
self.gridLayout_7 = QtWidgets.QGridLayout(self.uiDiskImageHdbWizardPage)
self.gridLayout_7.setObjectName("gridLayout_7")
self.uiHdbDiskImageLabel = QtWidgets.QLabel(self.uiDiskImageHdbWizardPage)
self.uiHdbDiskImageLabel.setObjectName("uiHdbDiskImageLabel")
self.gridLayout_7.addWidget(self.uiHdbDiskImageLabel, 0, 0, 1, 1)
self.horizontalLayout_5 = QtGui.QHBoxLayout()
self.horizontalLayout_5.setObjectName(_fromUtf8("horizontalLayout_5"))
self.uiHdbDiskImageLineEdit = QtGui.QLineEdit(self.uiDiskImageHdbWizardPage)
self.uiHdbDiskImageLineEdit.setObjectName(_fromUtf8("uiHdbDiskImageLineEdit"))
self.horizontalLayout_5 = QtWidgets.QHBoxLayout()
self.horizontalLayout_5.setObjectName("horizontalLayout_5")
self.uiHdbDiskImageLineEdit = QtWidgets.QLineEdit(self.uiDiskImageHdbWizardPage)
self.uiHdbDiskImageLineEdit.setObjectName("uiHdbDiskImageLineEdit")
self.horizontalLayout_5.addWidget(self.uiHdbDiskImageLineEdit)
self.uiHdbDiskImageToolButton = QtGui.QToolButton(self.uiDiskImageHdbWizardPage)
self.uiHdbDiskImageToolButton = QtWidgets.QToolButton(self.uiDiskImageHdbWizardPage)
self.uiHdbDiskImageToolButton.setToolButtonStyle(QtCore.Qt.ToolButtonTextOnly)
self.uiHdbDiskImageToolButton.setObjectName(_fromUtf8("uiHdbDiskImageToolButton"))
self.uiHdbDiskImageToolButton.setObjectName("uiHdbDiskImageToolButton")
self.horizontalLayout_5.addWidget(self.uiHdbDiskImageToolButton)
self.gridLayout_7.addLayout(self.horizontalLayout_5, 0, 1, 1, 1)
QemuVMWizard.addPage(self.uiDiskImageHdbWizardPage)
@@ -198,39 +186,39 @@ class Ui_QemuVMWizard(object):
QemuVMWizard.setTabOrder(self.uiKernelImageLineEdit, self.uiKernelImageToolButton)
def retranslateUi(self, QemuVMWizard):
QemuVMWizard.setWindowTitle(_translate("QemuVMWizard", "New QEMU VM template", None))
self.uiServerWizardPage.setTitle(_translate("QemuVMWizard", "Server", None))
self.uiServerWizardPage.setSubTitle(_translate("QemuVMWizard", "Please choose a server type to run your new QEMU VM.", None))
self.uiServerTypeGroupBox.setTitle(_translate("QemuVMWizard", "Server type", None))
self.uiRemoteRadioButton.setText(_translate("QemuVMWizard", "Remote", None))
self.uiCloudRadioButton.setText(_translate("QemuVMWizard", "Cloud", None))
self.uiLocalRadioButton.setText(_translate("QemuVMWizard", "Local", None))
self.uiRemoteServersGroupBox.setTitle(_translate("QemuVMWizard", "Remote servers", None))
self.uiRemoteServersLabel.setText(_translate("QemuVMWizard", "Run on server:", None))
self.uiTypeWizardPage.setTitle(_translate("QemuVMWizard", "QEMU VM type", None))
self.uiTypeWizardPage.setSubTitle(_translate("QemuVMWizard", "Please choose a type of QEMU VM to help with pre-configuration.", None))
self.uiTypeLabel.setText(_translate("QemuVMWizard", "Type:", None))
self.uiNameWizardPage.setTitle(_translate("QemuVMWizard", "QEMU VM name", None))
self.uiNameWizardPage.setSubTitle(_translate("QemuVMWizard", "Please choose a descriptive name for your new QEMU virtual machine.", None))
self.uiNameLabel.setText(_translate("QemuVMWizard", "Name:", None))
self.uiBinaryMemoryWizardPage.setTitle(_translate("QemuVMWizard", "QEMU binary and memory", None))
self.uiBinaryMemoryWizardPage.setSubTitle(_translate("QemuVMWizard", "Please check the Qemu binary is correctly set and the virtual machine has enough memory to work.", None))
self.uiRamLabel.setText(_translate("QemuVMWizard", "RAM:", None))
self.uiQemuListLabel.setText(_translate("QemuVMWizard", "Qemu binary:", None))
self.uiRamSpinBox.setSuffix(_translate("QemuVMWizard", " MB", None))
self.uiDiskWizardPage.setTitle(_translate("QemuVMWizard", "Disk image", None))
self.uiDiskWizardPage.setSubTitle(_translate("QemuVMWizard", "Please choose a base disk image for your virtual machine.", None))
self.uiHdaDiskImageToolButton.setText(_translate("QemuVMWizard", "&Browse...", None))
self.uiHdaDiskImageLabel.setText(_translate("QemuVMWizard", "Disk image (hda):", None))
self.uiASAWizardPage.setTitle(_translate("QemuVMWizard", "ASA VM", None))
self.uiASAWizardPage.setSubTitle(_translate("QemuVMWizard", "Please choose a initrd and a kernel image.", None))
self.uiLinuxBootGroupBox.setTitle(_translate("QemuVMWizard", "Linux boot specific settings", None))
self.uiInitrdLabel.setText(_translate("QemuVMWizard", "Initial RAM disk (initrd):", None))
self.uiKernelImageLabel.setText(_translate("QemuVMWizard", "Kernel image (vmlinuz):", None))
self.uiInitrdToolButton.setText(_translate("QemuVMWizard", "&Browse...", None))
self.uiKernelImageToolButton.setText(_translate("QemuVMWizard", "&Browse...", None))
self.uiDiskImageHdbWizardPage.setTitle(_translate("QemuVMWizard", "Additional disk image", None))
self.uiDiskImageHdbWizardPage.setSubTitle(_translate("QemuVMWizard", "Please add an additional disk image for IDS.", None))
self.uiHdbDiskImageLabel.setText(_translate("QemuVMWizard", "Disk image (hdb):", None))
self.uiHdbDiskImageToolButton.setText(_translate("QemuVMWizard", "&Browse...", None))
_translate = QtCore.QCoreApplication.translate
QemuVMWizard.setWindowTitle(_translate("QemuVMWizard", "New QEMU VM template"))
self.uiServerWizardPage.setTitle(_translate("QemuVMWizard", "Server"))
self.uiServerWizardPage.setSubTitle(_translate("QemuVMWizard", "Please choose a server type to run your new QEMU VM."))
self.uiServerTypeGroupBox.setTitle(_translate("QemuVMWizard", "Server type"))
self.uiRemoteRadioButton.setText(_translate("QemuVMWizard", "Remote"))
self.uiCloudRadioButton.setText(_translate("QemuVMWizard", "Cloud"))
self.uiLocalRadioButton.setText(_translate("QemuVMWizard", "Local"))
self.uiRemoteServersGroupBox.setTitle(_translate("QemuVMWizard", "Remote servers"))
self.uiRemoteServersLabel.setText(_translate("QemuVMWizard", "Run on server:"))
self.uiTypeWizardPage.setTitle(_translate("QemuVMWizard", "QEMU VM type"))
self.uiTypeWizardPage.setSubTitle(_translate("QemuVMWizard", "Please choose a type of QEMU VM to help with pre-configuration."))
self.uiTypeLabel.setText(_translate("QemuVMWizard", "Type:"))
self.uiNameWizardPage.setTitle(_translate("QemuVMWizard", "QEMU VM name"))
self.uiNameWizardPage.setSubTitle(_translate("QemuVMWizard", "Please choose a descriptive name for your new QEMU virtual machine."))
self.uiNameLabel.setText(_translate("QemuVMWizard", "Name:"))
self.uiBinaryMemoryWizardPage.setTitle(_translate("QemuVMWizard", "QEMU binary and memory"))
self.uiBinaryMemoryWizardPage.setSubTitle(_translate("QemuVMWizard", "Please check the Qemu binary is correctly set and the virtual machine has enough memory to work."))
self.uiRamLabel.setText(_translate("QemuVMWizard", "RAM:"))
self.uiQemuListLabel.setText(_translate("QemuVMWizard", "Qemu binary:"))
self.uiRamSpinBox.setSuffix(_translate("QemuVMWizard", " MB"))
self.uiDiskWizardPage.setTitle(_translate("QemuVMWizard", "Disk image"))
self.uiDiskWizardPage.setSubTitle(_translate("QemuVMWizard", "Please choose a base disk image for your virtual machine."))
self.uiHdaDiskImageToolButton.setText(_translate("QemuVMWizard", "&Browse..."))
self.uiHdaDiskImageLabel.setText(_translate("QemuVMWizard", "Disk image (hda):"))
self.uiASAWizardPage.setTitle(_translate("QemuVMWizard", "ASA VM"))
self.uiASAWizardPage.setSubTitle(_translate("QemuVMWizard", "Please choose a initrd and a kernel image."))
self.uiLinuxBootGroupBox.setTitle(_translate("QemuVMWizard", "Linux boot specific settings"))
self.uiInitrdLabel.setText(_translate("QemuVMWizard", "Initial RAM disk (initrd):"))
self.uiKernelImageLabel.setText(_translate("QemuVMWizard", "Kernel image (vmlinuz):"))
self.uiInitrdToolButton.setText(_translate("QemuVMWizard", "&Browse..."))
self.uiKernelImageToolButton.setText(_translate("QemuVMWizard", "&Browse..."))
self.uiDiskImageHdbWizardPage.setTitle(_translate("QemuVMWizard", "Additional disk image"))
self.uiDiskImageHdbWizardPage.setSubTitle(_translate("QemuVMWizard", "Please add an additional disk image for IDS."))
self.uiHdbDiskImageLabel.setText(_translate("QemuVMWizard", "Disk image (hdb):"))
self.uiHdbDiskImageToolButton.setText(_translate("QemuVMWizard", "&Browse..."))

View File

@@ -23,7 +23,7 @@ import os
import sys
import shutil
from gns3.qt import QtCore, QtGui
from gns3.qt import QtCore, QtGui, QtWidgets
from gns3.local_server_config import LocalServerConfig
from gns3.local_config import LocalConfig
@@ -44,7 +44,7 @@ class VirtualBox(Module):
"""
def __init__(self):
Module.__init__(self)
super().__init__()
self._settings = {}
self._virtualbox_vms = {}
@@ -274,7 +274,7 @@ class VirtualBox(Module):
from gns3.main_window import MainWindow
mainwindow = MainWindow.instance()
(selection, ok) = QtGui.QInputDialog.getItem(mainwindow, "VirtualBox VM", "Please choose a VM", selected_vms, 0, False)
(selection, ok) = QtWidgets.QInputDialog.getItem(mainwindow, "VirtualBox VM", "Please choose a VM", selected_vms, 0, False)
if ok:
vm = selection
else:

View File

@@ -20,14 +20,16 @@ Wizard for VirtualBox VMs.
"""
import sys
from gns3.qt import QtGui
from functools import partial
from gns3.qt import QtCore, QtGui, QtWidgets
from gns3.servers import Servers
from ..ui.virtualbox_vm_wizard_ui import Ui_VirtualBoxVMWizard
from .. import VirtualBox
class VirtualBoxVMWizard(QtGui.QWizard, Ui_VirtualBoxVMWizard):
class VirtualBoxVMWizard(QtWidgets.QWizard, Ui_VirtualBoxVMWizard):
"""
Wizard to create a VirtualBox VM.
@@ -38,13 +40,13 @@ class VirtualBoxVMWizard(QtGui.QWizard, Ui_VirtualBoxVMWizard):
def __init__(self, virtualbox_vms, parent):
QtGui.QWizard.__init__(self, parent)
super().__init__(parent)
self.setupUi(self)
self.setPixmap(QtGui.QWizard.LogoPixmap, QtGui.QPixmap(":/icons/virtualbox.png"))
self.setWizardStyle(QtGui.QWizard.ModernStyle)
self.setPixmap(QtWidgets.QWizard.LogoPixmap, QtGui.QPixmap(":/icons/virtualbox.png"))
self.setWizardStyle(QtWidgets.QWizard.ModernStyle)
if sys.platform.startswith("darwin"):
# we want to see the cancel button on OSX
self.setOptions(QtGui.QWizard.NoDefaultButton)
self.setOptions(QtWidgets.QWizard.NoDefaultButton)
if VirtualBox.instance().settings()["use_local_server"]:
# skip the server page if we use the local server
@@ -64,7 +66,7 @@ class VirtualBoxVMWizard(QtGui.QWizard, Ui_VirtualBoxVMWizard):
if self.page(page_id) == self.uiVirtualBoxWizardPage:
self._server.get("/virtualbox/vms", self._getVirtualBoxVMsFromServerCallback)
def _getVirtualBoxVMsFromServerCallback(self, result, error=False, **kwargs):
def _getVirtualBoxVMsFromServerCallback(self, result, error=False, **kwargs):
"""
Callback for getVirtualBoxVMsFromServer.
@@ -74,7 +76,7 @@ class VirtualBoxVMWizard(QtGui.QWizard, Ui_VirtualBoxVMWizard):
"""
if error:
QtGui.QMessageBox.critical(self, "VirtualBox VMs", "{}".format(result["message"]))
QtWidgets.QMessageBox.critical(self, "VirtualBox VMs", "{}".format(result["message"]))
else:
self.uiVMListComboBox.clear()
existing_vms = []
@@ -94,20 +96,20 @@ class VirtualBoxVMWizard(QtGui.QWizard, Ui_VirtualBoxVMWizard):
# FIXME: prevent users to use "cloud"
if self.uiCloudRadioButton.isChecked():
QtGui.QMessageBox.critical(self, "Cloud", "Sorry not implemented yet!")
QtWidgets.QMessageBox.critical(self, "Cloud", "Sorry not implemented yet!")
return False
if VirtualBox.instance().settings()["use_local_server"] or self.uiLocalRadioButton.isChecked():
server = Servers.instance().localServer()
else:
if not Servers.instance().remoteServers():
QtGui.QMessageBox.critical(self, "Remote server", "There is no remote server registered in VirtualBox preferences")
QtWidgets.QMessageBox.critical(self, "Remote server", "There is no remote server registered in VirtualBox preferences")
return False
server = self.uiRemoteServersComboBox.itemData(self.uiRemoteServersComboBox.currentIndex())
self._server = server
if self.currentPage() == self.uiVirtualBoxWizardPage:
if not self.uiVMListComboBox.count():
QtGui.QMessageBox.critical(self, "VirtualBox VMs", "There is no VirtualBox VM available!")
QtWidgets.QMessageBox.critical(self, "VirtualBox VMs", "There is no VirtualBox VM available!")
return False
return True

View File

@@ -20,14 +20,14 @@ Configuration page for VirtualBox preferences.
"""
import os
from gns3.qt import QtGui
from gns3.qt import QtGui, QtWidgets
from .. import VirtualBox
from ..ui.virtualbox_preferences_page_ui import Ui_VirtualBoxPreferencesPageWidget
from ..settings import VBOX_SETTINGS
class VirtualBoxPreferencesPage(QtGui.QWidget, Ui_VirtualBoxPreferencesPageWidget):
class VirtualBoxPreferencesPage(QtWidgets.QWidget, Ui_VirtualBoxPreferencesPageWidget):
"""
QWidget preference page for VirtualBox.
@@ -35,7 +35,7 @@ class VirtualBoxPreferencesPage(QtGui.QWidget, Ui_VirtualBoxPreferencesPageWidge
def __init__(self):
QtGui.QWidget.__init__(self)
super().__init__()
self.setupUi(self)
# connect signals
@@ -48,12 +48,12 @@ class VirtualBoxPreferencesPage(QtGui.QWidget, Ui_VirtualBoxPreferencesPageWidge
Slot to open a file browser and select VBoxManage.
"""
path = QtGui.QFileDialog.getOpenFileName(self, "Select VBoxManage", ".")
path = QtWidgets.QFileDialog.getOpenFileName(self, "Select VBoxManage", ".")
if not path:
return
if not os.access(path, os.X_OK):
QtGui.QMessageBox.critical(self, "VBoxManage", "{} is not an executable".format(os.path.basename(path)))
QtWidgets.QMessageBox.critical(self, "VBoxManage", "{} is not an executable".format(os.path.basename(path)))
return
self.uiVboxManagePathLineEdit.setText(os.path.normpath(path))

View File

@@ -19,13 +19,13 @@
Configuration page for VirtualBox VMs.
"""
from gns3.qt import QtGui
from gns3.qt import QtGui, QtWidgets
from gns3.dialogs.node_configurator_dialog import ConfigurationError
from ..ui.virtualbox_vm_configuration_page_ui import Ui_virtualBoxVMConfigPageWidget
class VirtualBoxVMConfigurationPage(QtGui.QWidget, Ui_virtualBoxVMConfigPageWidget):
class VirtualBoxVMConfigurationPage(QtWidgets.QWidget, Ui_virtualBoxVMConfigPageWidget):
"""
QWidget configuration page for VirtualBox VMs.
@@ -33,7 +33,7 @@ class VirtualBoxVMConfigurationPage(QtGui.QWidget, Ui_virtualBoxVMConfigPageWidg
def __init__(self):
QtGui.QWidget.__init__(self)
super().__init__()
self.setupUi(self)
self.uiAdapterTypesComboBox.clear()
@@ -94,7 +94,6 @@ class VirtualBoxVMConfigurationPage(QtGui.QWidget, Ui_virtualBoxVMConfigPageWidg
self.uiHeadlessModeCheckBox.setChecked(settings["headless"])
self.uiEnableConsoleCheckBox.setChecked(settings["enable_remote_console"])
def saveSettings(self, settings, node=None, group=False):
"""
Saves the VirtualBox VM settings.
@@ -111,7 +110,7 @@ class VirtualBoxVMConfigurationPage(QtGui.QWidget, Ui_virtualBoxVMConfigPageWidg
if "name" in settings:
name = self.uiNameLineEdit.text()
if not name:
QtGui.QMessageBox.critical(self, "Name", "VirtualBox name cannot be empty!")
QtWidgets.QMessageBox.critical(self, "Name", "VirtualBox name cannot be empty!")
else:
settings["name"] = name
@@ -140,6 +139,6 @@ class VirtualBoxVMConfigurationPage(QtGui.QWidget, Ui_virtualBoxVMConfigPageWidg
node_ports = node.ports()
for node_port in node_ports:
if not node_port.isFree():
QtGui.QMessageBox.critical(self, node.name(), "Changing the number of adapters while links are connected isn't supported yet! Please delete all the links first.")
QtWidgets.QMessageBox.critical(self, node.name(), "Changing the number of adapters while links are connected isn't supported yet! Please delete all the links first.")
raise ConfigurationError()
settings["adapters"] = adapters

Some files were not shown because too many files have changed in this diff Show More