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