Example #1
0
 def __init__(self, parent=None):
     super(htmlPreview, self).__init__(parent)
     hbox = QHBoxLayout()
     self.refreshButton = QPushButton(u"Refresh")
     hbox.addWidget(self.refreshButton, 0)
     hbox.addStretch(1)
     self.refreshAndClearButton = QPushButton(u"Refresh + Clear")
     hbox.addWidget(self.refreshAndClearButton)
     vbox = QVBoxLayout()
     vbox.addLayout(hbox, 0)
     self.preview = QWebView(self)
     # save a shortcut reference to web page and its history
     self.webPage = self.preview.page()
     self.history = self.preview.page().history()
     vbox.addWidget(self.preview, 1)
     self.setLayout(vbox)
     # make the web preview uneditable
     self.webPage.setContentEditable(False)
     self.settings = self.preview.settings()
     # Find out the nearest font to Palatino
     qf = QFont()
     qf.setStyleStrategy(QFont.PreferAntialias + QFont.PreferMatch)
     qf.setStyleHint(QFont.Serif)
     qf.setFamily(QString(u'Palatino'))
     qfi = QFontInfo(qf)
     # set the default font to that serif font
     self.settings.setFontFamily(QWebSettings.StandardFont, qfi.family())
     self.settings.setFontSize(QWebSettings.DefaultFontSize, 16)
     self.settings.setFontSize(QWebSettings.MinimumFontSize, 6)
     self.settings.setFontSize(QWebSettings.MinimumLogicalFontSize, 6)
     self.zoomFactor = 1.0
     # Disable everything but bog-standard html, appropriate for PP
     self.settings.setAttribute(QWebSettings.JavascriptEnabled, False)
     self.settings.setAttribute(QWebSettings.JavaEnabled, False)
     self.settings.setAttribute(QWebSettings.PluginsEnabled, False)
     self.settings.setAttribute(QWebSettings.ZoomTextOnly, False)
     # the following causes a hard error in linux
     #self.settings.setAttribute(QWebSettings.SiteSpecificQuirksEnabled, False)
     # hook up the refresh buttons
     self.connect(self.refreshButton, SIGNAL("clicked()"),
                  self.refresh1Click)
     self.connect(self.refreshAndClearButton, SIGNAL("clicked()"),
                  self.refresh2Click)
     # hook up the load status signals
     self.connect(self.preview, SIGNAL("loadStarted()"), self.loadStarts)
     self.connect(self.preview, SIGNAL("loadProgress(int)"),
                  self.loadProgresses)
     self.connect(self.preview, SIGNAL("loadFinished(bool)"), self.loadEnds)
     # here we store the scroll position to return to after reloading
     self.scrollPosition = QPoint(0, 0)
     # here save the user's find text for ctl-g use
     self.findText = QString()
     # here store the base URL for the current book.
     self.baseURL = QUrl()
