patch_for_bug_731.txt

Diff with current HEAD. - Steven Bell -, 2007-06-18 06:32 PM

Download (37.1 KB)

 
1
Index: src/app/qgssinglesymboldialog.h
2
===================================================================
3
--- src/app/qgssinglesymboldialog.h	(revision 6947)
4
+++ src/app/qgssinglesymboldialog.h	(working copy)
5
@@ -62,6 +62,7 @@
6
 protected slots:
7
     void selectOutlineColor();
8
     void selectFillColor();
9
+	void selectTextureImage();
10
 
11
 private:
12
     /** Default constructor is private, do not use this */
13
Index: src/app/qgsgraduatedsymboldialog.cpp
14
===================================================================
15
--- src/app/qgsgraduatedsymboldialog.cpp	(revision 6947)
16
+++ src/app/qgsgraduatedsymboldialog.cpp	(working copy)
17
@@ -96,6 +96,7 @@
18
 		QString classbreak=(*it)->lowerValue()+" - "+(*it)->upperValue();
19
 		QgsSymbol* sym=new QgsSymbol(mVectorLayer->vectorType(), (*it)->lowerValue(), (*it)->upperValue(), (*it)->label());
20
 		sym->setPen((*it)->pen());
21
+		sym->setCustomTexture((*it)->customTexture());
22
 		sym->setBrush((*it)->brush());
23
 		sym->setNamedPointSymbol((*it)->pointSymbolName());
24
 		sym->setPointSize((*it)->pointSize());
25
@@ -185,6 +186,7 @@
26
 	  if (mVectorLayer->vectorType() != QGis::Line)
27
             {
28
 	      sy->setFillColor(it->second->brush().color());
29
+	      sy->setCustomTexture(it->second->customTexture());//necessary?
30
 	      sy->setFillStyle(it->second->brush().style());
31
             }
32
 	  
33
Index: src/app/qgsuniquevaluedialog.cpp
34
===================================================================
35
--- src/app/qgsuniquevaluedialog.cpp	(revision 6947)
36
+++ src/app/qgsuniquevaluedialog.cpp	(working copy)
37
@@ -24,7 +24,6 @@
38
 #include "qgsvectordataprovider.h"
39
 #include "qgsvectorlayer.h"
40
 
41
-
42
 QgsUniqueValueDialog::QgsUniqueValueDialog(QgsVectorLayer* vl): QDialog(), mVectorLayer(vl), sydialog(vl)
