summaryrefslogtreecommitdiff
path: root/gtk2_ardour/session_dialog.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2018-10-04 03:36:40 +0200
committerRobin Gareus <robin@gareus.org>2018-10-04 03:36:40 +0200
commit39f65bbce209e1be1591dd0a32c34ad6a11bcf97 (patch)
treef48cc76c2c92ab9e4e6837484cae08054c824375 /gtk2_ardour/session_dialog.cc
parent59b789d2bbd14012755215d72affb96696024367 (diff)
Sort Factory/Lua-script session-templates
Diffstat (limited to 'gtk2_ardour/session_dialog.cc')
-rw-r--r--gtk2_ardour/session_dialog.cc32
1 files changed, 19 insertions, 13 deletions
diff --git a/gtk2_ardour/session_dialog.cc b/gtk2_ardour/session_dialog.cc
index 66b46d6893..d8ecc543a9 100644
--- a/gtk2_ardour/session_dialog.cc
+++ b/gtk2_ardour/session_dialog.cc
@@ -564,6 +564,15 @@ SessionDialog::open_button_pressed (GdkEventButton* ev)
return true;
}
+struct LuaScriptListSorter
+{
+ bool operator() (LuaScriptInfoPtr const a, LuaScriptInfoPtr const b) const {
+ printf ("-- CMD %s <> %s = %d\n", a->name.c_str(), b->name.c_str(), ARDOUR::cmp_nocase_utf8 (a->name, b->name));
+ return ARDOUR::cmp_nocase_utf8 (a->name, b->name) < 0;
+ }
+};
+
+
void
SessionDialog::populate_session_templates ()
{
@@ -573,23 +582,21 @@ SessionDialog::populate_session_templates ()
template_model->clear ();
- /* Add Lua Scripts dedicated to session-setup */
- LuaScriptList& ms (LuaScripting::instance ().scripts (LuaScriptInfo::SessionInit));
- for (LuaScriptList::const_iterator s = ms.begin(); s != ms.end(); ++s) {
- TreeModel::Row row = *(template_model->append ());
- row[session_template_columns.name] = (*s)->name;
- row[session_template_columns.path] = "urn:ardour:" + (*s)->path;
- row[session_template_columns.description] = (*s)->description;
- row[session_template_columns.modified_with_short] = _("{Factory Template}");
- row[session_template_columns.modified_with_long] = _("{Factory Template}");
- }
+ /* Get Lua Scripts dedicated to session-setup */
+ LuaScriptList scripts (LuaScripting::instance ().scripts (LuaScriptInfo::SessionInit));
/* Add Lua Action Scripts which can also be used for session-setup */
LuaScriptList& as (LuaScripting::instance ().scripts (LuaScriptInfo::EditorAction));
for (LuaScriptList::const_iterator s = as.begin(); s != as.end(); ++s) {
- if (!((*s)->subtype & LuaScriptInfo::SessionSetup)) {
- continue;
+ if ((*s)->subtype & LuaScriptInfo::SessionSetup) {
+ scripts.push_back (*s);
}
+ }
+
+ LuaScriptListSorter cmp;
+ std::sort (scripts.begin(), scripts.end(), cmp);
+
+ for (LuaScriptList::const_iterator s = scripts.begin(); s != scripts.end(); ++s) {
TreeModel::Row row = *(template_model->append ());
row[session_template_columns.name] = (*s)->name;
row[session_template_columns.path] = "urn:ardour:" + (*s)->path;
@@ -598,7 +605,6 @@ SessionDialog::populate_session_templates ()
row[session_template_columns.modified_with_long] = _("{Factory Template}");
}
-
//Add any "template sessions" found in the user's preferences folder
for (vector<TemplateInfo>::iterator x = templates.begin(); x != templates.end(); ++x) {
TreeModel::Row row;