Skip to content

Commit c1e3c7a

Browse files
committed
[composer] Remember last used folder for picture and marker dialogs (fix #8764)
1 parent a2c13ec commit c1e3c7a

File tree

2 files changed

+42
-5
lines changed

2 files changed

+42
-5
lines changed

src/app/composer/qgscomposerarrowwidget.cpp

+35-5
Original file line numberDiff line numberDiff line change
@@ -219,10 +219,25 @@ void QgsComposerArrowWidget::on_mEndMarkerLineEdit_textChanged( const QString &
219219

220220
void QgsComposerArrowWidget::on_mStartMarkerToolButton_clicked()
221221
{
222-
QFileInfo fi( mStartMarkerLineEdit->text() );
223-
QString svgFileName = QFileDialog::getOpenFileName( 0, tr( "Start marker svg file" ), fi.dir().absolutePath() );
222+
QSettings s;
223+
QString openDir;
224+
225+
if ( !mStartMarkerLineEdit->text().isEmpty() )
226+
{
227+
QFileInfo fi( mStartMarkerLineEdit->text() );
228+
openDir = fi.dir().absolutePath();
229+
}
230+
231+
if ( openDir.isEmpty() )
232+
{
233+
openDir = s.value( "/UI/lastComposerMarkerDir", "" ).toString();
234+
}
235+
236+
QString svgFileName = QFileDialog::getOpenFileName( 0, tr( "Start marker svg file" ), openDir );
224237
if ( !svgFileName.isNull() )
225238
{
239+
QFileInfo fileInfo( svgFileName );
240+
s.setValue( "/UI/lastComposerMarkerDir", fileInfo.absolutePath() );
226241
mArrow->beginCommand( tr( "Arrow start marker" ) );
227242
mStartMarkerLineEdit->setText( svgFileName );
228243
mArrow->endCommand();
@@ -231,12 +246,27 @@ void QgsComposerArrowWidget::on_mStartMarkerToolButton_clicked()
231246

232247
void QgsComposerArrowWidget::on_mEndMarkerToolButton_clicked()
233248
{
234-
QFileInfo fi( mEndMarkerLineEdit->text() );
235-
QString svgFileName = QFileDialog::getOpenFileName( 0, tr( "End marker svg file" ), fi.dir().absolutePath() );
249+
QSettings s;
250+
QString openDir;
251+
252+
if ( !mEndMarkerLineEdit->text().isEmpty() )
253+
{
254+
QFileInfo fi( mEndMarkerLineEdit->text() );
255+
openDir = fi.dir().absolutePath();
256+
}
257+
258+
if ( openDir.isEmpty() )
259+
{
260+
openDir = s.value( "/UI/lastComposerMarkerDir", "" ).toString();
261+
}
262+
263+
QString svgFileName = QFileDialog::getOpenFileName( 0, tr( "End marker svg file" ), openDir );
236264
if ( !svgFileName.isNull() )
237265
{
266+
QFileInfo fileInfo( svgFileName );
267+
s.setValue( "/UI/lastComposerMarkerDir", fileInfo.absolutePath() );
238268
mArrow->beginCommand( tr( "Arrow end marker" ) );
239-
mEndMarkerLineEdit ->setText( svgFileName );
269+
mEndMarkerLineEdit->setText( svgFileName );
240270
mArrow->endCommand();
241271
}
242272
}

src/app/composer/qgscomposerpicturewidget.cpp

+7
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ QgsComposerPictureWidget::~QgsComposerPictureWidget()
6363

6464
void QgsComposerPictureWidget::on_mPictureBrowseButton_clicked()
6565
{
66+
QSettings s;
6667
QString openDir;
6768
QString lineEditText = mPictureLineEdit->text();
6869
if ( !lineEditText.isEmpty() )
@@ -71,6 +72,10 @@ void QgsComposerPictureWidget::on_mPictureBrowseButton_clicked()
7172
openDir = openDirFileInfo.path();
7273
}
7374

75+
if ( openDir.isEmpty() )
76+
{
77+
openDir = s.value( "/UI/lastComposerPictureDir", "" ).toString();
78+
}
7479

7580
//show file dialog
7681
QString filePath = QFileDialog::getOpenFileName( 0, tr( "Select svg or image file" ), openDir );
@@ -87,6 +92,8 @@ void QgsComposerPictureWidget::on_mPictureBrowseButton_clicked()
8792
return;
8893
}
8994

95+
s.setValue( "/UI/lastComposerPictureDir", fileInfo.absolutePath() );
96+
9097
mPictureLineEdit->blockSignals( true );
9198
mPictureLineEdit->setText( filePath );
9299
mPictureLineEdit->blockSignals( false );

0 commit comments

Comments
 (0)