43
 {
44
     setupUi(this);
45
@@ -69,6 +68,7 @@
46
 	    QString symbolvalue=symbol->lowerValue();
47
 	    QgsSymbol* sym=new QgsSymbol(mVectorLayer->vectorType(), symbol->lowerValue(), symbol->upperValue(), symbol->label());
48
 	    sym->setPen(symbol->pen());
49
+        sym->setCustomTexture(symbol->customTexture());
50
 	    sym->setBrush(symbol->brush());
51
 	    sym->setNamedPointSymbol(symbol->pointSymbolName());
52
 	    sym->setPointSize(symbol->pointSize());
53
@@ -112,6 +112,7 @@
54
 	QgsSymbol* symbol=it->second;
55
 	QgsSymbol* newsymbol=new QgsSymbol(mVectorLayer->vectorType(), symbol->lowerValue(), symbol->upperValue(), symbol->label());
56
 	newsymbol->setPen(symbol->pen());
57
+    newsymbol->setCustomTexture(symbol->customTexture());
58
 	newsymbol->setBrush(symbol->brush());
59
 	newsymbol->setNamedPointSymbol(symbol->pointSymbolName());
60
 	newsymbol->setPointSize(symbol->pointSize());
61
@@ -203,7 +204,7 @@
62
 	if(it!=mValues.end())
63
 	  {
64
 	    sydialog.set( it->second);
65
-	    sydialog.setLabel(it->second->label());
66
+ 	    sydialog.setLabel(it->second->label());
67
 	  }
68
 	else
69
 	  {
70
@@ -227,7 +228,7 @@
71
   delete (mClassListWidget->takeItem(currentIndex));
72
   qWarning("numRows: ");
73
   qWarning(QString::number(mClassListWidget->count()));
74
-  //
75
+
76
   if(mClassListWidget->count() < (currentIndex + 1))
77
     {
78
       qWarning("selecting numRows - 1");
79
Index: src/app/qgssinglesymboldialog.cpp
80
===================================================================
81
--- src/app/qgssinglesymboldialog.cpp	(revision 6947)
82
+++ src/app/qgssinglesymboldialog.cpp	(working copy)
83
@@ -25,6 +25,8 @@
84
 
85
 #include <QColorDialog>
86
 #include <QPainter>
87
+#include <QImage>
88
+#include <QFileDialog>
89
 
90
 
91
 QgsSingleSymbolDialog::QgsSingleSymbolDialog(): QDialog(), mVectorLayer(0)
92
@@ -100,6 +102,7 @@
93
     dense6->setPixmap(QgsSymbologyUtils::char2PatternPixmap("Dense6Pattern"));
94
     dense7->setPixmap(QgsSymbologyUtils::char2PatternPixmap("Dense7Pattern"));
95
     nopen->setPixmap(QgsSymbologyUtils::char2PatternPixmap("NoBrush"));
96
+	texture->setPixmap(QgsSymbologyUtils::char2PatternPixmap("TexturePattern"));
97
 
98
 
99
     if (mVectorLayer)
100
@@ -108,9 +111,9 @@
101
 
102
         if (renderer)
103
         {
104
-	    // Set from the existing renderer
105
-	    set ( renderer->symbol() );
106
-	}
107
+	      // Set from the existing renderer
108
+	      set ( renderer->symbol() );
109
+	    }
110
         else
111
         {
112
             // Take values from an example instance
113
@@ -167,7 +170,8 @@
114
     QObject::connect(dense2, SIGNAL(clicked()), this, SLOT(resendSettingsChanged()));
115
     QObject::connect(dense7, SIGNAL(clicked()), this, SLOT(resendSettingsChanged()));
116
     QObject::connect(nopen, SIGNAL(clicked()), this, SLOT(resendSettingsChanged()));
117
-
118
+    QObject::connect(texture, SIGNAL(clicked()), this, SLOT(resendSettingsChanged()));
119
+	QObject::connect(textureSelect, SIGNAL(clicked()), this, SLOT(selectTextureImage()));
120
 }
121
 
122
 QgsSingleSymbolDialog::~QgsSingleSymbolDialog()
123
@@ -201,6 +205,21 @@
124
     setActiveWindow();
125
 }
126
 
127
+//should this method have a different name?
128
+void QgsSingleSymbolDialog::selectTextureImage()
129
+{
130
+  QString fileName = QFileDialog::getOpenFileName(this, "Open File",
131
+                                                textureFilePath->text(),
132
+                                                "Images (*.png *.xpm *.jpg)"); //should we allow other types of images?
133
+
134
+  if(fileName.isNull() == false){ //only process the string if the user clicked OK
135
+    textureFilePath->setText(fileName);
136
+    texture->setOn(true); //set the fill style to custom texture
137
+    texture->setPixmap(QPixmap(fileName)); //Change the button to show the selected image
138
+    resendSettingsChanged();
139
+  }
140
+}
141
+
142
 void QgsSingleSymbolDialog::apply( QgsSymbol *sy )
143
 {
144
     //query the values of the widgets and set the symbology of the vector layer
145
@@ -235,6 +254,10 @@
146
     // Apply the pattern
147
     //
148
 
149
+    //Store the file path, and set the brush to TexturePattern.  If we have a different button selected,
150
+    // the below code will override it, but leave the file path alone.
151
+    sy->setCustomTexture(textureFilePath->text());
152
+
153
     if (solid->isOn())
154
     {
155
         sy->setFillStyle(Qt::SolidPattern);
156
@@ -295,6 +318,10 @@
157
     {
158
         sy->setFillStyle(Qt::NoBrush);
159
     }
160
+    else if (texture->isOn())
161
+    {
162
+      //we already set the brush to TexturePattern up above, so don't do anything here
163
+    }
164
 
165
     //apply the label
166
     sy->setLabel(mLabelEdit->text());
167
@@ -412,10 +439,22 @@
168
 	    case Qt::NoBrush :
169
 		nopen->setOn(true);
170
 		break;
171
+		case Qt::TexturePattern :
172
+		texture->setOn(true);
173
+		break;
174
 	    default :
175
 		solid->setOn(true);
176
 		break;
177
 	}
178
+    textureFilePath->setText(sy->customTexture()); //get and show the file path, even if we aren't using it.
179
+    if(sy->customTexture().size() > 0)//if the file path isn't empty, show the image on the button
180
+    {
181
+      texture->setPixmap(QPixmap(sy->customTexture())); //show the current texture image
182
+    }
183
+	else
184
+    {
185
+      texture->setPixmap(QgsSymbologyUtils::char2PatternPixmap("TexturePattern")); //show the default question mark
186
+    }
187
 }
188
 
189
 void QgsSingleSymbolDialog::setOutlineColor(QColor& c)
190
@@ -480,6 +519,8 @@
191
         (dense6->setOn(true));
192
     else if (fstyle==Qt::Dense7Pattern)
193
         (dense7->setOn(true));
194
+	else if (fstyle==Qt::TexturePattern)
195
+		(texture->setOn(true));
196
     else if (fstyle==Qt::NoBrush)
197
         (nopen->setOn(true)); //default to no brush
198
 }
199
@@ -579,6 +620,10 @@
200
     {
201
         return Qt::Dense3Pattern;
202
     }
203
+    else if (texture->isOn())
204
+    {
205
+        return Qt::TexturePattern;
206
+    }
207
     //fall back to transparent
208
     return Qt::NoBrush;
209
 
210
Index: src/core/symbology/qgssymbol.cpp
211
===================================================================
212
--- src/core/symbology/qgssymbol.cpp	(revision 6947)
213
+++ src/core/symbology/qgssymbol.cpp	(working copy)
214
@@ -26,6 +26,9 @@
215
 #include <QPainter>
216
 #include <QDomNode>
217
 #include <QDomDocument>
218
+#include <QImage>
219
+//#include <QString>
220
+//do we have to include qstring?
221
 
222
 QgsSymbol::QgsSymbol(QGis::VectorType t, QString lvalue, QString uvalue, QString label) : 
223
       mLowerValue(lvalue),
224
@@ -87,6 +90,7 @@
225
     mType = s.mType;
226
     mPen = s.mPen;
227
     mBrush = s.mBrush;
228
+	mTextureFilePath = s.mTextureFilePath;
229
     mPointSymbolName = s.mPointSymbolName;
230
     mPointSize = s.mPointSize;
231
     mPointSymbolImage = s.mPointSymbolImage;
232
@@ -152,6 +156,20 @@
233
   mCacheUpToDate = mCacheUpToDate2 = false;
234
 }
235
 
236
+QString QgsSymbol::customTexture() const
237
+{
238
+	return mTextureFilePath;
239
+}
240
+
241
+void QgsSymbol::setCustomTexture( QString path )
242
+{
243
+  mTextureFilePath = path;
244
+  mBrush.setTextureImage(QImage (path));
245
+  mCacheUpToDate = mCacheUpToDate2 = false;
246
+}
247
+
248
+//should we set the path independently of setting the texture?
249
+
250
 void QgsSymbol::setNamedPointSymbol(QString name)
