@@ -83,7 +83,7 @@ namespace QgisGui
83
83
return false ;
84
84
}
85
85
86
- QPair<QString, QString> GUI_EXPORT getSaveAsImageName ( QWidget *theParent, QString theMessage )
86
+ QPair<QString, QString> GUI_EXPORT getSaveAsImageName ( QWidget *theParent, QString theMessage, QString defaultFilename )
87
87
{
88
88
// get a list of supported output image types
89
89
QMap<QString, QString> filterMap;
@@ -93,7 +93,7 @@ namespace QgisGui
93
93
if ( format == " svg" )
94
94
continue ;
95
95
96
- filterMap.insert ( createFileFilter_ ( format + " format" , " *." + format ), format );
96
+ filterMap.insert ( createFileFilter_ ( format. toUpper () + " format" , " *." + format ), format );
97
97
}
98
98
99
99
#ifdef QGISDEBUG
@@ -113,8 +113,20 @@ namespace QgisGui
113
113
QString selectedFilter = lastUsedFilter;
114
114
QString ext;
115
115
116
- #if defined(Q_OS_WIN) || defined(Q_OS_MAC)
117
- outputFileName = QFileDialog::getSaveFileName ( theParent, theMessage, lastUsedDir, QStringList ( filterMap.keys () ).join ( " ;;" ), &selectedFilter );
116
+ QString initialPath;
117
+ if ( defaultFilename.isNull () )
118
+ {
119
+ // no default filename provided, just use last directory
120
+ initialPath = lastUsedDir;
121
+ }
122
+ else
123
+ {
124
+ // a default filename was provided, so use it to build the initial path
125
+ initialPath = QDir ( lastUsedDir ).filePath ( defaultFilename );
126
+ }
127
+
128
+ #if defined(Q_OS_WIN) || defined(Q_OS_MAC) || defined(Q_OS_LINUX)
129
+ outputFileName = QFileDialog::getSaveFileName ( theParent, theMessage, initialPath, QStringList ( filterMap.keys () ).join ( " ;;" ), &selectedFilter );
118
130
119
131
if ( !outputFileName.isNull () )
120
132
{
@@ -125,7 +137,7 @@ namespace QgisGui
125
137
}
126
138
#else
127
139
// create a file dialog using the filter list generated above
128
- std::auto_ptr<QFileDialog> fileDialog ( new QFileDialog ( theParent, theMessage, lastUsedDir , QStringList ( filterMap.keys () ).join ( " ;;" ) ) );
140
+ std::auto_ptr<QFileDialog> fileDialog ( new QFileDialog ( theParent, theMessage, initialPath , QStringList ( filterMap.keys () ).join ( " ;;" ) ) );
129
141
130
142
// allow for selection of more than one file
131
143
fileDialog->setFileMode ( QFileDialog::AnyFile );
0 commit comments