[QGIS Commit] r13492 - trunk/qgis/src/core/composer

svn_qgis at osgeo.org svn_qgis at osgeo.org
Sat May 15 11:04:56 EDT 2010


Author: mhugent
Date: 2010-05-15 11:04:56 -0400 (Sat, 15 May 2010)
New Revision: 13492

Modified:
   trunk/qgis/src/core/composer/qgslegendmodel.cpp
   trunk/qgis/src/core/composer/qgslegendmodel.h
Log:
Fix drag drop behaviour of composer legend items

Modified: trunk/qgis/src/core/composer/qgslegendmodel.cpp
===================================================================
--- trunk/qgis/src/core/composer/qgslegendmodel.cpp	2010-05-15 14:15:47 UTC (rev 13491)
+++ trunk/qgis/src/core/composer/qgslegendmodel.cpp	2010-05-15 15:04:56 UTC (rev 13492)
@@ -694,18 +694,25 @@
 
 Qt::ItemFlags QgsLegendModel::flags( const QModelIndex &index ) const
 {
-  Qt::ItemFlags flags = QStandardItemModel::flags( index );
+  Qt::ItemFlags flags = Qt::ItemIsEnabled | Qt::ItemIsSelectable;
+  if ( !index.isValid() )
+  {
+    flags |= Qt::ItemIsDropEnabled;
+    return flags;
+  }
 
   QStandardItem* item = itemFromIndex( index );
-  if ( item )
+  QgsComposerLegendItem* cItem = dynamic_cast<QgsComposerLegendItem*>( item );
+
+  if ( cItem )
   {
-    ItemType type = itemType( *item );
-    if ( type == QgsLegendModel::GroupItem )
+    QgsComposerLegendItem::ItemType type = cItem->itemType();
+    if ( type == QgsComposerLegendItem::GroupItem )
     {
       flags |= Qt::ItemIsDragEnabled;
       flags |= Qt::ItemIsDropEnabled;
     }
-    else if ( type == QgsLegendModel::LayerItem )
+    else if ( type == QgsComposerLegendItem::LayerItem )
     {
       flags |= Qt::ItemIsDragEnabled;
     }
@@ -741,11 +748,6 @@
   return true;
 }
 
-QgsLegendModel::ItemType QgsLegendModel::itemType( const QStandardItem& item ) const
-{
-  return ( QgsLegendModel::ItemType )item.data( Qt::UserRole + 1 ).toInt();
-}
-
 QMimeData* QgsLegendModel::mimeData( const QModelIndexList &indexes ) const
 {
   QMimeData* mimeData = new QMimeData();

Modified: trunk/qgis/src/core/composer/qgslegendmodel.h
===================================================================
--- trunk/qgis/src/core/composer/qgslegendmodel.h	2010-05-15 14:15:47 UTC (rev 13491)
+++ trunk/qgis/src/core/composer/qgslegendmodel.h	2010-05-15 15:04:56 UTC (rev 13492)
@@ -77,8 +77,6 @@
     /**Implemented to support drag operations*/
     virtual bool removeRows( int row, int count, const QModelIndex & parent = QModelIndex() );
 
-    QgsLegendModel::ItemType itemType( const QStandardItem& item ) const;
-
     /**For the drag operation*/
     QMimeData* mimeData( const QModelIndexList &indexes ) const;
     QStringList mimeTypes() const;



More information about the QGIS-commit mailing list