When a preset is activated fire "preset_activated" event.

On "preset_activated" event, update the value of the maintoolbar select element that lists celltoolbar presets.
When a preset is registered after notebook is loaded, active it if needed.
Raffaele De Feo 12 years ago
parent 4ee5df3f50
commit 61bdcb477b

@ -184,6 +184,10 @@ var IPython = (function (IPython) {
CellToolbar.register_preset = function(name, preset_list) {
CellToolbar._presets[name] = preset_list;
$([IPython.events]).trigger('preset_added.CellToolbar', {name: name});
// When "register_callback" is called by a custom extension, it may be executed after notebook is loaded.
// In that case, activate the preset if needed.
if (IPython.notebook && IPython.notebook.metadata && IPython.notebook.metadata.celltoolbar === name)
this.activate_preset(name);
};
@ -223,6 +227,8 @@ var IPython = (function (IPython) {
CellToolbar._ui_controls_list = preset;
CellToolbar.rebuild_all();
}
$([IPython.events]).trigger('preset_activated.CellToolbar', {name: preset_name});
};

@ -20,7 +20,7 @@ var IPython = (function (IPython) {
this.bind_events();
};
MainToolBar.prototype = new IPython.ToolBar();
MainToolBar.prototype = new IPython.ToolBar();
MainToolBar.prototype.construct = function () {
this.add_buttons_group([
@ -92,7 +92,7 @@ var IPython = (function (IPython) {
}
}
],'move_up_down');
this.add_buttons_group([
{
@ -170,12 +170,17 @@ var IPython = (function (IPython) {
var name = data.name;
select.append($('<option/>').attr('value', name).text(name));
});
// Update select value when a preset is activated.
$([IPython.events]).on('preset_activated.CellToolbar', function (event, data) {
if (select.val() !== data.name)
select.val(data.name);
});
};
MainToolBar.prototype.bind_events = function () {
var that = this;
this.element.find('#cell_type').change(function () {
var cell_type = $(this).val();
if (cell_type === 'code') {

Loading…
Cancel
Save