Helpviewer/HelpDocsInstaller.py

Fri, 25 Dec 2015 17:04:54 +0100

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Fri, 25 Dec 2015 17:04:54 +0100
branch
6_1_x
changeset 4623
f61df97c10ac
parent 4021
195a471c327b
child 4631
5c1a96925da4
permissions
-rw-r--r--

Fix for detection of Qt documentation files (*.qch). The Qt installer is missing a symbolic link.
(grafted from 8800cbcbb496fbe07208bcf9b7ff603aa855ef9e)

0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
1 # -*- coding: utf-8 -*-
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
2
4021
195a471c327b Updated copyright for 2015.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3992
diff changeset
3 # Copyright (c) 2009 - 2015 Detlev Offenbach <detlev@die-offenbachs.de>
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
4 #
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
5
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
6 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
7 Module implementing a thread class populating and updating the QtHelp
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
8 documentation database.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
9 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
10
3145
a9de05d4a22f # __IGNORE_WARNING__ added/ removed.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 3060
diff changeset
11 from __future__ import unicode_literals
2525
8b507a9a2d40 Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2302
diff changeset
12
4623
f61df97c10ac Fix for detection of Qt documentation files (*.qch). The Qt installer is missing a symbolic link.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
13 import os
f61df97c10ac Fix for detection of Qt documentation files (*.qch). The Qt installer is missing a symbolic link.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
14
f61df97c10ac Fix for detection of Qt documentation files (*.qch). The Qt installer is missing a symbolic link.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
15 from PyQt5.QtCore import pyqtSignal, qVersion, QThread, Qt, QMutex, \
f61df97c10ac Fix for detection of Qt documentation files (*.qch). The Qt installer is missing a symbolic link.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
16 QDateTime, QDir, QLibraryInfo, QFileInfo
3656
441956d8fce5 Started porting eric5 to PyQt5.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3591
diff changeset
17 from PyQt5.QtHelp import QHelpEngineCore
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
18
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3656
diff changeset
19 from eric6config import getConfig
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
20
945
8cd4d08fa9f6 Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 791
diff changeset
21
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
22 class HelpDocsInstaller(QThread):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
23 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
24 Class implementing the worker thread populating and updating the QtHelp
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
25 documentation database.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
26
501
5c615a85241a Finished porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 487
diff changeset
27 @signal errorMessage(str) emitted, if an error occurred during
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
28 the installation of the documentation
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
29 @signal docsInstalled(bool) emitted after the installation has finished
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
30 """
487
4d41d03d3d00 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
31 errorMessage = pyqtSignal(str)
4d41d03d3d00 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
32 docsInstalled = pyqtSignal(bool)
4d41d03d3d00 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
33
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
34 def __init__(self, collection):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
35 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
36 Constructor
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
37
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
38 @param collection full pathname of the collection file (string)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
39 """
2525
8b507a9a2d40 Script changes: Future import added, super calls modified and unicode behavior for str.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents: 2302
diff changeset
40 super(HelpDocsInstaller, self).__init__()
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
41
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
42 self.__abort = False
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
43 self.__collection = collection
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
44 self.__mutex = QMutex()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
45
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
46 def stop(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
47 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
48 Public slot to stop the installation procedure.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
49 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
50 if not self.isRunning():
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
51 return
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
52
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
53 self.__mutex.lock()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
54 self.__abort = True
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
55 self.__mutex.unlock()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
56 self.wait()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
57
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
58 def installDocs(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
59 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
60 Public method to start the installation procedure.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
61 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
62 self.start(QThread.LowPriority)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
63
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
64 def run(self):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
65 """
3591
2f2a4a76dd22 Corrected a bunch of source docu issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3484
diff changeset
66 Public method executed by the thread.
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
67 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
68 engine = QHelpEngineCore(self.__collection)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
69 engine.setupData()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
70 changes = False
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
71
2298
fa4f79c34e0c Added support for Qt5 documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
72 qt4Docs = ["designer", "linguist", "qt"]
2999
28c75409a78f Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
73 qt5Docs = [
4623
f61df97c10ac Fix for detection of Qt documentation files (*.qch). The Qt installer is missing a symbolic link.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
74 "activeqt", "qdoc", "qmake", "qt3d", "qt3drenderer",
f61df97c10ac Fix for detection of Qt documentation files (*.qch). The Qt installer is missing a symbolic link.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
75 "qtandroidextras", "qtassistant", "qtbluetooth", "qtcanvas3d",
f61df97c10ac Fix for detection of Qt documentation files (*.qch). The Qt installer is missing a symbolic link.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
76 "qtconcurrent", "qtcore", "qtdbus", "qtdesigner", "qtdoc",
f61df97c10ac Fix for detection of Qt documentation files (*.qch). The Qt installer is missing a symbolic link.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
77 "qtenginio", "qtenginiooverview", "qtenginoqml",
f61df97c10ac Fix for detection of Qt documentation files (*.qch). The Qt installer is missing a symbolic link.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
78 "qtgraphicaleffects", "qtgui", "qthelp", "qtimageformats",
f61df97c10ac Fix for detection of Qt documentation files (*.qch). The Qt installer is missing a symbolic link.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
79 "qtlinguist", "qtlocation", "qtmaxextras", "qtmultimedia",
f61df97c10ac Fix for detection of Qt documentation files (*.qch). The Qt installer is missing a symbolic link.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
80 "qtmultimediawidgets", "qtnetwork", "qtnfc", "qtopengl",
f61df97c10ac Fix for detection of Qt documentation files (*.qch). The Qt installer is missing a symbolic link.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
81 "qtplatformheaders", "qtpositioning", "qtprintsupport", "qtqml",
f61df97c10ac Fix for detection of Qt documentation files (*.qch). The Qt installer is missing a symbolic link.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
82 "qtquick", "qtquickcontrols", "qtquickdialogs", "qtquickextras",
f61df97c10ac Fix for detection of Qt documentation files (*.qch). The Qt installer is missing a symbolic link.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
83 "qtquicklayouts", "qtscript", "qtscripttools", "qtsensors",
f61df97c10ac Fix for detection of Qt documentation files (*.qch). The Qt installer is missing a symbolic link.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
84 "qtserialport", "qtsql", "qtsvg", "qttestlib", "qtuitools",
f61df97c10ac Fix for detection of Qt documentation files (*.qch). The Qt installer is missing a symbolic link.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
85 "qtwebchannel", "qtwebengine", "qtwebenginewidgets", "qtwebkit",
f61df97c10ac Fix for detection of Qt documentation files (*.qch). The Qt installer is missing a symbolic link.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
86 "qtwebkitexamples", "qtwebsockets", "qtwidgets", "qtwinextras",
f61df97c10ac Fix for detection of Qt documentation files (*.qch). The Qt installer is missing a symbolic link.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
87 "qtx11extras", "qtxml", "qtxmlpatterns"]
2298
fa4f79c34e0c Added support for Qt5 documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
88 for qtDocs, version in [(qt4Docs, 4), (qt5Docs, 5)]:
fa4f79c34e0c Added support for Qt5 documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
89 for doc in qtDocs:
fa4f79c34e0c Added support for Qt5 documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
90 changes |= self.__installQtDoc(doc, version, engine)
fa4f79c34e0c Added support for Qt5 documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
91 self.__mutex.lock()
fa4f79c34e0c Added support for Qt5 documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
92 if self.__abort:
fa4f79c34e0c Added support for Qt5 documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
93 engine = None
fa4f79c34e0c Added support for Qt5 documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
94 self.__mutex.unlock()
fa4f79c34e0c Added support for Qt5 documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
95 return
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
96 self.__mutex.unlock()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
97
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3656
diff changeset
98 changes |= self.__installEric6Doc(engine)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
99 engine = None
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
100 del engine
487
4d41d03d3d00 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
101 self.docsInstalled.emit(changes)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
102
2298
fa4f79c34e0c Added support for Qt5 documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
103 def __installQtDoc(self, name, version, engine):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
104 """
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
105 Private method to install/update a Qt help document.
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
106
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
107 @param name name of the Qt help document (string)
2298
fa4f79c34e0c Added support for Qt5 documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
108 @param version Qt version of the help documens (integer)
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
109 @param engine reference to the help engine (QHelpEngineCore)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
110 @return flag indicating success (boolean)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
111 """
2298
fa4f79c34e0c Added support for Qt5 documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
112 versionKey = "qt_version_{0}@@{1}".format(version, name)
7
c679fb30c8f3 Change code dealing with QVariant (and QSettings) to use the PyQt4 QVariant v2 API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
113 info = engine.customValue(versionKey, "")
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
114 lst = info.split('|')
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
115
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
116 dt = QDateTime()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
117 if len(lst) and lst[0]:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
118 dt = QDateTime.fromString(lst[0], Qt.ISODate)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
119
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
120 qchFile = ""
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
121 if len(lst) == 2:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
122 qchFile = lst[1]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
123
2298
fa4f79c34e0c Added support for Qt5 documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
124 if version == 4:
2999
28c75409a78f Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
125 docsPath = QDir(
3034
7ce719013078 Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3022
diff changeset
126 QLibraryInfo.location(QLibraryInfo.DocumentationPath) +
2999
28c75409a78f Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
127 QDir.separator() + "qch")
2298
fa4f79c34e0c Added support for Qt5 documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
128 elif version == 5:
4623
f61df97c10ac Fix for detection of Qt documentation files (*.qch). The Qt installer is missing a symbolic link.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
129 docsPath = QLibraryInfo.location(QLibraryInfo.DocumentationPath)
f61df97c10ac Fix for detection of Qt documentation files (*.qch). The Qt installer is missing a symbolic link.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
130 if not os.path.isdir(docsPath):
f61df97c10ac Fix for detection of Qt documentation files (*.qch). The Qt installer is missing a symbolic link.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
131 # Qt installer is a bit buggy; it's missing a symbolic link
f61df97c10ac Fix for detection of Qt documentation files (*.qch). The Qt installer is missing a symbolic link.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
132 docsPathList = QDir.fromNativeSeparators(docsPath).split("/")
f61df97c10ac Fix for detection of Qt documentation files (*.qch). The Qt installer is missing a symbolic link.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
133 docsPath = os.sep.join(
f61df97c10ac Fix for detection of Qt documentation files (*.qch). The Qt installer is missing a symbolic link.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
134 docsPathList[:-3] +
f61df97c10ac Fix for detection of Qt documentation files (*.qch). The Qt installer is missing a symbolic link.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
135 ["Docs", "Qt-{0}".format(qVersion()[:3])])
f61df97c10ac Fix for detection of Qt documentation files (*.qch). The Qt installer is missing a symbolic link.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 4021
diff changeset
136 docsPath = QDir(docsPath)
2298
fa4f79c34e0c Added support for Qt5 documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
137 else:
fa4f79c34e0c Added support for Qt5 documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
138 # unsupported Qt version
fa4f79c34e0c Added support for Qt5 documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 1509
diff changeset
139 return False
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
140
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
141 files = docsPath.entryList(["*.qch"])
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
142 if not files:
3022
57179e4cdadd Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2999
diff changeset
143 engine.setCustomValue(
57179e4cdadd Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2999
diff changeset
144 versionKey,
7
c679fb30c8f3 Change code dealing with QVariant (and QSettings) to use the PyQt4 QVariant v2 API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
145 QDateTime().toString(Qt.ISODate) + '|')
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
146 return False
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
147
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
148 for f in files:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
149 if f.startswith(name):
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
150 fi = QFileInfo(docsPath.absolutePath() + QDir.separator() + f)
2999
28c75409a78f Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
151 namespace = QHelpEngineCore.namespaceName(
28c75409a78f Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
152 fi.absoluteFilePath())
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
153 if not namespace:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
154 continue
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
155
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
156 if dt.isValid() and \
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
157 namespace in engine.registeredDocumentations() and \
2999
28c75409a78f Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
158 fi.lastModified().toString(Qt.ISODate) == \
28c75409a78f Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
159 dt.toString(Qt.ISODate) and \
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
160 qchFile == fi.absoluteFilePath():
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
161 return False
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
162
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
163 if namespace in engine.registeredDocumentations():
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
164 engine.unregisterDocumentation(namespace)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
165
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
166 if not engine.registerDocumentation(fi.absoluteFilePath()):
487
4d41d03d3d00 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
167 self.errorMessage.emit(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
168 self.tr(
2999
28c75409a78f Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
169 """<p>The file <b>{0}</b> could not be"""
3034
7ce719013078 Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3022
diff changeset
170 """ registered. <br/>Reason: {1}</p>""")
3035
36e9f388958b Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
171 .format(fi.absoluteFilePath, engine.error())
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
172 )
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
173 return False
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
174
3022
57179e4cdadd Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2999
diff changeset
175 engine.setCustomValue(
57179e4cdadd Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2999
diff changeset
176 versionKey,
3034
7ce719013078 Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3022
diff changeset
177 fi.lastModified().toString(Qt.ISODate) + '|' +
7
c679fb30c8f3 Change code dealing with QVariant (and QSettings) to use the PyQt4 QVariant v2 API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
178 fi.absoluteFilePath())
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
179 return True
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
180
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
181 return False
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
182
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3656
diff changeset
183 def __installEric6Doc(self, engine):
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
184 """
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3656
diff changeset
185 Private method to install/update the eric6 help documentation.
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
186
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
187 @param engine reference to the help engine (QHelpEngineCore)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
188 @return flag indicating success (boolean)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
189 """
3670
f0cb7579c0b4 Finished renaming eric5 for PyQt5 to eric6.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3656
diff changeset
190 versionKey = "eric6_ide"
7
c679fb30c8f3 Change code dealing with QVariant (and QSettings) to use the PyQt4 QVariant v2 API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
191 info = engine.customValue(versionKey, "")
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
192 lst = info.split('|')
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
193
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
194 dt = QDateTime()
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
195 if len(lst) and lst[0]:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
196 dt = QDateTime.fromString(lst[0], Qt.ISODate)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
197
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
198 qchFile = ""
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
199 if len(lst) == 2:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
200 qchFile = lst[1]
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
201
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
202 docsPath = QDir(getConfig("ericDocDir") + QDir.separator() + "Help")
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
203
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
204 files = docsPath.entryList(["*.qch"])
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
205 if not files:
3022
57179e4cdadd Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2999
diff changeset
206 engine.setCustomValue(
57179e4cdadd Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2999
diff changeset
207 versionKey, QDateTime().toString(Qt.ISODate) + '|')
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
208 return False
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
209
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
210 for f in files:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
211 if f == "source.qch":
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
212 fi = QFileInfo(docsPath.absolutePath() + QDir.separator() + f)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
213 if dt.isValid() and \
2999
28c75409a78f Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
214 fi.lastModified().toString(Qt.ISODate) == \
28c75409a78f Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
215 dt.toString(Qt.ISODate) and \
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
216 qchFile == fi.absoluteFilePath():
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
217 return False
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
218
2999
28c75409a78f Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
219 namespace = QHelpEngineCore.namespaceName(
28c75409a78f Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
220 fi.absoluteFilePath())
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
221 if not namespace:
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
222 continue
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
223
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
224 if namespace in engine.registeredDocumentations():
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
225 engine.unregisterDocumentation(namespace)
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
226
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
227 if not engine.registerDocumentation(fi.absoluteFilePath()):
487
4d41d03d3d00 Continued porting signal/slot usage to the new API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 168
diff changeset
228 self.errorMessage.emit(
3190
a9a94491c4fd Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3160
diff changeset
229 self.tr(
2999
28c75409a78f Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2302
diff changeset
230 """<p>The file <b>{0}</b> could not be"""
3034
7ce719013078 Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3022
diff changeset
231 """ registered. <br/>Reason: {1}</p>""")
3035
36e9f388958b Fixed a bunch of indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3034
diff changeset
232 .format(fi.absoluteFilePath, engine.error())
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
233 )
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
234 return False
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
235
3022
57179e4cdadd Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2999
diff changeset
236 engine.setCustomValue(
57179e4cdadd Fixed a bunch of visible indentation issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 2999
diff changeset
237 versionKey,
3034
7ce719013078 Fixed various coding style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 3022
diff changeset
238 fi.lastModified().toString(Qt.ISODate) + '|' +
7
c679fb30c8f3 Change code dealing with QVariant (and QSettings) to use the PyQt4 QVariant v2 API.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
239 fi.absoluteFilePath())
0
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
240 return True
de9c2efb9d02 Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff changeset
241
168
3383117f894b Fixed a few bugs in the web browser.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 18
diff changeset
242 return False

eric ide

mercurial