UI/Previewer.py

branch
Py2 comp.
changeset 2538
b2642e7a4c18
parent 2525
8b507a9a2d40
child 2677
3d4277929fb3
equal deleted inserted replaced
2533:8fb5922867f2 2538:b2642e7a4c18
273 """ 273 """
274 Private method to save scroll bar positions for a previewed editor. 274 Private method to save scroll bar positions for a previewed editor.
275 """ 275 """
276 frame = self.previewView.page().mainFrame() 276 frame = self.previewView.page().mainFrame()
277 if frame.contentsSize() == QSize(0, 0): 277 if frame.contentsSize() == QSize(0, 0):
278 return # no valid data, nothing to save 278 return # no valid data, nothing to save
279 279
280 pos = frame.scrollPosition() 280 pos = frame.scrollPosition()
281 self.__scrollBarPositions[self.__previewedPath] = pos 281 self.__scrollBarPositions[self.__previewedPath] = pos
282 self.__hScrollBarAtEnd[self.__previewedPath] = \ 282 self.__hScrollBarAtEnd[self.__previewedPath] = \
283 frame.scrollBarMaximum(Qt.Horizontal) == pos.x() 283 frame.scrollBarMaximum(Qt.Horizontal) == pos.x()
317 e5App().getObject("UserInterface").launchHelpViewer(url.toString()) 317 e5App().getObject("UserInterface").launchHelpViewer(url.toString())
318 318
319 319
320 class PreviewProcessingThread(QThread): 320 class PreviewProcessingThread(QThread):
321 """ 321 """
322 Class implementing a thread to process some text into HTML usable by the 322 Class implementing a thread to process some text into HTML usable by the
323 previewer view. 323 previewer view.
324 324
325 @signal htmlReady(str,str) emitted with the file name and processed HTML to signal 325 @signal htmlReady(str,str) emitted with the file name and processed HTML to signal
326 the availability of the processed HTML 326 the availability of the processed HTML
327 """ 327 """
500 (see 500 (see
501 <a href="http://achinghead.com/python-markdown-adding-insert-delete.html"> 501 <a href="http://achinghead.com/python-markdown-adding-insert-delete.html">
502 this page for details</a>) 502 this page for details</a>)
503 """ 503 """
504 DEL_RE = r'(~~)(.*?)~~' 504 DEL_RE = r'(~~)(.*?)~~'
505
505 def extendMarkdown(self, md, md_globals): 506 def extendMarkdown(self, md, md_globals):
506 # Create the del pattern 507 # Create the del pattern
507 del_tag = markdown.inlinepatterns.SimpleTagPattern(self.DEL_RE, 'del') 508 del_tag = markdown.inlinepatterns.SimpleTagPattern(self.DEL_RE, 'del')
508 # Insert del pattern into markdown parser 509 # Insert del pattern into markdown parser
509 md.inlinePatterns.add('del', del_tag, '>not_strong') 510 md.inlinePatterns.add('del', del_tag, '>not_strong')
510 511
511 extensions.append(_StrikeThroughExtension()) 512 extensions.append(_StrikeThroughExtension())
512 513
513 try: 514 try:
514 return markdown.markdown(text, extensions + ['mathjax']) 515 return markdown.markdown(text, extensions + ['mathjax'])
515 except (ImportError, ValueError): 516 except (ImportError, ValueError):
516 # markdown raises ValueError or ImportError, depends on version 517 # markdown raises ValueError or ImportError, depends on version
517 # It is not clear, how to distinguish missing mathjax from other errors. 518 # It is not clear, how to distinguish missing mathjax from other errors.
518 # So keep going without mathjax. 519 # So keep going without mathjax.
519 return markdown.markdown(text, extensions) 520 return markdown.markdown(text, extensions)

eric ide

mercurial