src/eric7/DocumentationTools/QtHelpGenerator.py

branch
eric7
changeset 9624
b47dfa7a137d
parent 9536
c1c84299bef3
child 9653
e67609152c5e
equal deleted inserted replaced
9623:9c1f429cb56b 9624:b47dfa7a137d
12 import shutil 12 import shutil
13 import subprocess # secok 13 import subprocess # secok
14 import sys 14 import sys
15 15
16 from eric7 import Preferences 16 from eric7 import Preferences
17 from eric7.Utilities import generateQtToolName, getQtBinariesPath, html_encode, joinext 17 from eric7.SystemUtilities import FileSystemUtilities, QtUtilities
18 from eric7.Utilities import html_encode
18 19
19 HelpCollection = r"""<?xml version="1.0" encoding="utf-8" ?> 20 HelpCollection = r"""<?xml version="1.0" encoding="utf-8" ?>
20 <QHelpCollectionProject version="1.0"> 21 <QHelpCollectionProject version="1.0">
21 <docFiles> 22 <docFiles>
22 <register> 23 <register>
130 131
131 self.packages[package] = {"subpackages": {}, "modules": {}} 132 self.packages[package] = {"subpackages": {}, "modules": {}}
132 133
133 kwEntry = ( 134 kwEntry = (
134 "{0} (Package)".format(package.split(".")[-1]), 135 "{0} (Package)".format(package.split(".")[-1]),
135 joinext("index-{0}".format(package), ".html"), 136 FileSystemUtilities.joinext("index-{0}".format(package), ".html"),
136 ) 137 )
137 if kwEntry not in self.keywords: 138 if kwEntry not in self.keywords:
138 self.keywords.append(kwEntry) 139 self.keywords.append(kwEntry)
139 140
140 if moduleDocument.isEmpty(): 141 if moduleDocument.isEmpty():
148 elt["modules"][moduleDocument.name()] = moduleDocument.name() 149 elt["modules"][moduleDocument.name()] = moduleDocument.name()
149 150
150 if "__init__" not in file: 151 if "__init__" not in file:
151 kwEntry = ( 152 kwEntry = (
152 "{0} (Module)".format(moduleDocument.name().split(".")[-1]), 153 "{0} (Module)".format(moduleDocument.name().split(".")[-1]),
153 joinext(moduleDocument.name(), ".html"), 154 FileSystemUtilities.joinext(moduleDocument.name(), ".html"),
154 ) 155 )
155 if kwEntry not in self.keywords: 156 if kwEntry not in self.keywords:
156 self.keywords.append(kwEntry) 157 self.keywords.append(kwEntry)
157 for kw in moduleDocument.getQtHelpKeywords(): 158 for kw in moduleDocument.getQtHelpKeywords():
158 kwEntry = ( 159 kwEntry = (
159 kw[0], 160 kw[0],
160 "{0}{1}".format(joinext(moduleDocument.name(), ".html"), kw[1]), 161 "{0}{1}".format(
162 FileSystemUtilities.joinext(moduleDocument.name(), ".html"), kw[1]
163 ),
161 ) 164 )
162 if kwEntry not in self.keywords: 165 if kwEntry not in self.keywords:
163 self.keywords.append(kwEntry) 166 self.keywords.append(kwEntry)
164 167
165 def __generateSections(self, package, level): 168 def __generateSections(self, package, level):
173 indent = level * " " 176 indent = level * " "
174 indent1 = indent + " " 177 indent1 = indent + " "
175 s = indent + '<section title="{0}" ref="{1}">\n'.format( 178 s = indent + '<section title="{0}" ref="{1}">\n'.format(
176 package == "00index" and self.title or package, 179 package == "00index" and self.title or package,
177 package == "00index" 180 package == "00index"
178 and joinext("index", ".html") 181 and FileSystemUtilities.joinext("index", ".html")
179 or joinext("index-{0}".format(package), ".html"), 182 or FileSystemUtilities.joinext("index-{0}".format(package), ".html"),
180 ) 183 )
181 for subpack in sorted(self.packages[package]["subpackages"]): 184 for subpack in sorted(self.packages[package]["subpackages"]):
182 s += self.__generateSections(subpack, level + 1) + "\n" 185 s += self.__generateSections(subpack, level + 1) + "\n"
183 for mod in sorted(self.packages[package]["modules"]): 186 for mod in sorted(self.packages[package]["modules"]):
184 s += indent1 + '<section title="{0}" ref="{1}" />\n'.format( 187 s += indent1 + '<section title="{0}" ref="{1}" />\n'.format(
185 mod, joinext(mod, ".html") 188 mod, FileSystemUtilities.joinext(mod, ".html")
186 ) 189 )
187 s += indent + "</section>" 190 s += indent + "</section>"
188 return s 191 return s
189 192
190 def __convertEol(self, txt, newline): 193 def __convertEol(self, txt, newline):
286 cwd = os.getcwd() 289 cwd = os.getcwd()
287 # generate the compressed files 290 # generate the compressed files
288 qhelpgeneratorExe = Preferences.getQt("QHelpGenerator") 291 qhelpgeneratorExe = Preferences.getQt("QHelpGenerator")
289 if not qhelpgeneratorExe: 292 if not qhelpgeneratorExe:
290 qhelpgeneratorExe = os.path.join( 293 qhelpgeneratorExe = os.path.join(
291 getQtBinariesPath(libexec=True), generateQtToolName("qhelpgenerator") 294 QtUtilities.getQtBinariesPath(libexec=True),
295 QtUtilities.generateQtToolName("qhelpgenerator"),
292 ) 296 )
293 if not os.path.exists(qhelpgeneratorExe): 297 if not os.path.exists(qhelpgeneratorExe):
294 qhelpgeneratorExe = os.path.join( 298 qhelpgeneratorExe = os.path.join(
295 getQtBinariesPath(libexec=False), 299 QtUtilities.getQtBinariesPath(libexec=False),
296 generateQtToolName("qhelpgenerator"), 300 QtUtilities.generateQtToolName("qhelpgenerator"),
297 ) 301 )
298 shutil.copy(os.path.join(self.outputDir, HelpProjectFile), self.htmlDir) 302 shutil.copy(os.path.join(self.outputDir, HelpProjectFile), self.htmlDir)
299 os.chdir(self.htmlDir) 303 os.chdir(self.htmlDir)
300 subprocess.run( # secok 304 subprocess.run( # secok
301 [ 305 [

eric ide

mercurial