251
 {
252
     mPointSymbolName = name;
253
@@ -322,6 +340,11 @@
254
     symbol.appendChild(fillpattern);
255
     fillpattern.appendChild(fillpatterntxt);
256
     
257
+	QDomElement texturepath=document.createElement("texturepath");
258
+    QDomText texturepathtxt=document.createTextNode(mTextureFilePath);
259
+    symbol.appendChild(texturepath);
260
+    texturepath.appendChild(texturepathtxt);
261
+
262
     return returnval;
263
 }
264
 
265
@@ -390,6 +413,11 @@
266
     blue = fillcelement.attribute("blue").toInt();
267
     setFillColor(QColor(red, green, blue));
268
 
269
+    QDomNode texturepathnode = synode.namedItem("texturepath");
270
+    QDomElement texturepathelement = texturepathnode.toElement();
271
+    setCustomTexture(texturepathelement.text());
272
+
273
+	//run this after setting the custom texture path, so we override the brush if it isn't the custom pattern brush.
274
     QDomNode fillpnode = synode.namedItem("fillpattern");
275
     QDomElement fillpelement = fillpnode.toElement();
276
     setFillStyle(QgsSymbologyUtils::qString2BrushStyle(fillpelement.text()));
277
Index: src/core/symbology/qgssymbologyutils.cpp
278
===================================================================
279
--- src/core/symbology/qgssymbologyutils.cpp	(revision 6947)
280
+++ src/core/symbology/qgssymbologyutils.cpp	(working copy)
281
@@ -612,6 +612,32 @@
282
   ".................................................."
283
 };
284
 
285
+static const char *texturePatternData[] = {
286
+  "50 20 2 1",
287
+  "# c #3155c5",
288
+  ". c #ffffff",
289
+  "..................................................",
290
+  "..................#########.......................",
291
+  "...............##############.....................",
292
+  "..............####........#####...................",
293
+  "...........................####...................",
294
+  "...........................####...................",
295
+  "...........................####...................",
296
+  "...........................####...................",
297
+  "..........................####....................",
298
+  "..........................####....................",
299
+  "........................####......................",
300
+  "......................####........................",
301
+  "....................####..........................",
302
+  "...................####...........................",
303
+  "...................####...........................",
304
+  "..................................................",
305
+  "...................####...........................",
306
+  "...................####...........................",
307
+  "...................####...........................",
308
+  ".................................................."
309
+};
310
+
311
 QString QgsSymbologyUtils::penStyle2QString(Qt::PenStyle penstyle)
312
 {
313
   if (penstyle == Qt::NoPen)
314
@@ -779,6 +805,7 @@
315
       return Qt::TexturePattern;
316
   } else                        //return a null string
317
     {
318
+     qWarning("Brush style \"" + brushString + "\" not found in qString2BrushStyle");
319
       return Qt::NoBrush;
320
     }
321
 }
322
@@ -861,6 +888,9 @@
323
   } else if (patternString == "DiagCrossPattern")
324
     {
325
       return QPixmap(diagCrossData);
326
+  } else if (patternString == "TexturePattern")
327
+    {
328
+      return QPixmap(texturePatternData);
329
   } else if (patternString == "NoBrush")
330
     {
331
       return QPixmap(nobrush);
332
@@ -1039,8 +1069,11 @@
333
   } else if (strcmp(c, "DiagCrossPattern") == 0)
334
     {
335
       return QPixmap(diagCrossData);
336
-  } else if (strcmp(c, "NoBrush") == 0)
337
+  } else if (strcmp(c, "TexturePattern") == 0)
338
     {
339
+      return QPixmap(texturePatternData);
340
+  }else if (strcmp(c, "NoBrush") == 0)
341
+    {
342
       return QPixmap(nobrush);
343
   } else
344
     {
345
@@ -1127,11 +1160,11 @@
346
   } else if (strcmp(c, "CustomPattern") == 0)
347
     {
348
       return Qt::TexturePattern;
349
-  } else if(strcmp(c, "NoBrush") == 0)
350
-{
351
-    return Qt::NoBrush;
352
-}else                        //return a null string
353
+  } else if (strcmp(c, "NoBrush") == 0)
354
     {
355
+      return Qt::NoBrush;
356
+  }else                        //return a null string
357
+    {
358
       qWarning("Warning, no matching brush style found in QgsSymbologyUtils::char2BrushStyle");
359
       return Qt::NoBrush;
360
     }
361
@@ -1211,6 +1244,9 @@
362
       case (Qt::DiagCrossPattern):
363
         return QPixmap(diagCrossData);
364
         break;
365
+      case (Qt::TexturePattern) :
366
+		return QPixmap(texturePatternData);
367
+		break;
368
       case (Qt::NoBrush):
369
         return QPixmap(nobrush);
370
       default:
371
Index: src/core/symbology/qgssymbol.h
372
===================================================================
373
--- src/core/symbology/qgssymbol.h	(revision 6947)
374
+++ src/core/symbology/qgssymbol.h	(working copy)
375
@@ -65,6 +65,12 @@
376
     virtual void setLineStyle(Qt::PenStyle s);
377
     /**Set the fill (brush) style*/
378
     virtual void setFillStyle(Qt::BrushStyle s);
379
+
380
+	/**Gets the path to the customs texture image*/
381
+	virtual QString customTexture() const;
382
+	/**Sets the path to the custom texture, and sets the brush to use TexturePattern */
383
+	virtual void setCustomTexture(QString path);
384
+
385
     virtual void setLowerValue(QString value);
386
     virtual QString lowerValue() const;
387
     virtual void setUpperValue(QString value);
388
@@ -114,6 +120,7 @@
389
 
390
     QPen mPen;
391
     QBrush mBrush;
392
+	QString mTextureFilePath;
393
     /* Point symbol name */
394
     QString mPointSymbolName;
395
     /* Point size */
396
Index: src/ui/qgssinglesymboldialogbase.ui
397
===================================================================
398
--- src/ui/qgssinglesymboldialogbase.ui	(revision 6947)
399
+++ src/ui/qgssinglesymboldialogbase.ui	(working copy)
400
@@ -6,7 +6,7 @@
401
     <x>0</x>
402
     <y>0</y>
403
     <width>413</width>
404
-    <height>486</height>
405
+    <height>497</height>
406
    </rect>
407
   </property>
408
   <property name="sizePolicy" >
409
@@ -27,24 +27,76 @@
410
    <property name="spacing" >
411
     <number>6</number>
412
    </property>
413
-   <item row="4" column="0" >
414
-    <widget class="QGroupBox" name="grpPattern" >
415
+   <item row="0" column="0" >
416
+    <layout class="QHBoxLayout" >
417
+     <property name="margin" >
418
+      <number>0</number>
419
+     </property>
420
+     <property name="spacing" >
421
+      <number>6</number>
422
+     </property>
423
+     <item>
424
+      <widget class="QLabel" name="mLabel" >
425
+       <property name="minimumSize" >
426
+        <size>
427
+         <width>0</width>
428
+         <height>22</height>
429
+        </size>
430
+       </property>
431
+       <property name="text" >
432
+        <string>Label:</string>
433
+       </property>
434
+       <property name="buddy" >
435
+        <cstring>mLabelEdit</cstring>
436
+       </property>
437
+      </widget>
438
+     </item>
439
+     <item>
440
+      <widget class="QLineEdit" name="mLabelEdit" >
441
+       <property name="minimumSize" >
442
+        <size>
443
+         <width>0</width>
444
+         <height>22</height>
445
+        </size>
446
+       </property>
447
+      </widget>
448
+     </item>
449
+    </layout>
450
+   </item>
451
+   <item row="1" column="0" >
452
+    <widget class="QGroupBox" name="mGroupPoint" >
453
      <property name="title" >
454
-      <string>Fill Patterns:</string>
455
+      <string>Point</string>
456
      </property>
457
      <layout class="QGridLayout" >
458
       <property name="margin" >
459
-       <number>4</number>
460
+       <number>9</number>
461
       </property>
462
       <property name="spacing" >
463
-       <number>4</number>
464
+       <number>6</number>
465
       </property>
466
-      <item row="0" column="4" >
467
-       <widget class="QToolButton" name="bdiag" >
468
+      <item row="0" column="2" >
469
+       <spacer>
470
+        <property name="orientation" >
471
+         <enum>Qt::Horizontal</enum>
472
+        </property>
473
+        <property name="sizeType" >
474
+         <enum>QSizePolicy::Expanding</enum>
475
+        </property>
476
+        <property name="sizeHint" >
477
+         <size>
478
+          <width>78</width>
479
+          <height>35</height>
480
+         </size>
481
+        </property>
482
+       </spacer>
483
+      </item>
484
+      <item row="0" column="1" >
485
+       <widget class="QComboBox" name="mPointSymbolComboBox" >
486
         <property name="sizePolicy" >
487
          <sizepolicy>
488
-          <hsizetype>1</hsizetype>
489
-          <vsizetype>1</vsizetype>
490
+          <hsizetype>7</hsizetype>
491
+          <vsizetype>7</vsizetype>
492
           <horstretch>0</horstretch>
493
           <verstretch>0</verstretch>
494
          </sizepolicy>
495
@@ -57,6 +109,75 @@
496
         </property>
497
         <property name="maximumSize" >
498
          <size>
499
+          <width>32767</width>
500
+          <height>40</height>
501
+         </size>
502
+        </property>
503
+       </widget>
504
+      </item>
505
+      <item row="0" column="3" >
506
+       <widget class="QLabel" name="textLabel1_2" >
507
+        <property name="text" >
508
+         <string>Size</string>
509
+        </property>
510
+        <property name="buddy" >
511
+         <cstring>mPointSizeSpinBox</cstring>
512
+        </property>
513
+       </widget>
514
+      </item>
515
+      <item row="0" column="4" >
516
+       <widget class="QSpinBox" name="mPointSizeSpinBox" >
517
+        <property name="maximum" >
518
+         <number>1000</number>
519
+        </property>
520
+        <property name="minimum" >
521
+         <number>3</number>
522
+        </property>
523
+        <property name="singleStep" >
524
+         <number>1</number>
525
+        </property>
526
+        <property name="value" >
527
+         <number>3</number>
528
+        </property>
529
+       </widget>
530
+      </item>
531
+      <item row="0" column="0" >
532
+       <widget class="QLabel" name="textLabel1" >
533
+        <property name="sizePolicy" >
534
+         <sizepolicy>
535
+          <hsizetype>5</hsizetype>
536
+          <vsizetype>1</vsizetype>
537
+          <horstretch>0</horstretch>
538
+          <verstretch>0</verstretch>
539
+         </sizepolicy>
540
+        </property>
541
+        <property name="text" >
542
+         <string>Symbol</string>
543
+        </property>
544
+        <property name="buddy" >
545
+         <cstring>mPointSymbolComboBox</cstring>
546
+        </property>
547
+       </widget>
548
+      </item>
549
+     </layout>
550
+    </widget>
551
+   </item>
552
+   <item row="4" column="0" >
553
+    <widget class="QGroupBox" name="grpPattern" >
554
+     <property name="title" >
555
+      <string>Fill Patterns:</string>
556
+     </property>
557
+     <layout class="QGridLayout" >
558
+      <property name="margin" >
559
+       <number>4</number>
560
+      </property>
561
+      <property name="spacing" >
562
+       <number>4</number>
563
+      </property>
564
+      <item row="1" column="1" >
565
+       <widget class="QToolButton" name="dense5" >
566
+        <property name="maximumSize" >
567
+         <size>
568
           <width>60</width>
569
           <height>30</height>
570
          </size>
571
@@ -78,22 +199,8 @@
572
         </property>
573
        </widget>
574
       </item>
575
-      <item row="1" column="4" >
576
-       <widget class="QToolButton" name="dense3" >
577
-        <property name="sizePolicy" >
578
-         <sizepolicy>
579
-          <hsizetype>5</hsizetype>
580
-          <vsizetype>5</vsizetype>
581
-          <horstretch>0</horstretch>
582
-          <verstretch>0</verstretch>
583
-         </sizepolicy>
584
-        </property>
585
-        <property name="minimumSize" >
586
-         <size>
587
-          <width>0</width>
588
-          <height>0</height>
589
-         </size>
590
-        </property>
591
+      <item row="0" column="2" >
592
+       <widget class="QToolButton" name="dense4" >
593
         <property name="maximumSize" >
594
          <size>
595
           <width>60</width>
596
@@ -117,8 +224,8 @@
597
         </property>
598
        </widget>
599
       </item>
600
-      <item row="0" column="3" >
601
-       <widget class="QToolButton" name="horizontal" >
602
+      <item row="0" column="0" >
603
+       <widget class="QToolButton" name="solid" >
604
         <property name="maximumSize" >
605
          <size>
606
           <width>60</width>
607
@@ -142,31 +249,14 @@
608
         </property>
609
        </widget>
610
       </item>
611
-      <item row="2" column="4" >
612
-       <widget class="QToolButton" name="nopen" >
613
-        <property name="sizePolicy" >
614
-         <sizepolicy>
615
-          <hsizetype>5</hsizetype>
616
-          <vsizetype>5</vsizetype>
617
-          <horstretch>0</horstretch>
618
-          <verstretch>0</verstretch>
619
-         </sizepolicy>
620
-        </property>
621
-        <property name="minimumSize" >
622
-         <size>
623
-          <width>0</width>
624
-          <height>0</height>
625
-         </size>
626
-        </property>
627
+      <item row="0" column="1" >
628
+       <widget class="QToolButton" name="fdiag" >
629
         <property name="maximumSize" >
630
          <size>
631
           <width>60</width>
632
           <height>30</height>
633
          </size>
634
         </property>
635
-        <property name="toolTip" >
636
-         <string>No Fill</string>
637
-        </property>
638
         <property name="text" >
639
          <string/>
640
         </property>
641
@@ -184,8 +274,8 @@
642
         </property>
643
        </widget>
644
       </item>
645
-      <item row="0" column="0" >
646
-       <widget class="QToolButton" name="solid" >
647
+      <item row="0" column="3" >
648
+       <widget class="QToolButton" name="horizontal" >
649
         <property name="maximumSize" >
650
          <size>
651
           <width>60</width>
652
@@ -234,16 +324,22 @@
653
         </property>
654
        </widget>
655
       </item>
656
-      <item row="2" column="0" >
657
-       <widget class="QToolButton" name="dense6" >
658
+      <item row="0" column="4" >
659
+       <widget class="QToolButton" name="bdiag" >
660
         <property name="sizePolicy" >
661
          <sizepolicy>
662
-          <hsizetype>5</hsizetype>
663
-          <vsizetype>5</vsizetype>
664
+          <hsizetype>1</hsizetype>
665
+          <vsizetype>1</vsizetype>
666
           <horstretch>0</horstretch>
667
           <verstretch>0</verstretch>
668
          </sizepolicy>
669
         </property>
670
+        <property name="minimumSize" >
671
+         <size>
672
+          <width>0</width>
673
+          <height>0</height>
674
+         </size>
675
+        </property>
676
         <property name="maximumSize" >
677
          <size>
678
           <width>60</width>
679
@@ -267,8 +363,16 @@
680
         </property>
681
        </widget>
682
       </item>
683
-      <item row="0" column="1" >
684
-       <widget class="QToolButton" name="fdiag" >
685
+      <item row="2" column="1" >
686
+       <widget class="QToolButton" name="cross" >
687
+        <property name="sizePolicy" >
688
+         <sizepolicy>
689
+          <hsizetype>5</hsizetype>
690
+          <vsizetype>5</vsizetype>
691
+          <horstretch>0</horstretch>
692
+          <verstretch>0</verstretch>
693
+         </sizepolicy>
694
+        </property>
695
         <property name="maximumSize" >
696
          <size>
697
           <width>60</width>
698
@@ -292,8 +396,8 @@
699
         </property>
700
        </widget>
701
       </item>
702
-      <item row="1" column="1" >
703
-       <widget class="QToolButton" name="dense5" >
704
+      <item row="1" column="2" >
705
+       <widget class="QToolButton" name="vertical" >
706
         <property name="maximumSize" >
707
          <size>
708
           <width>60</width>
709
@@ -317,16 +421,8 @@
710
         </property>
711
        </widget>
712
       </item>
713
-      <item row="2" column="1" >
714
-       <widget class="QToolButton" name="cross" >
715
-        <property name="sizePolicy" >
716
-         <sizepolicy>
717
-          <hsizetype>5</hsizetype>
718
-          <vsizetype>5</vsizetype>
719
-          <horstretch>0</horstretch>
720
-          <verstretch>0</verstretch>
721
-         </sizepolicy>
722
-        </property>
723
+      <item row="1" column="3" >
724
+       <widget class="QToolButton" name="dense1" >
725
         <property name="maximumSize" >
