Remove unused header include
[ardour.git] / gtk2_ardour / startup.cc
index 1c0ddfa6b4c11865cd53d08c4799029e7bbed54c..689312baa2c784c5147380205c2e31e2ce5f0317 100644 (file)
@@ -38,6 +38,7 @@
 #include "ardour/session.h"
 #include "ardour/session_state_utils.h"
 #include "ardour/template_utils.h"
+#include "ardour/filename_extensions.h"
 
 #include "ardour_ui.h"
 #include "startup.h"
@@ -122,23 +123,13 @@ Ardour will play NO role in monitoring"))
                set_default_icon_list (window_icons);
        }
 
-       new_user = !exists (been_here_before_path ());
+       new_user = !Glib::file_test(been_here_before_path().to_string(), Glib::FILE_TEST_EXISTS);
 
        bool need_audio_setup = !EngineControl::engine_running();
 
-        setup_prerelease_page ();
+        // setup_prerelease_page ();
 
        if (new_user) {
-
-               /* Create the config directory so that we have somewhere to put the
-                  been_here_before file.
-               */
-               try {
-                       sys::create_directories (user_config_directory ());
-               }
-               catch (const sys::filesystem_error& ex) {
-                       error << "Could not create user configuration directory" << endmsg;
-               }
                
                setup_new_user_page ();
                setup_first_time_config_page ();
@@ -246,8 +237,8 @@ std::string
 ArdourStartup::session_template_name ()
 {
        if (!load_template_override.empty()) {
-               string the_path = (ARDOUR::user_template_directory()/ (load_template_override + ".template")).to_string();
-               return the_path;
+               string the_path(ARDOUR::user_template_directory());
+               return Glib::build_filename (the_path, load_template_override + ARDOUR::template_suffix);
        }
 
        if (ic_existing_session_button.get_active()) {
@@ -549,10 +540,10 @@ ArdourStartup::setup_initial_choice_page ()
        centering_vbox->pack_start (ic_new_session_button, false, true);
        centering_vbox->pack_start (ic_existing_session_button, false, true);
 
-       ic_new_session_button.signal_clicked().connect(sigc::mem_fun(*this, &ArdourStartup::initial_button_clicked));
+       ic_new_session_button.signal_button_press_event().connect(sigc::mem_fun(*this, &ArdourStartup::initial_button_clicked), false);
        ic_new_session_button.signal_activate().connect(sigc::mem_fun(*this, &ArdourStartup::initial_button_activated), false);
 
-       ic_existing_session_button.signal_clicked().connect(sigc::mem_fun(*this, &ArdourStartup::initial_button_clicked));
+       ic_existing_session_button.signal_button_press_event().connect(sigc::mem_fun(*this, &ArdourStartup::initial_button_clicked), false);
        ic_existing_session_button.signal_activate().connect(sigc::mem_fun(*this, &ArdourStartup::initial_button_activated), false);
 
        centering_hbox->pack_start (*centering_vbox, true, true);
@@ -572,12 +563,14 @@ ArdourStartup::setup_initial_choice_page ()
        set_page_complete (ic_vbox, true);
 }
 
-void
-ArdourStartup::initial_button_clicked ()
+bool
+ArdourStartup::initial_button_clicked (GdkEventButton* ev)
 {
-       if (session_page_index != -1) {
+       if (ev->type == GDK_2BUTTON_PRESS && session_page_index != -1) {
                set_current_page(session_page_index);
        }
+
+       return false;
 }
 
 void
@@ -931,11 +924,11 @@ ArdourStartup::redisplay_recent_sessions ()
 
        for (vector<sys::path>::const_iterator i = session_directories.begin(); i != session_directories.end(); ++i)
        {
-               std::vector<sys::path> state_file_paths;
+               std::vector<std::string> state_file_paths;
 
                // now get available states for this session
 
-               get_state_files_in_directory (*i, state_file_paths);
+               get_state_files_in_directory ((*i).to_string (), state_file_paths);
 
                vector<string*>* states;
                vector<const gchar*> item;
@@ -1036,9 +1029,14 @@ ArdourStartup::setup_existing_session_page ()
 
                existing_session_chooser.set_title (_("Select session file"));
                existing_session_chooser.signal_file_set().connect (sigc::mem_fun (*this, &ArdourStartup::existing_session_selected));
-               cerr << "Set existing chooser to " << Config->get_default_session_parent_dir() << endl;
                existing_session_chooser.set_current_folder(poor_mans_glob (Config->get_default_session_parent_dir()));
 
+               FileFilter session_filter;
+               session_filter.add_pattern ("*.ardour");
+               session_filter.set_name (string_compose (_("%1 sessions"), PROGRAM_NAME));
+               existing_session_chooser.add_filter (session_filter);
+               existing_session_chooser.set_filter (session_filter);
+               
 #ifdef GTKOSX
                existing_session_chooser.add_shortcut_folder ("/Volumes");
 #endif