PluginDocumentationSets.py

Sat, 15 Oct 2016 15:23:08 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 15 Oct 2016 15:23:08 +0200
changeset 1
a1e4eb168c29
parent 0
2866d286183f
child 21
01924b173529
permissions
-rw-r--r--

Finished the plug-in code.

1
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
1 # -*- coding: utf-8 -*-
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
2
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
3 # Copyright (c) 2016 Detlev Offenbach <detlev@die-offenbachs.de>
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
4 #
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
5
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
6 """
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
7 Module implementing the QtHelp documentation provider plug-in.
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
8 """
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
9
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
10 from __future__ import unicode_literals
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
11
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
12 import os
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
13 import glob
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
14
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
15 from PyQt5.QtCore import QObject
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
16
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
17 # Start-Of-Header
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
18 name = "Documentation Sets"
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
19 author = "Detlev Offenbach <detlev@die-offenbachs.de>"
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
20 autoactivate = True
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
21 deactivateable = True
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
22 version = "1.0.0"
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
23 className = "PluginDocumentationSets"
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
24 packageName = "DocumentationSets"
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
25 shortDescription = "Documentation sets in QtHelp format (*.qch)"
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
26 longDescription = (
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
27 """This plug-in provides an interface to additional documentation sets"""
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
28 """ in QtHelp format (*.qch) for registration with the eric help/web"""
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
29 """ browser or Qt Assistant."""
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
30 )
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
31 needsRestart = False
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
32 pyqtApi = 2
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
33 python2Compatible = True
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
34 # End-Of-Header
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
35
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
36 error = ""
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
37
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
38
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
39 def helpFiles():
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
40 """
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
41 Module function to return the documentation sets provided by this plug-in.
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
42
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
43 @return dictionary with documentation set type as key and list of
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
44 documentation files as values
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
45 @rtype dict (key: str, value: list of str)
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
46 """
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
47 documentationSets = {}
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
48 documentationSetsDir = os.path.join(os.path.dirname(__file__),
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
49 "DocumentationSets")
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
50 if os.path.isdir(documentationSetsDir):
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
51 documentationTypes = [
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
52 d for d in os.listdir(documentationSetsDir)
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
53 if os.path.isdir(os.path.join(documentationSetsDir, d))
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
54 ]
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
55 for documentationType in documentationTypes:
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
56 documentationSets[documentationType] = glob.glob(
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
57 os.path.join(documentationSetsDir, documentationType, "*.qch"))
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
58
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
59 return documentationSets
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
60
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
61
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
62 class PluginDocumentationSets(QObject):
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
63 """
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
64 Class implementing the QtHelp documentation provider plug-in.
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
65 """
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
66 def __init__(self, ui):
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
67 """
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
68 Constructor
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
69
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
70 @param ui reference to the user interface object (UI.UserInterface)
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
71 """
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
72 super(PluginDocumentationSets, self).__init__(ui)
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
73 self.__ui = ui
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
74
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
75 def activate(self):
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
76 """
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
77 Public method to activate this plugin.
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
78
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
79 @return tuple of None and activation status (boolean)
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
80 """
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
81 global error
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
82 error = "" # clear previous error
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
83
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
84 return None, True
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
85
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
86 def deactivate(self):
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
87 """
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
88 Public method to deactivate this plugin.
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
89 """
a1e4eb168c29 Finished the plug-in code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents: 0
diff changeset
90 pass

eric ide

mercurial