Merge branch '2.2' into 3.0

# Conflicts:
#	gns3/http_client.py
#	gns3/ui/general_preferences_page_ui.py
#	gns3/ui/resources_rc.py
This commit is contained in:
grossmj
2026-04-06 23:32:35 +08:00
10 changed files with 440 additions and 254 deletions

View File

@@ -41,6 +41,10 @@ class StyleEditorDialogLink(QtWidgets.QDialog, Ui_StyleEditorDialog):
self._link = link
self._link_style = {}
self.uiBorderColorLabel.setText("Link color")
self.uiBorderWidthLabel.setText("Link width")
self.uiBorderStyleLabel.setText("Link style")
self.uiBorderColorPushButton.clicked.connect(self._setBorderColorSlot)
self.uiButtonBox.button(QtWidgets.QDialogButtonBox.StandardButton.Apply).clicked.connect(self._applyPreferencesSlot)
@@ -102,10 +106,11 @@ class StyleEditorDialogLink(QtWidgets.QDialog, Ui_StyleEditorDialog):
self._link.setPen(pen)
new_link_style = {}
new_link_style["color"] = self._border_color.name()
new_link_style["width"] = self.uiBorderWidthSpinBox.value()
new_link_style["type"] = border_style.value
new_link_style = {
"color": self._border_color.name(),
"width": self.uiBorderWidthSpinBox.value(),
"type": border_style.value,
}
# Store values
self._link.setLinkStyle(new_link_style)

View File

