|
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
|
|
From: Carlos P. <cpa...@ce...> - 2015-11-09 15:09:24
|
Hi, I have doubts regarding the implementation of this bug (and about the bug report itself). See long argument in: https://sourceforge.net/p/tauruslib/tickets/60/#b157/17d2 For now, I put the integration of this patch on hold until we agree something in the ticket discussion. On Fri 30 October 2015 13:30:57 cfalcon wrote: > 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') -- +----------------------------------------------------+ Carlos Pascual Izarra Scientific Software Coordinator Computing Division ALBA Synchrotron [http://www.albasynchrotron.es] Carrer de la Llum 2-26 E-08290 Cerdanyola del Valles (Barcelona), Spain E-mail: cpa...@ce... Phone: +34 93 592 4428 +----------------------------------------------------+ |