|
From: cfalcon <cf...@ce...> - 2015-10-30 12:31:07
|
taurusgui offers to export panels which were already exported
and marks the pannels as permanet, even if they are not
saved in a XML file.
Fix those two behaviours in taurusgui.
---
lib/taurus/qt/qtgui/taurusgui/taurusgui.py | 31 +++++++++++++++++-------------
1 file changed, 18 insertions(+), 13 deletions(-)
diff --git a/lib/taurus/qt/qtgui/taurusgui/taurusgui.py b/lib/taurus/qt/qtgui/taurusgui/taurusgui.py
index 406a397..199dd60 100644
--- a/lib/taurus/qt/qtgui/taurusgui/taurusgui.py
+++ b/lib/taurus/qt/qtgui/taurusgui/taurusgui.py
@@ -1384,34 +1384,29 @@ class TaurusGui(TaurusMainWindow):
if panelDescriptionsNode is None:
panelDescriptionsNode = etree.SubElement(xmlroot, "PanelDescriptions")
+ list1 = []
+ for n, p in self.__panels.iteritems():
+ if p.isCustom() and not p.isPermanent():
+ list1.append(n)
+
#Get all custom panels
dlg = QDoubleListDlg(winTitle='Export Panels to XML',
mainLabel='Select which of the custom panels you want to export as xml configuration',
label1='Not Exported', label2='Exported',
- list1=[n for n, p in self.__panels.iteritems() if p.isCustom()], list2=[])
+ list1=list1, list2=[])
result = dlg.exec_()
if result != Qt.QDialog.Accepted:
return
exportlist = dlg.getAll2()
- #create xml for those to be exported
- registered = self.getConfigurableItemNames()
- for name in exportlist:
- panel = self.__panels[name]
- if name not in registered:
- panel.setPermanent(True)
- self.registerConfigDelegate(panel, name)
- panelxml = PanelDescription.fromPanel(panel).toXml()
- panelDescriptionsNode.append(etree.fromstring(panelxml))
- xml = etree.tostring(xmlroot, pretty_print=True)
-
#write to file
while True:
if fname is None:
fname = Qt.QFileDialog.getSaveFileName(self, "Open File", fname or self._confDirectory, self.tr("XML files (*.xml)"))
if not fname:
return
- fname = str(fname)
+ fname = str(fname)
+ self._xmlConfigFileName = fname
#backup the file
if os.path.exists(fname):
import shutil
@@ -1420,6 +1415,16 @@ class TaurusGui(TaurusMainWindow):
shutil.copy(fname, bckname)
except:
self.warning("%s will be overwritten but I could not create a backup in %s", fname, bckname)
+ #create xml for those to be exported
+ registered = self.getConfigurableItemNames()
+ for name in exportlist:
+ panel = self.__panels[name]
+ if name not in registered:
+ panel.setPermanent(True)
+ self.registerConfigDelegate(panel, name)
+ panelxml = PanelDescription.fromPanel(panel).toXml()
+ panelDescriptionsNode.append(etree.fromstring(panelxml))
+ xml = etree.tostring(xmlroot, pretty_print=True)
#write the data
try:
f = open(fname, 'w')
--
2.4.0
|