]> git.lyx.org Git - lyx.git/commitdiff
Fine tune image generation
authorGeorg Baum <baum@lyx.org>
Mon, 31 Dec 2012 16:17:45 +0000 (17:17 +0100)
committerGeorg Baum <baum@lyx.org>
Mon, 31 Dec 2012 17:22:05 +0000 (18:22 +0100)
development/tools/generate_symbols_images.py
src/frontends/qt4/GuiApplication.cpp

index 1ba21f88592718ddb505a386eaa4c99bd6fbb5e9..7787e5d2534a4f7923726ff424aa333561e413f8 100644 (file)
@@ -41,7 +41,8 @@ def getlist(lyxexe, lyxfile):
     regexp = re.compile(r'.*: read symbol \'(\S+)\s+inset:\s+(\S+)')
     # These insets are more complex than simply symbols, so the images need to
     # be created manually
-    skipinsets = ['big', 'font', 'matrix', 'mbox', 'oldfont', 'ref', 'space']
+    skipinsets = ['big', 'font', 'lyxblacktext', 'matrix', 'mbox', 'oldfont', \
+                  'ref', 'split', 'space', 'style']
     symbols = []
     for line in stderr.split('\n'):
         m = regexp.match(line)
@@ -52,17 +53,33 @@ def getlist(lyxexe, lyxfile):
     return symbols
 
 
-def createimage(name, path, template, lyxexe, tempdir):
+def getreplacements(filename):
+    replacements = {}
+    replacements['|'] = 'vert'
+    replacements['/'] = 'slash'
+    replacements['\\'] = 'backslash'
+    replacements['*'] = 'ast'
+    replacements['AA'] = 'textrm_AA'
+    replacements['O'] = 'textrm_O'
+    cppfile = open(filename, 'rt')
+    regexp = re.compile(r'.*"([^"]+)",\s*"([^"]+)"')
+    found = False
+    for line in cppfile.readlines():
+        if found:
+            m = regexp.match(line)
+            if m:
+                replacements[m.group(1)] = m.group(2)
+            else:
+                return replacements
+        elif line.find('PngMap sorted_png_map') == 0:
+            found = True
+
+
+def createimage(name, path, template, lyxexe, tempdir, replacements):
     """ Create the image file for symbol name in path. """
 
-    if name == '|':
-        filename = 'vert'
-    elif name == '/':
-        filename = 'slash'
-    elif name == '\\':
-        filename = 'backslash'
-    elif name == '*':
-        filename = 'ast'
+    if name in replacements.keys():
+        filename = replacements[name]
     elif name.startswith('lyx'):
         print 'Skipping ' + name
         return
@@ -121,13 +138,15 @@ def main(argv):
     if len(argv) == 3:
         (base, ext) = os.path.splitext(argv[0])
         symbols = getlist(argv[1], base)
+        cppfile = os.path.join(os.path.dirname(base), '../../src/frontends/qt4/GuiApplication.cpp')
+        replacements = getreplacements(cppfile)
         lyxtemplate = base + '.lyx'
         templatefile = open(base + '.lyx', 'rt')
         template = templatefile.read()
         templatefile.close()
         tempdir = tempfile.mkdtemp()
         for i in symbols:
-            createimage(i, argv[2], template, argv[1], tempdir)
+            createimage(i, argv[2], template, argv[1], tempdir, replacements)
         shutil.rmtree(tempdir)
     else:
         error(usage(argv[0]))
index a2b44e63086d35b40888ba4e8c93e6dbd37cd79f..07f3af2c90fea44276e5d567a543a3200c6b0cc2 100644 (file)
@@ -234,18 +234,33 @@ private:
 
 // this must be sorted alphabetically
 // Upper case comes before lower case
+// Please don't change the formatting, this list is parsed by
+// development/tools/generate_symbols_images.py.
 PngMap sorted_png_map[] = {
        { "Arrownot", "arrownot2"},
+       { "Arrowvert", "arrowvert2"},
+       { "Bowtie", "bowtie2" },
+       { "Box", "box2" },
        { "Bumpeq", "bumpeq2" },
        { "Cap", "cap2" },
+       { "Circle", "circle2" },
+       { "Colonapprox", "colonapprox2" },
+       { "Coloneq", "coloneq2" },
+       { "Coloneqq", "coloneqq2" },
+       { "Colonsim", "colonsim2" },
        { "Cup", "cup2" },
        { "Delta", "delta2" },
        { "Diamond", "diamond2" },
+       { "Doteq", "doteq2" },
        { "Downarrow", "downarrow2" },
+       { "Eqcolon", "eqcolon2" },
+       { "Eqqcolon", "eqqcolon2" },
        { "Gamma", "gamma2" },
+       { "LHD", "lhd2" },
        { "Lambda", "lambda2" },
        { "Lbag", "lbag2"},
        { "Leftarrow", "leftarrow2" },
+       { "Leftcircle", "leftcircle2" },
        { "Leftrightarrow", "leftrightarrow2" },
        { "Longarrownot", "longarrownot2"},
        { "Longleftarrow", "longleftarrow2" },
@@ -261,12 +276,16 @@ PngMap sorted_png_map[] = {
        { "Phi", "phi2" },
        { "Pi", "pi2" },
        { "Psi", "psi2" },
+       { "RHD", "rhd2" },
        { "Rbag", "rbag2"},
        { "Rightarrow", "rightarrow2" },
+       { "Rightcircle", "rightcircle2" },
        { "Sigma", "sigma2" },
+       { "Square", "square2" },
        { "Subset", "subset2" },
        { "Supset", "supset2" },
        { "Theta", "theta2" },
+       { "Thorn", "thorn2" },
        { "Uparrow", "uparrow2" },
        { "Updownarrow", "updownarrow2" },
        { "Upsilon", "upsilon2" },
@@ -277,12 +296,25 @@ PngMap sorted_png_map[] = {
        { "nLeftrightarrow", "nleftrightarrow2" },
        { "nRightarrow", "nrightarrow2" },
        { "nVDash", "nvdash3" },
+       { "nVdash", "nvdash4" },
        { "nvDash", "nvdash2" },
        { "textrm \\AA", "textrm_AA"},
        { "textrm \\O", "textrm_O"},
-       { "vDash", "vdash2" }
+       { "vDash", "vdash2" },
+       { "varDelta", "vardelta2" },
+       { "varGamma", "vargamma2" },
+       { "varLambda", "varlambda2" },
+       { "varOmega", "varomega2" },
+       { "varPhi", "varphi2" },
+       { "varPi", "varpi2" },
+       { "varPsi", "varpsi2" },
+       { "varSigma", "varsigma2" },
+       { "varTheta", "vartheta2" },
+       { "varUpsilon", "varupsilon2" },
+       { "varXi", "varxi2" }
 };
 
+
 size_t const nr_sorted_png_map = sizeof(sorted_png_map) / sizeof(PngMap);