[QGIS Commit] r15222 - in trunk/qgis: python/core
src/core/symbology-ng src/gui/symbology-ng src/ui
svn_qgis at osgeo.org
svn_qgis at osgeo.org
Sun Feb 20 12:05:46 EST 2011
Author: wonder
Date: 2011-02-20 09:05:46 -0800 (Sun, 20 Feb 2011)
New Revision: 15222
Modified:
trunk/qgis/python/core/symbology-ng-core.sip
trunk/qgis/src/core/symbology-ng/qgsstylev2.cpp
trunk/qgis/src/core/symbology-ng/qgsstylev2.h
trunk/qgis/src/gui/symbology-ng/qgsstylev2managerdialog.cpp
trunk/qgis/src/gui/symbology-ng/qgsstylev2managerdialog.h
trunk/qgis/src/ui/qgssymbolv2propertiesdialogbase.ui
Log:
Implemented renaming of symbols and color ramps. Fixes #3509
Modified: trunk/qgis/python/core/symbology-ng-core.sip
===================================================================
--- trunk/qgis/python/core/symbology-ng-core.sip 2011-02-20 16:37:25 UTC (rev 15221)
+++ trunk/qgis/python/core/symbology-ng-core.sip 2011-02-20 17:05:46 UTC (rev 15222)
@@ -886,8 +886,12 @@
//! remove symbol from style (and delete it)
bool removeSymbol(QString name);
+ //! change symbol's name
+ //! @note added in v1.7
+ bool renameSymbol( QString oldName, QString newName );
+
//! return a NEW copy of symbol
- QgsSymbolV2* symbol(QString name);
+ QgsSymbolV2* symbol(QString name) /Factory/;
//! return a const pointer to a symbol (doesn't create new instance)
const QgsSymbolV2* symbolRef(QString name) const;
@@ -905,8 +909,12 @@
//! remove color ramp from style (and delete it)
bool removeColorRamp(QString name);
+ //! change ramp's name
+ //! @note added in v1.7
+ bool renameColorRamp( QString oldName, QString newName );
+
//! return a NEW copy of color ramp
- QgsVectorColorRampV2* colorRamp(QString name);
+ QgsVectorColorRampV2* colorRamp(QString name) /Factory/;
//! return a const pointer to a symbol (doesn't create new instance)
const QgsVectorColorRampV2* colorRampRef(QString name) const;
Modified: trunk/qgis/src/core/symbology-ng/qgsstylev2.cpp
===================================================================
--- trunk/qgis/src/core/symbology-ng/qgsstylev2.cpp 2011-02-20 16:37:25 UTC (rev 15221)
+++ trunk/qgis/src/core/symbology-ng/qgsstylev2.cpp 2011-02-20 17:05:46 UTC (rev 15222)
@@ -261,3 +261,21 @@
mFileName = filename;
return true;
}
+
+bool QgsStyleV2::renameSymbol( QString oldName, QString newName )
+{
+ if ( !mSymbols.contains( oldName ) )
+ return NULL;
+
+ mSymbols.insert( newName, mSymbols.take( oldName ) );
+ return true;
+}
+
+bool QgsStyleV2::renameColorRamp( QString oldName, QString newName )
+{
+ if ( !mColorRamps.contains( oldName ) )
+ return NULL;
+
+ mColorRamps.insert( newName, mColorRamps.take( oldName ) );
+ return true;
+}
Modified: trunk/qgis/src/core/symbology-ng/qgsstylev2.h
===================================================================
--- trunk/qgis/src/core/symbology-ng/qgsstylev2.h 2011-02-20 16:37:25 UTC (rev 15221)
+++ trunk/qgis/src/core/symbology-ng/qgsstylev2.h 2011-02-20 17:05:46 UTC (rev 15222)
@@ -35,6 +35,10 @@
//! remove symbol from style (and delete it)
bool removeSymbol( QString name );
+ //! change symbol's name
+ //! @note added in v1.7
+ bool renameSymbol( QString oldName, QString newName );
+
//! return a NEW copy of symbol
QgsSymbolV2* symbol( QString name );
@@ -54,6 +58,10 @@
//! remove color ramp from style (and delete it)
bool removeColorRamp( QString name );
+ //! change ramp's name
+ //! @note added in v1.7
+ bool renameColorRamp( QString oldName, QString newName );
+
//! return a NEW copy of color ramp
QgsVectorColorRampV2* colorRamp( QString name );
Modified: trunk/qgis/src/gui/symbology-ng/qgsstylev2managerdialog.cpp
===================================================================
--- trunk/qgis/src/gui/symbology-ng/qgsstylev2managerdialog.cpp 2011-02-20 16:37:25 UTC (rev 15221)
+++ trunk/qgis/src/gui/symbology-ng/qgsstylev2managerdialog.cpp 2011-02-20 17:05:46 UTC (rev 15222)
@@ -46,6 +46,8 @@
QStandardItemModel* model = new QStandardItemModel( listItems );
listItems->setModel( model );
+ connect( model, SIGNAL( itemChanged( QStandardItem* ) ), this, SLOT( itemChanged( QStandardItem* ) ) );
+
populateTypes();
connect( tabItemType, SIGNAL( currentChanged( int ) ), this, SLOT( populateList() ) );
@@ -68,7 +70,7 @@
// save current selection index in types combo
int current = ( tabItemType->count() > 0 ? tabItemType->currentIndex() : 0 );
- // no counting of style items
+// no counting of style items
int markerCount = 0, lineCount = 0, fillCount = 0;
QStringList symbolNames = mStyle->symbolNames();
@@ -130,6 +132,7 @@
QStandardItem* item = new QStandardItem( name );
QIcon icon = QgsSymbolLayerV2Utils::symbolPreviewIcon( symbol, listItems->iconSize() );
item->setIcon( icon );
+ item->setData( name ); // used to find out original name when user edited the name
// add to model
model->appendRow( item );
}
@@ -153,6 +156,7 @@
QStandardItem* item = new QStandardItem( name );
QIcon icon = QgsSymbolLayerV2Utils::colorRampPreviewIcon( ramp, listItems->iconSize() );
item->setIcon( icon );
+ item->setData( name ); // used to find out original name when user edited the name
model->appendRow( item );
delete ramp;
}
@@ -453,3 +457,25 @@
mModified = true;
return true;
}
+
+void QgsStyleV2ManagerDialog::itemChanged( QStandardItem* item )
+{
+ // an item has been edited
+ QString oldName = item->data().toString();
+
+ bool changed = false;
+ if ( currentItemType() < 3 )
+ {
+ changed = mStyle->renameSymbol( oldName, item->text() );
+ }
+ else if ( currentItemType() == 3 )
+ {
+ changed = mStyle->renameColorRamp( oldName, item->text() );
+ }
+
+ if ( changed )
+ {
+ populateList();
+ mModified = true;
+ }
+}
Modified: trunk/qgis/src/gui/symbology-ng/qgsstylev2managerdialog.h
===================================================================
--- trunk/qgis/src/gui/symbology-ng/qgsstylev2managerdialog.h 2011-02-20 16:37:25 UTC (rev 15221)
+++ trunk/qgis/src/gui/symbology-ng/qgsstylev2managerdialog.h 2011-02-20 17:05:46 UTC (rev 15222)
@@ -3,6 +3,7 @@
#define QGSSTYLEV2MANAGERDIALOG_H
#include <QDialog>
+#include <QStandardItem>
#include "ui_qgsstylev2managerdialogbase.h"
#include "qgscontexthelp.h"
@@ -31,6 +32,8 @@
void on_buttonBox_helpRequested() { QgsContextHelp::run( metaObject()->className() ); }
+ void itemChanged( QStandardItem* item );
+
protected:
//! populate combo box with known style items (symbols, color ramps)
Modified: trunk/qgis/src/ui/qgssymbolv2propertiesdialogbase.ui
===================================================================
--- trunk/qgis/src/ui/qgssymbolv2propertiesdialogbase.ui 2011-02-20 16:37:25 UTC (rev 15221)
+++ trunk/qgis/src/ui/qgssymbolv2propertiesdialogbase.ui 2011-02-20 17:05:46 UTC (rev 15222)
@@ -83,6 +83,9 @@
<verstretch>0</verstretch>
</sizepolicy>
</property>
+ <property name="editTriggers">
+ <set>QAbstractItemView::NoEditTriggers</set>
+ </property>
</widget>
</item>
<item row="2" column="0">
More information about the QGIS-commit
mailing list