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
This commit is contained in:
1 parent
a09033e22c
commit
c378535e28
2 files changed
+21
-15
No files matched your search
+13
-15
@@ -292,6 +292,16 @@ QString getDefaultDataDirectory()
|
|||||||
return PathToQString(GetDefaultDataDir());
|
return PathToQString(GetDefaultDataDir());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString ExtractFirstSuffixFromFilter(const QString& filter)
|
||||||
|
{
|
||||||
|
QRegExp filter_re(".* \\(\\*\\.(.*)[ \\)]");
|
||||||
|
QString suffix;
|
||||||
|
if (filter_re.exactMatch(filter)) {
|
||||||
|
suffix = filter_re.cap(1);
|
||||||
|
}
|
||||||
|
return suffix;
|
||||||
|
}
|
||||||
|
|
||||||
QString getSaveFileName(QWidget *parent, const QString &caption, const QString &dir,
|
QString getSaveFileName(QWidget *parent, const QString &caption, const QString &dir,
|
||||||
const QString &filter,
|
const QString &filter,
|
||||||
QString *selectedSuffixOut)
|
QString *selectedSuffixOut)
|
||||||
@@ -309,13 +319,7 @@ QString getSaveFileName(QWidget *parent, const QString &caption, const QString &
|
|||||||
/* Directly convert path to native OS path separators */
|
/* Directly convert path to native OS path separators */
|
||||||
QString result = QDir::toNativeSeparators(QFileDialog::getSaveFileName(parent, caption, myDir, filter, &selectedFilter));
|
QString result = QDir::toNativeSeparators(QFileDialog::getSaveFileName(parent, caption, myDir, filter, &selectedFilter));
|
||||||
|
|
||||||
/* Extract first suffix from filter pattern "Description (*.foo)" or "Description (*.foo *.bar ...) */
|
QString selectedSuffix = ExtractFirstSuffixFromFilter(selectedFilter);
|
||||||
QRegExp filter_re(".* \\(\\*\\.(.*)[ \\)]");
|
|
||||||
QString selectedSuffix;
|
|
||||||
if(filter_re.exactMatch(selectedFilter))
|
|
||||||
{
|
|
||||||
selectedSuffix = filter_re.cap(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Add suffix if needed */
|
/* Add suffix if needed */
|
||||||
QFileInfo info(result);
|
QFileInfo info(result);
|
||||||
@@ -357,14 +361,8 @@ QString getOpenFileName(QWidget *parent, const QString &caption, const QString &
|
|||||||
|
|
||||||
if(selectedSuffixOut)
|
if(selectedSuffixOut)
|
||||||
{
|
{
|
||||||
/* Extract first suffix from filter pattern "Description (*.foo)" or "Description (*.foo *.bar ...) */
|
*selectedSuffixOut = ExtractFirstSuffixFromFilter(selectedFilter);
|
||||||
QRegExp filter_re(".* \\(\\*\\.(.*)[ \\)]");
|
;
|
||||||
QString selectedSuffix;
|
|
||||||
if(filter_re.exactMatch(selectedFilter))
|
|
||||||
{
|
|
||||||
selectedSuffix = filter_re.cap(1);
|
|
||||||
}
|
|
||||||
*selectedSuffixOut = selectedSuffix;
|
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -123,6 +123,14 @@ namespace GUIUtil
|
|||||||
*/
|
*/
|
||||||
QString getDefaultDataDirectory();
|
QString getDefaultDataDirectory();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Extract first suffix from filter pattern "Description (*.foo)" or "Description (*.foo *.bar ...).
|
||||||
|
*
|
||||||
|
* @param[in] filter Filter specification such as "Comma Separated Files (*.csv)"
|
||||||
|
* @return QString
|
||||||
|
*/
|
||||||
|
QString ExtractFirstSuffixFromFilter(const QString& filter);
|
||||||
|
|
||||||
/** Get save filename, mimics QFileDialog::getSaveFileName, except that it appends a default suffix
|
/** Get save filename, mimics QFileDialog::getSaveFileName, except that it appends a default suffix
|
||||||
when no suffix is provided by the user.
|
when no suffix is provided by the user.
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user