[QGIS Commit] r14321 - trunk/qgis/src/app/composer

svn_qgis at osgeo.org svn_qgis at osgeo.org
Fri Oct 1 11:20:29 EDT 2010


Author: mhugent
Date: 2010-10-01 15:20:29 +0000 (Fri, 01 Oct 2010)
New Revision: 14321

Modified:
   trunk/qgis/src/app/composer/qgscomposerpicturewidget.cpp
Log:
Remember user specified image directories in composerimage widget. Fixes bug #3072

Modified: trunk/qgis/src/app/composer/qgscomposerpicturewidget.cpp
===================================================================
--- trunk/qgis/src/app/composer/qgscomposerpicturewidget.cpp	2010-09-30 23:16:46 UTC (rev 14320)
+++ trunk/qgis/src/app/composer/qgscomposerpicturewidget.cpp	2010-10-01 15:20:29 UTC (rev 14321)
@@ -27,6 +27,7 @@
 #include <QMessageBox>
 #include <QPainter>
 #include <QProgressDialog>
+#include <QSettings>
 #include <QSvgRenderer>
 
 QgsComposerPictureWidget::QgsComposerPictureWidget( QgsComposerPicture* picture ): QWidget(), mPicture( picture )
@@ -180,11 +181,24 @@
 
   //and add icons to the preview
   addDirectoryToPreview( directory );
+
+  //update the image directory list in the settings
+  QSettings s;
+  QStringList userDirList = s.value( "/Composer/PictureWidgetDirectories" ).toStringList();
+  if ( !userDirList.contains( directory ) )
+  {
+    userDirList.append( directory );
+  }
+  s.setValue( "/Composer/PictureWidgetDirectories", userDirList );
 }
 
 void QgsComposerPictureWidget::on_mRemoveDirectoryButton_clicked()
 {
   QString directoryToRemove = mSearchDirectoriesComboBox->currentText();
+  if ( directoryToRemove.isEmpty() )
+  {
+    return;
+  }
   mSearchDirectoriesComboBox->removeItem( mSearchDirectoriesComboBox->currentIndex() );
 
   //remove entries from back to front (to have the indices of existing items constant)
@@ -196,6 +210,12 @@
       delete( mPreviewListWidget->takeItem( i ) );
     }
   }
+
+  //update the image directory list in the settings
+  QSettings s;
+  QStringList userDirList = s.value( "/Composer/PictureWidgetDirectories" ).toStringList();
+  userDirList.removeOne( directoryToRemove );
+  s.setValue( "/Composer/PictureWidgetDirectories", userDirList );
 }
 
 void QgsComposerPictureWidget::on_mRotationFromComposerMapCheckBox_stateChanged( int state )
@@ -463,6 +483,16 @@
       }
     }
   }
+
+  //include additional user-defined directories for images
+  QSettings s;
+  QStringList userDirList = s.value( "/Composer/PictureWidgetDirectories" ).toStringList();
+  QStringList::const_iterator userDirIt = userDirList.constBegin();
+  for ( ; userDirIt != userDirList.constEnd(); ++userDirIt )
+  {
+    addDirectoryToPreview( *userDirIt );
+    mSearchDirectoriesComboBox->addItem( *userDirIt );
+  }
 }
 
 bool QgsComposerPictureWidget::testSvgFile( const QString& filename ) const



More information about the QGIS-commit mailing list