if (biter != _user.end()) {
return false;
}
- printf("BITTER\n");
return ARDOUR::cmp_nocase((*a).name, (*b).name) == -1;
}
tact->set_active (yn);
}
+
XMLNode* plugin_order;
if ((plugin_order = find_named_node (node, "PluginOrder")) != 0) {
+ store_current_favorite_order ();
std::list<string> order;
const XMLNodeList& kids = plugin_order->children("PluginInfo");
XMLNodeConstIterator i;
for (i = kids.begin(); i != kids.end(); ++i) {
if ((prop = (*i)->property ("unique-id"))) {
- order.push_back (prop->value());
+ std::string unique_id = prop->value();
+ order.push_back (unique_id);
+ if ((prop = (*i)->property ("expanded"))) {
+ favorite_ui_state[unique_id] = string_is_affirmative (prop->value());
+ }
}
}
-
- store_current_favorite_order ();
PluginStateSorter cmp (order);
favorite_order.sort (cmp);
sync_treeview_from_favorite_order ();
XMLNode* p = new XMLNode ("PluginInfo");
p->add_property ("sort", cnt);
p->add_property ("unique-id", (*i)->unique_id);
+ try {
+ p->add_property ("expanded", favorite_ui_state.at ((*i)->unique_id));
+ } catch (const std::out_of_range&) { }
plugin_order->add_child_nocopy (*p);
;
}
ARDOUR::PluginPresetPtr ppp = row[favorite_plugins_columns.plugin];
favorite_order.push_back (ppp->_pip);
std::string name = row[favorite_plugins_columns.name];
+ favorite_ui_state[(*ppp->_pip).unique_id] = favorite_plugins_display.row_expanded (favorite_plugins_model->get_path(iter));
}
}
child_row[favorite_plugins_columns.name] = (*j).label;
child_row[favorite_plugins_columns.plugin] = PluginPresetPtr (new PluginPreset(pip, &(*j)));
}
+ try {
+ if (favorite_ui_state.at (pip->unique_id)) {
+ favorite_plugins_display.expand_row (favorite_plugins_model->get_path(newrow), true);
+ }
+ } catch (const std::out_of_range&) { }
}
}