diff --git a/GUI/View/Import/RealDataSelectorWidget.cpp b/GUI/View/Import/RealDataSelectorWidget.cpp
index 3b9c64c38fcaf691da7c9b867b24cf5754db39ec..a9c39e4bc88d080d09f3c6607ede2b5e696c2766 100644
--- a/GUI/View/Import/RealDataSelectorWidget.cpp
+++ b/GUI/View/Import/RealDataSelectorWidget.cpp
@@ -33,6 +33,23 @@
 #include <QVBoxLayout>
 #include <map>
 
+namespace {
+
+template<class T>
+QString join_mapkeys(std::map<const QString, T> _map, const QString& _separator)
+{
+    QString result;
+    for (const auto& it : _map) {
+        if (!result.isEmpty())
+            result += _separator;
+        result += it.first;
+    }
+    return result;
+}
+
+} // namespace
+
+
 RealDataSelectorWidget::RealDataSelectorWidget(QWidget* parent, ProjectDocument* document)
     : QWidget(parent)
     , m_itemTree(new QTreeView(this))
@@ -290,12 +307,7 @@ void RealDataSelectorWidget::importData2D()
         {"CSV (*.txt *.csv *.dat)", IO::csv2D},
         {"All (*.*)", IO::unknown2D}};
 
-    QString filters;
-    for (const auto& it : filters2D) {
-        if (!filters.isEmpty())
-            filters += ";;";
-        filters += it.first;
-    }
+    QString filters = ::join_mapkeys(filters2D, ";;");
 
     QString selectedFilter = ProjectManager::instance()->recentlyUsedImportFilter2D();
     const QString dirname = ProjectManager::instance()->userImportDir();