Example #2
0
 def __init__(self, parent=None ):
     super(htmlPreview, self).__init__(parent)
     hbox = QHBoxLayout()
     self.refreshButton = QPushButton(u"Refresh")
     hbox.addWidget(self.refreshButton,0)
     hbox.addStretch(1)
     self.refreshAndClearButton = QPushButton(u"Refresh + Clear")
     hbox.addWidget(self.refreshAndClearButton)
     vbox = QVBoxLayout()
     vbox.addLayout(hbox,0)
     self.preview = QWebView(self)
     # save a shortcut reference to web page and its history
     self.webPage = self.preview.page()
     self.history = self.preview.page().history()
     vbox.addWidget(self.preview,1)
     self.setLayout(vbox)
     # make the web preview uneditable
     self.webPage.setContentEditable(False)
     self.settings = self.preview.settings()
     # Find out the nearest font to Palatino
     qf = QFont()
     qf.setStyleStrategy(QFont.PreferAntialias+QFont.PreferMatch)
     qf.setStyleHint(QFont.Serif)
     qf.setFamily(QString(u'Palatino'))
     qfi = QFontInfo(qf)
     # set the default font to that serif font
     self.settings.setFontFamily(QWebSettings.StandardFont, qfi.family())
     self.settings.setFontSize(QWebSettings.DefaultFontSize, 16)
     self.settings.setFontSize(QWebSettings.MinimumFontSize, 6)
     self.settings.setFontSize(QWebSettings.MinimumLogicalFontSize, 6)
     self.zoomFactor = 1.0
     # Disable everything but bog-standard html, appropriate for PP
     self.settings.setAttribute(QWebSettings.JavascriptEnabled, False)
     self.settings.setAttribute(QWebSettings.JavaEnabled, False)
     self.settings.setAttribute(QWebSettings.PluginsEnabled, False)
     self.settings.setAttribute(QWebSettings.ZoomTextOnly, False)
     # the following causes a hard error in linux
     #self.settings.setAttribute(QWebSettings.SiteSpecificQuirksEnabled, False)
     # hook up the refresh buttons
     self.connect(self.refreshButton, SIGNAL("clicked()"),self.refresh1Click)
     self.connect(self.refreshAndClearButton, SIGNAL("clicked()"),self.refresh2Click)
     # hook up the load status signals
     self.connect(self.preview,SIGNAL("loadStarted()"),self.loadStarts )
     self.connect(self.preview,SIGNAL("loadProgress(int)"),self.loadProgresses )
     self.connect(self.preview,SIGNAL("loadFinished(bool)"),self.loadEnds )
     # here we store the scroll position to return to after reloading
     self.scrollPosition = QPoint(0,0)
     # here save the user's find text for ctl-g use
     self.findText = QString()
     # here store the base URL for the current book.
     self.baseURL = QUrl()
Example #3
0
    def __init__(self, parent=None ):
        super(helpDisplay, self).__init__(parent)
        # make page unmodifiable
        self.page().setContentEditable(False)
        # initialize settings
        # Find out the nearest font to Palatino
        qf = QFont()
        qf.setStyleStrategy(QFont.PreferAntialias+QFont.PreferMatch)
        qf.setStyleHint(QFont.Serif)
        qf.setFamily(QString(u'Palatino'))
        qfi = QFontInfo(qf)
        # set the default font to that serif font
        self.settings().setFontFamily(QWebSettings.StandardFont, qfi.family())
        self.settings().setFontSize(QWebSettings.DefaultFontSize, 16)
        self.settings().setFontSize(QWebSettings.MinimumFontSize, 6)
        self.settings().setFontSize(QWebSettings.MinimumLogicalFontSize, 6)
        self.textZoomFactor = 1.0
        self.setTextSizeMultiplier(self.textZoomFactor)
        self.settings().setAttribute(QWebSettings.JavascriptEnabled, False)
        self.settings().setAttribute(QWebSettings.JavaEnabled, False)
        self.settings().setAttribute(QWebSettings.PluginsEnabled, False)
        self.settings().setAttribute(QWebSettings.ZoomTextOnly, True)
        #self.settings().setAttribute(QWebSettings.SiteSpecificQuirksEnabled, False)
        self.userFindText = QString()
        # Look for pqHelp.html in the app folder and copy its text into
        # a local buffer. If it isn't found, put a message there instead.
        # We need to keep it in order to implement the "back" function.
        helpPath = os.path.join(IMC.appBasePath,u'pqHelp.html')
        helpFile = QFile(helpPath)
        if not helpFile.exists():
            self.HTMLstring = QString('''<p>Unable to locate pqHelp.html.</p>
	    <p>Looking in {0}'''.format(helpPath)
                                )
        elif not helpFile.open(QIODevice.ReadOnly) :
            self.HTMLstring = QString('''<p>Unable to open pqHelp.html.</p>
	    <p>Looking in {0}</p><p>Error code {1}</p>'''.format(helpPath,
                                                                 helpFile.error())
                                                         )
        else:
            helpStream = QTextStream(helpFile)
            helpStream.setCodec('ISO8859-1')
            self.HTMLstring = helpStream.readAll()
        self.setHtml(self.HTMLstring)
