aboutsummaryrefslogtreecommitdiffstats
path: root/Lib/defconQt/fontView.py
diff options
context:
space:
mode:
authorAdrien Tétar2015-10-09 23:46:37 +0200
committerAdrien Tétar2015-10-09 23:46:37 +0200
commit327ffb95f9449575ab28960d5016b910d7161841 (patch)
tree724ef9f3c8e138df4d0df6cd34f8429056f8f4dd /Lib/defconQt/fontView.py
parentc7d2caf40164696eeb07d42da5bcd21591c19687 (diff)
downloadtrufont-327ffb95f9449575ab28960d5016b910d7161841.tar.bz2
fontView: allow saving as ufo3 or ufo2
Diffstat (limited to 'Lib/defconQt/fontView.py')
-rw-r--r--Lib/defconQt/fontView.py20
1 files changed, 15 insertions, 5 deletions
diff --git a/Lib/defconQt/fontView.py b/Lib/defconQt/fontView.py
index dab393f..033a6df 100644
--- a/Lib/defconQt/fontView.py
+++ b/Lib/defconQt/fontView.py
@@ -11,6 +11,7 @@ from defconQt.spaceCenter import MainSpaceWindow
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
+from collections import OrderedDict
import os, pickle, traceback
cannedDesign = [
@@ -681,7 +682,7 @@ class MainWindow(QMainWindow):
fontPath = self.sender().toolTip()
self.openFile(fontPath)
- def saveFile(self, path=None):
+ def saveFile(self, path=None, ufoFormatVersion=3):
if path is None and self.font.path is None:
self.saveFileAs()
else:
@@ -693,7 +694,7 @@ class MainWindow(QMainWindow):
for glyph in glyphs:
glyphNames.append(glyph.name)
self.font.lib["public.glyphOrder"] = glyphNames
- self.font.save(path=path)
+ self.font.save(path, ufoFormatVersion)
self.font.dirty = False
for glyph in self.font:
glyph.dirty = False
@@ -701,10 +702,19 @@ class MainWindow(QMainWindow):
self.setWindowModified(False)
def saveFileAs(self):
- path, ok = QFileDialog.getSaveFileName(self, "Save File", '',
- "UFO Fonts (*.ufo)")
+ fileFormats = OrderedDict([
+ ("UFO Font version 3 (*.ufo)", 3),
+ ("UFO Fonts version 2 (*.ufo)", 2),
+ ])
+ # TODO: see if OSX works nicely with UFO as files, then switch to directory
+ # on platforms that need it
+ dialog = QFileDialog(self, "Save File", None, ";;".join(fileFormats.keys()))
+ dialog.setAcceptMode(QFileDialog.AcceptSave)
+ ok = dialog.exec_()
if ok:
- self.saveFile(path)
+ nameFilter = dialog.selectedNameFilter()
+ path = dialog.selectedFiles()[0]
+ self.saveFile(path, fileFormats[nameFilter])
self.setWindowTitle()
#return ok