UI/Previewer.py

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

eric ide

mercurial