2727#include < QMessageBox>
2828#include < QPainter>
2929#include < QProgressDialog>
30+ #include < QSettings>
3031#include < QSvgRenderer>
3132
3233QgsComposerPictureWidget::QgsComposerPictureWidget ( QgsComposerPicture* picture ): QWidget(), mPicture( picture )
@@ -180,11 +181,24 @@ void QgsComposerPictureWidget::on_mAddDirectoryButton_clicked()
180181
181182 // and add icons to the preview
182183 addDirectoryToPreview ( directory );
184+
185+ // update the image directory list in the settings
186+ QSettings s;
187+ QStringList userDirList = s.value ( " /Composer/PictureWidgetDirectories" ).toStringList ();
188+ if ( !userDirList.contains ( directory ) )
189+ {
190+ userDirList.append ( directory );
191+ }
192+ s.setValue ( " /Composer/PictureWidgetDirectories" , userDirList );
183193}
184194
185195void QgsComposerPictureWidget::on_mRemoveDirectoryButton_clicked ()
186196{
187197 QString directoryToRemove = mSearchDirectoriesComboBox ->currentText ();
198+ if ( directoryToRemove.isEmpty () )
199+ {
200+ return ;
201+ }
188202 mSearchDirectoriesComboBox ->removeItem ( mSearchDirectoriesComboBox ->currentIndex () );
189203
190204 // remove entries from back to front (to have the indices of existing items constant)
@@ -196,6 +210,12 @@ void QgsComposerPictureWidget::on_mRemoveDirectoryButton_clicked()
196210 delete ( mPreviewListWidget ->takeItem ( i ) );
197211 }
198212 }
213+
214+ // update the image directory list in the settings
215+ QSettings s;
216+ QStringList userDirList = s.value ( " /Composer/PictureWidgetDirectories" ).toStringList ();
217+ userDirList.removeOne ( directoryToRemove );
218+ s.setValue ( " /Composer/PictureWidgetDirectories" , userDirList );
199219}
200220
201221void QgsComposerPictureWidget::on_mRotationFromComposerMapCheckBox_stateChanged ( int state )
@@ -463,6 +483,16 @@ void QgsComposerPictureWidget::addStandardDirectoriesToPreview()
463483 }
464484 }
465485 }
486+
487+ // include additional user-defined directories for images
488+ QSettings s;
489+ QStringList userDirList = s.value ( " /Composer/PictureWidgetDirectories" ).toStringList ();
490+ QStringList::const_iterator userDirIt = userDirList.constBegin ();
491+ for ( ; userDirIt != userDirList.constEnd (); ++userDirIt )
492+ {
493+ addDirectoryToPreview ( *userDirIt );
494+ mSearchDirectoriesComboBox ->addItem ( *userDirIt );
495+ }
466496}
467497
468498bool QgsComposerPictureWidget::testSvgFile ( const QString& filename ) const
0 commit comments