Draft: Added import/export buttons to Annotation styles editor dialog

This commit is contained in:
Yorik van Havre
2021-01-05 16:54:06 +01:00
parent 43289ad685
commit 2cf3a15101
2 changed files with 114 additions and 6 deletions

View File

@@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>453</width>
<height>424</height>
<width>416</width>
<height>542</height>
</rect>
</property>
<property name="windowTitle">
@@ -22,6 +22,18 @@
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QComboBox" name="comboBoxStyles">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>60</width>
<height>0</height>
</size>
</property>
<property name="toolTip">
<string>The name of your style. Existing style names can be edited.</string>
</property>
@@ -46,11 +58,17 @@
<bool>false</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>60</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>110</width>
@@ -71,11 +89,17 @@
<bool>false</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>60</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>110</width>
@@ -90,6 +114,26 @@
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButtonImport">
<property name="toolTip">
<string>Import styles from json file</string>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButtonExport">
<property name="toolTip">
<string>Export styles to json file</string>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
</layout>
</widget>
</item>
@@ -108,8 +152,8 @@
<property name="geometry">
<rect>
<x>0</x>
<y>-290</y>
<width>420</width>
<y>0</y>
<width>383</width>
<height>589</height>
</rect>
</property>
@@ -152,6 +196,18 @@
</item>
<item row="0" column="1">
<widget class="QFontComboBox" name="FontName">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>60</width>
<height>0</height>
</size>
</property>
<property name="toolTip">
<string>The font to use for texts and dimensions</string>
</property>
@@ -400,6 +456,18 @@
</item>
<item row="4" column="1">
<widget class="QComboBox" name="ArrowType">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>60</width>
<height>0</height>
</size>
</property>
<property name="toolTip">
<string>The type of arrows or markers to use at the end of dimension lines</string>
</property>

View File

@@ -111,6 +111,8 @@ class AnnotationStyleEditor(gui_base.GuiCommandSimplest):
self.form.pushButtonRename.setIcon(QtGui.QIcon(":/icons/accessories-text-editor.svg"))
self.form.pushButtonDelete.resize(self.form.pushButtonDelete.sizeHint())
self.form.pushButtonRename.resize(self.form.pushButtonRename.sizeHint())
self.form.pushButtonImport.setIcon(QtGui.QIcon(":/icons/Std_Import.svg"))
self.form.pushButtonExport.setIcon(QtGui.QIcon(":/icons/Std_Export.svg"))
# fill the styles combo
self.styles = self.read_meta()
@@ -121,6 +123,8 @@ class AnnotationStyleEditor(gui_base.GuiCommandSimplest):
self.form.comboBoxStyles.currentIndexChanged.connect(self.on_style_changed)
self.form.pushButtonDelete.clicked.connect(self.on_delete)
self.form.pushButtonRename.clicked.connect(self.on_rename)
self.form.pushButtonImport.clicked.connect(self.on_import)
self.form.pushButtonExport.clicked.connect(self.on_export)
for attr in DEFAULT.keys():
control = getattr(self.form, attr)
for signal in ("clicked", "textChanged",
@@ -280,6 +284,42 @@ class AnnotationStyleEditor(gui_base.GuiCommandSimplest):
self.styles[newname] = value
self.renamed[style] = newname
def on_import(self):
"""imports styles from a json file"""
filename = QtGui.QFileDialog.getOpenFileName(
QtGui.QApplication.activeWindow(),
_tr("Open styles file"),
None,
_tr("JSON file (*.json)"))
if filename and filename[0]:
with open(filename[0]) as f:
nstyles = json.load(f)
if nstyles:
self.styles.update(nstyles)
l1 = self.form.comboBoxStyles.itemText(0)
l2 = self.form.comboBoxStyles.itemText(1)
self.form.comboBoxStyles.clear()
self.form.comboBoxStyles.addItem(l1)
self.form.comboBoxStyles.addItem(l2)
for style in self.styles.keys():
self.form.comboBoxStyles.addItem(style)
print("Styles updated from "+filename[0])
def on_export(self):
"""exports styles to a json file"""
filename = QtGui.QFileDialog.getSaveFileName(
QtGui.QApplication.activeWindow(),
_tr("Save styles file"),
None,
_tr("JSON file (*.json)"))
if filename and filename[0]:
with open(filename[0],"w") as f:
json.dump(self.styles,f,indent=4)
print("Styles saved to "+filename[0])
def fill_editor(self, style):
"""Fill the editor fields with the contents of a style."""
if style is None: