[QGIS Commit] r10805 - in branches/symbology-ng-branch: python/core
src/core src/core/symbology-ng src/gui/symbology-ng src/ui
svn_qgis at osgeo.org
svn_qgis at osgeo.org
Sat May 16 10:25:37 EDT 2009
Author: wonder
Date: 2009-05-16 10:25:35 -0400 (Sat, 16 May 2009)
New Revision: 10805
Modified:
branches/symbology-ng-branch/python/core/symbology-ng-core.sip
branches/symbology-ng-branch/src/core/qgsvectorlayer.cpp
branches/symbology-ng-branch/src/core/qgsvectorlayer.h
branches/symbology-ng-branch/src/core/symbology-ng/qgsmarkersymbollayerv2.cpp
branches/symbology-ng-branch/src/core/symbology-ng/qgsrendererv2.cpp
branches/symbology-ng-branch/src/core/symbology-ng/qgsrendererv2.h
branches/symbology-ng-branch/src/core/symbology-ng/qgssymbollayerv2.cpp
branches/symbology-ng-branch/src/core/symbology-ng/qgssymbolv2.cpp
branches/symbology-ng-branch/src/core/symbology-ng/qgssymbolv2.h
branches/symbology-ng-branch/src/gui/symbology-ng/qgsrendererv2propertiesdialog.cpp
branches/symbology-ng-branch/src/gui/symbology-ng/qgsrendererv2propertiesdialog.h
branches/symbology-ng-branch/src/ui/qgsrendererv2propsdialogbase.ui
Log:
Improved categorized renderer settings in renderer dialog.
Fixed some bugs with marker cache image size, categorized renderer.
Added dump() functions for easier debugging.
Modified: branches/symbology-ng-branch/python/core/symbology-ng-core.sip
===================================================================
--- branches/symbology-ng-branch/python/core/symbology-ng-core.sip 2009-05-16 11:32:16 UTC (rev 10804)
+++ branches/symbology-ng-branch/python/core/symbology-ng-core.sip 2009-05-16 14:25:35 UTC (rev 10805)
@@ -29,6 +29,9 @@
virtual ~QgsFeatureRendererV2();
+ virtual QString dump();
+
+
void renderFeature(QgsFeature& feature, QgsRenderContext& context);
protected:
@@ -304,7 +307,7 @@
QImage bigSymbolPreviewImage();
- void dump();
+ QString dump();
virtual QgsSymbolV2* clone() const = 0 /Factory/;
Modified: branches/symbology-ng-branch/src/core/qgsvectorlayer.cpp
===================================================================
--- branches/symbology-ng-branch/src/core/qgsvectorlayer.cpp 2009-05-16 11:32:16 UTC (rev 10804)
+++ branches/symbology-ng-branch/src/core/qgsvectorlayer.cpp 2009-05-16 14:25:35 UTC (rev 10805)
@@ -684,6 +684,8 @@
{
if (mRendererV2 == NULL)
return FALSE;
+
+ QgsDebugMsg("rendering v2:\n" + mRendererV2->dump());
mRendererV2->startRender(rendererContext);
@@ -3714,3 +3716,22 @@
}
return 0; //not found
}
+
+
+QgsFeatureRendererV2* QgsVectorLayer::rendererV2()
+{
+ return mRendererV2;
+}
+void QgsVectorLayer::setRendererV2(QgsFeatureRendererV2* r)
+{
+ delete mRendererV2;
+ mRendererV2 = r;
+}
+bool QgsVectorLayer::isUsingRendererV2()
+{
+ return mUsingRendererV2;
+}
+void QgsVectorLayer::setUsingRendererV2(bool usingRendererV2)
+{
+ mUsingRendererV2 = usingRendererV2;
+}
Modified: branches/symbology-ng-branch/src/core/qgsvectorlayer.h
===================================================================
--- branches/symbology-ng-branch/src/core/qgsvectorlayer.h 2009-05-16 11:32:16 UTC (rev 10804)
+++ branches/symbology-ng-branch/src/core/qgsvectorlayer.h 2009-05-16 14:25:35 UTC (rev 10805)
@@ -163,13 +163,13 @@
void setRenderer( QgsRenderer * r );
/** Return renderer V2. Added in QGIS 1.2 */
- QgsFeatureRendererV2* rendererV2() { return mRendererV2; }
+ QgsFeatureRendererV2* rendererV2();
/** Set renderer V2. Added in QGIS 1.2 */
- void setRendererV2(QgsFeatureRendererV2* r) { mRendererV2 = r; }
+ void setRendererV2(QgsFeatureRendererV2* r);
/** Return whether using renderer V2. Added in QGIS 1.2 */
- bool isUsingRendererV2() { return mUsingRendererV2; }
+ bool isUsingRendererV2();
/** set whether to use renderer V2 for drawing. Added in QGIS 1.2 */
- void setUsingRendererV2(bool usingRendererV2) { mUsingRendererV2 = usingRendererV2; }
+ void setUsingRendererV2(bool usingRendererV2);
/** Returns point, line or polygon */
QGis::GeometryType geometryType() const;
Modified: branches/symbology-ng-branch/src/core/symbology-ng/qgsmarkersymbollayerv2.cpp
===================================================================
--- branches/symbology-ng-branch/src/core/symbology-ng/qgsmarkersymbollayerv2.cpp 2009-05-16 11:32:16 UTC (rev 10804)
+++ branches/symbology-ng-branch/src/core/symbology-ng/qgsmarkersymbollayerv2.cpp 2009-05-16 14:25:35 UTC (rev 10805)
@@ -148,8 +148,14 @@
// cache the marker
// TODO: use caching only when drawing to screen (not printer)
// TODO: decide whether to use QImage or QPixmap - based on the render context
- double s = mSize+2;
- mCache = QImage(QSize(s,s), QImage::Format_ARGB32_Premultiplied);
+
+ // calculate necessary image size for the cache
+ int pw = (( mPen.width() == 0 ? 1 : mPen.width() ) + 1 ) / 2 * 2; // make even (round up); handle cosmetic pen
+ int imageSize = (( int ) mSize + pw ) / 2 * 2 + 1; // make image width, height odd; account for pen width
+
+ double center = ((double) imageSize / 2) + 0.5; // add 1/2 pixel for proper rounding when the figure's coordinates are added
+
+ mCache = QImage(QSize(imageSize,imageSize), QImage::Format_ARGB32_Premultiplied);
mCache.fill(0);
QPainter p;
@@ -157,7 +163,7 @@
p.setRenderHint( QPainter::Antialiasing );
p.setBrush(mBrush);
p.setPen(mPen);
- p.translate(QPointF(s/2.0, s/2.0));
+ p.translate(QPointF(center, center));
drawMarker(&p);
p.end();
}
@@ -176,13 +182,10 @@
//p->translate(point);
//drawMarker(p);
- double s = mSize+2;
+ double s = mCache.width();
//if (mCache.isValid())
p->drawImage(point + QPointF(-s/2.0, -s/2.0), mCache);
- //else
- //qDebug("WTF!!!!!!!!!");
- //p->translate(-point); // TODO: maybe save+restore is faster?
//p->restore();
}
Modified: branches/symbology-ng-branch/src/core/symbology-ng/qgsrendererv2.cpp
===================================================================
--- branches/symbology-ng-branch/src/core/symbology-ng/qgsrendererv2.cpp 2009-05-16 11:32:16 UTC (rev 10804)
+++ branches/symbology-ng-branch/src/core/symbology-ng/qgsrendererv2.cpp 2009-05-16 14:25:35 UTC (rev 10805)
@@ -236,6 +236,12 @@
}
}
+QString QgsFeatureRendererV2::dump()
+{
+ return "UNKNOWN RENDERER\n";
+}
+
+
///////////////////
QgsSingleSymbolRendererV2::QgsSingleSymbolRendererV2(QgsSymbolV2* symbol)
@@ -280,6 +286,12 @@
mSymbol = s;
}
+QString QgsSingleSymbolRendererV2::dump()
+{
+ return QString("SINGLE: %1").arg(mSymbol->dump());
+}
+
+
///////////////////
QgsRendererCategoryV2::QgsRendererCategoryV2(const QgsRendererCategoryV2& cat)
@@ -300,6 +312,11 @@
mSymbol = s;
}
+QString QgsRendererCategoryV2::dump()
+{
+ return QString("%1::%2::%3\n").arg(mValue.toString()).arg(mLabel).arg(mSymbol->dump());
+}
+
///////////////////
QgsCategorizedSymbolRendererV2::QgsCategorizedSymbolRendererV2(int attrNum, QgsCategoryList categories)
@@ -322,25 +339,23 @@
mCategories.clear(); // this should also call destructors of symbols
}
+void QgsCategorizedSymbolRendererV2::rebuildHash()
+{
+ mSymbolHash.clear();
+
+ for (int i = 0; i < mCategories.count(); ++i)
+ {
+ QgsRendererCategoryV2& cat = mCategories[i];
+ mSymbolHash.insert(cat.value().toString(), cat.symbol());
+ }
+}
+
QgsSymbolV2* QgsCategorizedSymbolRendererV2::symbolForValue(QVariant value)
{
- static QHash<QString, QgsSymbolV2*> symbolHash;
- static bool first = true;
-
- // init the hash table if not yet filled
// TODO: special case for int, double
- if (first)
- {
- for (int i = 0; i < mCategories.count(); ++i)
- {
- QgsRendererCategoryV2& cat = mCategories[i];
- symbolHash.insert(cat.value().toString(), cat.symbol());
- }
- first = false;
- }
- QHash<QString, QgsSymbolV2*>::iterator it = symbolHash.find(value.toString());
- if (it == symbolHash.end())
+ QHash<QString, QgsSymbolV2*>::iterator it = mSymbolHash.find(value.toString());
+ if (it == mSymbolHash.end())
{
QgsDebugMsg("attribute value not found: " + value.toString());
return NULL;
@@ -405,6 +420,9 @@
void QgsCategorizedSymbolRendererV2::startRender(QgsRenderContext& context)
{
+ // make sure that the hash table is up to date
+ rebuildHash();
+
QgsCategoryList::iterator it = mCategories.begin();
for ( ; it != mCategories.end(); ++it)
it->symbol()->startRender(context);
@@ -424,7 +442,15 @@
return lst;
}
+QString QgsCategorizedSymbolRendererV2::dump()
+{
+ QString s = QString("CATEGORIZED: idx %1\n").arg(mAttrNum);
+ for (int i=0; i<mCategories.count();i++)
+ s += mCategories[i].dump();
+ return s;
+}
+
/////////////////////////
// graduated
Modified: branches/symbology-ng-branch/src/core/symbology-ng/qgsrendererv2.h
===================================================================
--- branches/symbology-ng-branch/src/core/symbology-ng/qgsrendererv2.h 2009-05-16 11:32:16 UTC (rev 10804)
+++ branches/symbology-ng-branch/src/core/symbology-ng/qgsrendererv2.h 2009-05-16 14:25:35 UTC (rev 10805)
@@ -38,6 +38,9 @@
virtual ~QgsFeatureRendererV2() {}
void renderFeature(QgsFeature& feature, QgsRenderContext& context);
+
+ //! for debugging
+ virtual QString dump();
//TODO: symbols() for symbol levels
@@ -66,6 +69,8 @@
QgsSymbolV2* symbol() const;
void setSymbol(QgsSymbolV2* s);
+ virtual QString dump();
+
protected:
QgsSymbolV2* mSymbol;
};
@@ -90,6 +95,9 @@
void setSymbol(QgsSymbolV2* s);
void setLabel(QString label) { mLabel = label; }
+
+ // debugging
+ QString dump();
protected:
QVariant mValue;
@@ -115,6 +123,8 @@
virtual QList<int> usedAttributes();
+ virtual QString dump();
+
const QgsCategoryList& categories() { return mCategories; }
//! return index of category with specified value (-1 if not found)
@@ -132,7 +142,12 @@
protected:
QgsCategoryList mCategories;
int mAttrNum;
-
+
+ //! hashtable for faster access to symbols
+ QHash<QString, QgsSymbolV2*> mSymbolHash;
+
+ void rebuildHash();
+
QgsSymbolV2* symbolForValue(QVariant value);
};
Modified: branches/symbology-ng-branch/src/core/symbology-ng/qgssymbollayerv2.cpp
===================================================================
--- branches/symbology-ng-branch/src/core/symbology-ng/qgssymbollayerv2.cpp 2009-05-16 11:32:16 UTC (rev 10804)
+++ branches/symbology-ng-branch/src/core/symbology-ng/qgssymbollayerv2.cpp 2009-05-16 14:25:35 UTC (rev 10805)
@@ -29,7 +29,7 @@
context.setPainter(painter);
startRender(context);
- renderPoint(QPointF(size.width()/2 + 0.5, size.height()/2 + 0.5), context);
+ renderPoint(QPointF(size.width()/2, size.height()/2), context);
stopRender(context);
}
Modified: branches/symbology-ng-branch/src/core/symbology-ng/qgssymbolv2.cpp
===================================================================
--- branches/symbology-ng-branch/src/core/symbology-ng/qgssymbolv2.cpp 2009-05-16 11:32:16 UTC (rev 10804)
+++ branches/symbology-ng-branch/src/core/symbology-ng/qgssymbolv2.cpp 2009-05-16 14:25:35 UTC (rev 10805)
@@ -190,12 +190,23 @@
}
-void QgsSymbolV2::dump()
+QString QgsSymbolV2::dump()
{
+ QString t;
+ switch (type())
+ {
+ case QgsSymbolV2::Marker: t = "MARKER"; break;
+ case QgsSymbolV2::Line: t = "LINE"; break;
+ case QgsSymbolV2::Fill: t = "FILL"; break;
+ default: Q_ASSERT(0 && "unknown symbol type");
+ }
+ QString s = QString("%1 SYMBOL (%2 layers) color %3").arg(t).arg(mLayers.count()).arg(QgsSymbolLayerV2Utils::encodeColor(color()));
+
for (QgsSymbolLayerV2List::iterator it = mLayers.begin(); it != mLayers.end(); ++it)
{
// TODO:
}
+ return s;
}
QgsSymbolLayerV2List QgsSymbolV2::cloneLayers() const
Modified: branches/symbology-ng-branch/src/core/symbology-ng/qgssymbolv2.h
===================================================================
--- branches/symbology-ng-branch/src/core/symbology-ng/qgssymbolv2.h 2009-05-16 11:32:16 UTC (rev 10804)
+++ branches/symbology-ng-branch/src/core/symbology-ng/qgssymbolv2.h 2009-05-16 14:25:35 UTC (rev 10805)
@@ -64,7 +64,7 @@
QImage bigSymbolPreviewImage();
- void dump();
+ QString dump();
virtual QgsSymbolV2* clone() const = 0;
Modified: branches/symbology-ng-branch/src/gui/symbology-ng/qgsrendererv2propertiesdialog.cpp
===================================================================
--- branches/symbology-ng-branch/src/gui/symbology-ng/qgsrendererv2propertiesdialog.cpp 2009-05-16 11:32:16 UTC (rev 10804)
+++ branches/symbology-ng-branch/src/gui/symbology-ng/qgsrendererv2propertiesdialog.cpp 2009-05-16 14:25:35 UTC (rev 10805)
@@ -47,11 +47,14 @@
labels << "Value" << "Label";
m->setHorizontalHeaderLabels(labels);
viewCategories->setModel(m);
-
+
+ mCategorizedSymbol = createDefaultSymbol();
+
connect(cboCategorizedColumn, SIGNAL(currentIndexChanged(int)), this, SLOT(categoryColumnChanged()));
connect(viewCategories, SIGNAL(doubleClicked(const QModelIndex &)), this, SLOT(categoriesDoubleClicked(const QModelIndex &)));
+ connect(btnChangeCategorizedSymbol, SIGNAL(clicked()), this, SLOT(changeCategorizedSymbol()));
connect(btnAddCategories, SIGNAL(clicked()), this, SLOT(addCategories()));
connect(btnDeleteCategory, SIGNAL(clicked()), this, SLOT(deleteCategory()));
connect(btnDeleteAllCategories, SIGNAL(clicked()), this, SLOT(deleteAllCategories()));
@@ -144,7 +147,8 @@
radCategorized->setChecked(true);
stackedWidget->setCurrentWidget(pageCategorized);
-
+ updateCategorizedSymbolIcon();
+
{
int idx = rendererCategorized()->attributeIndex();
cboCategorizedColumn->setCurrentIndex(idx >= 0 ? idx : 0);
@@ -201,6 +205,21 @@
}
}
+void QgsRendererV2PropertiesDialog::changeCategorizedSymbol()
+{
+ QgsSymbolV2SelectorDialog dlg(mCategorizedSymbol, mStyle, this);
+ if (!dlg.exec())
+ return;
+
+ updateCategorizedSymbolIcon();
+}
+
+void QgsRendererV2PropertiesDialog::updateCategorizedSymbolIcon()
+{
+ QIcon icon = QgsSymbolLayerV2Utils::symbolPreviewIcon(mCategorizedSymbol, btnChangeCategorizedSymbol->iconSize());
+ btnChangeCategorizedSymbol->setIcon(icon);
+}
+
void QgsRendererV2PropertiesDialog::populateCategories()
{
QStandardItemModel* m = qobject_cast<QStandardItemModel*>(viewCategories->model());
@@ -310,16 +329,10 @@
//if (!dlg.exec())
// return;
- QgsSymbolV2* newSymbol = createDefaultSymbol();
- QgsSymbolV2SelectorDialog dlg(newSymbol, mStyle, this);
- if (!dlg.exec())
- {
- delete newSymbol;
- return;
- }
+ QgsVectorColorRampV2* ramp = mStyle->colorRamp( cboCategorizedColorRamp->currentText() );
QgsCategoryList cats;
- ::createCategories(cats, unique_vals, newSymbol, new QgsVectorGradientColorRampV2()); // dlg.activeRamp());
+ ::createCategories(cats, unique_vals, mCategorizedSymbol, ramp );
// TODO: if not all categories are desired, delete some!
/*
@@ -393,11 +406,15 @@
{
QSize rampIconSize(50,16);
cboGraduatedColorRamp->setIconSize(rampIconSize);
+ cboCategorizedColorRamp->setIconSize(rampIconSize);
+
QStringList rampNames = mStyle->colorRampNames();
for (QStringList::iterator it = rampNames.begin(); it != rampNames.end(); ++it)
{
QgsVectorColorRampV2* ramp = mStyle->colorRamp(*it);
- cboGraduatedColorRamp->addItem( QgsSymbolLayerV2Utils::colorRampPreviewIcon(ramp, rampIconSize), *it);
+ QIcon icon = QgsSymbolLayerV2Utils::colorRampPreviewIcon(ramp, rampIconSize);
+ cboGraduatedColorRamp->addItem(icon, *it);
+ cboCategorizedColorRamp->addItem(icon, *it);
delete ramp;
}
}
Modified: branches/symbology-ng-branch/src/gui/symbology-ng/qgsrendererv2propertiesdialog.h
===================================================================
--- branches/symbology-ng-branch/src/gui/symbology-ng/qgsrendererv2propertiesdialog.h 2009-05-16 11:32:16 UTC (rev 10804)
+++ branches/symbology-ng-branch/src/gui/symbology-ng/qgsrendererv2propertiesdialog.h 2009-05-16 14:25:35 UTC (rev 10805)
@@ -23,6 +23,7 @@
void changeSingleSymbol();
void updateRenderer();
+ void changeCategorizedSymbol();
void categoryColumnChanged();
void categoriesDoubleClicked(const QModelIndex & idx);
void addCategories();
@@ -38,6 +39,7 @@
void updateUiFromRenderer();
void updateSingleSymbolIcon();
+ void updateCategorizedSymbolIcon();
void updateGraduatedSymbolIcon();
//! create default symbol for the layer's geometry type (point/line/polygon)
@@ -71,6 +73,7 @@
QgsStyleV2* mStyle;
QgsSymbolV2* mGraduatedSymbol;
+ QgsSymbolV2* mCategorizedSymbol;
};
#endif
Modified: branches/symbology-ng-branch/src/ui/qgsrendererv2propsdialogbase.ui
===================================================================
--- branches/symbology-ng-branch/src/ui/qgsrendererv2propsdialogbase.ui 2009-05-16 11:32:16 UTC (rev 10804)
+++ branches/symbology-ng-branch/src/ui/qgsrendererv2propsdialogbase.ui 2009-05-16 14:25:35 UTC (rev 10805)
@@ -1,7 +1,8 @@
-<ui version="4.0" >
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
<class>QgsRendererV2PropsDialogBase</class>
- <widget class="QDialog" name="QgsRendererV2PropsDialogBase" >
- <property name="geometry" >
+ <widget class="QDialog" name="QgsRendererV2PropsDialogBase">
+ <property name="geometry">
<rect>
<x>0</x>
<y>0</y>
@@ -9,52 +10,52 @@
<height>398</height>
</rect>
</property>
- <property name="windowTitle" >
+ <property name="windowTitle">
<string>Renderer V2 properties</string>
</property>
- <layout class="QGridLayout" >
- <item row="0" column="0" >
- <layout class="QVBoxLayout" >
+ <layout class="QGridLayout">
+ <item row="0" column="0">
+ <layout class="QVBoxLayout">
<item>
- <widget class="QLabel" name="label" >
- <property name="text" >
+ <widget class="QLabel" name="label">
+ <property name="text">
<string>Renderer:</string>
</property>
</widget>
</item>
<item>
- <widget class="QRadioButton" name="radSingleSymbol" >
- <property name="text" >
+ <widget class="QRadioButton" name="radSingleSymbol">
+ <property name="text">
<string>single symbol</string>
</property>
- <property name="checked" >
+ <property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
- <widget class="QRadioButton" name="radCategorized" >
- <property name="text" >
+ <widget class="QRadioButton" name="radCategorized">
+ <property name="text">
<string>categorized</string>
</property>
</widget>
</item>
<item>
- <widget class="QRadioButton" name="radGraduated" >
- <property name="enabled" >
+ <widget class="QRadioButton" name="radGraduated">
+ <property name="enabled">
<bool>true</bool>
</property>
- <property name="text" >
+ <property name="text">
<string>graduated</string>
</property>
</widget>
</item>
<item>
<spacer>
- <property name="orientation" >
+ <property name="orientation">
<enum>Qt::Vertical</enum>
</property>
- <property name="sizeHint" >
+ <property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>111</height>
@@ -63,51 +64,61 @@
</spacer>
</item>
<item>
- <widget class="QPushButton" name="btnSymbolLevels" >
- <property name="enabled" >
+ <widget class="QPushButton" name="btnSymbolLevels">
+ <property name="enabled">
<bool>false</bool>
</property>
- <property name="text" >
+ <property name="text">
<string>Symbol levels...</string>
</property>
</widget>
</item>
</layout>
</item>
- <item row="0" column="1" >
- <widget class="Line" name="line" >
- <property name="orientation" >
+ <item row="0" column="1">
+ <widget class="Line" name="line">
+ <property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
- <item row="0" column="2" >
- <widget class="QStackedWidget" name="stackedWidget" >
- <property name="currentIndex" >
- <number>0</number>
+ <item row="1" column="0" colspan="3">
+ <widget class="QDialogButtonBox" name="buttonBox">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
</property>
- <widget class="QWidget" name="pageSingleSymbol" >
- <layout class="QGridLayout" >
- <item row="0" column="0" >
- <widget class="QLabel" name="label_2" >
- <property name="text" >
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2">
+ <widget class="QStackedWidget" name="stackedWidget">
+ <property name="currentIndex">
+ <number>1</number>
+ </property>
+ <widget class="QWidget" name="pageSingleSymbol">
+ <layout class="QGridLayout">
+ <item row="0" column="0">
+ <widget class="QLabel" name="label_2">
+ <property name="text">
<string>Symbol:</string>
</property>
</widget>
</item>
- <item row="0" column="1" >
- <widget class="QPushButton" name="btnChangeSingleSymbol" >
- <property name="text" >
+ <item row="0" column="1">
+ <widget class="QPushButton" name="btnChangeSingleSymbol">
+ <property name="text">
<string>Change</string>
</property>
</widget>
</item>
- <item row="0" column="2" >
+ <item row="0" column="2">
<spacer>
- <property name="orientation" >
+ <property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
- <property name="sizeHint" >
+ <property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
@@ -115,12 +126,12 @@
</property>
</spacer>
</item>
- <item row="1" column="0" colspan="2" >
+ <item row="1" column="0" colspan="2">
<spacer>
- <property name="orientation" >
+ <property name="orientation">
<enum>Qt::Vertical</enum>
</property>
- <property name="sizeHint" >
+ <property name="sizeHint" stdset="0">
<size>
<width>271</width>
<height>181</height>
@@ -130,177 +141,249 @@
</item>
</layout>
</widget>
- <widget class="QWidget" name="pageCategorized" >
- <layout class="QGridLayout" >
- <item row="0" column="0" >
- <widget class="QLabel" name="label_3" >
- <property name="text" >
- <string>Column:</string>
- </property>
- </widget>
+ <widget class="QWidget" name="pageCategorized">
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_2">
+ <item>
+ <widget class="QLabel" name="label_3">
+ <property name="text">
+ <string>Column:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QComboBox" name="cboCategorizedColumn">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeType">
+ <enum>QSizePolicy::Expanding</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
</item>
- <item row="0" column="1" colspan="2" >
- <widget class="QComboBox" name="cboCategorizedColumn" />
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QLabel" name="label_9">
+ <property name="text">
+ <string>Symbol:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="btnChangeCategorizedSymbol">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+ <horstretch>1</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>change</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="label_10">
+ <property name="text">
+ <string>Color ramp:</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QComboBox" name="cboCategorizedColorRamp">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
+ <horstretch>1</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ </widget>
+ </item>
+ </layout>
</item>
- <item row="1" column="0" colspan="6" >
- <widget class="QTreeView" name="viewCategories" >
- <property name="iconSize" >
+ <item>
+ <widget class="QTreeView" name="viewCategories">
+ <property name="iconSize">
<size>
<width>16</width>
<height>16</height>
</size>
</property>
- <property name="rootIsDecorated" >
+ <property name="rootIsDecorated">
<bool>false</bool>
</property>
- <property name="allColumnsShowFocus" >
+ <property name="allColumnsShowFocus">
<bool>true</bool>
</property>
</widget>
</item>
- <item row="2" column="1" >
- <widget class="QPushButton" name="btnAddCategories" >
- <property name="text" >
- <string>Add</string>
- </property>
- </widget>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_3">
+ <item>
+ <widget class="QPushButton" name="btnAddCategories">
+ <property name="text">
+ <string>Classify</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="btnDeleteCategory">
+ <property name="text">
+ <string>Delete</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="btnDeleteAllCategories">
+ <property name="text">
+ <string>Delete all</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer>
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="btnJoinCategories">
+ <property name="enabled">
+ <bool>false</bool>
+ </property>
+ <property name="text">
+ <string>Join</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
</item>
- <item row="2" column="2" >
- <widget class="QPushButton" name="btnDeleteCategory" >
- <property name="text" >
- <string>Delete</string>
- </property>
- </widget>
- </item>
- <item row="2" column="3" >
- <widget class="QPushButton" name="btnDeleteAllCategories" >
- <property name="text" >
- <string>Delete all</string>
- </property>
- </widget>
- </item>
- <item row="2" column="4" >
- <spacer>
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" >
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item row="2" column="5" >
- <widget class="QPushButton" name="btnJoinCategories" >
- <property name="enabled" >
- <bool>false</bool>
- </property>
- <property name="text" >
- <string>Join</string>
- </property>
- </widget>
- </item>
</layout>
</widget>
- <widget class="QWidget" name="pageGraduated" >
- <layout class="QVBoxLayout" >
+ <widget class="QWidget" name="pageGraduated">
+ <layout class="QVBoxLayout">
<item>
- <layout class="QGridLayout" >
- <item row="0" column="0" >
- <widget class="QLabel" name="label_4" >
- <property name="text" >
+ <layout class="QGridLayout">
+ <item row="0" column="0">
+ <widget class="QLabel" name="label_4">
+ <property name="text">
<string>Column:</string>
</property>
</widget>
</item>
- <item row="0" column="1" colspan="2" >
- <widget class="QComboBox" name="cboGraduatedColumn" />
+ <item row="0" column="1" colspan="2">
+ <widget class="QComboBox" name="cboGraduatedColumn"/>
</item>
- <item row="1" column="0" >
- <widget class="QLabel" name="label_6" >
- <property name="text" >
+ <item row="1" column="0">
+ <widget class="QLabel" name="label_6">
+ <property name="text">
<string>Symbol:</string>
</property>
</widget>
</item>
- <item row="1" column="1" >
- <widget class="QPushButton" name="btnChangeGraduatedSymbol" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Fixed" hsizetype="Minimum" >
+ <item row="1" column="1">
+ <widget class="QPushButton" name="btnChangeGraduatedSymbol">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>1</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
- <property name="text" >
+ <property name="text">
<string>change</string>
</property>
</widget>
</item>
- <item row="1" column="3" >
- <widget class="QLabel" name="label_5" >
- <property name="text" >
+ <item row="1" column="3">
+ <widget class="QLabel" name="label_5">
+ <property name="text">
<string>Classes:</string>
</property>
- <property name="alignment" >
+ <property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
- <item row="1" column="4" >
- <widget class="QSpinBox" name="spinGraduatedClasses" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Fixed" hsizetype="Minimum" >
+ <item row="1" column="4">
+ <widget class="QSpinBox" name="spinGraduatedClasses">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
- <property name="value" >
+ <property name="value">
<number>5</number>
</property>
</widget>
</item>
- <item row="2" column="0" >
- <widget class="QLabel" name="label_7" >
- <property name="text" >
+ <item row="2" column="0">
+ <widget class="QLabel" name="label_7">
+ <property name="text">
<string>Color ramp:</string>
</property>
</widget>
</item>
- <item row="2" column="1" >
- <widget class="QComboBox" name="cboGraduatedColorRamp" />
+ <item row="2" column="1">
+ <widget class="QComboBox" name="cboGraduatedColorRamp"/>
</item>
- <item row="2" column="3" >
- <widget class="QLabel" name="label_8" >
- <property name="text" >
+ <item row="2" column="3">
+ <widget class="QLabel" name="label_8">
+ <property name="text">
<string>Mode:</string>
</property>
- <property name="alignment" >
+ <property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
- <item row="2" column="4" >
- <widget class="QComboBox" name="cboGraduatedMode" >
+ <item row="2" column="4">
+ <widget class="QComboBox" name="cboGraduatedMode">
<item>
- <property name="text" >
+ <property name="text">
<string>Equal Interval</string>
</property>
</item>
<item>
- <property name="text" >
+ <property name="text">
<string>Quantile</string>
</property>
</item>
</widget>
</item>
- <item rowspan="2" row="1" column="2" >
+ <item row="1" column="2" rowspan="2">
<spacer>
- <property name="orientation" >
+ <property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
- <property name="sizeHint" >
+ <property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>20</height>
@@ -311,30 +394,30 @@
</layout>
</item>
<item>
- <widget class="QTreeView" name="viewGraduated" />
+ <widget class="QTreeView" name="viewGraduated"/>
</item>
<item>
- <layout class="QHBoxLayout" >
+ <layout class="QHBoxLayout">
<item>
- <widget class="QPushButton" name="btnGraduatedClassify" >
- <property name="text" >
+ <widget class="QPushButton" name="btnGraduatedClassify">
+ <property name="text">
<string>Classify</string>
</property>
</widget>
</item>
<item>
- <widget class="QPushButton" name="btnGraduatedDelete" >
- <property name="text" >
+ <widget class="QPushButton" name="btnGraduatedDelete">
+ <property name="text">
<string>Delete class</string>
</property>
</widget>
</item>
<item>
<spacer>
- <property name="orientation" >
+ <property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
- <property name="sizeHint" >
+ <property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
@@ -348,18 +431,32 @@
</widget>
</widget>
</item>
- <item row="1" column="0" colspan="3" >
- <widget class="QDialogButtonBox" name="buttonBox" >
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="standardButtons" >
- <set>QDialogButtonBox::Cancel|QDialogButtonBox::NoButton|QDialogButtonBox::Ok</set>
- </property>
- </widget>
- </item>
</layout>
</widget>
+ <tabstops>
+ <tabstop>buttonBox</tabstop>
+ <tabstop>radSingleSymbol</tabstop>
+ <tabstop>radCategorized</tabstop>
+ <tabstop>radGraduated</tabstop>
+ <tabstop>btnChangeSingleSymbol</tabstop>
+ <tabstop>cboCategorizedColumn</tabstop>
+ <tabstop>btnChangeCategorizedSymbol</tabstop>
+ <tabstop>cboCategorizedColorRamp</tabstop>
+ <tabstop>viewCategories</tabstop>
+ <tabstop>btnAddCategories</tabstop>
+ <tabstop>btnDeleteCategory</tabstop>
+ <tabstop>btnDeleteAllCategories</tabstop>
+ <tabstop>btnJoinCategories</tabstop>
+ <tabstop>cboGraduatedColumn</tabstop>
+ <tabstop>btnChangeGraduatedSymbol</tabstop>
+ <tabstop>spinGraduatedClasses</tabstop>
+ <tabstop>cboGraduatedColorRamp</tabstop>
+ <tabstop>cboGraduatedMode</tabstop>
+ <tabstop>viewGraduated</tabstop>
+ <tabstop>btnGraduatedClassify</tabstop>
+ <tabstop>btnGraduatedDelete</tabstop>
+ <tabstop>btnSymbolLevels</tabstop>
+ </tabstops>
<resources/>
<connections>
<connection>
@@ -368,11 +465,11 @@
<receiver>QgsRendererV2PropsDialogBase</receiver>
<slot>accept()</slot>
<hints>
- <hint type="sourcelabel" >
+ <hint type="sourcelabel">
<x>248</x>
<y>254</y>
</hint>
- <hint type="destinationlabel" >
+ <hint type="destinationlabel">
<x>157</x>
<y>274</y>
</hint>
@@ -384,11 +481,11 @@
<receiver>QgsRendererV2PropsDialogBase</receiver>
<slot>reject()</slot>
<hints>
- <hint type="sourcelabel" >
+ <hint type="sourcelabel">
<x>316</x>
<y>260</y>
</hint>
- <hint type="destinationlabel" >
+ <hint type="destinationlabel">
<x>286</x>
<y>274</y>
</hint>
More information about the QGIS-commit
mailing list