726
          <size>
727
           <width>60</width>
728
@@ -350,8 +446,22 @@
729
         </property>
730
        </widget>
731
       </item>
732
-      <item row="0" column="2" >
733
-       <widget class="QToolButton" name="dense4" >
734
+      <item row="1" column="4" >
735
+       <widget class="QToolButton" name="dense3" >
736
+        <property name="sizePolicy" >
737
+         <sizepolicy>
738
+          <hsizetype>5</hsizetype>
739
+          <vsizetype>5</vsizetype>
740
+          <horstretch>0</horstretch>
741
+          <verstretch>0</verstretch>
742
+         </sizepolicy>
743
+        </property>
744
+        <property name="minimumSize" >
745
+         <size>
746
+          <width>0</width>
747
+          <height>0</height>
748
+         </size>
749
+        </property>
750
         <property name="maximumSize" >
751
          <size>
752
           <width>60</width>
753
@@ -375,8 +485,16 @@
754
         </property>
755
        </widget>
756
       </item>
757
-      <item row="1" column="2" >
758
-       <widget class="QToolButton" name="vertical" >
759
+      <item row="2" column="2" >
760
+       <widget class="QToolButton" name="dense2" >
761
+        <property name="sizePolicy" >
762
+         <sizepolicy>
763
+          <hsizetype>5</hsizetype>
764
+          <vsizetype>5</vsizetype>
765
+          <horstretch>0</horstretch>
766
+          <verstretch>0</verstretch>
767
+         </sizepolicy>
768
+        </property>
769
         <property name="maximumSize" >
770
          <size>
771
           <width>60</width>
772
@@ -400,8 +518,8 @@
773
         </property>
774
        </widget>
775
       </item>
776
-      <item row="2" column="2" >
777
-       <widget class="QToolButton" name="dense2" >
778
+      <item row="2" column="4" >
779
+       <widget class="QToolButton" name="nopen" >
780
         <property name="sizePolicy" >
781
          <sizepolicy>
782
           <hsizetype>5</hsizetype>
783
@@ -410,12 +528,21 @@
784
           <verstretch>0</verstretch>
785
          </sizepolicy>
786
         </property>
787
+        <property name="minimumSize" >
788
+         <size>
789
+          <width>0</width>
790
+          <height>0</height>
791
+         </size>
792
+        </property>
793
         <property name="maximumSize" >
794
          <size>
795
           <width>60</width>
796
           <height>30</height>
797
          </size>
798
         </property>
799
+        <property name="toolTip" >
800
+         <string>No Fill</string>
801
+        </property>
802
         <property name="text" >
803
          <string/>
804
         </property>
805
@@ -433,8 +560,16 @@
806
         </property>
807
        </widget>
808
       </item>
809
-      <item row="1" column="3" >
810
-       <widget class="QToolButton" name="dense1" >
811
+      <item row="2" column="0" >
812
+       <widget class="QToolButton" name="dense6" >
813
+        <property name="sizePolicy" >
814
+         <sizepolicy>
815
+          <hsizetype>5</hsizetype>
816
+          <vsizetype>5</vsizetype>
817
+          <horstretch>0</horstretch>
818
+          <verstretch>0</verstretch>
819
+         </sizepolicy>
820
+        </property>
821
         <property name="maximumSize" >
822
          <size>
823
           <width>60</width>
824
@@ -491,146 +626,55 @@
825
         </property>
826
        </widget>
827
       </item>
828
-     </layout>
829
-    </widget>
830
-   </item>
831
-   <item row="3" column="0" >
832
-    <widget class="QGroupBox" name="groupBox_3" >
833
-     <property name="title" >
834
-      <string/>
835
-     </property>
836
-     <layout class="QGridLayout" >
837
-      <property name="margin" >
838
-       <number>8</number>
839
-      </property>
840
-      <property name="spacing" >
841
-       <number>6</number>
842
-      </property>
843
-      <item row="1" column="2" >
844
-       <spacer>
845
-        <property name="orientation" >
846
-         <enum>Qt::Horizontal</enum>
847
-        </property>
848
-        <property name="sizeType" >
849
-         <enum>QSizePolicy::Expanding</enum>
850
-        </property>
851
-        <property name="sizeHint" >
852
+      <item row="3" column="1" colspan="3" >
853
+       <widget class="QLineEdit" name="textureFilePath" />
854
+      </item>
855
+      <item row="3" column="4" >
856
+       <widget class="QPushButton" name="textureSelect" >
857
+        <property name="maximumSize" >
858
          <size>
859
-          <width>201</width>
860
-          <height>16</height>
861
+          <width>60</width>
862
+          <height>30</height>
863
          </size>
864
         </property>
865
-       </spacer>
866
+        <property name="text" >
867
+         <string>Browse:</string>
868
+        </property>
869
+       </widget>
870
       </item>
871
-      <item row="1" column="3" >
872
-       <widget class="QSpinBox" name="outlinewidthspinbox" >
873
+      <item row="3" column="0" >
874
+       <widget class="QToolButton" name="texture" >
875
         <property name="sizePolicy" >
876
          <sizepolicy>
877
-          <hsizetype>4</hsizetype>
878
-          <vsizetype>0</vsizetype>
879
+          <hsizetype>5</hsizetype>
880
+          <vsizetype>5</vsizetype>
881
           <horstretch>0</horstretch>
882
           <verstretch>0</verstretch>
883
          </sizepolicy>
884
         </property>
885
         <property name="maximumSize" >
886
          <size>
