@@ -219,10 +219,25 @@ void QgsComposerArrowWidget::on_mEndMarkerLineEdit_textChanged( const QString &
219
219
220
220
void QgsComposerArrowWidget::on_mStartMarkerToolButton_clicked ()
221
221
{
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 );
224
237
if ( !svgFileName.isNull () )
225
238
{
239
+ QFileInfo fileInfo ( svgFileName );
240
+ s.setValue ( " /UI/lastComposerMarkerDir" , fileInfo.absolutePath () );
226
241
mArrow ->beginCommand ( tr ( " Arrow start marker" ) );
227
242
mStartMarkerLineEdit ->setText ( svgFileName );
228
243
mArrow ->endCommand ();
@@ -231,12 +246,27 @@ void QgsComposerArrowWidget::on_mStartMarkerToolButton_clicked()
231
246
232
247
void QgsComposerArrowWidget::on_mEndMarkerToolButton_clicked ()
233
248
{
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 );
236
264
if ( !svgFileName.isNull () )
237
265
{
266
+ QFileInfo fileInfo ( svgFileName );
267
+ s.setValue ( " /UI/lastComposerMarkerDir" , fileInfo.absolutePath () );
238
268
mArrow ->beginCommand ( tr ( " Arrow end marker" ) );
239
- mEndMarkerLineEdit ->setText ( svgFileName );
269
+ mEndMarkerLineEdit ->setText ( svgFileName );
240
270
mArrow ->endCommand ();
241
271
}
242
272
}
0 commit comments