From 39dc2a200a11a293611e995429c80c9b0fa545e7 Mon Sep 17 00:00:00 2001
From: Andrei Kopats <hlamer@tut.by>
Date: Mon, 19 Oct 2015 23:15:55 +0300
Subject: [PATCH] docs: build fix
---
qutepart/__init__.py | 33 ++++++++++++++++++++-------------
qutepart/rectangularselection.py | 5 ++---
qutepart/syntaxhlighter.py | 12 +++++++-----
3 files changed, 29 insertions(+), 21 deletions(-)
diff --git a/qutepart/__init__.py b/qutepart/__init__.py
index 298b3e5..4f05ab3 100644
--- a/qutepart/__init__.py
+++ b/qutepart/__init__.py
@@ -2,6 +2,7 @@
=========================================================
"""
+import sys
import os.path
import logging
import platform
@@ -15,7 +16,7 @@
'Use next code:\n\timport sip\n\tsip.setapi("QString", 2)\n'\
'before importing Qutepart'
-from PyQt4.QtCore import QRect, Qt, QEvent, pyqtSignal
+from PyQt4.QtCore import QRect, Qt, pyqtSignal
from PyQt4.QtGui import QAction, QApplication, QColor, QBrush, \
QDialog, QFont, \
QIcon, QKeySequence, QPainter, QPen, QPalette, \
@@ -24,15 +25,24 @@
QTextBlock, QTextEdit, QTextFormat
from qutepart.syntax import SyntaxManager
-from qutepart.syntaxhlighter import SyntaxHighlighter
-from qutepart.brackethlighter import BracketHighlighter
-from qutepart.completer import Completer
-from qutepart.lines import Lines
-from qutepart.rectangularselection import RectangularSelection
-import qutepart.sideareas
-from qutepart.indenter import Indenter
-import qutepart.vim
-import qutepart.bookmarks
+
+if 'sphinx-build' not in sys.argv[0]:
+ """When building documentation on rtfd.org, Qt is not available and is mocked
+ in conf.py. But mocked Qt doesn't allow to create some global variables.
+ Therefore this code is not executed when building docs
+ """
+ from qutepart.syntaxhlighter import SyntaxHighlighter
+ from qutepart.brackethlighter import BracketHighlighter
+ from qutepart.completer import Completer
+ from qutepart.lines import Lines
+ from qutepart.rectangularselection import RectangularSelection
+ import qutepart.sideareas
+ from qutepart.indenter import Indenter
+ import qutepart.vim
+ import qutepart.bookmarks
+
+ def setPositionInBlock(cursor, positionInBlock, anchor=QTextCursor.MoveAnchor):
+ return cursor.setPosition(cursor.block().position() + positionInBlock, anchor)
@@ -65,9 +75,6 @@ def _positionInBlock(cursor):
QTextCursor.positionInBlock = _positionInBlock
-def setPositionInBlock(cursor, positionInBlock, anchor=QTextCursor.MoveAnchor):
- return cursor.setPosition(cursor.block().position() + positionInBlock, anchor)
-
class Qutepart(QPlainTextEdit):
'''Qutepart is based on QPlainTextEdit, and you can use QPlainTextEdit methods,
diff --git a/qutepart/rectangularselection.py b/qutepart/rectangularselection.py
index 74d0004..f37c086 100644
--- a/qutepart/rectangularselection.py
+++ b/qutepart/rectangularselection.py
@@ -1,5 +1,5 @@
from PyQt4.QtCore import Qt, QMimeData
-from PyQt4.QtGui import QApplication, QKeyEvent, QKeySequence, QPalette, QTextCursor, QTextEdit, QWidget
+from PyQt4.QtGui import QApplication, QKeyEvent, QKeySequence, QPalette, QTextCursor, QTextEdit
class RectangularSelection:
@@ -10,10 +10,9 @@ class RectangularSelection:
MIME_TYPE = 'text/rectangular-selection'
# any of this modifiers with mouse select text
- # if hasattr(Qt, 'AltModifier') to make the docs buildable on rtfd.org
MOUSE_MODIFIERS = (Qt.AltModifier | Qt.ControlModifier,
Qt.AltModifier | Qt.ShiftModifier,
- Qt.AltModifier) if hasattr(Qt, 'AltModifier') else None
+ Qt.AltModifier)
_MAX_SIZE = 256
diff --git a/qutepart/syntaxhlighter.py b/qutepart/syntaxhlighter.py
index 7d2f065..6d3b9dc 100644
--- a/qutepart/syntaxhlighter.py
+++ b/qutepart/syntaxhlighter.py
@@ -4,18 +4,18 @@
import time
-
from PyQt4.QtCore import QObject, QTimer
from PyQt4.QtGui import QApplication, QBrush, QColor, QFont, \
QTextBlockUserData, QTextCharFormat, QTextLayout
import qutepart.syntax
-"""PyQt does not define proper comparison for QTextLayout.FormatRange
-Define it to check correctly, if formats has changed.
-It is important for the performance
-"""
+
def _cmpFormatRanges(a, b):
+ """PyQt does not define proper comparison for QTextLayout.FormatRange
+ Define it to check correctly, if formats has changed.
+ It is important for the performance
+ """
if a.format == b.format and \
a.start == b.start and \
a.length == b.length:
@@ -23,6 +23,7 @@ def _cmpFormatRanges(a, b):
else:
return cmp(id(a), id(b))
+
def _formatRangeListsEqual(a, b):
if len(a) != len(b):
return False
@@ -88,6 +89,7 @@ def _onTimer(self):
"""
_gLastChangeTime = -777.
+
class SyntaxHighlighter(QObject):
# when initially parsing text, it is better, if highlighted text is drawn without flickering