modify API of SessionDialog to reflect that it is never used with command line parameters anymore
This commit is contained in:
parent
18b4a4213f
commit
cafae1663e
@ -81,8 +81,6 @@ using namespace ARDOUR_UI_UTILS;
|
||||
SessionDialog::SessionDialog (bool require_new, const std::string& session_name, const std::string& session_path, const std::string& template_name, bool cancel_not_quit)
|
||||
: ArdourDialog (_("Session Setup"), true, true)
|
||||
, new_only (require_new)
|
||||
, _provided_session_name (session_name)
|
||||
, _provided_session_path (session_path)
|
||||
, new_folder_chooser (FILE_CHOOSER_ACTION_SELECT_FOLDER)
|
||||
, _existing_session_chooser_used (false)
|
||||
{
|
||||
@ -148,8 +146,6 @@ SessionDialog::SessionDialog (bool require_new, const std::string& session_name,
|
||||
SessionDialog::SessionDialog ()
|
||||
: ArdourDialog (_("Recent Sessions"), true, true)
|
||||
, new_only (false)
|
||||
, _provided_session_name ("")
|
||||
, _provided_session_path ("")
|
||||
, _existing_session_chooser_used (false) // caller must check should_be_new
|
||||
{
|
||||
get_vbox()->set_spacing (6);
|
||||
@ -178,13 +174,6 @@ SessionDialog::~SessionDialog()
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
SessionDialog::clear_given ()
|
||||
{
|
||||
_provided_session_path = "";
|
||||
_provided_session_name = "";
|
||||
}
|
||||
|
||||
uint32_t
|
||||
SessionDialog::meta_master_bus_profile (std::string script_path)
|
||||
{
|
||||
@ -259,10 +248,6 @@ SessionDialog::use_session_template () const
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!load_template_override.empty()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (template_chooser.get_selection()->count_selected_rows() > 0) {
|
||||
return true;
|
||||
}
|
||||
@ -273,39 +258,6 @@ SessionDialog::use_session_template () const
|
||||
std::string
|
||||
SessionDialog::session_template_name ()
|
||||
{
|
||||
if (!load_template_override.empty()) {
|
||||
/* compare to SessionDialog::populate_session_templates */
|
||||
|
||||
/* compare by name (path may or may not be UTF-8) */
|
||||
vector<TemplateInfo> templates;
|
||||
find_session_templates (templates, false);
|
||||
for (vector<TemplateInfo>::iterator x = templates.begin(); x != templates.end(); ++x) {
|
||||
if ((*x).name == load_template_override) {
|
||||
return (*x).path;
|
||||
}
|
||||
}
|
||||
|
||||
/* look up script by name */
|
||||
LuaScriptList scripts (LuaScripting::instance ().scripts (LuaScriptInfo::SessionInit));
|
||||
LuaScriptList& as (LuaScripting::instance ().scripts (LuaScriptInfo::EditorAction));
|
||||
for (LuaScriptList::const_iterator s = as.begin(); s != as.end(); ++s) {
|
||||
if ((*s)->subtype & LuaScriptInfo::SessionSetup) {
|
||||
scripts.push_back (*s);
|
||||
}
|
||||
}
|
||||
std::sort (scripts.begin(), scripts.end(), LuaScripting::Sorter());
|
||||
for (LuaScriptList::const_iterator s = scripts.begin(); s != scripts.end(); ++s) {
|
||||
if ((*s)->name == load_template_override) {
|
||||
return "urn:ardour:" + (*s)->path;
|
||||
}
|
||||
}
|
||||
|
||||
/* this will produce a more or less meaninful error later:
|
||||
* "ERROR: Could not open session template [abs-path to user-config dir]"
|
||||
*/
|
||||
return Glib::build_filename (ARDOUR::user_template_directory (), load_template_override);
|
||||
}
|
||||
|
||||
if (template_chooser.get_selection()->count_selected_rows() > 0) {
|
||||
|
||||
TreeIter const iter = template_chooser.get_selection()->get_selected();
|
||||
@ -329,14 +281,6 @@ SessionDialog::clear_name ()
|
||||
std::string
|
||||
SessionDialog::session_name (bool& should_be_new)
|
||||
{
|
||||
if (!_provided_session_name.empty()) {
|
||||
/* user gave name on cmdline/invocation. Did they also specify
|
||||
that it must be a new session?
|
||||
*/
|
||||
should_be_new = new_only;
|
||||
return _provided_session_name;
|
||||
}
|
||||
|
||||
/* Try recent session selection */
|
||||
|
||||
TreeIter iter = recent_session_display.get_selection()->get_selected();
|
||||
@ -365,10 +309,6 @@ SessionDialog::session_name (bool& should_be_new)
|
||||
std::string
|
||||
SessionDialog::session_folder ()
|
||||
{
|
||||
if (!_provided_session_path.empty()) {
|
||||
return _provided_session_path;
|
||||
}
|
||||
|
||||
/* Try recent session selection */
|
||||
|
||||
TreeIter iter = recent_session_display.get_selection()->get_selected();
|
||||
@ -664,12 +604,6 @@ SessionDialog::setup_new_session_page ()
|
||||
name_hbox->pack_start (*name_label, false, true);
|
||||
name_hbox->pack_start (new_name_entry, true, true);
|
||||
|
||||
//check to see if a session name was provided on command line
|
||||
if (!ARDOUR_COMMAND_LINE::session_name.empty()) {
|
||||
new_name_entry.set_text (Glib::path_get_basename (ARDOUR_COMMAND_LINE::session_name));
|
||||
open_button->set_sensitive (true);
|
||||
}
|
||||
|
||||
new_name_entry.signal_changed().connect (sigc::mem_fun (*this, &SessionDialog::new_name_changed));
|
||||
new_name_entry.signal_activate().connect (sigc::mem_fun (*this, &SessionDialog::new_name_activated));
|
||||
|
||||
@ -681,10 +615,7 @@ SessionDialog::setup_new_session_page ()
|
||||
folder_box->pack_start (*new_folder_label, false, false);
|
||||
folder_box->pack_start (new_folder_chooser, true, true);
|
||||
|
||||
//determine the text in the new folder selector
|
||||
if (!ARDOUR_COMMAND_LINE::session_name.empty()) {
|
||||
new_folder_chooser.set_current_folder (poor_mans_glob (Glib::path_get_dirname (ARDOUR_COMMAND_LINE::session_name)));
|
||||
} else if (ARDOUR_UI::instance()->the_session ()) {
|
||||
if (ARDOUR_UI::instance()->the_session ()) {
|
||||
// point the new session file chooser at the parent directory of the current session
|
||||
string session_parent_dir = Glib::path_get_dirname(ARDOUR_UI::instance()->the_session()->path());
|
||||
new_folder_chooser.set_current_folder (session_parent_dir);
|
||||
@ -1152,3 +1083,13 @@ SessionDialog::on_delete_event (GdkEventAny* ev)
|
||||
response (RESPONSE_CANCEL);
|
||||
return ArdourDialog::on_delete_event (ev);
|
||||
}
|
||||
|
||||
void
|
||||
SessionDialog::set_provided_session (string const & name, string const & path)
|
||||
{
|
||||
/* Note: path is required to be the full path to the session file, not
|
||||
just the folder name
|
||||
*/
|
||||
new_name_entry.set_text (name);
|
||||
existing_session_chooser.set_current_folder (Glib::path_get_dirname (path));
|
||||
}
|
||||
|
@ -55,8 +55,6 @@ public:
|
||||
SessionDialog ();
|
||||
~SessionDialog ();
|
||||
|
||||
void clear_given ();
|
||||
|
||||
std::string session_name (bool& should_be_new);
|
||||
std::string session_folder ();
|
||||
|
||||
@ -65,16 +63,11 @@ public:
|
||||
|
||||
uint32_t master_channel_count();
|
||||
|
||||
void set_provided_session(const std::string& session_name, const std::string& session_path) {
|
||||
_provided_session_name = session_name;
|
||||
_provided_session_path = session_path;
|
||||
}
|
||||
void set_provided_session (std::string const & name, std::string const & path);
|
||||
void clear_name ();
|
||||
|
||||
private:
|
||||
bool new_only;
|
||||
std::string _provided_session_name;
|
||||
std::string _provided_session_path;
|
||||
|
||||
bool on_delete_event (GdkEventAny*);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user