Skip to content

Commit c378535

Browse files
committed
qt: Add a function that extracts the suffix from a filter
Extract the 'Extract first suffix from filter pattern...' functionality into a testable utility function
1 parent a09033e commit c378535

File tree

2 files changed

+21
-15
lines changed

2 files changed

+21
-15
lines changed

src/qt/guiutil.cpp

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,16 @@ QString getDefaultDataDirectory()
292292
return PathToQString(GetDefaultDataDir());
293293
}
294294

295+
QString ExtractFirstSuffixFromFilter(const QString& filter)
296+
{
297+
QRegExp filter_re(".* \\(\\*\\.(.*)[ \\)]");
298+
QString suffix;
299+
if (filter_re.exactMatch(filter)) {
300+
suffix = filter_re.cap(1);
301+
}
302+
return suffix;
303+
}
304+
295305
QString getSaveFileName(QWidget *parent, const QString &caption, const QString &dir,
296306
const QString &filter,
297307
QString *selectedSuffixOut)
@@ -309,13 +319,7 @@ QString getSaveFileName(QWidget *parent, const QString &caption, const QString &
309319
/* Directly convert path to native OS path separators */
310320
QString result = QDir::toNativeSeparators(QFileDialog::getSaveFileName(parent, caption, myDir, filter, &selectedFilter));
311321

312-
/* Extract first suffix from filter pattern "Description (*.foo)" or "Description (*.foo *.bar ...) */
313-
QRegExp filter_re(".* \\(\\*\\.(.*)[ \\)]");
314-
QString selectedSuffix;
315-
if(filter_re.exactMatch(selectedFilter))
316-
{
317-
selectedSuffix = filter_re.cap(1);
318-
}
322+
QString selectedSuffix = ExtractFirstSuffixFromFilter(selectedFilter);
319323

320324
/* Add suffix if needed */
321325
QFileInfo info(result);
@@ -357,14 +361,8 @@ QString getOpenFileName(QWidget *parent, const QString &caption, const QString &
357361

358362
if(selectedSuffixOut)
359363
{
360-
/* Extract first suffix from filter pattern "Description (*.foo)" or "Description (*.foo *.bar ...) */
361-
QRegExp filter_re(".* \\(\\*\\.(.*)[ \\)]");
362-
QString selectedSuffix;
363-
if(filter_re.exactMatch(selectedFilter))
364-
{
365-
selectedSuffix = filter_re.cap(1);
366-
}
367-
*selectedSuffixOut = selectedSuffix;
364+
*selectedSuffixOut = ExtractFirstSuffixFromFilter(selectedFilter);
365+
;
368366
}
369367
return result;
370368
}

src/qt/guiutil.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,14 @@ namespace GUIUtil
123123
*/
124124
QString getDefaultDataDirectory();
125125

126+
/**
127+
* Extract first suffix from filter pattern "Description (*.foo)" or "Description (*.foo *.bar ...).
128+
*
129+
* @param[in] filter Filter specification such as "Comma Separated Files (*.csv)"
130+
* @return QString
131+
*/
132+
QString ExtractFirstSuffixFromFilter(const QString& filter);
133+
126134
/** Get save filename, mimics QFileDialog::getSaveFileName, except that it appends a default suffix
127135
when no suffix is provided by the user.
128136

0 commit comments

Comments
 (0)