File indexing completed on 2024-05-19 15:27:46
0001 /*************************************************************************** 0002 * Copyright (C) 2005-2007 by Gael de Chalendar (aka Kleag) * 0003 * kleag@free.fr * 0004 * * 0005 * This program is free software; you can redistribute it and/or modify * 0006 * it under the terms of the GNU General Public License as published by * 0007 * the Free Software Foundation; either version 2 of the License, or * 0008 * (at your option) any later version. * 0009 * * 0010 * This program is distributed in the hope that it will be useful, * 0011 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 0012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 0013 * GNU General Public License for more details. * 0014 * * 0015 You should have received a copy of the GNU General Public License 0016 along with this program; if not, write to the Free Software 0017 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 0018 02110-1301, USA 0019 ***************************************************************************/ 0020 #include "dot2qtconsts.h" 0021 #include "canvasnode.h" 0022 #include "dotgrammar.h" 0023 #include "kgraphviewerlib_debug.h" 0024 0025 #include <QColor> 0026 #include <QDebug> 0027 0028 const Dot2QtConsts Dot2QtConsts::m_componentData; 0029 0030 static const struct { 0031 const char *input; 0032 const char *roman; 0033 const char *italic; 0034 const char *bold; 0035 const char *boldItalic; 0036 const char *light; 0037 const char *lightItalic; 0038 } postscriptFontNames[] = {{"arial", "Arial", nullptr, nullptr, nullptr, nullptr, nullptr}, 0039 {"avantgarde", "AvantGarde-Book", nullptr, nullptr, nullptr, nullptr, nullptr}, 0040 {"charter", "CharterBT-Roman", nullptr, nullptr, nullptr, nullptr, nullptr}, 0041 {"garamond", "Garamond-Regular", nullptr, nullptr, nullptr, nullptr, nullptr}, 0042 {"gillsans", "GillSans", nullptr, nullptr, nullptr, nullptr, nullptr}, 0043 {"helvetica", "Helvetica", "Helvetica-Oblique", "Helvetica-Bold", "Helvetica-BoldOblique", "Helvetica-Outline", "Helvetica-OutlineOblique"}, 0044 {"palatino", "Palatino", "Palatino-Italic", "Palatino-Bold", "Palatino-BoldItalic", "Palatino", "Palatino-Italic"}, 0045 {"times", "Times-Roman", "Times-Italic", "Times-Bold", "Times-BoldItalic", "Times-Outline", "Times-Italic"}, 0046 {"new century schoolbook", "NewCenturySchlbk-Roman", nullptr, nullptr, nullptr, nullptr, nullptr}, 0047 {"symbol", "Symbol", "Symbol", "Symbol", "Symbol", "Symbol", "Symbol"}, 0048 {"terminal", "Courier", nullptr, nullptr, nullptr, nullptr, nullptr}, 0049 {"times new roman", "TimesNewRoman", nullptr, nullptr, nullptr, nullptr, nullptr}, 0050 {"utopia", "Utopia-Regular", nullptr, nullptr, nullptr, nullptr, nullptr}, 0051 {nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr}}; 0052 0053 static const struct { 0054 const char *name; 0055 unsigned int r; 0056 unsigned int g; 0057 unsigned int b; 0058 } color_lib[] = {{"snow", 255, 250, 250}, 0059 {"ghost white", 248, 248, 255}, 0060 {"ghostwhite", 248, 248, 255}, 0061 {"white smoke", 245, 245, 245}, 0062 {"whitesmoke", 245, 245, 245}, 0063 {"gainsboro", 220, 220, 220}, 0064 {"floral white", 255, 250, 240}, 0065 {"floralwhite", 255, 250, 240}, 0066 {"old lace", 253, 245, 230}, 0067 {"oldlace", 253, 245, 230}, 0068 {"linen", 250, 240, 230}, 0069 {"antique white", 250, 235, 215}, 0070 {"antiquewhite", 250, 235, 215}, 0071 {"papaya whip", 255, 239, 213}, 0072 {"papayawhip", 255, 239, 213}, 0073 {"blanched almond", 255, 235, 205}, 0074 {"blanchedalmond", 255, 235, 205}, 0075 {"bisque", 255, 228, 196}, 0076 {"peach puff", 255, 218, 185}, 0077 {"peachpuff", 255, 218, 185}, 0078 {"navajo white", 255, 222, 173}, 0079 {"navajowhite", 255, 222, 173}, 0080 {"moccasin", 255, 228, 181}, 0081 {"cornsilk", 255, 248, 220}, 0082 {"ivory", 255, 255, 240}, 0083 {"lemon chiffon", 255, 250, 205}, 0084 {"lemonchiffon", 255, 250, 205}, 0085 {"seashell", 255, 245, 238}, 0086 {"honeydew", 240, 255, 240}, 0087 {"mint cream", 245, 255, 250}, 0088 {"mintcream", 245, 255, 250}, 0089 {"azure", 240, 255, 255}, 0090 {"alice blue", 240, 248, 255}, 0091 {"aliceblue", 240, 248, 255}, 0092 {"lavender", 230, 230, 250}, 0093 {"lavender blush", 255, 240, 245}, 0094 {"lavenderblush", 255, 240, 245}, 0095 {"misty rose", 255, 228, 225}, 0096 {"mistyrose", 255, 228, 225}, 0097 {"white", 255, 255, 255}, 0098 {"black", 0, 0, 0}, 0099 {"dark slate gray", 47, 79, 79}, 0100 {"darkslategray", 47, 79, 79}, 0101 {"dark slate grey", 47, 79, 79}, 0102 {"darkslategrey", 47, 79, 79}, 0103 {"dim gray", 105, 105, 105}, 0104 {"dimgray", 105, 105, 105}, 0105 {"dim grey", 105, 105, 105}, 0106 {"dimgrey", 105, 105, 105}, 0107 {"slate gray", 112, 128, 144}, 0108 {"slategray", 112, 128, 144}, 0109 {"slate grey", 112, 128, 144}, 0110 {"slategrey", 112, 128, 144}, 0111 {"light slate gray", 119, 136, 153}, 0112 {"lightslategray", 119, 136, 153}, 0113 {"light slate grey", 119, 136, 153}, 0114 {"lightslategrey", 119, 136, 153}, 0115 {"gray", 190, 190, 190}, 0116 {"grey", 190, 190, 190}, 0117 {"light grey", 211, 211, 211}, 0118 {"lightgrey", 211, 211, 211}, 0119 {"light gray", 211, 211, 211}, 0120 {"lightgray", 211, 211, 211}, 0121 {"midnight blue", 25, 25, 112}, 0122 {"midnightblue", 25, 25, 112}, 0123 {"navy", 0, 0, 128}, 0124 {"navy blue", 0, 0, 128}, 0125 {"navyblue", 0, 0, 128}, 0126 {"cornflower blue", 100, 149, 237}, 0127 {"cornflowerblue", 100, 149, 237}, 0128 {"dark slate blue", 72, 61, 139}, 0129 {"darkslateblue", 72, 61, 139}, 0130 {"slate blue", 106, 90, 205}, 0131 {"slateblue", 106, 90, 205}, 0132 {"medium slate blue", 123, 104, 238}, 0133 {"mediumslateblue", 123, 104, 238}, 0134 {"light slate blue", 132, 112, 255}, 0135 {"lightslateblue", 132, 112, 255}, 0136 {"medium blue", 0, 0, 205}, 0137 {"mediumblue", 0, 0, 205}, 0138 {"royal blue", 65, 105, 225}, 0139 {"royalblue", 65, 105, 225}, 0140 {"blue", 0, 0, 255}, 0141 {"dodger blue", 30, 144, 255}, 0142 {"dodgerblue", 30, 144, 255}, 0143 {"deep sky blue", 0, 191, 255}, 0144 {"deepskyblue", 0, 191, 255}, 0145 {"sky blue", 135, 206, 235}, 0146 {"skyblue", 135, 206, 235}, 0147 {"light sky blue", 135, 206, 250}, 0148 {"lightskyblue", 135, 206, 250}, 0149 {"steel blue", 70, 130, 180}, 0150 {"steelblue", 70, 130, 180}, 0151 {"light steel blue", 176, 196, 222}, 0152 {"lightsteelblue", 176, 196, 222}, 0153 {"light blue", 173, 216, 230}, 0154 {"lightblue", 173, 216, 230}, 0155 {"powder blue", 176, 224, 230}, 0156 {"powderblue", 176, 224, 230}, 0157 {"pale turquoise", 175, 238, 238}, 0158 {"paleturquoise", 175, 238, 238}, 0159 {"dark turquoise", 0, 206, 209}, 0160 {"darkturquoise", 0, 206, 209}, 0161 {"medium turquoise", 72, 209, 204}, 0162 {"mediumturquoise", 72, 209, 204}, 0163 {"turquoise", 64, 224, 208}, 0164 {"cyan", 0, 255, 255}, 0165 {"light cyan", 224, 255, 255}, 0166 {"lightcyan", 224, 255, 255}, 0167 {"cadet blue", 95, 158, 160}, 0168 {"cadetblue", 95, 158, 160}, 0169 {"medium aquamarine", 102, 205, 170}, 0170 {"mediumaquamarine", 102, 205, 170}, 0171 {"aquamarine", 127, 255, 212}, 0172 {"dark green", 0, 100, 0}, 0173 {"darkgreen", 0, 100, 0}, 0174 {"dark olive green", 85, 107, 47}, 0175 {"darkolivegreen", 85, 107, 47}, 0176 {"dark sea green", 143, 188, 143}, 0177 {"darkseagreen", 143, 188, 143}, 0178 {"sea green", 46, 139, 87}, 0179 {"seagreen", 46, 139, 87}, 0180 {"medium sea green", 60, 179, 113}, 0181 {"mediumseagreen", 60, 179, 113}, 0182 {"light sea green", 32, 178, 170}, 0183 {"lightseagreen", 32, 178, 170}, 0184 {"pale green", 152, 251, 152}, 0185 {"palegreen", 152, 251, 152}, 0186 {"spring green", 0, 255, 127}, 0187 {"springgreen", 0, 255, 127}, 0188 {"lawn green", 124, 252, 0}, 0189 {"lawngreen", 124, 252, 0}, 0190 {"green", 0, 255, 0}, 0191 {"chartreuse", 127, 255, 0}, 0192 {"medium spring green", 0, 250, 154}, 0193 {"mediumspringgreen", 0, 250, 154}, 0194 {"green yellow", 173, 255, 47}, 0195 {"greenyellow", 173, 255, 47}, 0196 {"lime green", 50, 205, 50}, 0197 {"limegreen", 50, 205, 50}, 0198 {"yellow green", 154, 205, 50}, 0199 {"yellowgreen", 154, 205, 50}, 0200 {"forest green", 34, 139, 34}, 0201 {"forestgreen", 34, 139, 34}, 0202 {"olive drab", 107, 142, 35}, 0203 {"olivedrab", 107, 142, 35}, 0204 {"dark khaki", 189, 183, 107}, 0205 {"darkkhaki", 189, 183, 107}, 0206 {"khaki", 240, 230, 140}, 0207 {"pale goldenrod", 238, 232, 170}, 0208 {"palegoldenrod", 238, 232, 170}, 0209 {"light goldenrod yellow", 250, 250, 210}, 0210 {"lightgoldenrodyellow", 250, 250, 210}, 0211 {"light yellow", 255, 255, 224}, 0212 {"lightyellow", 255, 255, 224}, 0213 {"yellow", 255, 255, 0}, 0214 {"gold", 255, 215, 0}, 0215 {"light goldenrod", 238, 221, 130}, 0216 {"lightgoldenrod", 238, 221, 130}, 0217 {"goldenrod", 218, 165, 32}, 0218 {"dark goldenrod", 184, 134, 11}, 0219 {"darkgoldenrod", 184, 134, 11}, 0220 {"rosy brown", 188, 143, 143}, 0221 {"rosybrown", 188, 143, 143}, 0222 {"indian red", 205, 92, 92}, 0223 {"indianred", 205, 92, 92}, 0224 {"saddle brown", 139, 69, 19}, 0225 {"saddlebrown", 139, 69, 19}, 0226 {"sienna", 160, 82, 45}, 0227 {"peru", 205, 133, 63}, 0228 {"burlywood", 222, 184, 135}, 0229 {"beige", 245, 245, 220}, 0230 {"wheat", 245, 222, 179}, 0231 {"sandy brown", 244, 164, 96}, 0232 {"sandybrown", 244, 164, 96}, 0233 {"tan", 210, 180, 140}, 0234 {"chocolate", 210, 105, 30}, 0235 {"firebrick", 178, 34, 34}, 0236 {"brown", 165, 42, 42}, 0237 {"dark salmon", 233, 150, 122}, 0238 {"darksalmon", 233, 150, 122}, 0239 {"salmon", 250, 128, 114}, 0240 {"light salmon", 255, 160, 122}, 0241 {"lightsalmon", 255, 160, 122}, 0242 {"orange", 255, 165, 0}, 0243 {"dark orange", 255, 140, 0}, 0244 {"darkorange", 255, 140, 0}, 0245 {"coral", 255, 127, 80}, 0246 {"light coral", 240, 128, 128}, 0247 {"lightcoral", 240, 128, 128}, 0248 {"tomato", 255, 99, 71}, 0249 {"orange red", 255, 69, 0}, 0250 {"orangered", 255, 69, 0}, 0251 {"red", 255, 0, 0}, 0252 {"hot pink", 255, 105, 180}, 0253 {"hotpink", 255, 105, 180}, 0254 {"deep pink", 255, 20, 147}, 0255 {"deeppink", 255, 20, 147}, 0256 {"pink", 255, 192, 203}, 0257 {"light pink", 255, 182, 193}, 0258 {"lightpink", 255, 182, 193}, 0259 {"pale violet red", 219, 112, 147}, 0260 {"palevioletred", 219, 112, 147}, 0261 {"maroon", 176, 48, 96}, 0262 {"medium violet red", 199, 21, 133}, 0263 {"mediumvioletred", 199, 21, 133}, 0264 {"violet red", 208, 32, 144}, 0265 {"violetred", 208, 32, 144}, 0266 {"magenta", 255, 0, 255}, 0267 {"violet", 238, 130, 238}, 0268 {"plum", 221, 160, 221}, 0269 {"orchid", 218, 112, 214}, 0270 {"medium orchid", 186, 85, 211}, 0271 {"mediumorchid", 186, 85, 211}, 0272 {"dark orchid", 153, 50, 204}, 0273 {"darkorchid", 153, 50, 204}, 0274 {"dark violet", 148, 0, 211}, 0275 {"darkviolet", 148, 0, 211}, 0276 {"blue violet", 138, 43, 226}, 0277 {"blueviolet", 138, 43, 226}, 0278 {"purple", 160, 32, 240}, 0279 {"medium purple", 147, 112, 219}, 0280 {"mediumpurple", 147, 112, 219}, 0281 {"thistle", 216, 191, 216}, 0282 {"snow1", 255, 250, 250}, 0283 {"snow2", 238, 233, 233}, 0284 {"snow3", 205, 201, 201}, 0285 {"snow4", 139, 137, 137}, 0286 {"seashell1", 255, 245, 238}, 0287 {"seashell2", 238, 229, 222}, 0288 {"seashell3", 205, 197, 191}, 0289 {"seashell4", 139, 134, 130}, 0290 {"antiquewhite1", 255, 239, 219}, 0291 {"antiquewhite2", 238, 223, 204}, 0292 {"antiquewhite3", 205, 192, 176}, 0293 {"antiquewhite4", 139, 131, 120}, 0294 {"bisque1", 255, 228, 196}, 0295 {"bisque2", 238, 213, 183}, 0296 {"bisque3", 205, 183, 158}, 0297 {"bisque4", 139, 125, 107}, 0298 {"peachpuff1", 255, 218, 185}, 0299 {"peachpuff2", 238, 203, 173}, 0300 {"peachpuff3", 205, 175, 149}, 0301 {"peachpuff4", 139, 119, 101}, 0302 {"navajowhite1", 255, 222, 173}, 0303 {"navajowhite2", 238, 207, 161}, 0304 {"navajowhite3", 205, 179, 139}, 0305 {"navajowhite4", 139, 121, 94}, 0306 {"lemonchiffon1", 255, 250, 205}, 0307 {"lemonchiffon2", 238, 233, 191}, 0308 {"lemonchiffon3", 205, 201, 165}, 0309 {"lemonchiffon4", 139, 137, 112}, 0310 {"cornsilk1", 255, 248, 220}, 0311 {"cornsilk2", 238, 232, 205}, 0312 {"cornsilk3", 205, 200, 177}, 0313 {"cornsilk4", 139, 136, 120}, 0314 {"ivory1", 255, 255, 240}, 0315 {"ivory2", 238, 238, 224}, 0316 {"ivory3", 205, 205, 193}, 0317 {"ivory4", 139, 139, 131}, 0318 {"honeydew1", 240, 255, 240}, 0319 {"honeydew2", 224, 238, 224}, 0320 {"honeydew3", 193, 205, 193}, 0321 {"honeydew4", 131, 139, 131}, 0322 {"lavenderblush1", 255, 240, 245}, 0323 {"lavenderblush2", 238, 224, 229}, 0324 {"lavenderblush3", 205, 193, 197}, 0325 {"lavenderblush4", 139, 131, 134}, 0326 {"mistyrose1", 255, 228, 225}, 0327 {"mistyrose2", 238, 213, 210}, 0328 {"mistyrose3", 205, 183, 181}, 0329 {"mistyrose4", 139, 125, 123}, 0330 {"azure1", 240, 255, 255}, 0331 {"azure2", 224, 238, 238}, 0332 {"azure3", 193, 205, 205}, 0333 {"azure4", 131, 139, 139}, 0334 {"slateblue1", 131, 111, 255}, 0335 {"slateblue2", 122, 103, 238}, 0336 {"slateblue3", 105, 89, 205}, 0337 {"slateblue4", 71, 60, 139}, 0338 {"royalblue1", 72, 118, 255}, 0339 {"royalblue2", 67, 110, 238}, 0340 {"royalblue3", 58, 95, 205}, 0341 {"royalblue4", 39, 64, 139}, 0342 {"blue1", 0, 0, 255}, 0343 {"blue2", 0, 0, 238}, 0344 {"blue3", 0, 0, 205}, 0345 {"blue4", 0, 0, 139}, 0346 {"dodgerblue1", 30, 144, 255}, 0347 {"dodgerblue2", 28, 134, 238}, 0348 {"dodgerblue3", 24, 116, 205}, 0349 {"dodgerblue4", 16, 78, 139}, 0350 {"steelblue1", 99, 184, 255}, 0351 {"steelblue2", 92, 172, 238}, 0352 {"steelblue3", 79, 148, 205}, 0353 {"steelblue4", 54, 100, 139}, 0354 {"deepskyblue1", 0, 191, 255}, 0355 {"deepskyblue2", 0, 178, 238}, 0356 {"deepskyblue3", 0, 154, 205}, 0357 {"deepskyblue4", 0, 104, 139}, 0358 {"skyblue1", 135, 206, 255}, 0359 {"skyblue2", 126, 192, 238}, 0360 {"skyblue3", 108, 166, 205}, 0361 {"skyblue4", 74, 112, 139}, 0362 {"lightskyblue1", 176, 226, 255}, 0363 {"lightskyblue2", 164, 211, 238}, 0364 {"lightskyblue3", 141, 182, 205}, 0365 {"lightskyblue4", 96, 123, 139}, 0366 {"slategray1", 198, 226, 255}, 0367 {"slategray2", 185, 211, 238}, 0368 {"slategray3", 159, 182, 205}, 0369 {"slategray4", 108, 123, 139}, 0370 {"lightsteelblue1", 202, 225, 255}, 0371 {"lightsteelblue2", 188, 210, 238}, 0372 {"lightsteelblue3", 162, 181, 205}, 0373 {"lightsteelblue4", 110, 123, 139}, 0374 {"lightblue1", 191, 239, 255}, 0375 {"lightblue2", 178, 223, 238}, 0376 {"lightblue3", 154, 192, 205}, 0377 {"lightblue4", 104, 131, 139}, 0378 {"lightcyan1", 224, 255, 255}, 0379 {"lightcyan2", 209, 238, 238}, 0380 {"lightcyan3", 180, 205, 205}, 0381 {"lightcyan4", 122, 139, 139}, 0382 {"paleturquoise1", 187, 255, 255}, 0383 {"paleturquoise2", 174, 238, 238}, 0384 {"paleturquoise3", 150, 205, 205}, 0385 {"paleturquoise4", 102, 139, 139}, 0386 {"cadetblue1", 152, 245, 255}, 0387 {"cadetblue2", 142, 229, 238}, 0388 {"cadetblue3", 122, 197, 205}, 0389 {"cadetblue4", 83, 134, 139}, 0390 {"turquoise1", 0, 245, 255}, 0391 {"turquoise2", 0, 229, 238}, 0392 {"turquoise3", 0, 197, 205}, 0393 {"turquoise4", 0, 134, 139}, 0394 {"cyan1", 0, 255, 255}, 0395 {"cyan2", 0, 238, 238}, 0396 {"cyan3", 0, 205, 205}, 0397 {"cyan4", 0, 139, 139}, 0398 {"darkslategray1", 151, 255, 255}, 0399 {"darkslategray2", 141, 238, 238}, 0400 {"darkslategray3", 121, 205, 205}, 0401 {"darkslategray4", 82, 139, 139}, 0402 {"aquamarine1", 127, 255, 212}, 0403 {"aquamarine2", 118, 238, 198}, 0404 {"aquamarine3", 102, 205, 170}, 0405 {"aquamarine4", 69, 139, 116}, 0406 {"darkseagreen1", 193, 255, 193}, 0407 {"darkseagreen2", 180, 238, 180}, 0408 {"darkseagreen3", 155, 205, 155}, 0409 {"darkseagreen4", 105, 139, 105}, 0410 {"seagreen1", 84, 255, 159}, 0411 {"seagreen2", 78, 238, 148}, 0412 {"seagreen3", 67, 205, 128}, 0413 {"seagreen4", 46, 139, 87}, 0414 {"palegreen1", 154, 255, 154}, 0415 {"palegreen2", 144, 238, 144}, 0416 {"palegreen3", 124, 205, 124}, 0417 {"palegreen4", 84, 139, 84}, 0418 {"springgreen1", 0, 255, 127}, 0419 {"springgreen2", 0, 238, 118}, 0420 {"springgreen3", 0, 205, 102}, 0421 {"springgreen4", 0, 139, 69}, 0422 {"green1", 0, 255, 0}, 0423 {"green2", 0, 238, 0}, 0424 {"green3", 0, 205, 0}, 0425 {"green4", 0, 139, 0}, 0426 {"chartreuse1", 127, 255, 0}, 0427 {"chartreuse2", 118, 238, 0}, 0428 {"chartreuse3", 102, 205, 0}, 0429 {"chartreuse4", 69, 139, 0}, 0430 {"olivedrab1", 192, 255, 62}, 0431 {"olivedrab2", 179, 238, 58}, 0432 {"olivedrab3", 154, 205, 50}, 0433 {"olivedrab4", 105, 139, 34}, 0434 {"darkolivegreen1", 202, 255, 112}, 0435 {"darkolivegreen2", 188, 238, 104}, 0436 {"darkolivegreen3", 162, 205, 90}, 0437 {"darkolivegreen4", 110, 139, 61}, 0438 {"khaki1", 255, 246, 143}, 0439 {"khaki2", 238, 230, 133}, 0440 {"khaki3", 205, 198, 115}, 0441 {"khaki4", 139, 134, 78}, 0442 {"lightgoldenrod1", 255, 236, 139}, 0443 {"lightgoldenrod2", 238, 220, 130}, 0444 {"lightgoldenrod3", 205, 190, 112}, 0445 {"lightgoldenrod4", 139, 129, 76}, 0446 {"lightyellow1", 255, 255, 224}, 0447 {"lightyellow2", 238, 238, 209}, 0448 {"lightyellow3", 205, 205, 180}, 0449 {"lightyellow4", 139, 139, 122}, 0450 {"yellow1", 255, 255, 0}, 0451 {"yellow2", 238, 238, 0}, 0452 {"yellow3", 205, 205, 0}, 0453 {"yellow4", 139, 139, 0}, 0454 {"gold1", 255, 215, 0}, 0455 {"gold2", 238, 201, 0}, 0456 {"gold3", 205, 173, 0}, 0457 {"gold4", 139, 117, 0}, 0458 {"goldenrod1", 255, 193, 37}, 0459 {"goldenrod2", 238, 180, 34}, 0460 {"goldenrod3", 205, 155, 29}, 0461 {"goldenrod4", 139, 105, 20}, 0462 {"darkgoldenrod1", 255, 185, 15}, 0463 {"darkgoldenrod2", 238, 173, 14}, 0464 {"darkgoldenrod3", 205, 149, 12}, 0465 {"darkgoldenrod4", 139, 101, 8}, 0466 {"rosybrown1", 255, 193, 193}, 0467 {"rosybrown2", 238, 180, 180}, 0468 {"rosybrown3", 205, 155, 155}, 0469 {"rosybrown4", 139, 105, 105}, 0470 {"indianred1", 255, 106, 106}, 0471 {"indianred2", 238, 99, 99}, 0472 {"indianred3", 205, 85, 85}, 0473 {"indianred4", 139, 58, 58}, 0474 {"sienna1", 255, 130, 71}, 0475 {"sienna2", 238, 121, 66}, 0476 {"sienna3", 205, 104, 57}, 0477 {"sienna4", 139, 71, 38}, 0478 {"burlywood1", 255, 211, 155}, 0479 {"burlywood2", 238, 197, 145}, 0480 {"burlywood3", 205, 170, 125}, 0481 {"burlywood4", 139, 115, 85}, 0482 {"wheat1", 255, 231, 186}, 0483 {"wheat2", 238, 216, 174}, 0484 {"wheat3", 205, 186, 150}, 0485 {"wheat4", 139, 126, 102}, 0486 {"tan1", 255, 165, 79}, 0487 {"tan2", 238, 154, 73}, 0488 {"tan3", 205, 133, 63}, 0489 {"tan4", 139, 90, 43}, 0490 {"chocolate1", 255, 127, 36}, 0491 {"chocolate2", 238, 118, 33}, 0492 {"chocolate3", 205, 102, 29}, 0493 {"chocolate4", 139, 69, 19}, 0494 {"firebrick1", 255, 48, 48}, 0495 {"firebrick2", 238, 44, 44}, 0496 {"firebrick3", 205, 38, 38}, 0497 {"firebrick4", 139, 26, 26}, 0498 {"brown1", 255, 64, 64}, 0499 {"brown2", 238, 59, 59}, 0500 {"brown3", 205, 51, 51}, 0501 {"brown4", 139, 35, 35}, 0502 {"salmon1", 255, 140, 105}, 0503 {"salmon2", 238, 130, 98}, 0504 {"salmon3", 205, 112, 84}, 0505 {"salmon4", 139, 76, 57}, 0506 {"lightsalmon1", 255, 160, 122}, 0507 {"lightsalmon2", 238, 149, 114}, 0508 {"lightsalmon3", 205, 129, 98}, 0509 {"lightsalmon4", 139, 87, 66}, 0510 {"orange1", 255, 165, 0}, 0511 {"orange2", 238, 154, 0}, 0512 {"orange3", 205, 133, 0}, 0513 {"orange4", 139, 90, 0}, 0514 {"darkorange1", 255, 127, 0}, 0515 {"darkorange2", 238, 118, 0}, 0516 {"darkorange3", 205, 102, 0}, 0517 {"darkorange4", 139, 69, 0}, 0518 {"coral1", 255, 114, 86}, 0519 {"coral2", 238, 106, 80}, 0520 {"coral3", 205, 91, 69}, 0521 {"coral4", 139, 62, 47}, 0522 {"tomato1", 255, 99, 71}, 0523 {"tomato2", 238, 92, 66}, 0524 {"tomato3", 205, 79, 57}, 0525 {"tomato4", 139, 54, 38}, 0526 {"orangered1", 255, 69, 0}, 0527 {"orangered2", 238, 64, 0}, 0528 {"orangered3", 205, 55, 0}, 0529 {"orangered4", 139, 37, 0}, 0530 {"red1", 255, 0, 0}, 0531 {"red2", 238, 0, 0}, 0532 {"red3", 205, 0, 0}, 0533 {"red4", 139, 0, 0}, 0534 {"deeppink1", 255, 20, 147}, 0535 {"deeppink2", 238, 18, 137}, 0536 {"deeppink3", 205, 16, 118}, 0537 {"deeppink4", 139, 10, 80}, 0538 {"hotpink1", 255, 110, 180}, 0539 {"hotpink2", 238, 106, 167}, 0540 {"hotpink3", 205, 96, 144}, 0541 {"hotpink4", 139, 58, 98}, 0542 {"pink1", 255, 181, 197}, 0543 {"pink2", 238, 169, 184}, 0544 {"pink3", 205, 145, 158}, 0545 {"pink4", 139, 99, 108}, 0546 {"lightpink1", 255, 174, 185}, 0547 {"lightpink2", 238, 162, 173}, 0548 {"lightpink3", 205, 140, 149}, 0549 {"lightpink4", 139, 95, 101}, 0550 {"palevioletred1", 255, 130, 171}, 0551 {"palevioletred2", 238, 121, 159}, 0552 {"palevioletred3", 205, 104, 137}, 0553 {"palevioletred4", 139, 71, 93}, 0554 {"maroon1", 255, 52, 179}, 0555 {"maroon2", 238, 48, 167}, 0556 {"maroon3", 205, 41, 144}, 0557 {"maroon4", 139, 28, 98}, 0558 {"violetred1", 255, 62, 150}, 0559 {"violetred2", 238, 58, 140}, 0560 {"violetred3", 205, 50, 120}, 0561 {"violetred4", 139, 34, 82}, 0562 {"magenta1", 255, 0, 255}, 0563 {"magenta2", 238, 0, 238}, 0564 {"magenta3", 205, 0, 205}, 0565 {"magenta4", 139, 0, 139}, 0566 {"orchid1", 255, 131, 250}, 0567 {"orchid2", 238, 122, 233}, 0568 {"orchid3", 205, 105, 201}, 0569 {"orchid4", 139, 71, 137}, 0570 {"plum1", 255, 187, 255}, 0571 {"plum2", 238, 174, 238}, 0572 {"plum3", 205, 150, 205}, 0573 {"plum4", 139, 102, 139}, 0574 {"mediumorchid1", 224, 102, 255}, 0575 {"mediumorchid2", 209, 95, 238}, 0576 {"mediumorchid3", 180, 82, 205}, 0577 {"mediumorchid4", 122, 55, 139}, 0578 {"darkorchid1", 191, 62, 255}, 0579 {"darkorchid2", 178, 58, 238}, 0580 {"darkorchid3", 154, 50, 205}, 0581 {"darkorchid4", 104, 34, 139}, 0582 {"purple1", 155, 48, 255}, 0583 {"purple2", 145, 44, 238}, 0584 {"purple3", 125, 38, 205}, 0585 {"purple4", 85, 26, 139}, 0586 {"mediumpurple1", 171, 130, 255}, 0587 {"mediumpurple2", 159, 121, 238}, 0588 {"mediumpurple3", 137, 104, 205}, 0589 {"mediumpurple4", 93, 71, 139}, 0590 {"thistle1", 255, 225, 255}, 0591 {"thistle2", 238, 210, 238}, 0592 {"thistle3", 205, 181, 205}, 0593 {"thistle4", 139, 123, 139}, 0594 {"gray0", 0, 0, 0}, 0595 {"grey0", 0, 0, 0}, 0596 {"gray1", 3, 3, 3}, 0597 {"grey1", 3, 3, 3}, 0598 {"gray2", 5, 5, 5}, 0599 {"grey2", 5, 5, 5}, 0600 {"gray3", 8, 8, 8}, 0601 {"grey3", 8, 8, 8}, 0602 {"gray4", 10, 10, 10}, 0603 {"grey4", 10, 10, 10}, 0604 {"gray5", 13, 13, 13}, 0605 {"grey5", 13, 13, 13}, 0606 {"gray6", 15, 15, 15}, 0607 {"grey6", 15, 15, 15}, 0608 {"gray7", 18, 18, 18}, 0609 {"grey7", 18, 18, 18}, 0610 {"gray8", 20, 20, 20}, 0611 {"grey8", 20, 20, 20}, 0612 {"gray9", 23, 23, 23}, 0613 {"grey9", 23, 23, 23}, 0614 {"gray10", 26, 26, 26}, 0615 {"grey10", 26, 26, 26}, 0616 {"gray11", 28, 28, 28}, 0617 {"grey11", 28, 28, 28}, 0618 {"gray12", 31, 31, 31}, 0619 {"grey12", 31, 31, 31}, 0620 {"gray13", 33, 33, 33}, 0621 {"grey13", 33, 33, 33}, 0622 {"gray14", 36, 36, 36}, 0623 {"grey14", 36, 36, 36}, 0624 {"gray15", 38, 38, 38}, 0625 {"grey15", 38, 38, 38}, 0626 {"gray16", 41, 41, 41}, 0627 {"grey16", 41, 41, 41}, 0628 {"gray17", 43, 43, 43}, 0629 {"grey17", 43, 43, 43}, 0630 {"gray18", 46, 46, 46}, 0631 {"grey18", 46, 46, 46}, 0632 {"gray19", 48, 48, 48}, 0633 {"grey19", 48, 48, 48}, 0634 {"gray20", 51, 51, 51}, 0635 {"grey20", 51, 51, 51}, 0636 {"gray21", 54, 54, 54}, 0637 {"grey21", 54, 54, 54}, 0638 {"gray22", 56, 56, 56}, 0639 {"grey22", 56, 56, 56}, 0640 {"gray23", 59, 59, 59}, 0641 {"grey23", 59, 59, 59}, 0642 {"gray24", 61, 61, 61}, 0643 {"grey24", 61, 61, 61}, 0644 {"gray25", 64, 64, 64}, 0645 {"grey25", 64, 64, 64}, 0646 {"gray26", 66, 66, 66}, 0647 {"grey26", 66, 66, 66}, 0648 {"gray27", 69, 69, 69}, 0649 {"grey27", 69, 69, 69}, 0650 {"gray28", 71, 71, 71}, 0651 {"grey28", 71, 71, 71}, 0652 {"gray29", 74, 74, 74}, 0653 {"grey29", 74, 74, 74}, 0654 {"gray30", 77, 77, 77}, 0655 {"grey30", 77, 77, 77}, 0656 {"gray31", 79, 79, 79}, 0657 {"grey31", 79, 79, 79}, 0658 {"gray32", 82, 82, 82}, 0659 {"grey32", 82, 82, 82}, 0660 {"gray33", 84, 84, 84}, 0661 {"grey33", 84, 84, 84}, 0662 {"gray34", 87, 87, 87}, 0663 {"grey34", 87, 87, 87}, 0664 {"gray35", 89, 89, 89}, 0665 {"grey35", 89, 89, 89}, 0666 {"gray36", 92, 92, 92}, 0667 {"grey36", 92, 92, 92}, 0668 {"gray37", 94, 94, 94}, 0669 {"grey37", 94, 94, 94}, 0670 {"gray38", 97, 97, 97}, 0671 {"grey38", 97, 97, 97}, 0672 {"gray39", 99, 99, 99}, 0673 {"grey39", 99, 99, 99}, 0674 {"gray40", 102, 102, 102}, 0675 {"grey40", 102, 102, 102}, 0676 {"gray41", 105, 105, 105}, 0677 {"grey41", 105, 105, 105}, 0678 {"gray42", 107, 107, 107}, 0679 {"grey42", 107, 107, 107}, 0680 {"gray43", 110, 110, 110}, 0681 {"grey43", 110, 110, 110}, 0682 {"gray44", 112, 112, 112}, 0683 {"grey44", 112, 112, 112}, 0684 {"gray45", 115, 115, 115}, 0685 {"grey45", 115, 115, 115}, 0686 {"gray46", 117, 117, 117}, 0687 {"grey46", 117, 117, 117}, 0688 {"gray47", 120, 120, 120}, 0689 {"grey47", 120, 120, 120}, 0690 {"gray48", 122, 122, 122}, 0691 {"grey48", 122, 122, 122}, 0692 {"gray49", 125, 125, 125}, 0693 {"grey49", 125, 125, 125}, 0694 {"gray50", 127, 127, 127}, 0695 {"grey50", 127, 127, 127}, 0696 {"gray51", 130, 130, 130}, 0697 {"grey51", 130, 130, 130}, 0698 {"gray52", 133, 133, 133}, 0699 {"grey52", 133, 133, 133}, 0700 {"gray53", 135, 135, 135}, 0701 {"grey53", 135, 135, 135}, 0702 {"gray54", 138, 138, 138}, 0703 {"grey54", 138, 138, 138}, 0704 {"gray55", 140, 140, 140}, 0705 {"grey55", 140, 140, 140}, 0706 {"gray56", 143, 143, 143}, 0707 {"grey56", 143, 143, 143}, 0708 {"gray57", 145, 145, 145}, 0709 {"grey57", 145, 145, 145}, 0710 {"gray58", 148, 148, 148}, 0711 {"grey58", 148, 148, 148}, 0712 {"gray59", 150, 150, 150}, 0713 {"grey59", 150, 150, 150}, 0714 {"gray60", 153, 153, 153}, 0715 {"grey60", 153, 153, 153}, 0716 {"gray61", 156, 156, 156}, 0717 {"grey61", 156, 156, 156}, 0718 {"gray62", 158, 158, 158}, 0719 {"grey62", 158, 158, 158}, 0720 {"gray63", 161, 161, 161}, 0721 {"grey63", 161, 161, 161}, 0722 {"gray64", 163, 163, 163}, 0723 {"grey64", 163, 163, 163}, 0724 {"gray65", 166, 166, 166}, 0725 {"grey65", 166, 166, 166}, 0726 {"gray66", 168, 168, 168}, 0727 {"grey66", 168, 168, 168}, 0728 {"gray67", 171, 171, 171}, 0729 {"grey67", 171, 171, 171}, 0730 {"gray68", 173, 173, 173}, 0731 {"grey68", 173, 173, 173}, 0732 {"gray69", 176, 176, 176}, 0733 {"grey69", 176, 176, 176}, 0734 {"gray70", 179, 179, 179}, 0735 {"grey70", 179, 179, 179}, 0736 {"gray71", 181, 181, 181}, 0737 {"grey71", 181, 181, 181}, 0738 {"gray72", 184, 184, 184}, 0739 {"grey72", 184, 184, 184}, 0740 {"gray73", 186, 186, 186}, 0741 {"grey73", 186, 186, 186}, 0742 {"gray74", 189, 189, 189}, 0743 {"grey74", 189, 189, 189}, 0744 {"gray75", 191, 191, 191}, 0745 {"grey75", 191, 191, 191}, 0746 {"gray76", 194, 194, 194}, 0747 {"grey76", 194, 194, 194}, 0748 {"gray77", 196, 196, 196}, 0749 {"grey77", 196, 196, 196}, 0750 {"gray78", 199, 199, 199}, 0751 {"grey78", 199, 199, 199}, 0752 {"gray79", 201, 201, 201}, 0753 {"grey79", 201, 201, 201}, 0754 {"gray80", 204, 204, 204}, 0755 {"grey80", 204, 204, 204}, 0756 {"gray81", 207, 207, 207}, 0757 {"grey81", 207, 207, 207}, 0758 {"gray82", 209, 209, 209}, 0759 {"grey82", 209, 209, 209}, 0760 {"gray83", 212, 212, 212}, 0761 {"grey83", 212, 212, 212}, 0762 {"gray84", 214, 214, 214}, 0763 {"grey84", 214, 214, 214}, 0764 {"gray85", 217, 217, 217}, 0765 {"grey85", 217, 217, 217}, 0766 {"gray86", 219, 219, 219}, 0767 {"grey86", 219, 219, 219}, 0768 {"gray87", 222, 222, 222}, 0769 {"grey87", 222, 222, 222}, 0770 {"gray88", 224, 224, 224}, 0771 {"grey88", 224, 224, 224}, 0772 {"gray89", 227, 227, 227}, 0773 {"grey89", 227, 227, 227}, 0774 {"gray90", 229, 229, 229}, 0775 {"grey90", 229, 229, 229}, 0776 {"gray91", 232, 232, 232}, 0777 {"grey91", 232, 232, 232}, 0778 {"gray92", 235, 235, 235}, 0779 {"grey92", 235, 235, 235}, 0780 {"gray93", 237, 237, 237}, 0781 {"grey93", 237, 237, 237}, 0782 {"gray94", 240, 240, 240}, 0783 {"grey94", 240, 240, 240}, 0784 {"gray95", 242, 242, 242}, 0785 {"grey95", 242, 242, 242}, 0786 {"gray96", 245, 245, 245}, 0787 {"grey96", 245, 245, 245}, 0788 {"gray97", 247, 247, 247}, 0789 {"grey97", 247, 247, 247}, 0790 {"gray98", 250, 250, 250}, 0791 {"grey98", 250, 250, 250}, 0792 {"gray99", 252, 252, 252}, 0793 {"grey99", 252, 252, 252}, 0794 {"gray100", 255, 255, 255}, 0795 {"grey100", 255, 255, 255}, 0796 {nullptr, 0, 0, 0}}; 0797 0798 Dot2QtConsts::Dot2QtConsts() 0799 { 0800 m_penStyles["solid"] = Qt::SolidLine; 0801 m_penStyles["dashed"] = Qt::DashLine; 0802 m_penStyles["dotted"] = Qt::DotLine; 0803 m_penStyles["invis"] = Qt::NoPen; 0804 0805 m_colors["crimson"] = "#DC143C"; 0806 m_colors["hot_pink"] = "#FF69B4"; 0807 m_colors["light_yellow"] = "#FFFFE0"; 0808 m_colors["slate_blue"] = "#6A5ACD"; 0809 0810 uint i = 0; 0811 while (postscriptFontNames[i].input) { 0812 QFont font(postscriptFontNames[i].input); 0813 m_psFonts[postscriptFontNames[i].roman] = font; 0814 if (postscriptFontNames[i].italic) { 0815 QFont italic = font; 0816 italic.setItalic(true); 0817 m_psFonts[postscriptFontNames[i].italic] = italic; 0818 } 0819 if (postscriptFontNames[i].bold) { 0820 QFont bold = font; 0821 bold.setBold(true); 0822 m_psFonts[postscriptFontNames[i].bold] = bold; 0823 } 0824 if (postscriptFontNames[i].boldItalic) { 0825 QFont boldItalic = font; 0826 boldItalic.setItalic(true); 0827 boldItalic.setBold(true); 0828 m_psFonts[postscriptFontNames[i].boldItalic] = boldItalic; 0829 } 0830 if (postscriptFontNames[i].light) { 0831 QFont light = font; 0832 light.setWeight(QFont::Light); 0833 m_psFonts[postscriptFontNames[i].light] = light; 0834 } 0835 if (postscriptFontNames[i].lightItalic) { 0836 QFont lightItalic = font; 0837 lightItalic.setWeight(QFont::Light); 0838 lightItalic.setItalic(true); 0839 m_psFonts[postscriptFontNames[i].lightItalic] = lightItalic; 0840 } 0841 i++; 0842 } 0843 0844 uint j = 0; 0845 while (color_lib[j].name) { 0846 // () << "Adding color " << color_lib[j].name; 0847 m_qcolors[color_lib[j].name] = QColor(color_lib[j].r, color_lib[j].g, color_lib[j].b); 0848 j++; 0849 } 0850 } 0851 0852 Dot2QtConsts::~Dot2QtConsts() 0853 { 0854 } 0855 0856 QColor Dot2QtConsts::qtColor(const QString &dotColor) const 0857 { 0858 // () << "Dot2QtConsts::qtColor"; 0859 QColor color; 0860 if (parse_numeric_color(qPrintable(dotColor), color)) { 0861 return color; 0862 } else { 0863 if (m_qcolors.find(dotColor) != m_qcolors.end()) { 0864 return (*m_qcolors.find(dotColor)); 0865 } 0866 QColor res(dotColor); 0867 if (res.isValid()) { 0868 return res; 0869 } else { 0870 if (m_colors.find(dotColor) != m_colors.end()) { 0871 res = QColor((*m_colors.find(dotColor))); 0872 if (res.isValid()) { 0873 return res; 0874 } else { 0875 qCWarning(KGRAPHVIEWERLIB_LOG) << "Unknown stored DOT color '" << dotColor << "'. returning Qt black"; 0876 return Qt::black; 0877 } 0878 } else { 0879 // qCWarning(KGRAPHVIEWERLIB_LOG) << "Unknown DOT color '" << dotColor << "'. returning Qt black"; 0880 return Qt::black; 0881 } 0882 } 0883 } 0884 } 0885 0886 Qt::PenStyle Dot2QtConsts::qtPenStyle(const QString &dotLineStyle) const 0887 { 0888 if (m_penStyles.find(dotLineStyle) != m_penStyles.end()) 0889 return (*(m_penStyles.find(dotLineStyle))); 0890 else { 0891 if (!dotLineStyle.left(12).isEmpty() && dotLineStyle.left(12) != "setlinewidth") 0892 qCWarning(KGRAPHVIEWERLIB_LOG) << "Unknown DOT line style '" << dotLineStyle << "'. returning Qt solid line"; 0893 return Qt::SolidLine; 0894 } 0895 } 0896 0897 QFont Dot2QtConsts::qtFont(const QString &dotFont) const 0898 { 0899 if (m_psFonts.find(dotFont) != m_psFonts.end()) 0900 return (*(m_psFonts.find(dotFont))); 0901 else { 0902 return QFont(QFont::substitute(dotFont)); 0903 } 0904 }