graduatedsymbol-rev12213-1.diff
src/gui/symbology-ng/qgsgraduatedsymbolrendererv2widget.h (copia de trabajo) | ||
---|---|---|
2 | 2 |
#define QGSGRADUATEDSYMBOLRENDERERV2WIDGET_H |
3 | 3 | |
4 | 4 |
#include "qgsrendererv2widget.h" |
5 |
#include <QStandardItem> |
|
5 | 6 | |
6 | 7 |
class QgsGraduatedSymbolRendererV2; |
7 | 8 | |
... | ... | |
24 | 25 |
void changeGraduatedSymbol(); |
25 | 26 |
void classifyGraduated(); |
26 | 27 |
void rangesDoubleClicked( const QModelIndex & idx ); |
28 |
void rangesClicked( const QModelIndex & idx ); |
|
29 |
void changeCurrentValue( QStandardItem * item ); |
|
27 | 30 | |
31 |
/**Adds a class manually to the classification*/ |
|
32 |
void addClass(); |
|
33 |
/**Removes a class from the classification*/ |
|
34 |
void deleteCurrentClass(); |
|
35 | ||
28 | 36 |
protected: |
29 | 37 |
void updateUiFromRenderer(); |
30 | 38 | |
... | ... | |
39 | 47 |
void populateRanges(); |
40 | 48 | |
41 | 49 |
void changeRangeSymbol( int rangeIdx ); |
50 |
void changeRange( int rangeIdx); |
|
51 |
|
|
52 |
|
|
42 | 53 | |
43 | 54 | |
44 | 55 |
protected: |
45 | 56 |
QgsGraduatedSymbolRendererV2* mRenderer; |
46 | 57 | |
47 | 58 |
QgsSymbolV2* mGraduatedSymbol; |
59 |
|
|
60 |
int mRowSelected; |
|
61 |
|
|
62 | ||
48 | 63 |
}; |
49 | 64 | |
50 | 65 |
src/gui/symbology-ng/qgsludialog.h (revisión: 0) | ||
---|---|---|
1 |
/*************************************************************************** |
|
2 |
qgsludialog.h - description |
|
3 |
------------------- |
|
4 |
begin : September 2004 |
|
5 |
copyright : (C) 2004 by Marco Hugentobler |
|
6 |
email : [email protected] |
|
7 |
***************************************************************************/ |
|
8 | ||
9 |
/*************************************************************************** |
|
10 |
* * |
|
11 |
* This program is free software; you can redistribute it and/or modify * |
|
12 |
* it under the terms of the GNU General Public License as published by * |
|
13 |
* the Free Software Foundation; either version 2 of the License, or * |
|
14 |
* (at your option) any later version. * |
|
15 |
* * |
|
16 |
***************************************************************************/ |
|
17 |
/* $Id: qgsludialog.h 9138 2008-08-23 21:37:31Z jef $ */ |
|
18 | ||
19 |
#ifndef QGSLUDIALOG_H |
|
20 |
#define QGSLUDIALOG_H |
|
21 | ||
22 |
#include "ui_qgsludialogbase.h" |
|
23 |
#include "qgisgui.h" |
|
24 | ||
25 | ||
26 |
class QgsLUDialog: public QDialog, private Ui::QgsLUDialogBase |
|
27 |
{ |
|
28 |
Q_OBJECT |
|
29 |
public: |
|
30 |
QgsLUDialog( QWidget *parent = 0, Qt::WFlags fl = QgisGui::ModalDialogFlags ); |
|
31 |
~QgsLUDialog(); |
|
32 |
QString lowerValue() const; |
|
33 |
void setLowerValue( QString val ); |
|
34 |
QString upperValue() const; |
|
35 |
void setUpperValue( QString val ); |
|
36 |
}; |
|
37 | ||
38 |
#endif |
src/gui/symbology-ng/qgsgraduatedsymbolrendererv2widget.cpp (copia de trabajo) | ||
---|---|---|
11 | 11 | |
12 | 12 |
#include "qgssymbolv2selectordialog.h" |
13 | 13 | |
14 |
#include "qgsludialog.h" |
|
15 | ||
14 | 16 |
#include <QMessageBox> |
15 | 17 |
#include <QStandardItemModel> |
16 | 18 |
#include <QStandardItem> |
... | ... | |
53 | 55 |
mGraduatedSymbol = QgsSymbolV2::defaultSymbol( mLayer->geometryType() ); |
54 | 56 | |
55 | 57 |
connect( viewGraduated, SIGNAL( doubleClicked( const QModelIndex & ) ), this, SLOT( rangesDoubleClicked( const QModelIndex & ) ) ); |
56 | ||
58 |
connect( viewGraduated, SIGNAL( clicked( const QModelIndex & ) ), this, SLOT( rangesClicked( const QModelIndex & ) ) ); |
|
59 |
connect( mg, SIGNAL( itemChanged ( QStandardItem * ) ), this, SLOT( changeCurrentValue( QStandardItem * ) ) ); |
|
57 | 60 |
connect( btnGraduatedClassify, SIGNAL( clicked() ), this, SLOT( classifyGraduated() ) ); |
58 | 61 |
connect( btnChangeGraduatedSymbol, SIGNAL( clicked() ), this, SLOT( changeGraduatedSymbol() ) ); |
62 |
connect( btnGraduatedDelete, SIGNAL(clicked()), this, SLOT(deleteCurrentClass()) ); |
|
63 |
connect( btnGraduatedAdd, SIGNAL(clicked()), this, SLOT(addClass()) ); |
|
64 |
|
|
65 |
|
|
59 | 66 | |
60 | 67 |
// initialize from previously set renderer |
61 | 68 |
updateUiFromRenderer(); |
... | ... | |
202 | 209 | |
203 | 210 |
QStandardItemModel* m = qobject_cast<QStandardItemModel*>( viewGraduated->model() ); |
204 | 211 |
m->clear(); |
212 |
mRowSelected = -1; |
|
205 | 213 | |
206 | 214 |
QStringList labels; |
207 |
labels << "Range" << "Label"; |
|
215 |
labels << "Symbol" << "Range" << "Label";
|
|
208 | 216 |
m->setHorizontalHeaderLabels( labels ); |
209 | 217 | |
210 | 218 |
QSize iconSize( 16, 16 ); |
... | ... | |
217 | 225 |
QString rangeStr = QString::number( range.lowerValue(), 'f', 4 ) + " - " + QString::number( range.upperValue(), 'f', 4 ); |
218 | 226 | |
219 | 227 |
QIcon icon = QgsSymbolLayerV2Utils::symbolPreviewIcon( range.symbol(), iconSize ); |
220 |
QStandardItem* item = new QStandardItem( icon, rangeStr );
|
|
228 |
QStandardItem* item = new QStandardItem( icon, "" );
|
|
221 | 229 |
//item->setData(k); // set attribute value as user role |
222 | 230 |
item->setFlags( Qt::ItemIsSelectable | Qt::ItemIsEnabled ); |
231 |
|
|
232 |
QStandardItem* item2 = new QStandardItem(rangeStr); |
|
233 |
item2->setEditable(0); |
|
223 | 234 | |
224 | 235 |
QList<QStandardItem *> list; |
225 |
list << item << new QStandardItem( range.label() ); |
|
236 |
list << item << item2 << new QStandardItem( range.label() ); |
|
237 | ||
226 | 238 |
m->appendRow( list ); |
227 | 239 |
} |
228 | 240 | |
... | ... | |
245 | 257 |
{ |
246 | 258 |
if ( idx.isValid() && idx.column() == 0 ) |
247 | 259 |
changeRangeSymbol( idx.row() ); |
260 |
if (idx.isValid() && idx.column() == 1) |
|
261 |
changeRange(idx.row()); |
|
248 | 262 |
} |
249 | 263 | |
264 |
void QgsGraduatedSymbolRendererV2Widget::rangesClicked(const QModelIndex & idx) |
|
265 |
{ |
|
266 |
if (!idx.isValid()) |
|
267 |
mRowSelected = -1; |
|
268 |
else |
|
269 |
mRowSelected = idx.row(); |
|
270 |
} |
|
271 | ||
250 | 272 |
void QgsGraduatedSymbolRendererV2Widget::changeRangeSymbol( int rangeIdx ) |
251 | 273 |
{ |
252 | 274 | |
275 |
/*gsSymbolV2* newSymbol = mRenderer->ranges()[rangeIdx].symbol()->clone() |
|
276 |
QString* label = range.label()*/ |
|
277 |
|
|
253 | 278 |
QgsSymbolV2* newSymbol = mRenderer->ranges()[rangeIdx].symbol()->clone(); |
254 | 279 | |
255 | 280 |
QgsSymbolV2SelectorDialog dlg( newSymbol, mStyle, this ); |
... | ... | |
264 | 289 |
populateRanges(); |
265 | 290 |
} |
266 | 291 | |
292 |
void QgsGraduatedSymbolRendererV2Widget::changeRange(int rangeIdx) |
|
293 |
{ |
|
294 |
QgsLUDialog dialog( this ); |
|
295 |
|
|
296 |
const QgsRendererRangeV2& range = mRenderer->ranges()[rangeIdx]; |
|
297 |
dialog.setLowerValue( QString("%1").arg(range.lowerValue()) ); |
|
298 |
dialog.setUpperValue( QString("%1").arg(range.upperValue()) ); |
|
299 |
|
|
300 |
if ( dialog.exec() == QDialog::Accepted ) |
|
301 |
{ |
|
302 |
double lowerValue = dialog.lowerValue().toDouble(); |
|
303 |
double upperValue = dialog.upperValue().toDouble(); |
|
304 |
mRenderer->updateRangeUpperValue(rangeIdx, upperValue); |
|
305 |
mRenderer->updateRangeLowerValue(rangeIdx, lowerValue); |
|
306 |
populateRanges(); |
|
307 |
|
|
308 |
} |
|
309 |
|
|
310 |
} |
|
311 | ||
312 |
void QgsGraduatedSymbolRendererV2Widget::addClass() |
|
313 |
{ |
|
314 |
mRenderer->addClass(mGraduatedSymbol); |
|
315 |
populateRanges(); |
|
316 |
} |
|
317 | ||
318 |
void QgsGraduatedSymbolRendererV2Widget::deleteCurrentClass() |
|
319 |
{ |
|
320 |
|
|
321 |
mRenderer->deleteClass(mRowSelected); |
|
322 |
populateRanges(); |
|
323 |
} |
|
324 | ||
325 |
void QgsGraduatedSymbolRendererV2Widget::changeCurrentValue( QStandardItem * item ) |
|
326 |
{ |
|
327 |
if (item->column() == 2) |
|
328 |
{ |
|
329 |
QString label = item->text(); |
|
330 |
int idx = item->row(); |
|
331 |
mRenderer->updateRangeLabel(idx, label); |
|
332 |
} |
|
333 |
} |
src/gui/symbology-ng/qgsludialog.cpp (revisión: 0) | ||
---|---|---|
1 |
/*************************************************************************** |
|
2 |
qgsludialog.cpp - description |
|
3 |
------------------- |
|
4 |
begin : September 2004 |
|
5 |
copyright : (C) 2004 by Marco Hugentobler |
|
6 |
email : [email protected] |
|
7 |
***************************************************************************/ |
|
8 | ||
9 |
/*************************************************************************** |
|
10 |
* * |
|
11 |
* This program is free software; you can redistribute it and/or modify * |
|
12 |
* it under the terms of the GNU General Public License as published by * |
|
13 |
* the Free Software Foundation; either version 2 of the License, or * |
|
14 |
* (at your option) any later version. * |
|
15 |
* * |
|
16 |
***************************************************************************/ |
|
17 |
/* $Id: qgsludialog.cpp 9138 2008-08-23 21:37:31Z jef $ */ |
|
18 | ||
19 |
#include "qgsludialog.h" |
|
20 | ||
21 | ||
22 |
QgsLUDialog::QgsLUDialog( QWidget *parent, Qt::WFlags fl ) |
|
23 |
: QDialog( parent, fl ) |
|
24 |
{ |
|
25 |
setupUi( this ); |
|
26 |
} |
|
27 | ||
28 |
QgsLUDialog::~QgsLUDialog() |
|
29 |
{ |
|
30 | ||
31 |
} |
|
32 | ||
33 |
QString QgsLUDialog::lowerValue() const |
|
34 |
{ |
|
35 |
return mLowerEdit->text(); |
|
36 |
} |
|
37 | ||
38 |
QString QgsLUDialog::upperValue() const |
|
39 |
{ |
|
40 |
return mUpperEdit->text(); |
|
41 |
} |
|
42 | ||
43 |
void QgsLUDialog::setLowerValue( QString val ) |
|
44 |
{ |
|
45 |
mLowerEdit->setText( val ); |
|
46 |
} |
|
47 | ||
48 |
void QgsLUDialog::setUpperValue( QString val ) |
|
49 |
{ |
|
50 |
mUpperEdit->setText( val ); |
|
51 |
} |
src/gui/CMakeLists.txt (copia de trabajo) | ||
---|---|---|
16 | 16 |
symbology-ng/qgsvectorgradientcolorrampv2dialog.cpp |
17 | 17 |
symbology-ng/qgsvectorrandomcolorrampv2dialog.cpp |
18 | 18 |
symbology-ng/qgsvectorcolorbrewercolorrampv2dialog.cpp |
19 |
symbology-ng/qgsludialog.cpp |
|
20 |
symbology-ng/ |
|
19 | 21 | |
20 | 22 |
qgisgui.cpp |
21 | 23 |
qgisinterface.cpp |
... | ... | |
59 | 61 |
symbology-ng/qgsvectorgradientcolorrampv2dialog.h |
60 | 62 |
symbology-ng/qgsvectorrandomcolorrampv2dialog.h |
61 | 63 |
symbology-ng/qgsvectorcolorbrewercolorrampv2dialog.h |
64 |
symbology-ng/qgsludialog.h |
|
62 | 65 | |
66 | ||
63 | 67 |
qgscomposerview.h |
64 | 68 |
qgsdetaileditemdelegate.h |
65 | 69 |
qgsdetaileditemwidget.h |
src/core/symbology-ng/qgsgraduatedsymbolrendererv2.cpp (copia de trabajo) | ||
---|---|---|
12 | 12 |
#include <QDomElement> |
13 | 13 |
#include <QSettings> // for legend |
14 | 14 | |
15 |
#include <iostream> |
|
16 | ||
15 | 17 |
QgsRendererRangeV2::QgsRendererRangeV2(double lowerValue, double upperValue, QgsSymbolV2* symbol, QString label) |
16 | 18 |
: mLowerValue(lowerValue), mUpperValue(upperValue), mSymbol(symbol), mLabel(label) |
17 | 19 |
{ |
... | ... | |
61 | 63 |
mLabel = label; |
62 | 64 |
} |
63 | 65 | |
66 |
void QgsRendererRangeV2::setUpperValue(double upperValue) |
|
67 |
{ |
|
68 |
mUpperValue = upperValue; |
|
69 |
} |
|
70 | ||
71 |
void QgsRendererRangeV2::setLowerValue(double lowerValue) |
|
72 |
{ |
|
73 |
mLowerValue = lowerValue; |
|
74 |
} |
|
75 | ||
64 | 76 |
QString QgsRendererRangeV2::dump() |
65 | 77 |
{ |
66 | 78 |
return QString("%1 - %2::%3::%4\n").arg(mLowerValue).arg(mUpperValue).arg(mLabel).arg(mSymbol->dump()); |
... | ... | |
153 | 165 |
return true; |
154 | 166 |
} |
155 | 167 | |
168 |
bool QgsGraduatedSymbolRendererV2::updateRangeUpperValue(int rangeIndex, double value) |
|
169 |
{ |
|
170 |
if (rangeIndex < 0 || rangeIndex >= mRanges.size()) |
|
171 |
return false; |
|
172 |
mRanges[rangeIndex].setUpperValue(value); |
|
173 |
return true; |
|
174 |
} |
|
175 | ||
176 |
bool QgsGraduatedSymbolRendererV2::updateRangeLowerValue(int rangeIndex, double value) |
|
177 |
{ |
|
178 |
if (rangeIndex < 0 || rangeIndex >= mRanges.size()) |
|
179 |
return false; |
|
180 |
mRanges[rangeIndex].setLowerValue(value); |
|
181 |
return true; |
|
182 |
} |
|
183 | ||
156 | 184 |
QString QgsGraduatedSymbolRendererV2::dump() |
157 | 185 |
{ |
158 | 186 |
QString s = QString("GRADUATED: attr %1\n").arg(mAttrName); |
... | ... | |
473 | 501 |
delete mSourceColorRamp; |
474 | 502 |
mSourceColorRamp = ramp; |
475 | 503 |
} |
504 | ||
505 |
void QgsGraduatedSymbolRendererV2::addClass( QgsSymbolV2* symbol ) |
|
506 |
{ |
|
507 |
QgsSymbolV2* newSymbol = symbol->clone(); |
|
508 |
QString label = "0.0 - 0.0"; |
|
509 |
mRanges.insert(0, QgsRendererRangeV2(0.0, 0.0, newSymbol, label ) ); |
|
510 | ||
511 |
} |
|
512 | ||
513 |
void QgsGraduatedSymbolRendererV2::deleteClass( int idx ) |
|
514 |
{ |
|
515 |
mRanges.removeAt(idx); |
|
516 |
} |
src/core/symbology-ng/qgsgraduatedsymbolrendererv2.h (copia de trabajo) | ||
---|---|---|
19 | 19 | |
20 | 20 |
void setSymbol( QgsSymbolV2* s ); |
21 | 21 |
void setLabel( QString label ); |
22 |
void setLowerValue(double lowerValue); |
|
23 |
void setUpperValue(double upperValue); |
|
22 | 24 | |
23 | 25 |
// debugging |
24 | 26 |
QString dump(); |
... | ... | |
62 | 64 | |
63 | 65 |
bool updateRangeSymbol( int rangeIndex, QgsSymbolV2* symbol ); |
64 | 66 |
bool updateRangeLabel( int rangeIndex, QString label ); |
67 |
bool updateRangeUpperValue( int rangeIndex, double value); |
|
68 |
bool updateRangeLowerValue( int rangeIndex, double value); |
|
69 |
|
|
70 |
void addClass( QgsSymbolV2* symbol ); |
|
71 |
void deleteClass( int idx ); |
|
65 | 72 | |
66 | 73 |
enum Mode |
67 | 74 |
{ |
src/ui/qgsgraduatedsymbolrendererv2widget.ui (copia de trabajo) | ||
---|---|---|
132 | 132 |
</widget> |
133 | 133 |
</item> |
134 | 134 |
<item> |
135 |
<widget class="QPushButton" name="btnGraduatedAdd"> |
|
136 |
<property name="text"> |
|
137 |
<string>Add class</string> |
|
138 |
</property> |
|
139 |
</widget> |
|
140 |
</item> |
|
141 |
<item> |
|
135 | 142 |
<widget class="QPushButton" name="btnGraduatedDelete"> |
136 | 143 |
<property name="text"> |
137 | 144 |
<string>Delete class</string> |