Preferences/ConfigurationPages/EditorExportersPage.py

changeset 0
de9c2efb9d02
child 5
fa319c01b604
diff -r 000000000000 -r de9c2efb9d02 Preferences/ConfigurationPages/EditorExportersPage.py
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Preferences/ConfigurationPages/EditorExportersPage.py	Mon Dec 28 16:03:33 2009 +0000
@@ -0,0 +1,172 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2007 - 2009 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing the Editor Exporters configuration page.
+"""
+
+from PyQt4.QtCore import QVariant, pyqtSlot
+from PyQt4.QtGui import QFontDialog
+
+from ConfigurationPageBase import ConfigurationPageBase
+from Ui_EditorExportersPage import Ui_EditorExportersPage
+
+import Preferences
+
+class EditorExportersPage(ConfigurationPageBase, Ui_EditorExportersPage):
+    """
+    Class implementing the Editor Typing configuration page.
+    """
+    def __init__(self):
+        """
+        Constructor
+        """
+        ConfigurationPageBase.__init__(self)
+        self.setupUi(self)
+        self.setObjectName("EditorExportersPage")
+        
+        # set initial values
+        self.pageIds = {}
+        self.pageIds[' '] = self.stackedWidget.indexOf(self.emptyPage)
+        self.pageIds['HTML'] = self.stackedWidget.indexOf(self.htmlPage)
+        self.pageIds['PDF'] = self.stackedWidget.indexOf(self.pdfPage)
+        self.pageIds['RTF'] = self.stackedWidget.indexOf(self.rtfPage)
+        self.pageIds['TeX'] = self.stackedWidget.indexOf(self.texPage)
+        exporters = self.pageIds.keys()
+        exporters.sort()
+        for exporter in exporters:
+            self.exportersCombo.addItem(exporter, QVariant(self.pageIds[exporter]))
+        
+        self.pdfFontCombo.addItem(self.trUtf8("Courier"), QVariant("QVariant"))
+        self.pdfFontCombo.addItem(self.trUtf8("Helvetica"), QVariant("Helvetica"))
+        self.pdfFontCombo.addItem(self.trUtf8("Times"), QVariant("Times"))
+        
+        self.pdfPageSizeCombo.addItem(self.trUtf8("A4"), QVariant("A4"))
+        self.pdfPageSizeCombo.addItem(self.trUtf8("Letter"), QVariant("Letter"))
+        
+        # HTML
+        self.htmlWysiwygCheckBox.setChecked(\
+            Preferences.getEditorExporter("HTML/WYSIWYG"))
+        self.htmlFoldingCheckBox.setChecked(\
+            Preferences.getEditorExporter("HTML/Folding"))
+        self.htmlStylesCheckBox.setChecked(\
+            Preferences.getEditorExporter("HTML/OnlyStylesUsed"))
+        self.htmlTitleCheckBox.setChecked(\
+            Preferences.getEditorExporter("HTML/FullPathAsTitle"))
+        self.htmlTabsCheckBox.setChecked(\
+            Preferences.getEditorExporter("HTML/UseTabs"))
+        
+        # PDF
+        self.pdfMagnificationSlider.setValue(\
+            Preferences.getEditorExporter("PDF/Magnification"))
+        ind = self.pdfFontCombo.findData(QVariant(\
+            Preferences.getEditorExporter("PDF/Font")))
+        self.pdfFontCombo.setCurrentIndex(ind)
+        ind = self.pdfPageSizeCombo.findData(QVariant(\
+            Preferences.getEditorExporter("PDF/PageSize")))
+        self.pdfPageSizeCombo.setCurrentIndex(ind)
+        self.pdfMarginTopSpin.setValue(\
+            Preferences.getEditorExporter("PDF/MarginTop"))
+        self.pdfMarginBottomSpin.setValue(\
+            Preferences.getEditorExporter("PDF/MarginBottom"))
+        self.pdfMarginLeftSpin.setValue(\
+            Preferences.getEditorExporter("PDF/MarginLeft"))
+        self.pdfMarginRightSpin.setValue(\
+            Preferences.getEditorExporter("PDF/MarginRight"))
+        
+        # RTF
+        self.rtfWysiwygCheckBox.setChecked(\
+            Preferences.getEditorExporter("RTF/WYSIWYG"))
+        self.rtfTabsCheckBox.setChecked(\
+            Preferences.getEditorExporter("RTF/UseTabs"))
+        self.rtfFont = Preferences.getEditorExporter("RTF/Font")
+        self.rtfFontSample.setFont(self.rtfFont)
+        
+        # TeX
+        self.texStylesCheckBox.setChecked(\
+            Preferences.getEditorExporter("TeX/OnlyStylesUsed"))
+        self.texTitleCheckBox.setChecked(\
+            Preferences.getEditorExporter("TeX/FullPathAsTitle"))
+        
+        self.on_exportersCombo_activated(' ')
+    
+    def save(self):
+        """
+        Public slot to save the Editor Typing configuration.
+        """
+        # HTML
+        Preferences.setEditorExporter("HTML/WYSIWYG",
+            int(self.htmlWysiwygCheckBox.isChecked()))
+        Preferences.setEditorExporter("HTML/Folding",
+            int(self.htmlFoldingCheckBox.isChecked()))
+        Preferences.setEditorExporter("HTML/OnlyStylesUsed",
+            int(self.htmlStylesCheckBox.isChecked()))
+        Preferences.setEditorExporter("HTML/FullPathAsTitle",
+            int(self.htmlTitleCheckBox.isChecked()))
+        Preferences.setEditorExporter("HTML/UseTabs",
+            int(self.htmlTabsCheckBox.isChecked()))
+        
+        # PDF
+        Preferences.setEditorExporter("PDF/Magnification", 
+            self.pdfMagnificationSlider.value())
+        Preferences.setEditorExporter("PDF/Font", 
+            self.pdfFontCombo.itemData(self.pdfFontCombo.currentIndex())\
+                             .toString())
+        Preferences.setEditorExporter("PDF/PageSize", 
+            self.pdfPageSizeCombo.itemData(self.pdfPageSizeCombo.currentIndex())\
+                                 .toString())
+        Preferences.setEditorExporter("PDF/MarginTop", 
+            self.pdfMarginTopSpin.value())
+        Preferences.setEditorExporter("PDF/MarginBottom", 
+            self.pdfMarginBottomSpin.value())
+        Preferences.setEditorExporter("PDF/MarginLeft", 
+            self.pdfMarginLeftSpin.value())
+        Preferences.setEditorExporter("PDF/MarginRight", 
+            self.pdfMarginRightSpin.value())
+        
+        # RTF
+        Preferences.setEditorExporter("RTF/WYSIWYG",
+            int(self.rtfWysiwygCheckBox.isChecked()))
+        Preferences.setEditorExporter("RTF/UseTabs",
+            int(self.rtfTabsCheckBox.isChecked()))
+        Preferences.setEditorExporter("RTF/Font", self.rtfFont)
+        
+        # TeX
+        Preferences.setEditorExporter("TeX/OnlyStylesUsed",
+            int(self.texStylesCheckBox.isChecked()))
+        Preferences.setEditorExporter("TeX/FullPathAsTitle",
+            int(self.texTitleCheckBox.isChecked()))
+    
+    @pyqtSlot(str)
+    def on_exportersCombo_activated(self, exporter):
+        """
+        Private slot to select the page related to the selected exporter.
+        
+        @param exporter name of the selected exporter (string)
+        """
+        try:
+            index = self.pageIds[exporter]
+        except KeyError:
+            index = self.pageIds[' ']
+        self.stackedWidget.setCurrentIndex(index)
+    
+    @pyqtSlot()
+    def on_rtfFontButton_clicked(self):
+        """
+        Private method used to select the font for the RTF export.
+        """
+        font, ok = QFontDialog.getFont(self.rtfFont)
+        if ok:
+            self.rtfFontSample.setFont(font)
+            self.rtfFont = font
+
+def create(dlg):
+    """
+    Module function to create the configuration page.
+    
+    @param dlg reference to the configuration dialog
+    """
+    page = EditorExportersPage()
+    return page

eric ide

mercurial