diff options
| author | Adrien Tétar | 2015-04-26 07:17:08 +0200 |
|---|---|---|
| committer | Adrien Tétar | 2015-04-26 07:17:08 +0200 |
| commit | ffa541ce34fae21bf1b7a00d3b0ef9d30f702901 (patch) | |
| tree | eff3f2a13bf7dc5849df17e541738e3adbf9c249 /Lib/defconQt/windows/baseWindow.py | |
| download | trufont-ffa541ce34fae21bf1b7a00d3b0ef9d30f702901.tar.bz2 | |
Basically works
Diffstat (limited to 'Lib/defconQt/windows/baseWindow.py')
| -rw-r--r-- | Lib/defconQt/windows/baseWindow.py | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/Lib/defconQt/windows/baseWindow.py b/Lib/defconQt/windows/baseWindow.py new file mode 100644 index 0000000..2fc2b13 --- /dev/null +++ b/Lib/defconQt/windows/baseWindow.py @@ -0,0 +1,101 @@ +from PyQt5.QtCore import QDir +from PyQt5.QtWidgets import (QFileDialog, QMessageBox) + +''' +Base Window is a rather abstract object containing the common methods of +all widgets. +As such, it does not have an init function and is meant to be inherited +by subsequent classes. +''' +class BaseWindowController(object): + + ''' + def setUpBaseWindowBehavior(self): + self.w.bind("close", self.windowCloseCallback) + if isinstance(self.w, vanilla.Sheet): + self.w.bind("became key", self.windowSelectCallback) + self.w.bind("resigned key", self.windowDeselectCallback) + else: + self.w.bind("became main", self.windowSelectCallback) + self.w.bind("resigned main", self.windowDeselectCallback) + + def windowCloseCallback(self, sender): + self.w.unbind("close", self.windowCloseCallback) + if isinstance(self.w, vanilla.Sheet): + self.w.unbind("became key", self.windowSelectCallback) + self.w.unbind("resigned key", self.windowDeselectCallback) + else: + self.w.unbind("became main", self.windowSelectCallback) + self.w.unbind("resigned main", self.windowDeselectCallback) + + def windowSelectCallback(self, sender): + pass + + def windowDeselectCallback(self, sender): + pass + ''' + + def startProgress(self, text="", tickCount=None): + try: + from defconQt.windows.progressWindow import ProgressWindow + except: + from progressWindow import ProgressWindow + return ProgressWindow(text, tickCount, self.w) + + def showMessage(self, messageText, informativeText, callback=None): + QMessageBox.information(self.w.activeWindow(), messageText, informativeText) + #if callback is None: + # return 1 + #vanilla.dialogs.message(parentWindow=self.w.getNSWindow(), messageText=messageText, informativeText=informativeText, resultCallback=callback) + + def showAskYesNo(self, messageText, informativeText, callback=None):# + result = QMessageBox.question(self.w.activeWindow(), messageText, informativeText, QMessageBox.Yes | QMessageBox.No) + #vanilla.dialogs.askYesNo(parentWindow=self.w.getNSWindow(), messageText=messageText, informativeText=informativeText, resultCallback=callback) + if callback is None: + if result == QMessageBox.Yes: + return 1 + else: + return 0 + # return alert._value + + def showGetFolder(self, callback=None):# + directory = QFileDialog.getExistingDirectory(parent=self.w.activeWindow(), directory=QDir.currentPath()) + if callback is None: + return directory + #vanilla.dialogs.getFolder(parentWindow=self.w.getNSWindow(), resultCallback=callback) + + def showGetFile(self, fileTypes, callback, allowsMultipleSelection=False): + # TODO: Mac OS sees UFO as file, make sure that this accepts it eveywhere + # Note: fileTypes must follow QT convention e.g. "All Files (*);;Text Files (*.txt)" + # Note#2: getOpenFileNames may pack in an array while getOpenFileName does not + if allowsMultipleSelection: # why would you do this in a Font Editor? + files = QFileDialog.getOpenFileNames(parent=self.w.activeWindow(), directory=QDir.currentPath(), filter=fileTypes) + else: + files = QFileDialog.getOpenFileName(parent=self.w.activeWindow(), directory=QDir.currentPath(), filter=fileTypes) + #vanilla.dialogs.getFile(fileTypes=fileTypes, allowsMultipleSelection=allowsMultipleSelection, + # parentWindow=self.w.getNSWindow(), resultCallback=callback) + + def showPutFile(self, fileTypes, callback=None, fileName=None, directory=None, accessoryView=None):# + # ! fileTypes + + # basic instance cannot put a default file name, use the base class + #result = QFileDialog.getSaveFileName(parent=self.w, directory=directory, filter=fileTypes) + # https://github.com/qtproject/qt/blob/98530cbc3a0bbb633bab96eebb535d7f92ecb1fa/src/gui/dialogs/qfiledialog.cpp#L1965 + dlg = QFileDialog(parent=self.w.activeWindow(), filter=fileTypes) + dlg.setFileMode(QFileDialog.AnyFile) + dlg.setAcceptMode(QFileDialog.AcceptSave) + if directory: dlg.setDirectory(directory) + if fileName: dlg.selectFile(fileName) + if (dlg.exec_() == QDialog.Accepted): + result = dialog.selectedFiles().value(0) + if callback is None: + return result + ''' + if accessoryView is not None: + w, h = accessoryView._posSize[2:] + accessoryView._nsObject.setFrame_(((0, 0), (w, h))) + accessoryView = accessoryView._nsObject + vanilla.dialogs.putFile(fileTypes=fileTypes, + parentWindow=self.w.getNSWindow(), resultCallback=callback, fileName=fileName, directory=directory, accessoryView=accessoryView) + ''' + |
