session-dir/interchange: ignore hidden directories.
[ardour.git] / libs / ardour / session_directory.cc
index 491a593398378a5bae8bea419ce0d4406a98919f..46c4bf024a344929fbc4267577e664bfd3e89fcf 100644 (file)
@@ -91,6 +91,8 @@ SessionDirectory::old_sound_path () const
        return Glib::build_filename (m_root_path, old_sound_dir_name);
 }
 
+static bool leading_dot (const std::string& value) { return value.at(0) == '.'; }
+
 const std::string
 SessionDirectory::sources_root () const
 {
@@ -142,6 +144,9 @@ SessionDirectory::sources_root () const
 
                std::list<std::string> entries (dir.begin(), dir.end());
 
+               // filter out dirs starting with a dot. e.g ".DS_Store"
+               entries.remove_if (leading_dot);
+
                if (entries.size() == 1) {
                        if (entries.front() != legalized_root) {
                                PBD::info << _("session-dir and session-name mismatch. Please use 'Menu > Session > Rename' in the future to rename sessions.") << endmsg;