#include "pbd/file_utils.h"
#include "pbd/filesystem.h"
#include "pbd/replace_all.h"
+#include "pbd/whitespace.h"
#include "ardour/filesystem_paths.h"
#include "ardour/recent_sessions.h"
#include "opts.h"
#include "engine_dialog.h"
#include "i18n.h"
+#include "utils.h"
using namespace std;
using namespace Gtk;
, monitor_via_hardware_button (_("Use an external mixer or the hardware mixer of your audio interface.\n\
Ardour will play NO role in monitoring"))
, monitor_via_ardour_button (string_compose (_("Ask %1 to playback material as it is being recorded"), PROGRAM_NAME))
- , _have_setup_existing_session_page (false)
, new_folder_chooser (FILE_CHOOSER_ACTION_SELECT_FOLDER)
, more_new_session_options_button (_("I'd like more options for this session"))
, _output_limit_count_adj (1, 0, 100, 1, 10, 0)
set_position (WIN_POS_CENTER);
set_border_width (12);
- sys::path icon_file;
-
- if (!find_file_in_search_path (ardour_search_path() + system_data_search_path().add_subdirectory_to_paths("icons"), "ardour_icon_48px.png", icon_file)) {
- throw failed_constructor();
- }
-
- try {
- icon_pixbuf = Gdk::Pixbuf::create_from_file (icon_file.to_string());
- }
-
- catch (...) {
+ if ((icon_pixbuf = ::get_icon ("ardour_icon_48px")) == 0) {
throw failed_constructor();
}
}
}
-Glib::ustring
+std::string
ArdourStartup::session_template_name ()
{
if (!load_template_override.empty()) {
}
if (ic_existing_session_button.get_active()) {
- return ustring();
+ return string();
}
if (use_template_button.get_active()) {
}
}
-Glib::ustring
+std::string
ArdourStartup::session_name (bool& should_be_new)
{
if (ic_new_session_button.get_active()) {
should_be_new = true;
- return new_name_entry.get_text ();
+ string val = new_name_entry.get_text ();
+ strip_whitespace_edges (val);
+ return val;
} else if (_existing_session_chooser_used) {
/* existing session chosen from file chooser */
should_be_new = false;
}
}
-Glib::ustring
+std::string
ArdourStartup::session_folder ()
{
if (ic_new_session_button.get_active()) {
- Glib::ustring legal_session_folder_name = legalize_for_path (new_name_entry.get_text());
+ std::string legal_session_folder_name = legalize_for_path (new_name_entry.get_text());
return Glib::build_filename (new_folder_chooser.get_current_folder(), legal_session_folder_name);
} else if (_existing_session_chooser_used) {
/* existing session chosen from file chooser */
bool
ArdourStartup::initial_button_press (GdkEventButton *event)
{
- if (event && event->type == GDK_2BUTTON_PRESS && session_page_index != -1)
- {
+ if (event && event->type == GDK_2BUTTON_PRESS && session_page_index != -1) {
set_current_page(session_page_index);
return true;
} else {
}
static bool
-lost_name_entry_focus (GdkEventFocus* ev)
+lost_name_entry_focus (GdkEventFocus*)
{
cerr << "lost focus\n";
return false;
recent_session_model = TreeStore::create (recent_session_columns);
redisplay_recent_sessions ();
- if (_have_setup_existing_session_page) {
- return;
+ if (!session_hbox.get_children().empty()) {
+ session_hbox.remove (**session_hbox.get_children().begin());
}
-
- recent_session_display.set_model (recent_session_model);
- recent_session_display.append_column (_("Recent Sessions"), recent_session_columns.visible_name);
- recent_session_display.set_headers_visible (false);
- recent_session_display.get_selection()->set_mode (SELECTION_BROWSE);
-
- recent_session_display.get_selection()->signal_changed().connect (sigc::mem_fun (*this, &ArdourStartup::recent_session_row_selected));
-
- recent_scroller.add (recent_session_display);
- recent_scroller.set_policy (Gtk::POLICY_NEVER, Gtk::POLICY_AUTOMATIC);
- recent_scroller.set_shadow_type (Gtk::SHADOW_IN);
-
- recent_session_display.show();
- recent_scroller.show();
- int cnt = redisplay_recent_sessions ();
- recent_session_display.signal_row_activated().connect (sigc::mem_fun (*this, &ArdourStartup::recent_row_activated));
+ if (session_existing_vbox.get_children().empty()) {
- if (cnt > 4) {
- recent_scroller.set_size_request (-1, 300);
- }
+ recent_session_display.set_model (recent_session_model);
+ recent_session_display.append_column (_("Recent Sessions"), recent_session_columns.visible_name);
+ recent_session_display.set_headers_visible (false);
+ recent_session_display.get_selection()->set_mode (SELECTION_BROWSE);
+
+ recent_session_display.get_selection()->signal_changed().connect (sigc::mem_fun (*this, &ArdourStartup::recent_session_row_selected));
+
+ recent_scroller.add (recent_session_display);
+ recent_scroller.set_policy (Gtk::POLICY_NEVER, Gtk::POLICY_AUTOMATIC);
+ recent_scroller.set_shadow_type (Gtk::SHADOW_IN);
+
+ recent_session_display.show();
+
+ recent_scroller.show();
+ int cnt = redisplay_recent_sessions ();
+ recent_session_display.signal_row_activated().connect (sigc::mem_fun (*this, &ArdourStartup::recent_row_activated));
+
+ if (cnt > 4) {
+ recent_scroller.set_size_request (-1, 300);
+ }
- VBox* vbox = manage (new VBox);
- vbox->set_spacing (8);
- vbox->pack_start (recent_scroller, true, true);
+ session_existing_vbox.set_spacing (8);
+ session_existing_vbox.pack_start (recent_scroller, true, true);
- existing_session_chooser.set_title (_("Select session file"));
- existing_session_chooser.signal_file_set().connect (sigc::mem_fun (*this, &ArdourStartup::existing_session_selected));
-
+ existing_session_chooser.set_title (_("Select session file"));
+ existing_session_chooser.signal_file_set().connect (sigc::mem_fun (*this, &ArdourStartup::existing_session_selected));
+
#ifdef GTKOSX
- existing_session_chooser->add_shortcut_folder ("/Volumes");
+ existing_session_chooser->add_shortcut_folder ("/Volumes");
#endif
-
- HBox* hbox = manage (new HBox);
- hbox->set_spacing (4);
- hbox->pack_start (*manage (new Label (_("Browse:"))), PACK_SHRINK);
- hbox->pack_start (existing_session_chooser);
- vbox->pack_start (*hbox);
- hbox->show_all ();
+
+ HBox* hbox = manage (new HBox);
+ hbox->set_spacing (4);
+ hbox->pack_start (*manage (new Label (_("Browse:"))), PACK_SHRINK);
+ hbox->pack_start (existing_session_chooser);
+ session_existing_vbox.pack_start (*hbox);
+ hbox->show_all ();
+ }
- vbox->show_all ();
- session_hbox.pack_start (*vbox, true, true);
+ session_existing_vbox.show_all ();
+ session_hbox.pack_start (session_existing_vbox, true, true);
set_page_title (session_vbox, _("Select a session"));
set_page_type (session_vbox, ASSISTANT_PAGE_CONFIRM);
-
- _have_setup_existing_session_page = true;
}
void