Beispiel #1
0
 def _find_font(self):
     font = QFont()
     wanted_size = self._point_size
     font.setStyleStrategy(QFont.StyleStrategy(QFont.OpenGLCompatible | QFont.PreferAntialias))
     fm = QFontMetricsF(font)
     width = fm.width("888")
     ratio = 1.8*wanted_size/max(width, fm.ascent())
     self._font = font
     self._font_zoom = ratio
Beispiel #2
0
def getMonoFont(fontsize=12, msg=False):
    monofont = QFont()
    monofont.setStyleStrategy(QFont.PreferAntialias+QFont.PreferMatch)
    monofont.setStyleHint(QFont.Courier)
    monofont.setFamily(IMC.fontFamily)
    monofont.setFixedPitch(True) # probably unnecessary
    monofont.setPointSize(fontsize)
    if msg and (monofont.family() != IMC.fontFamily):
        infoMsg("Font {0} not available, using {1}".format(
            IMC.fontFamily, monoinf.family()) )
    return monofont
Beispiel #3
0
 def _find_font(self):
     font = QFont()
     wanted_size = self._point_size
     font.setStyleStrategy(
         QFont.StyleStrategy(QFont.OpenGLCompatible
                             | QFont.PreferAntialias))
     fm = QFontMetricsF(font)
     width = fm.width("888")
     ratio = 1.8 * wanted_size / max(width, fm.ascent())
     self._font = font
     self._font_zoom = ratio
    def displayLayerProperties( self ):
        """ It is required to build the QLabel widget every time it is set """        
        propertiesFont = QFont()
        propertiesFont.setItalic( True )
        propertiesFont.setPointSize( 8 )
        propertiesFont.setStyleStrategy( QFont.PreferAntialias )

        label = QLabel( self.properties )
        label.setTextInteractionFlags( Qt.TextSelectableByMouse | Qt.TextSelectableByKeyboard )
        label.setFont( propertiesFont )
        self.legend.setItemWidget( self.child, 0, label )
Beispiel #5
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()
Beispiel #6
0
    def displayLayerProperties(self):
        """ It is required to build the QLabel widget every time it is set """
        propertiesFont = QFont()
        propertiesFont.setItalic(True)
        propertiesFont.setPointSize(8)
        propertiesFont.setStyleStrategy(QFont.PreferAntialias)

        label = QLabel(self.properties)
        label.setTextInteractionFlags(Qt.TextSelectableByMouse
                                      | Qt.TextSelectableByKeyboard)
        label.setFont(propertiesFont)
        self.legend.setItemWidget(self.child, 0, label)
Beispiel #7
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()
Beispiel #8
0
def fontHasChar(fontFamily, char):
    if not hasFontAvailability():
        return False
    from PyQt4.QtGui import QFont, QFontMetrics
    from PyQt4.QtCore import QString

    global _currentFontFamily
    global _currentFontMetrics

    if not _currentFontFamily or _currentFontFamily != fontFamily:
        _currentFontFamily = fontFamily
        font = QFont(fontFamily)
        oldStrategy = font.styleStrategy()
        font.setStyleStrategy(oldStrategy and QFont.NoFontMerging)
        _currentFontMetrics = QFontMetrics(font)
    return _currentFontMetrics.inFont(QString(char).at(0))
Beispiel #9
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)
Beispiel #10
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)