Merge pull request #886 from ixjlyons/py3-flowchart

Fix flowchart save on Python 3
This commit is contained in:
Ogi Moore 2019-05-24 15:58:59 -07:00 committed by GitHub
commit d5b31f6401
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 6 deletions

View File

@ -27,6 +27,7 @@ from .. import configfile as configfile
from .. import dockarea as dockarea from .. import dockarea as dockarea
from . import FlowchartGraphicsView from . import FlowchartGraphicsView
from .. import functions as fn from .. import functions as fn
from ..python2_3 import asUnicode
def strDict(d): def strDict(d):
return dict([(str(k), v) for k, v in d.items()]) return dict([(str(k), v) for k, v in d.items()])
@ -519,12 +520,12 @@ class Flowchart(Node):
self.fileDialog.fileSelected.connect(self.loadFile) self.fileDialog.fileSelected.connect(self.loadFile)
return return
## NOTE: was previously using a real widget for the file dialog's parent, but this caused weird mouse event bugs.. ## NOTE: was previously using a real widget for the file dialog's parent, but this caused weird mouse event bugs..
fileName = unicode(fileName) fileName = asUnicode(fileName)
state = configfile.readConfigFile(fileName) state = configfile.readConfigFile(fileName)
self.restoreState(state, clear=True) self.restoreState(state, clear=True)
self.viewBox.autoRange() self.viewBox.autoRange()
self.sigFileLoaded.emit(fileName) self.sigFileLoaded.emit(fileName)
def saveFile(self, fileName=None, startDir=None, suggestedFileName='flowchart.fc'): def saveFile(self, fileName=None, startDir=None, suggestedFileName='flowchart.fc'):
"""Save this flowchart to a .fc file """Save this flowchart to a .fc file
""" """
@ -534,11 +535,12 @@ class Flowchart(Node):
if startDir is None: if startDir is None:
startDir = '.' startDir = '.'
self.fileDialog = FileDialog(None, "Save Flowchart..", startDir, "Flowchart (*.fc)") self.fileDialog = FileDialog(None, "Save Flowchart..", startDir, "Flowchart (*.fc)")
self.fileDialog.setDefaultSuffix("fc")
self.fileDialog.setAcceptMode(QtGui.QFileDialog.AcceptSave) self.fileDialog.setAcceptMode(QtGui.QFileDialog.AcceptSave)
self.fileDialog.show() self.fileDialog.show()
self.fileDialog.fileSelected.connect(self.saveFile) self.fileDialog.fileSelected.connect(self.saveFile)
return return
fileName = unicode(fileName) fileName = asUnicode(fileName)
configfile.writeConfigFile(self.saveState(), fileName) configfile.writeConfigFile(self.saveState(), fileName)
self.sigFileSaved.emit(fileName) self.sigFileSaved.emit(fileName)
@ -662,7 +664,7 @@ class FlowchartCtrlWidget(QtGui.QWidget):
#self.setCurrentFile(newFile) #self.setCurrentFile(newFile)
def fileSaved(self, fileName): def fileSaved(self, fileName):
self.setCurrentFile(unicode(fileName)) self.setCurrentFile(asUnicode(fileName))
self.ui.saveBtn.success("Saved.") self.ui.saveBtn.success("Saved.")
def saveClicked(self): def saveClicked(self):
@ -691,7 +693,7 @@ class FlowchartCtrlWidget(QtGui.QWidget):
#self.setCurrentFile(newFile) #self.setCurrentFile(newFile)
def setCurrentFile(self, fileName): def setCurrentFile(self, fileName):
self.currentFileName = unicode(fileName) self.currentFileName = asUnicode(fileName)
if fileName is None: if fileName is None:
self.ui.fileNameLabel.setText("<b>[ new ]</b>") self.ui.fileNameLabel.setText("<b>[ new ]</b>")
else: else:

View File

@ -373,7 +373,7 @@ class Node(QtCore.QObject):
pos = self.graphicsItem().pos() pos = self.graphicsItem().pos()
state = {'pos': (pos.x(), pos.y()), 'bypass': self.isBypassed()} state = {'pos': (pos.x(), pos.y()), 'bypass': self.isBypassed()}
termsEditable = self._allowAddInput | self._allowAddOutput termsEditable = self._allowAddInput | self._allowAddOutput
for term in self._inputs.values() + self._outputs.values(): for term in list(self._inputs.values()) + list(self._outputs.values()):
termsEditable |= term._renamable | term._removable | term._multiable termsEditable |= term._renamable | term._removable | term._multiable
if termsEditable: if termsEditable:
state['terminals'] = self.saveTerminals() state['terminals'] = self.saveTerminals()