[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