mirror of
https://github.com/GNS3/gns3-gui.git
synced 2026-05-17 00:46:01 +03:00
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:
10
README.rst
10
README.rst
@@ -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.
|
||||
|
||||
@@ -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. """
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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.
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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__()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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):
|
||||
"""
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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"]:
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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(),
|
||||
|
||||
25
gns3/main.py
25
gns3/main.py
@@ -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")
|
||||
|
||||
@@ -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"):
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 = []
|
||||
|
||||
@@ -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."))
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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": "",
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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": "",
|
||||
|
||||
@@ -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": "",
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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": "",
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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"] = []
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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"]
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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:"))
|
||||
|
||||
@@ -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:"))
|
||||
|
||||
@@ -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"))
|
||||
|
||||
@@ -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:"))
|
||||
|
||||
@@ -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"))
|
||||
|
||||
@@ -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"))
|
||||
|
||||
@@ -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"))
|
||||
|
||||
@@ -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"))
|
||||
|
||||
@@ -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"))
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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):
|
||||
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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"))
|
||||
|
||||
@@ -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"))
|
||||
|
||||
@@ -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:"))
|
||||
|
||||
@@ -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"))
|
||||
|
||||
@@ -35,7 +35,7 @@ class Module(QtCore.QObject):
|
||||
|
||||
def __init__(self):
|
||||
|
||||
super(Module, self).__init__()
|
||||
super().__init__()
|
||||
|
||||
@staticmethod
|
||||
def nodes(self):
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 = {}
|
||||
|
||||
@@ -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"))
|
||||
|
||||
@@ -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"))
|
||||
|
||||
@@ -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"))
|
||||
|
||||
@@ -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..."))
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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))
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user