@@ -500,7 +500,8 @@ class HTTPClient(QtCore.QObject):
# We check if we received HTTP headers
if not sip.isdeleted(reply) and reply.isRunning() and not len(reply.rawHeaderList()) > 0:
if not reply.error() != QtNetwork.QNetworkReply.NetworkError.NoError:
log.warning(f"Timeout after {timeout} seconds for request {reply.url().toString()}. \
method = reply.request().attribute(QtNetwork.QNetworkRequest.Attribute.CustomVerbAttribute).data().decode()
log.warning(f"Timeout after {timeout} seconds for request {method} '{reply.url().toString()}'. \
Please check the connection is not blocked by a firewall or an anti-virus.")
reply.abort()

View File

@@ -84,14 +84,21 @@ class Link(QtCore.QObject):
self._initialized = False
self._filters = {}
self._suspend = False
self._nodes = []
# Boolean if True we are creating the first instance of this node
# if false the node already exist in the topology
# use to avoid erasing information when reloading
self._creator = False
self._nodes = []
self._link_style = {}
# Add the default link style from the topology view settings
from .main_window import MainWindow
topology_view_settings = MainWindow.instance().uiGraphicsView.settings()
self._link_style = {
"color": topology_view_settings.get("default_link_color", "#000000"),
"width": topology_view_settings.get("default_link_width", 2),
"type": topology_view_settings.get("default_link_type", 1)
}
body = self._prepareParams()
if self._link_id:

View File

@@ -340,6 +340,11 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
style = new_settings.get("style")
if style and new_settings["style"] != self._settings["style"]:
self._setStyle(style)
QtWidgets.QMessageBox.information(
self,
"Interface style",
"Please restart the application to fully apply the {} style.".format(style)
)
self._settings.update(new_settings)
# save the settings

View File

@@ -813,8 +813,12 @@ class Node(BaseNode):
wmctrl_path = shutil.which("wmctrl")
if wmctrl_path:
try:
# use wmctrl to raise the window based on the node name (this doesn't work well with window having multiple tabs)
subprocess.run([wmctrl_path, "-Fa", self.name()], check=True, env=os.environ)
console_type = self.consoleType()
if console_type == "telnet":
# use wmctrl to raise the window based on the node name (this doesn't work well with window having multiple tabs)
subprocess.run([wmctrl_path, "-Fa", self.name()], check=True, env=os.environ)
else:
subprocess.run([wmctrl_path, "-a", '(' + self.name() + ')'], check=True, env=os.environ)
return True
except subprocess.CalledProcessError:
log.debug("Could not find window title '{}' to bring it to front".format(self.name()))

View File

@@ -63,6 +63,12 @@ class GeneralPreferencesPage(QtWidgets.QWidget, Ui_GeneralPreferencesPageWidget)
self.uiDefaultLabelColorPushButton.clicked.connect(self._setDefaultLabelColorSlot)
self.uiDefaultNoteFontPushButton.clicked.connect(self._setDefaultNoteFontSlot)
self.uiDefaultNoteColorPushButton.clicked.connect(self._setDefaultNoteColorSlot)
self.uiDefaultLinkColorPushButton.clicked.connect(self._setDefaultLinkColorSlot)
self.uiDefaultLinkStyleComboBox.addItem("Solid", QtCore.Qt.PenStyle.SolidLine)
self.uiDefaultLinkStyleComboBox.addItem("Dash", QtCore.Qt.PenStyle.DashLine)
self.uiDefaultLinkStyleComboBox.addItem("Dot", QtCore.Qt.PenStyle.DotLine)
self.uiDefaultLinkStyleComboBox.addItem("Dash Dot", QtCore.Qt.PenStyle.DashDotLine)
self.uiDefaultLinkStyleComboBox.addItem("Dash Dot Dot", QtCore.Qt.PenStyle.DashDotDotLine)
self.uiBrowseConfigurationPushButton.clicked.connect(self._browseConfigurationDirectorySlot)
self._default_label_color = QtGui.QColor(QtCore.Qt.GlobalColor.black)
self.uiStyleComboBox.addItems(STYLES)
@@ -288,6 +294,16 @@ class GeneralPreferencesPage(QtWidgets.QWidget, Ui_GeneralPreferencesPageWidget)
self._default_note_color = color
self.uiDefaultNoteStylePlainTextEdit.setStyleSheet("color : {}".format(color.name()))
def _setDefaultLinkColorSlot(self):
"""
Slot to select the default link color.
"""
color = QtWidgets.QColorDialog.getColor(self._default_link_color, self)
if color.isValid():
self._default_link_color = color
self.uiDefaultLinkColorPushButton.setStyleSheet("background-color: {};".format(color.name()))
def _populateGeneralSettingWidgets(self, settings):
"""
Populates the widgets with the settings.
@@ -366,6 +382,15 @@ class GeneralPreferencesPage(QtWidgets.QWidget, Ui_GeneralPreferencesPageWidget)
self._default_note_color = qt_color
self.uiDefaultNoteStylePlainTextEdit.setStyleSheet("color : {}".format(qt_color.name()))
qt_color = QtGui.QColor(settings["default_link_color"])
if qt_color.isValid():
self._default_link_color = qt_color
self.uiDefaultLinkColorPushButton.setStyleSheet("background-color: {};".format(qt_color.name()))
self.uiDefaultLinkWidthSpinBox.setValue(settings["default_link_width"])
index = self.uiDefaultLinkStyleComboBox.findData(settings["default_link_type"])
if index != -1:
self.uiDefaultLinkStyleComboBox.setCurrentIndex(index)
def loadPreferences(self):
"""
Loads the general preferences.
@@ -414,18 +439,23 @@ class GeneralPreferencesPage(QtWidgets.QWidget, Ui_GeneralPreferencesPageWidget)
from ..main_window import MainWindow
MainWindow.instance().setSettings(new_general_settings)
new_graphics_view_settings = {"scene_width": self.uiSceneWidthSpinBox.value(),
"scene_height": self.uiSceneHeightSpinBox.value(),
"draw_rectangle_selected_item": self.uiRectangleSelectedItemCheckBox.isChecked(),
"draw_link_status_points": self.uiDrawLinkStatusPointsCheckBox.isChecked(),
"show_interface_labels_on_new_project": self.uiShowInterfaceLabelsOnNewProject.isChecked(),
"limit_size_node_symbols": self.uiLimitSizeNodeSymbolCheckBox.isChecked(),
"show_grid_on_new_project": self.uiShowGridOnNewProject.isChecked(),
"snap_to_grid_on_new_project": self.uiSnapToGridOnNewProject.isChecked(),
"default_label_font": self.uiDefaultLabelStylePlainTextEdit.font().toString(),
"default_label_color": self._default_label_color.name(),
"default_note_font": self.uiDefaultNoteStylePlainTextEdit.font().toString(),
"default_note_color": self._default_note_color.name()}
new_graphics_view_settings = {
"scene_width": self.uiSceneWidthSpinBox.value(),
"scene_height": self.uiSceneHeightSpinBox.value(),
"draw_rectangle_selected_item": self.uiRectangleSelectedItemCheckBox.isChecked(),
"draw_link_status_points": self.uiDrawLinkStatusPointsCheckBox.isChecked(),
"show_interface_labels_on_new_project": self.uiShowInterfaceLabelsOnNewProject.isChecked(),
"limit_size_node_symbols": self.uiLimitSizeNodeSymbolCheckBox.isChecked(),
"show_grid_on_new_project": self.uiShowGridOnNewProject.isChecked(),
"snap_to_grid_on_new_project": self.uiSnapToGridOnNewProject.isChecked(),
"default_label_font": self.uiDefaultLabelStylePlainTextEdit.font().toString(),
"default_label_color": self._default_label_color.name(),
"default_note_font": self.uiDefaultNoteStylePlainTextEdit.font().toString(),
"default_note_color": self._default_note_color.name(),
"default_link_color": self._default_link_color.name(),
"default_link_width": self.uiDefaultLinkWidthSpinBox.value(),
"default_link_type": self.uiDefaultLinkStyleComboBox.currentData().value
}
node_grid_size = self.uiNodeGridSizeSpinBox.value()
drawing_grid_size = self.uiDrawingGridSizeSpinBox.value()

View File

@@ -328,6 +328,9 @@ GRAPHICS_VIEW_SETTINGS = {
"default_label_color": "#000000",
"default_note_font": "TypeWriter,10,-1,5,75,0,0,0,0,0",
"default_note_color": "#000000",
"default_link_color": "#000000",
"default_link_type": 1,
"default_link_width": 2,
"zoom": None,
"show_layers": False,
"snap_to_grid": False,

View File

@@ -104,6 +104,7 @@ class Style:
self._mw.setStyleSheet("")
QtGui.QGuiApplication.setPalette(QtWidgets.QApplication.style().standardPalette())
self._mw.uiConsoleTextEdit.setDefaultTextColor(QtGui.QColor(0, 0, 0))
self._resetDefaultColors()
self._setLegacyIcons()
def _setClassicIcons(self):
@@ -174,6 +175,7 @@ class Style:
self._mw.setStyleSheet("")
QtGui.QGuiApplication.setPalette(QtWidgets.QApplication.style().standardPalette())
self._mw.uiConsoleTextEdit.setDefaultTextColor(QtGui.QColor(0, 0, 0))
self._resetDefaultColors()
self._setClassicIcons()
def _setCharcoalIcons(self):
@@ -232,6 +234,22 @@ class Style:
icon.addPixmap(QtGui.QPixmap(":/charcoal_icons/unlock-hover.svg"), QtGui.QIcon.Mode.Active, QtGui.QIcon.State.Off)
self._mw.uiLockAllAction.setIcon(icon)
def _resetDefaultColors(self):
"""
Reset the default colors if switching from the Dark style.
"""
# set the default colors to black if they are still set to light gray (set by the dark style)
graphics_view = self._mw.uiGraphicsView
topology_view_settings = graphics_view.settings()
if topology_view_settings["default_note_color"] == "#dfe1e2":
topology_view_settings["default_note_color"] = "#000000"
if topology_view_settings["default_label_color"] == "#dfe1e2":
topology_view_settings["default_label_color"] = "#000000"
if topology_view_settings["default_link_color"] == "#dfe1e2":
topology_view_settings["default_link_color"] = "#000000"
graphics_view.setSettings(topology_view_settings)
def setCharcoalStyle(self):
"""
Sets the charcoal GUI style.
@@ -250,6 +268,7 @@ class Style:
self._mw.setStyleSheet(style)
QtWidgets.QApplication.setPalette(QtWidgets.QApplication.style().standardPalette())
self._mw.uiConsoleTextEdit.setDefaultTextColor(QtGui.QColor(0, 0, 0))
self._resetDefaultColors()
self._setCharcoalIcons()
def setDarkStyle(self):
@@ -257,7 +276,6 @@ class Style:
Sets the dark GUI style.
"""
graphics_view = self._mw.uiGraphicsView
if hasattr(graphics_view, 'resetGridColors'):
graphics_view.resetGridColors()
@@ -266,9 +284,19 @@ class Style:
style = qdarkstyle.load_stylesheet(qt_api='pyqt6')
style += "QMenu::item { padding: 5px; }"
self._mw.setStyleSheet(style)
text_color = QtGui.QColor(0xdf, 0xe1, 0xe2) # light gray
color = QtGui.QColor(0xdf, 0xe1, 0xe2) # light gray
palette = QtGui.QPalette()
palette.setColor(QtGui.QPalette.ColorRole.Text, text_color)
palette.setColor(QtGui.QPalette.ColorRole.Text, color)
QtGui.QGuiApplication.setPalette(palette)
self._mw.uiConsoleTextEdit.setDefaultTextColor(text_color)
self._mw.uiConsoleTextEdit.setDefaultTextColor(color)
# set the default colors to the light gray if they are still set to black
# (i.e. not customized by the user) to be visible in the dark style
topology_view_settings = graphics_view.settings()
if topology_view_settings["default_note_color"] == "#000000":
topology_view_settings["default_note_color"] = color.name()
if topology_view_settings["default_label_color"] == "#000000":
topology_view_settings["default_label_color"] = color.name()
if topology_view_settings["default_link_color"] == "#000000":
topology_view_settings["default_link_color"] = color.name()
graphics_view.setSettings(topology_view_settings)
self._setCharcoalIcons() # use the charcoal icons for the dark style

View File

@@ -641,25 +641,43 @@
<attribute name="title">
<string>Topology view</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_3">
<item row="0" column="0">
<widget class="QLabel" name="uiSceneWidthLabel">
<layout class="QGridLayout" name="gridLayout_6">
<item row="3" column="0">
<widget class="QLabel" name="uiDrawingGridSizeLabel">
<property name="text">
<string>Default width:</string>
<string>Default drawing grid size:</string>
</property>
</widget>
</item>
<item row="13" column="0">
<widget class="QLabel" name="uiNotePreviewLabel">
<item row="2" column="0">
<widget class="QLabel" name="uiNodeGridSizeLabel">
<property name="text">
<string>Default note style:</string>
<string>Default node grid size:</string>
</property>
</widget>
</item>
<item row="6" column="0" colspan="2">
<widget class="QCheckBox" name="uiShowInterfaceLabelsOnNewProject">
<property name="text">
<string>Show interface labels on new project</string>
<item row="2" column="1">
<widget class="QSpinBox" name="uiNodeGridSizeSpinBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="minimum">
<number>5</number>
</property>
<property name="maximum">
<number>150</number>
</property>
<property name="singleStep">
<number>5</number>
</property>
<property name="value">
<number>75</number>
</property>
</widget>
</item>
@@ -670,122 +688,298 @@
</property>
</widget>
</item>
<item row="14" column="0" colspan="3">
<widget class="QPlainTextEdit" name="uiDefaultNoteStylePlainTextEdit">
<item row="10" column="0" colspan="2">
<widget class="QToolBox" name="toolBox">
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="page">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>472</width>
<height>101</height>
</rect>
</property>
<attribute name="label">
<string>Default label style</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_3">
<item row="1" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_5">
<item>
<widget class="QPushButton" name="uiDefaultLabelFontPushButton">
<property name="text">
<string>&amp;Select default font</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="uiDefaultLabelColorPushButton">
<property name="text">
<string>&amp;Select default color</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item row="0" column="0">
<widget class="QPlainTextEdit" name="uiDefaultLabelStylePlainTextEdit">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>50</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="readOnly">
<bool>true</bool>
</property>
<property name="plainText">
<string>AaBbYyZz</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="page_2">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>309</width>
<height>101</height>
</rect>
</property>
<attribute name="label">
<string>Default note style</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_5">
<item row="0" column="0">
<widget class="QPlainTextEdit" name="uiDefaultNoteStylePlainTextEdit">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>50</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="readOnly">
<bool>true</bool>
</property>
<property name="plainText">
<string>AaBbYyZz</string>
</property>
</widget>
</item>
<item row="1" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_14">
<item>
<widget class="QPushButton" name="uiDefaultNoteFontPushButton">
<property name="text">
<string>&amp;Select default font</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="uiDefaultNoteColorPushButton">
<property name="text">
<string>&amp;Select default color</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_5">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>
</widget>
<widget class="QWidget" name="page_3">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>472</width>
<height>106</height>
</rect>
</property>
<attribute name="label">
<string>Default link style</string>
</attribute>
<layout class="QFormLayout" name="formLayout">
<item row="0" column="0">
<widget class="QLabel" name="uiDefaultLinkColorLabel">
<property name="text">
<string>Color:</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QPushButton" name="uiDefaultLinkColorPushButton">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="uiDefaultLinkWidthLabel">
<property name="text">
<string>Width:</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QSpinBox" name="uiDefaultLinkWidthSpinBox">
<property name="suffix">
<string> px</string>
</property>
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>100</number>
</property>
<property name="value">
<number>2</number>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="uiDefaultLinkStyleLabel">
<property name="text">
<string>Style:</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QComboBox" name="uiDefaultLinkStyleComboBox"/>
</item>
</layout>
</widget>
</widget>
</item>
<item row="0" column="1">
<widget class="QSpinBox" name="uiSceneWidthSpinBox">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Expanding">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>50</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
<enum>Qt::StrongFocus</enum>
</property>
<property name="readOnly">
<bool>true</bool>
<property name="suffix">
<string> pixels</string>
</property>
<property name="plainText">
<string>AaBbYyZz</string>
<property name="minimum">
<number>500</number>
</property>
<property name="maximum">
<number>1000000</number>
</property>
<property name="singleStep">
<number>100</number>
</property>
<property name="value">
<number>2000</number>
</property>
</widget>
</item>
<item row="15" column="0" colspan="3">
<layout class="QHBoxLayout" name="horizontalLayout_14">
<item>
<widget class="QPushButton" name="uiDefaultNoteFontPushButton">
<property name="text">
<string>&amp;Select default font</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="uiDefaultNoteColorPushButton">
<property name="text">
<string>&amp;Select default color</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_5">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
<item row="3" column="1">
<widget class="QSpinBox" name="uiDrawingGridSizeSpinBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="minimum">
<number>5</number>
</property>
<property name="maximum">
<number>100</number>
</property>
<property name="singleStep">
<number>5</number>
</property>
<property name="value">
<number>25</number>
</property>
</widget>
</item>
<item row="9" column="0" colspan="2">
<widget class="QCheckBox" name="uiLimitSizeNodeSymbolCheckBox">
<item row="0" column="0">
<widget class="QLabel" name="uiSceneWidthLabel">
<property name="text">
<string>Limit the size of node symbols</string>
<string>Default width:</string>
</property>
</widget>
</item>
<item row="12" column="0" colspan="3">
<layout class="QHBoxLayout" name="horizontalLayout_5">
<item>
<widget class="QPushButton" name="uiDefaultLabelFontPushButton">
<property name="text">
<string>&amp;Select default font</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="uiDefaultLabelColorPushButton">
<property name="text">
<string>&amp;Select default color</string>
</property>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
<item row="11" column="0" colspan="3">
<widget class="QPlainTextEdit" name="uiDefaultLabelStylePlainTextEdit">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
<item row="5" column="0">
<widget class="QCheckBox" name="uiDrawLinkStatusPointsCheckBox">
<property name="text">
<string>Draw link status points</string>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>50</height>
</size>
</property>
<property name="focusPolicy">
<enum>Qt::NoFocus</enum>
</property>
<property name="readOnly">
<property name="checked">
<bool>true</bool>
</property>
<property name="plainText">
<string>AaBbYyZz</string>
</widget>
</item>
<item row="6" column="0" colspan="2">
<widget class="QCheckBox" name="uiShowInterfaceLabelsOnNewProject">
<property name="text">
<string>Show interface labels on new project</string>
</property>
</widget>
</item>
<item row="7" column="0">
<widget class="QCheckBox" name="uiShowGridOnNewProject">
<property name="text">
<string>Show grid on new project</string>
</property>
</widget>
</item>
@@ -817,120 +1011,7 @@
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QSpinBox" name="uiSceneWidthSpinBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="suffix">
<string> pixels</string>
</property>
<property name="minimum">
<number>500</number>
</property>
<property name="maximum">
<number>1000000</number>
</property>
<property name="singleStep">
<number>100</number>
</property>
<property name="value">
<number>2000</number>
</property>
</widget>
</item>
<item row="8" column="0" colspan="2">
<widget class="QCheckBox" name="uiSnapToGridOnNewProject">
<property name="text">
<string>Snap to grid on new project</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="uiDrawingGridSizeLabel">
<property name="text">
<string>Default drawing grid size:</string>
</property>
</widget>
</item>
<item row="10" column="0">
<widget class="QLabel" name="uiLabelPreviewLabel">
<property name="text">
<string>Default label style:</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="uiNodeGridSizeLabel">
<property name="text">
<string>Default node grid size:</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QSpinBox" name="uiDrawingGridSizeSpinBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="minimum">
<number>5</number>
</property>
<property name="maximum">
<number>100</number>
</property>
<property name="singleStep">
<number>5</number>
</property>
<property name="value">
<number>25</number>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QSpinBox" name="uiNodeGridSizeSpinBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="focusPolicy">
<enum>Qt::StrongFocus</enum>
</property>
<property name="minimum">
<number>5</number>
</property>
<property name="maximum">
<number>150</number>
</property>
<property name="singleStep">
<number>5</number>
</property>
<property name="value">
<number>75</number>
</property>
</widget>
</item>
<item row="7" column="0" colspan="2">
<widget class="QCheckBox" name="uiShowGridOnNewProject">
<property name="text">
<string>Show grid on new project</string>
</property>
</widget>
</item>
<item row="4" column="0" colspan="3">
<item row="4" column="0" colspan="2">
<widget class="QCheckBox" name="uiRectangleSelectedItemCheckBox">
<property name="text">
<string>Draw a rectangle when an item is selected</string>
@@ -940,7 +1021,7 @@
</property>
</widget>
</item>
<item row="16" column="0">
<item row="13" column="0">
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
@@ -953,16 +1034,33 @@
</property>
</spacer>
</item>
<item row="5" column="0" colspan="2">
<widget class="QCheckBox" name="uiDrawLinkStatusPointsCheckBox">
<item row="9" column="0" colspan="2">
<widget class="QCheckBox" name="uiLimitSizeNodeSymbolCheckBox">
<property name="text">
<string>Draw link status points</string>
</property>
<property name="checked">
<bool>true</bool>
<string>Limit the size of node symbols</string>
</property>
</widget>
</item>
<item row="8" column="0" colspan="2">
<widget class="QCheckBox" name="uiSnapToGridOnNewProject">
<property name="text">
<string>Snap to grid on new project</string>
</property>
</widget>
</item>
<item row="11" column="0">
<spacer name="verticalSpacer_5">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<widget class="QWidget" name="uiMiscTab">

View File

@@ -16,6 +16,11 @@ QLabel, QMenu, QStatusBar {
color: #dedede;
}
QToolBox::tab {
color: #dedede;
font: bold 12px;
}
QMenuBar::item {
background-color: #535353;
}