Skip to content

Commit 76596e9

Browse files
author
mhugent
committed
Remember user specified image directories in composerimage widget. Fixes bug #3072
git-svn-id: http://svn.osgeo.org/qgis/trunk/qgis@14321 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent f085636 commit 76596e9

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

src/app/composer/qgscomposerpicturewidget.cpp

+30
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
#include <QMessageBox>
2828
#include <QPainter>
2929
#include <QProgressDialog>
30+
#include <QSettings>
3031
#include <QSvgRenderer>
3132

3233
QgsComposerPictureWidget::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

185195
void 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

201221
void 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

468498
bool QgsComposerPictureWidget::testSvgFile( const QString& filename ) const

0 commit comments

Comments
 (0)