Blob Blame History Raw
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