def __init__(self, mainwin, **kwargs): if sys.platform.startswith('darwin'): super(SettingsDialog, self).__init__(parent=mainwin, flags=Qt.Sheet) self.setWindowModality(Qt.WindowModal) else: super(SettingsDialog, self).__init__(parent=mainwin) self.ui = Ui_SettingsDialog() self.ui.setupUi(self) self.mainwin = None #with ContextAttributeSetter( # (self.ui.cbxLatexMode.blockSignals, self.ui.cbxLatexMode.signalsBlocked, True), # (self.ui.cbxFileNaming.blockSignals, self.ui.cbxFileNaming.signalsBlocked, True), # ): # # set up the initial values, without re-updating the main windows' settings at this point self.setupLatexModes() self.setupFileNamingConventions() self.mainwin = mainwin
class SettingsDialog(QDialog): def __init__(self, mainwin, **kwargs): if sys.platform.startswith('darwin'): super(SettingsDialog, self).__init__(parent=mainwin, flags=Qt.Sheet) self.setWindowModality(Qt.WindowModal) else: super(SettingsDialog, self).__init__(parent=mainwin) self.ui = Ui_SettingsDialog() self.ui.setupUi(self) self.mainwin = None #with ContextAttributeSetter( # (self.ui.cbxLatexMode.blockSignals, self.ui.cbxLatexMode.signalsBlocked, True), # (self.ui.cbxFileNaming.blockSignals, self.ui.cbxFileNaming.signalsBlocked, True), # ): # # set up the initial values, without re-updating the main windows' settings at this point self.setupLatexModes() self.setupFileNamingConventions() self.mainwin = mainwin def showSettings(self): self.show() try: blk1 = self.ui.cbxLatexMode.blockSignals(True) blk2 = self.ui.cbxFileNaming.blockSignals(True) # set up the initial values, without re-updating the main windows' settings at this point idx = latexmodes.latex_modes.index(self.mainwin.latexmode) self.ui.cbxLatexMode.setCurrentIndex(idx) idx = filenamingconventions.naming_conventions.index(self.mainwin.filenamingconvention) self.ui.cbxFileNaming.setCurrentIndex(idx) self.updateFileNamingConventionDescription() finally: self.ui.cbxLatexMode.blockSignals(blk1) self.ui.cbxFileNaming.blockSignals(blk2) def setupLatexModes(self): self.ui.cbxLatexMode.clear() for mode in latexmodes.latex_modes: self.ui.cbxLatexMode.addItem(mode.title(), QVariant(QString(str(mode.__class__.__name__)))) @pyqtSlot(int) def on_cbxLatexMode_activated(self, index): if not self.mainwin: return cls = str(self.ui.cbxLatexMode.itemData(index).toString()) try: latexmode = next(iter( (mode for mode in latexmodes.latex_modes if mode.__class__.__name__ == cls) )) except StopIteration: logger.warning("Couldn't find mode: %s", cls) return self.mainwin.latexmode = latexmode self.updateFileNamingConventions() def setupFileNamingConventions(self): self.ui.cbxFileNaming.clear() titlekwargs = {} if self.mainwin: titlekwargs['ext'] = self.mainwin.latexmode.outputext() for filenaming in filenamingconventions.naming_conventions: self.ui.cbxFileNaming.addItem(filenaming.title(**titlekwargs), QVariant(QString(str(filenaming.__class__.__name__)))) def updateFileNamingConventions(self): titlekwargs = {} if self.mainwin: titlekwargs['ext'] = self.mainwin.latexmode.outputext() for k in range(self.ui.cbxFileNaming.count()): self.ui.cbxFileNaming.setItemText( k, filenamingconventions.naming_conventions[k].title(**titlekwargs) ) self.updateFileNamingConventionDescription() def updateFileNamingConventionDescription(self, index=None): titlekwargs = {} if self.mainwin: titlekwargs['ext'] = self.mainwin.latexmode.outputext() if index is None: index = self.ui.cbxFileNaming.currentIndex() if index >= 0 and index < self.ui.cbxFileNaming.count(): text = filenamingconventions.naming_conventions[index].description(**titlekwargs) else: text = "" self.ui.lblFileNamingDesc.setText(text) @pyqtSlot(int) def on_cbxFileNaming_activated(self, index): self.updateFileNamingConventionDescription(index) cls = str(self.ui.cbxFileNaming.itemData(index).toString()) try: filenaming = next(iter( (mode for mode in filenamingconventions.naming_conventions if mode.__class__.__name__ == cls) )) except StopIteration: logger.warning("Couldn't find file naming scheme: %s", cls) return self.mainwin.filenamingconvention = filenaming