887
-          <width>100</width>
888
-          <height>32767</height>
889
+          <width>60</width>
890
+          <height>30</height>
891
          </size>
892
         </property>
893
-        <property name="minimum" >
894
-         <number>0</number>
895
-        </property>
896
-       </widget>
897
-      </item>
898
-      <item row="1" column="0" colspan="2" >
899
-       <widget class="QLabel" name="outlinewidthlabel" >
900
         <property name="text" >
901
-         <string>Outline Width:</string>
902
-        </property>
903
-        <property name="buddy" >
904
-         <cstring>outlinewidthspinbox</cstring>
905
-        </property>
906
-       </widget>
907
-      </item>
908
-      <item row="0" column="3" >
909
-       <widget class="QgsColorButton" name="btnOutlineColor" >
910
-        <property name="minimumSize" >
911
-         <size>
912
-          <width>100</width>
913
-          <height>0</height>
914
-         </size>
915
-        </property>
916
-        <property name="text" >
917
          <string/>
918
         </property>
919
-       </widget>
920
-      </item>
921
-      <item row="2" column="3" >
922
-       <widget class="QgsColorButton" name="btnFillColor" >
923
-        <property name="minimumSize" >
924
+        <property name="iconSize" >
925
          <size>
926
-          <width>100</width>
927
-          <height>0</height>
928
+          <width>50</width>
929
+          <height>20</height>
930
          </size>
931
         </property>
932
-        <property name="text" >
933
-         <string/>
934
+        <property name="checkable" >
935
+         <bool>true</bool>
936
         </property>
937
-       </widget>
938
-      </item>
939
-      <item row="2" column="1" colspan="2" >
940
-       <spacer>
941
-        <property name="orientation" >
942
-         <enum>Qt::Horizontal</enum>
943
+        <property name="autoExclusive" >
944
+         <bool>true</bool>
945
         </property>
946
-        <property name="sizeType" >
947
-         <enum>QSizePolicy::Expanding</enum>
948
-        </property>
949
-        <property name="sizeHint" >
950
-         <size>
951
-          <width>138</width>
952
-          <height>16</height>
953
-         </size>
954
-        </property>
955
-       </spacer>
956
-      </item>
957
-      <item row="2" column="0" >
958
-       <widget class="QLabel" name="fillcolorlabel" >
959
-        <property name="text" >
960
-         <string>Fill Color:</string>
961
-        </property>
962
-        <property name="buddy" >
963
-         <cstring>btnFillColor</cstring>
964
-        </property>
965
        </widget>
966
       </item>
967
-      <item row="0" column="0" colspan="2" >
968
-       <widget class="QLabel" name="outlinecolorlabel" >
969
-        <property name="text" >
970
-         <string>Outline color:</string>
971
-        </property>
972
-        <property name="buddy" >
973
-         <cstring>btnOutlineColor</cstring>
974
-        </property>
975
-       </widget>
976
-      </item>
977
-      <item row="0" column="2" >
978
-       <spacer>
979
-        <property name="orientation" >
980
-         <enum>Qt::Horizontal</enum>
981
-        </property>
982
-        <property name="sizeType" >
983
-         <enum>QSizePolicy::Expanding</enum>
984
-        </property>
985
-        <property name="sizeHint" >
986
-         <size>
987
-          <width>116</width>
988
-          <height>16</height>
989
-         </size>
990
-        </property>
991
-       </spacer>
992
-      </item>
993
      </layout>
994
     </widget>
995
    </item>
996
@@ -799,19 +843,19 @@
997
      </layout>
998
     </widget>
999
    </item>
1000
-   <item row="1" column="0" >
1001
-    <widget class="QGroupBox" name="mGroupPoint" >
1002
+   <item row="3" column="0" >
1003
+    <widget class="QGroupBox" name="groupBox_3" >
1004
      <property name="title" >
1005
-      <string>Point</string>
1006
+      <string/>
1007
      </property>
1008
      <layout class="QGridLayout" >
1009
       <property name="margin" >
1010
-       <number>9</number>
1011
+       <number>8</number>
1012
       </property>
1013
       <property name="spacing" >
1014
        <number>6</number>
1015
       </property>
1016
-      <item row="0" column="2" >
1017
+      <item row="1" column="2" >
1018
        <spacer>
1019
         <property name="orientation" >
1020
          <enum>Qt::Horizontal</enum>
1021
@@ -821,119 +865,124 @@
1022
         </property>
1023
         <property name="sizeHint" >
1024
          <size>
1025
-          <width>78</width>
1026
-          <height>35</height>
1027
+          <width>201</width>
1028
+          <height>16</height>
1029
          </size>
1030
         </property>
1031
        </spacer>
1032
       </item>
1033
-      <item row="0" column="1" >
1034
-       <widget class="QComboBox" name="mPointSymbolComboBox" >
1035
+      <item row="1" column="3" >
1036
+       <widget class="QSpinBox" name="outlinewidthspinbox" >
1037
         <property name="sizePolicy" >
1038
          <sizepolicy>
1039
-          <hsizetype>7</hsizetype>
1040
-          <vsizetype>7</vsizetype>
1041
+          <hsizetype>4</hsizetype>
1042
+          <vsizetype>0</vsizetype>
1043
           <horstretch>0</horstretch>
1044
           <verstretch>0</verstretch>
1045
          </sizepolicy>
1046
         </property>
1047
-        <property name="minimumSize" >
1048
-         <size>
1049
-          <width>0</width>
1050
-          <height>0</height>
1051
-         </size>
1052
-        </property>
1053
         <property name="maximumSize" >
1054
          <size>
1055
-          <width>32767</width>
1056
-          <height>40</height>
1057
+          <width>100</width>
1058
+          <height>32767</height>
1059
          </size>