Example #4
0
 def setFont(self, font):
     if sys.platform == "darwin":
         if QFontInfo(font).fixedPitch() and font.pointSize() <= 10:
             font.setStyleStrategy(QFont.NoAntialias)
     bolditalic = ""
     bolditalic += font.bold() and "Bold " or ""
     bolditalic += font.italic() and "Italic " or ""
     fullName = "%s %s%s" % (font.family(), bolditalic, font.pointSize())
     self._font = font
     self.fontPreview.setFont(font)
     self.fontPreview.setText(fullName)
Example #5
0
    def __init__(self, parent=None):
        super(helpDisplay, self).__init__(parent)
        # make page unmodifiable
        self.page().setContentEditable(False)
        # initialize settings
        # Find out the nearest font to Palatino
        qf = QFont()
        qf.setStyleStrategy(QFont.PreferAntialias + QFont.PreferMatch)
        qf.setStyleHint(QFont.Serif)
        qf.setFamily(QString(u'Palatino'))
        qfi = QFontInfo(qf)
        # set the default font to that serif font
        self.settings().setFontFamily(QWebSettings.StandardFont, qfi.family())
        self.settings().setFontSize(QWebSettings.DefaultFontSize, 16)
        self.settings().setFontSize(QWebSettings.MinimumFontSize, 6)
        self.settings().setFontSize(QWebSettings.MinimumLogicalFontSize, 6)
        self.textZoomFactor = 1.0
        self.setTextSizeMultiplier(self.textZoomFactor)
        self.settings().setAttribute(QWebSettings.JavascriptEnabled, False)
        self.settings().setAttribute(QWebSettings.JavaEnabled, False)
        self.settings().setAttribute(QWebSettings.PluginsEnabled, False)
        self.settings().setAttribute(QWebSettings.ZoomTextOnly, True)
        #self.settings().setAttribute(QWebSettings.SiteSpecificQuirksEnabled, False)
        self.userFindText = QString()
        # Look for pqHelp.html in the app folder and copy its text into
        # a local buffer. If it isn't found, put a message there instead.
        # We need to keep it in order to implement the "back" function.
        helpPath = os.path.join(IMC.appBasePath, u'pqHelp.html')
        helpFile = QFile(helpPath)
        if not helpFile.exists():
            self.HTMLstring = QString('''<p>Unable to locate pqHelp.html.</p>
	    <p>Looking in {0}'''.format(helpPath))
        elif not helpFile.open(QIODevice.ReadOnly):
            self.HTMLstring = QString('''<p>Unable to open pqHelp.html.</p>
	    <p>Looking in {0}</p><p>Error code {1}</p>'''.format(
                helpPath, helpFile.error()))
        else:
            helpStream = QTextStream(helpFile)
            helpStream.setCodec('ISO8859-1')
            self.HTMLstring = helpStream.readAll()
        self.setHtml(self.HTMLstring)
Example #6
0
File: Main.py Project: aswild/yacc
    def get_monospace_font(self):
        preferred_fonts_windows = ['Courier New', 'Lucida Console']
        preferred_fonts_linux = ['Noto Mono', 'Monospace']

        if 'Windows' in platform.system():
            pfonts = preferred_fonts_windows
        else:
            pfonts = preferred_fonts_linux

        for fontname in pfonts:
            font = QFont(fontname)
            font.setPointSize(12)
            info = QFontInfo(font)
            if info.fixedPitch():
                return font

        print('Warning: no font in preferred list %s found!'%pfonts)
        font = QFont()
        font.setStyleHint(QFont.Monospace)
        info = QFontInfo(font)
        print('Selected font family: %s'%info.family())