00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include "qgssymbologyutils.h"
00019 #include "qgslogger.h"
00020 #include <QPixmap>
00021
00022 static const char *solidLineData[] =
00023 {
00024 "60 26 4 1",
00025 "a c None",
00026 "# c None",
00027 ". c None",
00028 "b c #0000c5",
00029 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00030 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00031 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00032 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00033 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00034 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00035 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00036 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00037 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00038 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00039 "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
00040 "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
00041 "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
00042 "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
00043 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00044 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00045 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00046 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00047 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00048 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00049 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00050 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00051 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00052 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00053 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00054 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a."
00055 };
00056
00057 static const char *dashLineData[] =
00058 {
00059 "60 26 4 1",
00060 "a c None",
00061 "# c None",
00062 ". c None",
00063 "b c #0000c5",
00064 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00065 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00066 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00067 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00068 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00069 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00070 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00071 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00072 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00073 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00074 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00075 "bbbbbbbbbbbba.a.abbbbbbbbbbbb.a.a.bbbbbbbbbbbba.a.abbbbbbbbb",
00076 "bbbbbbbbbbbb.#.#.bbbbbbbbbbbb#.#.#bbbbbbbbbbbb.#.#.bbbbbbbbb",
00077 "bbbbbbbbbbbba.a.abbbbbbbbbbbb.a.a.bbbbbbbbbbbba.a.abbbbbbbbb",
00078 "bbbbbbbbbbbb.#.#.bbbbbbbbbbbb#.#.#bbbbbbbbbbbb.#.#.bbbbbbbbb",
00079 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00080 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00081 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00082 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00083 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00084 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00085 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00086 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00087 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00088 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00089 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a."
00090 };
00091
00092 static const char *dotLineData[] =
00093 {
00094 "60 26 4 1",
00095 "a c None",
00096 "# c None",
00097 ". c None",
00098 "b c #0000c5",
00099 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00100 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00101 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00102 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00103 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00104 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00105 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00106 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00107 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00108 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00109 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00110 "bbbba.a.bbbba.a.bbbba.a.bbbba.a.bbbba.a.bbbba.a.bbbba.a.bbbb",
00111 "bbbb.#.#bbbb.#.#bbbb.#.#bbbb.#.#bbbb.#.#bbbb.#.#bbbb.#.#bbbb",
00112 "bbbba.a.bbbba.a.bbbba.a.bbbba.a.bbbba.a.bbbba.a.bbbba.a.bbbb",
00113 "bbbb.#.#bbbb.#.#bbbb.#.#bbbb.#.#bbbb.#.#bbbb.#.#bbbb.#.#bbbb",
00114 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00115 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00116 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00117 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00118 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00119 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00120 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00121 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00122 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00123 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00124 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a."
00125 };
00126
00127 static const char *dashDotLineData[] =
00128 {
00129 "60 26 4 1",
00130 "a c None",
00131 "# c None",
00132 ". c None",
00133 "b c #0000c5",
00134 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00135 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00136 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00137 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00138 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00139 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00140 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00141 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00142 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00143 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00144 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00145 "bbbbbbbbbbbba.a.bbbba.a.bbbbbbbbbbbba.a.bbbba.a.bbbbbbbbbbbb",
00146 "bbbbbbbbbbbb.#.#bbbb.#.#bbbbbbbbbbbb.#.#bbbb.#.#bbbbbbbbbbbb",
00147 "bbbbbbbbbbbba.a.bbbba.a.bbbbbbbbbbbba.a.bbbba.a.bbbbbbbbbbbb",
00148 "bbbbbbbbbbbb.#.#bbbb.#.#bbbbbbbbbbbb.#.#bbbb.#.#bbbbbbbbbbbb",
00149 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00150 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00151 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00152 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00153 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00154 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00155 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00156 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00157 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00158 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00159 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a."
00160 };
00161
00162 static const char *dashDotDotLineData[] =
00163 {
00164 "60 26 5 1",
00165 "a c None",
00166 "# c None",
00167 ". c None",
00168 "c c #0000c5",
00169 "b c None",
00170 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00171 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00172 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00173 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00174 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00175 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00176 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00177 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00178 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00179 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00180 "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
00181 "cccccccccccca.a.cccca.a.cccca.a.cccccccccccca.a.cccca.a.cccc",
00182 "cccccccccccc.#.#cccc.#.#cccc.#.#cccccccccccc.#.#cccc.#.#cccc",
00183 "cccccccccccca.a.cccca.a.cccca.a.cccccccccccca.a.cccca.a.cccc",
00184 "cccccccccccc.#.#cccc.#.#cccc.#.#cccccccccccc.#.#cccc.#.#cccc",
00185 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00186 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00187 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00188 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00189 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00190 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00191 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00192 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00193 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00194 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00195 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a."
00196 };
00197
00198 static const char *noPenLineData[] =
00199 {
00200 "60 26 3 1",
00201 "a c None",
00202 "# c None",
00203 ". c None",
00204 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00205 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00206 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00207 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00208 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00209 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00210 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00211 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00212 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00213 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00214 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00215 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00216 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00217 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00218 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00219 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00220 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00221 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00222 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00223 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00224 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00225 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00226 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00227 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.",
00228 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00229 "a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a."
00230 };
00231
00232 static const char *solidData[] =
00233 {
00234 "50 20 1 1",
00235 ". c #3155c5",
00236 "..................................................",
00237 "..................................................",
00238 "..................................................",
00239 "..................................................",
00240 "..................................................",
00241 "..................................................",
00242 "..................................................",
00243 "..................................................",
00244 "..................................................",
00245 "..................................................",
00246 "..................................................",
00247 "..................................................",
00248 "..................................................",
00249 "..................................................",
00250 "..................................................",
00251 "..................................................",
00252 "..................................................",
00253 "..................................................",
00254 "..................................................",
00255 ".................................................."
00256 };
00257
00258 static const char *fdiagData[] =
00259 {
00260 "50 20 2 1",
00261 "# c #3155c5",
00262 ". c #ffffff",
00263 ".......#.......#.......#.......#.......#.......#..",
00264 "#.......#.......#.......#.......#.......#.......#.",
00265 ".#.......#.......#.......#.......#.......#.......#",
00266 "..#.......#.......#.......#.......#.......#.......",
00267 "...#.......#.......#.......#.......#.......#......",
00268 "....#.......#.......#.......#.......#.......#.....",
00269 ".....#.......#.......#.......#.......#.......#....",
00270 "......#.......#.......#.......#.......#.......#...",
00271 ".......#.......#.......#.......#.......#.......#..",
00272 "#.......#.......#.......#.......#.......#.......#.",
00273 ".#.......#.......#.......#.......#.......#.......#",
00274 "..#.......#.......#.......#.......#.......#.......",
00275 "...#.......#.......#.......#.......#.......#......",
00276 "....#.......#.......#.......#.......#.......#.....",
00277 ".....#.......#.......#.......#.......#.......#....",
00278 "......#.......#.......#.......#.......#.......#...",
00279 ".......#.......#.......#.......#.......#.......#..",
00280 "#.......#.......#.......#.......#.......#.......#.",
00281 ".#.......#.......#.......#.......#.......#.......#",
00282 "..#.......#.......#.......#.......#.......#......."
00283 };
00284
00285 static const char *dense4Data[] =
00286 {
00287 "50 20 2 1",
00288 "# c #3155c5",
00289 ". c #ffffff",
00290 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00291 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
00292 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00293 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
00294 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00295 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
00296 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00297 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
00298 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00299 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
00300 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00301 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
00302 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00303 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
00304 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00305 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
00306 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00307 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.",
00308 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00309 "#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#."
00310 };
00311
00312 static const char *horizontalData[] =
00313 {
00314 "50 20 2 1",
00315 "# c #3155c5",
00316 ". c #ffffff",
00317 "..................................................",
00318 "..................................................",
00319 "##################################################",
00320 "..................................................",
00321 "..................................................",
00322 "..................................................",
00323 "..................................................",
00324 "..................................................",
00325 "##################################################",
00326 "..................................................",
00327 "..................................................",
00328 "..................................................",
00329 "..................................................",
00330 "..................................................",
00331 "##################################################",
00332 "..................................................",
00333 "..................................................",
00334 "..................................................",
00335 "..................................................",
00336 ".................................................."
00337 };
00338
00339 static const char *dense5Data[] =
00340 {
00341 "50 20 2 1",
00342 ". c #3155c5",
00343 "# c #ffffff",
00344 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00345 "###.###.###.###.###.###.###.###.###.###.###.###.##",
00346 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00347 "#.###.###.###.###.###.###.###.###.###.###.###.###.",
00348 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00349 "###.###.###.###.###.###.###.###.###.###.###.###.##",
00350 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00351 "#.###.###.###.###.###.###.###.###.###.###.###.###.",
00352 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00353 "###.###.###.###.###.###.###.###.###.###.###.###.##",
00354 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00355 "#.###.###.###.###.###.###.###.###.###.###.###.###.",
00356 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00357 "###.###.###.###.###.###.###.###.###.###.###.###.##",
00358 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00359 "#.###.###.###.###.###.###.###.###.###.###.###.###.",
00360 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00361 "###.###.###.###.###.###.###.###.###.###.###.###.##",
00362 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00363 "#.###.###.###.###.###.###.###.###.###.###.###.###."
00364 };
00365
00366 static const char *diagCrossData[] =
00367 {
00368 "50 20 2 1",
00369 "# c #3155c5",
00370 ". c #ffffff",
00371 "..#.#.....#.#.....#.#.....#.#.....#.#.....#.#.....",
00372 "...#.......#.......#.......#.......#.......#......",
00373 "..#.#.....#.#.....#.#.....#.#.....#.#.....#.#.....",
00374 ".#...#...#...#...#...#...#...#...#...#...#...#...#",
00375 "#.....#.#.....#.#.....#.#.....#.#.....#.#.....#.#.",
00376 ".......#.......#.......#.......#.......#.......#..",
00377 "#.....#.#.....#.#.....#.#.....#.#.....#.#.....#.#.",
00378 ".#...#...#...#...#...#...#...#...#...#...#...#...#",
00379 "..#.#.....#.#.....#.#.....#.#.....#.#.....#.#.....",
00380 "...#.......#.......#.......#.......#.......#......",
00381 "..#.#.....#.#.....#.#.....#.#.....#.#.....#.#.....",
00382 ".#...#...#...#...#...#...#...#...#...#...#...#...#",
00383 "#.....#.#.....#.#.....#.#.....#.#.....#.#.....#.#.",
00384 ".......#.......#.......#.......#.......#.......#..",
00385 "#.....#.#.....#.#.....#.#.....#.#.....#.#.....#.#.",
00386 ".#...#...#...#...#...#...#...#...#...#...#...#...#",
00387 "..#.#.....#.#.....#.#.....#.#.....#.#.....#.#.....",
00388 "...#.......#.......#.......#.......#.......#......",
00389 "..#.#.....#.#.....#.#.....#.#.....#.#.....#.#.....",
00390 ".#...#...#...#...#...#...#...#...#...#...#...#...#"
00391 };
00392
00393 static const char *dense1Data[] =
00394 {
00395 "50 20 2 1",
00396 ". c #3155c5",
00397 "# c #ffffff",
00398 "..................................................",
00399 "..#...#...#...#...#...#...#...#...#...#...#...#...",
00400 "..................................................",
00401 "..................................................",
00402 "..................................................",
00403 "..#...#...#...#...#...#...#...#...#...#...#...#...",
00404 "..................................................",
00405 "..................................................",
00406 "..................................................",
00407 "..#...#...#...#...#...#...#...#...#...#...#...#...",
00408 "..................................................",
00409 "..................................................",
00410 "..................................................",
00411 "..#...#...#...#...#...#...#...#...#...#...#...#...",
00412 "..................................................",
00413 "..................................................",
00414 "..................................................",
00415 "..#...#...#...#...#...#...#...#...#...#...#...#...",
00416 "..................................................",
00417 ".................................................."
00418 };
00419
00420 static const char *dense6Data[] =
00421 {
00422 "50 20 2 1",
00423 "# c #3155c5",
00424 ". c #ffffff",
00425 "..................................................",
00426 "#...#...#...#...#...#...#...#...#...#...#...#...#.",
00427 "..................................................",
00428 "..#...#...#...#...#...#...#...#...#...#...#...#...",
00429 "..................................................",
00430 "#...#...#...#...#...#...#...#...#...#...#...#...#.",
00431 "..................................................",
00432 "..#...#...#...#...#...#...#...#...#...#...#...#...",
00433 "..................................................",
00434 "#...#...#...#...#...#...#...#...#...#...#...#...#.",
00435 "..................................................",
00436 "..#...#...#...#...#...#...#...#...#...#...#...#...",
00437 "..................................................",
00438 "#...#...#...#...#...#...#...#...#...#...#...#...#.",
00439 "..................................................",
00440 "..#...#...#...#...#...#...#...#...#...#...#...#...",
00441 "..................................................",
00442 "#...#...#...#...#...#...#...#...#...#...#...#...#.",
00443 "..................................................",
00444 "..#...#...#...#...#...#...#...#...#...#...#...#..."
00445 };
00446
00447 static const char *verticalData[] =
00448 {
00449 "50 20 2 1",
00450 "# c #3155c5",
00451 ". c #ffffff",
00452 ".....#.....#.....#.....#.....#.....#.....#.....#..",
00453 ".....#.....#.....#.....#.....#.....#.....#.....#..",
00454 ".....#.....#.....#.....#.....#.....#.....#.....#..",
00455 ".....#.....#.....#.....#.....#.....#.....#.....#..",
00456 ".....#.....#.....#.....#.....#.....#.....#.....#..",
00457 ".....#.....#.....#.....#.....#.....#.....#.....#..",
00458 ".....#.....#.....#.....#.....#.....#.....#.....#..",
00459 ".....#.....#.....#.....#.....#.....#.....#.....#..",
00460 ".....#.....#.....#.....#.....#.....#.....#.....#..",
00461 ".....#.....#.....#.....#.....#.....#.....#.....#..",
00462 ".....#.....#.....#.....#.....#.....#.....#.....#..",
00463 ".....#.....#.....#.....#.....#.....#.....#.....#..",
00464 ".....#.....#.....#.....#.....#.....#.....#.....#..",
00465 ".....#.....#.....#.....#.....#.....#.....#.....#..",
00466 ".....#.....#.....#.....#.....#.....#.....#.....#..",
00467 ".....#.....#.....#.....#.....#.....#.....#.....#..",
00468 ".....#.....#.....#.....#.....#.....#.....#.....#..",
00469 ".....#.....#.....#.....#.....#.....#.....#.....#..",
00470 ".....#.....#.....#.....#.....#.....#.....#.....#..",
00471 ".....#.....#.....#.....#.....#.....#.....#.....#.."
00472 };
00473
00474 static const char *dense7Data[] =
00475 {
00476 "50 20 2 1",
00477 ". c #3155c5",
00478 "# c #ffffff",
00479 "##################################################",
00480 "##################################################",
00481 ".###.###.###.###.###.###.###.###.###.###.###.###.#",
00482 "##################################################",
00483 "##################################################",
00484 "##################################################",
00485 ".###.###.###.###.###.###.###.###.###.###.###.###.#",
00486 "##################################################",
00487 "##################################################",
00488 "##################################################",
00489 ".###.###.###.###.###.###.###.###.###.###.###.###.#",
00490 "##################################################",
00491 "##################################################",
00492 "##################################################",
00493 ".###.###.###.###.###.###.###.###.###.###.###.###.#",
00494 "##################################################",
00495 "##################################################",
00496 "##################################################",
00497 ".###.###.###.###.###.###.###.###.###.###.###.###.#",
00498 "##################################################"
00499 };
00500
00501 static const char *crossData[] =
00502 {
00503 "50 20 2 1",
00504 "# c #3155c5",
00505 ". c #ffffff",
00506 ".....#.....#.....#.....#.....#.....#.....#.....#..",
00507 ".....#.....#.....#.....#.....#.....#.....#.....#..",
00508 ".....#.....#.....#.....#.....#.....#.....#.....#..",
00509 "##################################################",
00510 ".....#.....#.....#.....#.....#.....#.....#.....#..",
00511 ".....#.....#.....#.....#.....#.....#.....#.....#..",
00512 ".....#.....#.....#.....#.....#.....#.....#.....#..",
00513 ".....#.....#.....#.....#.....#.....#.....#.....#..",
00514 ".....#.....#.....#.....#.....#.....#.....#.....#..",
00515 "##################################################",
00516 ".....#.....#.....#.....#.....#.....#.....#.....#..",
00517 ".....#.....#.....#.....#.....#.....#.....#.....#..",
00518 ".....#.....#.....#.....#.....#.....#.....#.....#..",
00519 ".....#.....#.....#.....#.....#.....#.....#.....#..",
00520 ".....#.....#.....#.....#.....#.....#.....#.....#..",
00521 "##################################################",
00522 ".....#.....#.....#.....#.....#.....#.....#.....#..",
00523 ".....#.....#.....#.....#.....#.....#.....#.....#..",
00524 ".....#.....#.....#.....#.....#.....#.....#.....#..",
00525 ".....#.....#.....#.....#.....#.....#.....#.....#.."
00526 };
00527
00528 static const char *dense2Data[] =
00529 {
00530 "50 20 2 1",
00531 ". c #3155c5",
00532 "# c #ffffff",
00533 "..................................................",
00534 "...#...#...#...#...#...#...#...#...#...#...#...#..",
00535 "..................................................",
00536 ".#...#...#...#...#...#...#...#...#...#...#...#...#",
00537 "..................................................",
00538 "...#...#...#...#...#...#...#...#...#...#...#...#..",
00539 "..................................................",
00540 ".#...#...#...#...#...#...#...#...#...#...#...#...#",
00541 "..................................................",
00542 "...#...#...#...#...#...#...#...#...#...#...#...#..",
00543 "..................................................",
00544 ".#...#...#...#...#...#...#...#...#...#...#...#...#",
00545 "..................................................",
00546 "...#...#...#...#...#...#...#...#...#...#...#...#..",
00547 "..................................................",
00548 ".#...#...#...#...#...#...#...#...#...#...#...#...#",
00549 "..................................................",
00550 "...#...#...#...#...#...#...#...#...#...#...#...#..",
00551 "..................................................",
00552 ".#...#...#...#...#...#...#...#...#...#...#...#...#"
00553 };
00554
00555 static const char *bdiagData[] =
00556 {
00557 "50 20 2 1",
00558 "# c #3155c5",
00559 ". c #ffffff",
00560 ".#.......#.......#.......#.......#.......#.......#",
00561 "#.......#.......#.......#.......#.......#.......#.",
00562 ".......#.......#.......#.......#.......#.......#..",
00563 "......#.......#.......#.......#.......#.......#...",
00564 ".....#.......#.......#.......#.......#.......#....",
00565 "....#.......#.......#.......#.......#.......#.....",
00566 "...#.......#.......#.......#.......#.......#......",
00567 "..#.......#.......#.......#.......#.......#.......",
00568 ".#.......#.......#.......#.......#.......#.......#",
00569 "#.......#.......#.......#.......#.......#.......#.",
00570 ".......#.......#.......#.......#.......#.......#..",
00571 "......#.......#.......#.......#.......#.......#...",
00572 ".....#.......#.......#.......#.......#.......#....",
00573 "....#.......#.......#.......#.......#.......#.....",
00574 "...#.......#.......#.......#.......#.......#......",
00575 "..#.......#.......#.......#.......#.......#.......",
00576 ".#.......#.......#.......#.......#.......#.......#",
00577 "#.......#.......#.......#.......#.......#.......#.",
00578 ".......#.......#.......#.......#.......#.......#..",
00579 "......#.......#.......#.......#.......#.......#..."
00580 };
00581
00582 static const char *dense3Data[] =
00583 {
00584 "50 20 2 1",
00585 "# c #3155c5",
00586 ". c #ffffff",
00587 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00588 "#.###.###.###.###.###.###.###.###.###.###.###.###.",
00589 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00590 "###.###.###.###.###.###.###.###.###.###.###.###.##",
00591 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00592 "#.###.###.###.###.###.###.###.###.###.###.###.###.",
00593 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00594 "###.###.###.###.###.###.###.###.###.###.###.###.##",
00595 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00596 "#.###.###.###.###.###.###.###.###.###.###.###.###.",
00597 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00598 "###.###.###.###.###.###.###.###.###.###.###.###.##",
00599 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00600 "#.###.###.###.###.###.###.###.###.###.###.###.###.",
00601 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00602 "###.###.###.###.###.###.###.###.###.###.###.###.##",
00603 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00604 "#.###.###.###.###.###.###.###.###.###.###.###.###.",
00605 ".#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#",
00606 "###.###.###.###.###.###.###.###.###.###.###.###.##"
00607 };
00608
00609 static const char *nobrush[] =
00610 {
00611 "50 20 2 1",
00612 "# c None",
00613 ". c #3155c5",
00614 ".................................................."
00615 ".################################################.",
00616 ".################################################.",
00617 ".################################################.",
00618 ".################################################.",
00619 ".################################################.",
00620 ".################################################.",
00621 ".################################################.",
00622 ".################################################.",
00623 ".################################################.",
00624 ".################################################.",
00625 ".################################################.",
00626 ".################################################.",
00627 ".################################################.",
00628 ".################################################.",
00629 ".################################################.",
00630 ".################################################.",
00631 ".################################################.",
00632 ".################################################.",
00633 ".################################################.",
00634 ".................................................."
00635 };
00636
00637 static const char *texturePatternData[] =
00638 {
00639 "50 20 2 1",
00640 "# c #3155c5",
00641 ". c #ffffff",
00642 "..................................................",
00643 "..................#########.......................",
00644 "...............##############.....................",
00645 "..............####........#####...................",
00646 "...........................####...................",
00647 "...........................####...................",
00648 "...........................####...................",
00649 "...........................####...................",
00650 "..........................####....................",
00651 "..........................####....................",
00652 "........................####......................",
00653 "......................####........................",
00654 "....................####..........................",
00655 "...................####...........................",
00656 "...................####...........................",
00657 "..................................................",
00658 "...................####...........................",
00659 "...................####...........................",
00660 "...................####...........................",
00661 ".................................................."
00662 };
00663
00664 QString QgsSymbologyUtils::penStyle2QString( Qt::PenStyle penstyle )
00665 {
00666 if ( penstyle == Qt::NoPen )
00667 {
00668 return "NoPen";
00669 }
00670 else if ( penstyle == Qt::SolidLine )
00671 {
00672 return "SolidLine";
00673 }
00674 else if ( penstyle == Qt::DashLine )
00675 {
00676 return "DashLine";
00677 }
00678 else if ( penstyle == Qt::DotLine )
00679 {
00680 return "DotLine";
00681 }
00682 else if ( penstyle == Qt::DashDotLine )
00683 {
00684 return "DashDotLine";
00685 }
00686 else if ( penstyle == Qt::DashDotDotLine )
00687 {
00688 return "DashDotDotLine";
00689 }
00690 else if ( penstyle == Qt::MPenStyle )
00691 {
00692 return "MPenStyle";
00693 }
00694 else
00695 {
00696 return QString();
00697 }
00698 }
00699
00700 Qt::PenStyle QgsSymbologyUtils::qString2PenStyle( QString penString )
00701 {
00702 if ( penString == "NoPen" )
00703 {
00704 return Qt::NoPen;
00705 }
00706 else if ( penString == "SolidLine" )
00707 {
00708 return Qt::SolidLine;
00709 }
00710 else if ( penString == "DashLine" )
00711 {
00712 return Qt::DashLine;
00713 }
00714 else if ( penString == "DotLine" )
00715 {
00716 return Qt::DotLine;
00717 }
00718 else if ( penString == "DashDotLine" )
00719 {
00720 return Qt::DashDotLine;
00721 }
00722 else if ( penString == "DashDotDotLine" )
00723 {
00724 return Qt::DashDotDotLine;
00725 }
00726 else if ( penString == "MPenStyle" )
00727 {
00728 return Qt::MPenStyle;
00729 }
00730 else
00731 {
00732 return Qt::NoPen;
00733 }
00734 }
00735
00736 QString QgsSymbologyUtils::brushStyle2QString( Qt::BrushStyle brushstyle )
00737 {
00738 if ( brushstyle == Qt::NoBrush )
00739 {
00740 return "NoBrush";
00741 }
00742 else if ( brushstyle == Qt::SolidPattern )
00743 {
00744 return "SolidPattern";
00745 }
00746 else if ( brushstyle == Qt::Dense1Pattern )
00747 {
00748 return "Dense1Pattern";
00749 }
00750 else if ( brushstyle == Qt::Dense2Pattern )
00751 {
00752 return "Dense2Pattern";
00753 }
00754 else if ( brushstyle == Qt::Dense3Pattern )
00755 {
00756 return "Dense3Pattern";
00757 }
00758 else if ( brushstyle == Qt::Dense4Pattern )
00759 {
00760 return "Dense4Pattern";
00761 }
00762 else if ( brushstyle == Qt::Dense5Pattern )
00763 {
00764 return "Dense5Pattern";
00765 }
00766 else if ( brushstyle == Qt::Dense6Pattern )
00767 {
00768 return "Dense6Pattern";
00769 }
00770 else if ( brushstyle == Qt::Dense7Pattern )
00771 {
00772 return "Dense7Pattern";
00773 }
00774 else if ( brushstyle == Qt::HorPattern )
00775 {
00776 return "HorPattern";
00777 }
00778 else if ( brushstyle == Qt::VerPattern )
00779 {
00780 return "VerPattern";
00781 }
00782 else if ( brushstyle == Qt::CrossPattern )
00783 {
00784 return "CrossPattern";
00785 }
00786 else if ( brushstyle == Qt::BDiagPattern )
00787 {
00788 return "BDiagPattern";
00789 }
00790 else if ( brushstyle == Qt::FDiagPattern )
00791 {
00792 return "FDiagPattern";
00793 }
00794 else if ( brushstyle == Qt::DiagCrossPattern )
00795 {
00796 return "DiagCrossPattern";
00797 }
00798 else if ( brushstyle == Qt::TexturePattern )
00799 {
00800 return "TexturePattern";
00801 }
00802 else
00803 {
00804 QgsDebugMsg( "no matching pattern found" );
00805 return " ";
00806 }
00807 }
00808
00809 Qt::BrushStyle QgsSymbologyUtils::qString2BrushStyle( QString brushString )
00810 {
00811 if ( brushString == "NoBrush" )
00812 {
00813 return Qt::NoBrush;
00814 }
00815 else if ( brushString == "SolidPattern" )
00816 {
00817 return Qt::SolidPattern;
00818 }
00819 else if ( brushString == "Dense1Pattern" )
00820 {
00821 return Qt::Dense1Pattern;
00822 }
00823 else if ( brushString == "Dense2Pattern" )
00824 {
00825 return Qt::Dense2Pattern;
00826 }
00827 else if ( brushString == "Dense3Pattern" )
00828 {
00829 return Qt::Dense3Pattern;
00830 }
00831 else if ( brushString == "Dense4Pattern" )
00832 {
00833 return Qt::Dense4Pattern;
00834 }
00835 else if ( brushString == "Dense5Pattern" )
00836 {
00837 return Qt::Dense5Pattern;
00838 }
00839 else if ( brushString == "Dense6Pattern" )
00840 {
00841 return Qt::Dense6Pattern;
00842 }
00843 else if ( brushString == "Dense7Pattern" )
00844 {
00845 return Qt::Dense7Pattern;
00846 }
00847 else if ( brushString == "HorPattern" )
00848 {
00849 return Qt::HorPattern;
00850 }
00851 else if ( brushString == "VerPattern" )
00852 {
00853 return Qt::VerPattern;
00854 }
00855 else if ( brushString == "CrossPattern" )
00856 {
00857 return Qt::CrossPattern;
00858 }
00859 else if ( brushString == "BDiagPattern" )
00860 {
00861 return Qt::BDiagPattern;
00862 }
00863 else if ( brushString == "FDiagPattern" )
00864 {
00865 return Qt::FDiagPattern;
00866 }
00867 else if ( brushString == "DiagCrossPattern" )
00868 {
00869 return Qt::DiagCrossPattern;
00870 }
00871 else if ( brushString == "TexturePattern" )
00872 {
00873 return Qt::TexturePattern;
00874 }
00875 else
00876 {
00877 QgsDebugMsg( QString( "Brush style \"%1\" not found" ).arg( brushString ) );
00878 return Qt::NoBrush;
00879 }
00880 }
00881
00882 QPixmap QgsSymbologyUtils::qString2LinePixmap( QString lineString )
00883 {
00884 if ( lineString == "SolidLine" )
00885 {
00886 return QPixmap( solidLineData );
00887 }
00888
00889 if ( lineString == "DashLine" )
00890 {
00891 return QPixmap( dashLineData );
00892 }
00893
00894 if ( lineString == "DotLine" )
00895 {
00896 return QPixmap( dotLineData );
00897 }
00898
00899 if ( lineString == "DashDotLine" )
00900 {
00901 return QPixmap( dashDotLineData );
00902 }
00903
00904 if ( lineString == "DashDotDotLine" )
00905 {
00906 return QPixmap( dashDotDotLineData );
00907 }
00908 if ( lineString == "NoPen" )
00909 {
00910 return QPixmap( noPenLineData );
00911 }
00912
00913 return QPixmap();
00914 }
00915
00916 QPixmap QgsSymbologyUtils::qString2PatternPixmap( QString patternString )
00917 {
00918 if ( patternString == "SolidPattern" )
00919 {
00920 return QPixmap( solidData );
00921 }
00922 else if ( patternString == "Dense1Pattern" )
00923 {
00924 return QPixmap( dense1Data );
00925 }
00926 else if ( patternString == "Dense2Pattern" )
00927 {
00928 return QPixmap( dense2Data );
00929 }
00930 else if ( patternString == "Dense3Pattern" )
00931 {
00932 return QPixmap( dense3Data );
00933 }
00934 else if ( patternString == "Dense4Pattern" )
00935 {
00936 return QPixmap( dense4Data );
00937 }
00938 else if ( patternString == "Dense5Pattern" )
00939 {
00940 return QPixmap( dense5Data );
00941 }
00942 else if ( patternString == "Dense6Pattern" )
00943 {
00944 return QPixmap( dense6Data );
00945 }
00946 else if ( patternString == "Dense7Pattern" )
00947 {
00948 return QPixmap( dense7Data );
00949 }
00950 else if ( patternString == "HorPattern" )
00951 {
00952 return QPixmap( horizontalData );
00953 }
00954 else if ( patternString == "VerPattern" )
00955 {
00956 return QPixmap( verticalData );
00957 }
00958 else if ( patternString == "CrossPattern" )
00959 {
00960 return QPixmap( crossData );
00961 }
00962 else if ( patternString == "BDiagPattern" )
00963 {
00964 return QPixmap( bdiagData );
00965 }
00966 else if ( patternString == "FDiagPattern" )
00967 {
00968 return QPixmap( fdiagData );
00969 }
00970 else if ( patternString == "DiagCrossPattern" )
00971 {
00972 return QPixmap( diagCrossData );
00973 }
00974 else if ( patternString == "TexturePattern" )
00975 {
00976 return QPixmap( texturePatternData );
00977 }
00978 else if ( patternString == "NoBrush" )
00979 {
00980 return QPixmap( nobrush );
00981 }
00982 else
00983 {
00984 QgsDebugMsg( "no matching pattern found" );
00985 return QPixmap();
00986 }
00987 }
00988
00989 const char * QgsSymbologyUtils::penStyle2Char( Qt::PenStyle penstyle )
00990 {
00991 if ( penstyle == Qt::NoPen )
00992 {
00993 return "NoPen";
00994 }
00995 else if ( penstyle == Qt::SolidLine )
00996 {
00997 return "SolidLine";
00998 }
00999 else if ( penstyle == Qt::DashLine )
01000 {
01001 return "DashLine";
01002 }
01003 else if ( penstyle == Qt::DotLine )
01004 {
01005 return "DotLine";
01006 }
01007 else if ( penstyle == Qt::DashDotLine )
01008 {
01009 return "DashDotLine";
01010 }
01011 else if ( penstyle == Qt::DashDotDotLine )
01012 {
01013 return "DashDotDotLine";
01014 }
01015 else if ( penstyle == Qt::MPenStyle )
01016 {
01017 return "MPenStyle";
01018 }
01019 else
01020 {
01021 return " ";
01022 }
01023 }
01024
01025 const char *QgsSymbologyUtils::brushStyle2Char( Qt::BrushStyle brushstyle )
01026 {
01027 if ( brushstyle == Qt::NoBrush )
01028 {
01029 return "NoBrush";
01030 }
01031 else if ( brushstyle == Qt::SolidPattern )
01032 {
01033 return "SolidPattern";
01034 }
01035 else if ( brushstyle == Qt::Dense1Pattern )
01036 {
01037 return "Dense1Pattern";
01038 }
01039 else if ( brushstyle == Qt::Dense2Pattern )
01040 {
01041 return "Dense2Pattern";
01042 }
01043 else if ( brushstyle == Qt::Dense3Pattern )
01044 {
01045 return "Dense3Pattern";
01046 }
01047 else if ( brushstyle == Qt::Dense4Pattern )
01048 {
01049 return "Dense4Pattern";
01050 }
01051 else if ( brushstyle == Qt::Dense5Pattern )
01052 {
01053 return "Dense5Pattern";
01054 }
01055 else if ( brushstyle == Qt::Dense6Pattern )
01056 {
01057 return "Dense6Pattern";
01058 }
01059 else if ( brushstyle == Qt::Dense7Pattern )
01060 {
01061 return "Dense7Pattern";
01062 }
01063 else if ( brushstyle == Qt::HorPattern )
01064 {
01065 return "HorPattern";
01066 }
01067 else if ( brushstyle == Qt::VerPattern )
01068 {
01069 return "VerPattern";
01070 }
01071 else if ( brushstyle == Qt::CrossPattern )
01072 {
01073 return "CrossPattern";
01074 }
01075 else if ( brushstyle == Qt::BDiagPattern )
01076 {
01077 return "BDiagPattern";
01078 }
01079 else if ( brushstyle == Qt::FDiagPattern )
01080 {
01081 return "FDiagPattern";
01082 }
01083 else if ( brushstyle == Qt::DiagCrossPattern )
01084 {
01085 return "DiagCrossPattern";
01086 }
01087 else if ( brushstyle == Qt::TexturePattern )
01088 {
01089 return "TexturePattern";
01090 }
01091 else
01092 {
01093 return " ";
01094 }
01095 }
01096
01097 QPixmap QgsSymbologyUtils::char2LinePixmap( const char *c )
01098 {
01099 if ( strcmp( c, "SolidLine" ) == 0 )
01100 {
01101 return QPixmap( solidLineData );
01102 }
01103
01104 else if ( strcmp( c, "DashLine" ) == 0 )
01105 {
01106 return QPixmap( dashLineData );
01107 }
01108
01109 else if ( strcmp( c, "DotLine" ) == 0 )
01110 {
01111 return QPixmap( dotLineData );
01112 }
01113
01114 else if ( strcmp( c, "DashDotLine" ) == 0 )
01115 {
01116 return QPixmap( dashDotLineData );
01117 }
01118
01119 else if ( strcmp( c, "DashDotDotLine" ) == 0 )
01120 {
01121 return QPixmap( dashDotDotLineData );
01122 }
01123
01124 else if ( strcmp( c, "NoPen" ) == 0 )
01125 {
01126 return QPixmap( noPenLineData );
01127 }
01128
01129 else
01130 {
01131 QgsDebugMsg( "no matching style found" );
01132 return QPixmap();
01133 }
01134 }
01135
01136 QPixmap QgsSymbologyUtils::char2PatternPixmap( const char *c )
01137 {
01138 if ( strcmp( c, "SolidPattern" ) == 0 )
01139 {
01140 return QPixmap( solidData );
01141 }
01142 else if ( strcmp( c, "Dense1Pattern" ) == 0 )
01143 {
01144 return QPixmap( dense1Data );
01145 }
01146 else if ( strcmp( c, "Dense2Pattern" ) == 0 )
01147 {
01148 return QPixmap( dense2Data );
01149 }
01150 else if ( strcmp( c, "Dense3Pattern" ) == 0 )
01151 {
01152 return QPixmap( dense3Data );
01153 }
01154 else if ( strcmp( c, "Dense4Pattern" ) == 0 )
01155 {
01156 return QPixmap( dense4Data );
01157 }
01158 else if ( strcmp( c, "Dense5Pattern" ) == 0 )
01159 {
01160 return QPixmap( dense5Data );
01161 }
01162 else if ( strcmp( c, "Dense6Pattern" ) == 0 )
01163 {
01164 return QPixmap( dense6Data );
01165 }
01166 else if ( strcmp( c, "Dense7Pattern" ) == 0 )
01167 {
01168 return QPixmap( dense7Data );
01169 }
01170 else if ( strcmp( c, "HorPattern" ) == 0 )
01171 {
01172 return QPixmap( horizontalData );
01173 }
01174 else if ( strcmp( c, "VerPattern" ) == 0 )
01175 {
01176 return QPixmap( verticalData );
01177 }
01178 else if ( strcmp( c, "CrossPattern" ) == 0 )
01179 {
01180 return QPixmap( crossData );
01181 }
01182 else if ( strcmp( c, "BDiagPattern" ) == 0 )
01183 {
01184 return QPixmap( bdiagData );
01185 }
01186 else if ( strcmp( c, "FDiagPattern" ) == 0 )
01187 {
01188 return QPixmap( fdiagData );
01189 }
01190 else if ( strcmp( c, "DiagCrossPattern" ) == 0 )
01191 {
01192 return QPixmap( diagCrossData );
01193 }
01194 else if ( strcmp( c, "TexturePattern" ) == 0 )
01195 {
01196 return QPixmap( texturePatternData );
01197 }
01198 else if ( strcmp( c, "NoBrush" ) == 0 )
01199 {
01200 return QPixmap( nobrush );
01201 }
01202 else
01203 {
01204 QgsDebugMsg( "no matching pattern found" );
01205 return QPixmap();
01206 }
01207
01208 }
01209
01210 Qt::PenStyle QgsSymbologyUtils::char2PenStyle( const char *c )
01211 {
01212 if ( strcmp( c, "NoPen" ) == 0 )
01213 {
01214 return Qt::NoPen;
01215 }
01216 else if ( strcmp( c, "SolidLine" ) == 0 )
01217 {
01218 return Qt::SolidLine;
01219 }
01220 else if ( strcmp( c, "DashLine" ) == 0 )
01221 {
01222 return Qt::DashLine;
01223 }
01224 else if ( strcmp( c, "DotLine" ) == 0 )
01225 {
01226 return Qt::DotLine;
01227 }
01228 else if ( strcmp( c, "DashDotLine" ) == 0 )
01229 {
01230 return Qt::DashDotLine;
01231 }
01232 else if ( strcmp( c, "DashDotDotLine" ) == 0 )
01233 {
01234 return Qt::DashDotDotLine;
01235 }
01236 else if ( strcmp( c, "MPenStyle" ) == 0 )
01237 {
01238 return Qt::MPenStyle;
01239 }
01240 else
01241 {
01242 QgsDebugMsg( "no matching pen style found" );
01243 return Qt::NoPen;
01244 }
01245 }
01246
01247 Qt::BrushStyle QgsSymbologyUtils::char2BrushStyle( const char *c )
01248 {
01249 if ( strcmp( c, "SolidPattern" ) == 0 )
01250 {
01251 return Qt::SolidPattern;
01252 }
01253 else if ( strcmp( c, "Dense1Pattern" ) == 0 )
01254 {
01255 return Qt::Dense1Pattern;
01256 }
01257 else if ( strcmp( c, "Dense2Pattern" ) == 0 )
01258 {
01259 return Qt::Dense2Pattern;
01260 }
01261 else if ( strcmp( c, "Dense3Pattern" ) == 0 )
01262 {
01263 return Qt::Dense3Pattern;
01264 }
01265 else if ( strcmp( c, "Dense4Pattern" ) == 0 )
01266 {
01267 return Qt::Dense4Pattern;
01268 }
01269 else if ( strcmp( c, "Dense5Pattern" ) == 0 )
01270 {
01271 return Qt::Dense5Pattern;
01272 }
01273 else if ( strcmp( c, "Dense6Pattern" ) == 0 )
01274 {
01275 return Qt::Dense6Pattern;
01276 }
01277 else if ( strcmp( c, "Dense7Pattern" ) == 0 )
01278 {
01279 return Qt::Dense7Pattern;
01280 }
01281 else if ( strcmp( c, "HorPattern" ) == 0 )
01282 {
01283 return Qt::HorPattern;
01284 }
01285 else if ( strcmp( c, "VerPattern" ) == 0 )
01286 {
01287 return Qt::VerPattern;
01288 }
01289 else if ( strcmp( c, "CrossPattern" ) == 0 )
01290 {
01291 return Qt::CrossPattern;
01292 }
01293 else if ( strcmp( c, "BDiagPattern" ) == 0 )
01294 {
01295 return Qt::BDiagPattern;
01296 }
01297 else if ( strcmp( c, "FDiagPattern" ) == 0 )
01298 {
01299 return Qt::FDiagPattern;
01300 }
01301 else if ( strcmp( c, "DiagCrossPattern" ) == 0 )
01302 {
01303 return Qt::DiagCrossPattern;
01304 }
01305 else if ( strcmp( c, "TexturePattern" ) == 0 )
01306 {
01307 return Qt::TexturePattern;
01308 }
01309 else if ( strcmp( c, "NoBrush" ) == 0 )
01310 {
01311 return Qt::NoBrush;
01312 }
01313 else
01314 {
01315 QgsDebugMsg( "no matching brush style found" );
01316 return Qt::NoBrush;
01317 }
01318 }
01319
01320 QPixmap QgsSymbologyUtils::penStyle2Pixmap( Qt::PenStyle penstyle )
01321 {
01322 switch ( penstyle )
01323 {
01324 case( Qt::SolidLine ):
01325 return QPixmap( solidLineData );
01326 break;
01327 case( Qt::DashLine ):
01328 return QPixmap( dashLineData );
01329 break;
01330 case( Qt::DotLine ):
01331 return QPixmap( dotLineData );
01332 break;
01333 case( Qt::DashDotLine ):
01334 return QPixmap( dashDotLineData );
01335 break;
01336 case( Qt::DashDotDotLine ):
01337 return QPixmap( dashDotDotLineData );
01338 break;
01339 case( Qt::NoPen ):
01340 return QPixmap( noPenLineData );
01341 break;
01342 default:
01343 QgsDebugMsg( "no matching pen style found" );
01344 return QPixmap();
01345 }
01346 }
01347
01348 QPixmap QgsSymbologyUtils::brushStyle2Pixmap( Qt::BrushStyle brushstyle )
01349 {
01350 switch ( brushstyle )
01351 {
01352 case( Qt::SolidPattern ):
01353 return QPixmap( solidData );
01354 break;
01355 case( Qt::Dense1Pattern ):
01356 return QPixmap( dense1Data );
01357 break;
01358 case( Qt::Dense2Pattern ):
01359 return QPixmap( dense2Data );
01360 break;
01361 case( Qt::Dense3Pattern ):
01362 return QPixmap( dense3Data );
01363 break;
01364 case( Qt::Dense4Pattern ):
01365 return QPixmap( dense4Data );
01366 break;
01367 case( Qt::Dense5Pattern ):
01368 return QPixmap( dense5Data );
01369 break;
01370 case( Qt::Dense6Pattern ):
01371 return QPixmap( dense6Data );
01372 break;
01373 case( Qt::Dense7Pattern ):
01374 return QPixmap( dense7Data );
01375 break;
01376 case( Qt::HorPattern ):
01377 return QPixmap( horizontalData );
01378 break;
01379 case( Qt::VerPattern ):
01380 return QPixmap( verticalData );
01381 break;
01382 case( Qt::CrossPattern ):
01383 return QPixmap( crossData );
01384 break;
01385 case( Qt::BDiagPattern ):
01386 return QPixmap( bdiagData );
01387 break;
01388 case( Qt::FDiagPattern ):
01389 return QPixmap( fdiagData );
01390 break;
01391 case( Qt::DiagCrossPattern ):
01392 return QPixmap( diagCrossData );
01393 break;
01394 case( Qt::TexturePattern ) :
01395 return QPixmap( texturePatternData );
01396 break;
01397 case( Qt::NoBrush ):
01398 return QPixmap( nobrush );
01399 default:
01400 QgsDebugMsg( "no matching pattern found" );
01401 }
01402
01403 return QPixmap();
01404 }