1060
         </property>
1061
+        <property name="minimum" >
1062
+         <number>0</number>
1063
+        </property>
1064
        </widget>
1065
       </item>
1066
-      <item row="0" column="3" >
1067
-       <widget class="QLabel" name="textLabel1_2" >
1068
+      <item row="1" column="0" colspan="2" >
1069
+       <widget class="QLabel" name="outlinewidthlabel" >
1070
         <property name="text" >
1071
-         <string>Size</string>
1072
+         <string>Outline Width:</string>
1073
         </property>
1074
         <property name="buddy" >
1075
-         <cstring>mPointSizeSpinBox</cstring>
1076
+         <cstring>outlinewidthspinbox</cstring>
1077
         </property>
1078
        </widget>
1079
       </item>
1080
-      <item row="0" column="4" >
1081
-       <widget class="QSpinBox" name="mPointSizeSpinBox" >
1082
-        <property name="maximum" >
1083
-         <number>1000</number>
1084
+      <item row="0" column="3" >
1085
+       <widget class="QgsColorButton" name="btnOutlineColor" >
1086
+        <property name="minimumSize" >
1087
+         <size>
1088
+          <width>100</width>
1089
+          <height>0</height>
1090
+         </size>
1091
         </property>
1092
-        <property name="minimum" >
1093
-         <number>3</number>
1094
+        <property name="text" >
1095
+         <string/>
1096
         </property>
1097
-        <property name="singleStep" >
1098
-         <number>1</number>
1099
+       </widget>
1100
+      </item>
1101
+      <item row="2" column="3" >
1102
+       <widget class="QgsColorButton" name="btnFillColor" >
1103
+        <property name="minimumSize" >
1104
+         <size>
1105
+          <width>100</width>
1106
+          <height>0</height>
1107
+         </size>
1108
         </property>
1109
-        <property name="value" >
1110
-         <number>3</number>
1111
+        <property name="text" >
1112
+         <string/>
1113
         </property>
1114
        </widget>
1115
       </item>
1116
-      <item row="0" column="0" >
1117
-       <widget class="QLabel" name="textLabel1" >
1118
-        <property name="sizePolicy" >
1119
-         <sizepolicy>
1120
-          <hsizetype>5</hsizetype>
1121
-          <vsizetype>1</vsizetype>
1122
-          <horstretch>0</horstretch>
1123
-          <verstretch>0</verstretch>
1124
-         </sizepolicy>
1125
+      <item row="2" column="1" colspan="2" >
1126
+       <spacer>
1127
+        <property name="orientation" >
1128
+         <enum>Qt::Horizontal</enum>
1129
         </property>
1130
+        <property name="sizeType" >
1131
+         <enum>QSizePolicy::Expanding</enum>
1132
+        </property>
1133
+        <property name="sizeHint" >
1134
+         <size>
1135
+          <width>138</width>
1136
+          <height>16</height>
1137
+         </size>
1138
+        </property>
1139
+       </spacer>
1140
+      </item>
1141
+      <item row="2" column="0" >
1142
+       <widget class="QLabel" name="fillcolorlabel" >
1143
         <property name="text" >
1144
-         <string>Symbol</string>
1145
+         <string>Fill Color:</string>
1146
         </property>
1147
         <property name="buddy" >
1148
-         <cstring>mPointSymbolComboBox</cstring>
1149
+         <cstring>btnFillColor</cstring>
1150
         </property>
1151
        </widget>
1152
       </item>
1153
+      <item row="0" column="0" colspan="2" >
1154
+       <widget class="QLabel" name="outlinecolorlabel" >
1155
+        <property name="text" >
1156
+         <string>Outline color:</string>
1157
+        </property>
1158
+        <property name="buddy" >
1159
+         <cstring>btnOutlineColor</cstring>
1160
+        </property>
1161
+       </widget>
1162
+      </item>
1163
+      <item row="0" column="2" >
1164
+       <spacer>
1165
+        <property name="orientation" >
1166
+         <enum>Qt::Horizontal</enum>
1167
+        </property>
1168
+        <property name="sizeType" >
1169
+         <enum>QSizePolicy::Expanding</enum>
1170
+        </property>
1171
+        <property name="sizeHint" >
1172
+         <size>
1173
+          <width>116</width>
1174
+          <height>16</height>
1175
+         </size>
1176
+        </property>
1177
+       </spacer>
1178
+      </item>
1179
      </layout>
1180
     </widget>
1181
    </item>
1182
-   <item row="0" column="0" >
1183
-    <layout class="QHBoxLayout" >
1184
-     <property name="margin" >
1185
-      <number>0</number>
1186
-     </property>
1187
-     <property name="spacing" >
1188
-      <number>6</number>
1189
-     </property>
1190
-     <item>
1191
-      <widget class="QLabel" name="mLabel" >
1192
-       <property name="minimumSize" >
1193
-        <size>
1194
-         <width>0</width>
1195
-         <height>22</height>
1196
-        </size>
1197
-       </property>
1198
-       <property name="text" >
1199
-        <string>Label:</string>
1200
-       </property>
1201
-       <property name="buddy" >
1202
-        <cstring>mLabelEdit</cstring>
1203
-       </property>
1204
-      </widget>
1205
-     </item>
1206
-     <item>
1207
-      <widget class="QLineEdit" name="mLabelEdit" >
1208
-       <property name="minimumSize" >
1209
-        <size>
1210
-         <width>0</width>
1211
-         <height>22</height>
1212
-        </size>
1213
-       </property>
1214
-      </widget>
1215
-     </item>
1216
-    </layout>
1217
-   </item>
1218
   </layout>
1219
  </widget>
1220
  <layoutdefault spacing="6" margin="11" />