Cell splitting and merging is done!

Brian Granger 14 years ago committed by MinRK
parent b42cafa15d
commit d369606683

@ -22,7 +22,14 @@ var IPython = (function (IPython) {
MenuBar.prototype.style = function () {
$('ul#menus').menubar();
$('ul#menus').menubar({
select : function (event, ui) {
// The selected cell looses focus when the menu is entered, so we
// re-select it upon selection.
var i = IPython.notebook.selected_index();
IPython.notebook.select(i);
}
});
};

@ -200,19 +200,6 @@ var IPython = (function (IPython) {
that.element.animate({height : new_height + 'px'}, 'fast');
});
this.element.bind('collapse_left_panel', function () {
var splitter_width = $('div#left_panel_splitter').outerWidth(true);
var new_margin = splitter_width;
$('div#notebook_panel').animate({marginLeft : new_margin + 'px'}, 'fast');
});
this.element.bind('expand_left_panel', function () {
var splitter_width = $('div#left_panel_splitter').outerWidth(true);
var left_panel_width = IPython.left_panel.width;
var new_margin = splitter_width + left_panel_width;
$('div#notebook_panel').animate({marginLeft : new_margin + 'px'}, 'fast');
});
$(window).bind('beforeunload', function () {
// TODO: Make killing the kernel configurable.
var kill_kernel = false;
@ -273,7 +260,16 @@ var IPython = (function (IPython) {
Notebook.prototype.index_or_selected = function (index) {
return index || this.selected_index() || 0;
var i;
if (index === undefined) {
i = this.selected_index();
if (i === null) {
i = 0;
}
} else {
i = index;
}
return i;
};
@ -338,7 +334,7 @@ var IPython = (function (IPython) {
// Cell insertion, deletion and moving.
Notebook.prototype.delete_cell = function (index) {
var i = index || this.selected_index();
var i = this.index_or_selected(index);
if (i !== null && i >= 0 && i < this.ncells()) {
this.cell_elements().eq(i).remove();
if (i === (this.ncells())) {
@ -664,6 +660,7 @@ var IPython = (function (IPython) {
Notebook.prototype.split_cell = function () {
// Todo: implement spliting for other cell types.
var cell = this.selected_cell();
if (cell instanceof IPython.CodeCell) {
var cursor = cell.code_mirror.getCursor();
@ -680,6 +677,40 @@ var IPython = (function (IPython) {
};
};
Notebook.prototype.merge_cell_above = function () {
// Todo: implement merging for other cell types.
var cell = this.selected_cell();
var index = this.selected_index();
if (index > 0) {
upper_cell = this.cells()[index-1];
lower_cell = this.cells()[index];
if (upper_cell instanceof IPython.CodeCell && lower_cell instanceof IPython.CodeCell) {
upper_text = upper_cell.get_code();
lower_text = lower_cell.get_code();
lower_cell.set_code(upper_text+'\n'+lower_text);
this.delete_cell(index-1);
};
};
};
Notebook.prototype.merge_cell_below = function () {
// Todo: implement merging for other cell types.
var cell = this.selected_cell();
var index = this.selected_index();
if (index < this.ncells()-1) {
upper_cell = this.cells()[index];
lower_cell = this.cells()[index+1];
if (upper_cell instanceof IPython.CodeCell && lower_cell instanceof IPython.CodeCell) {
upper_text = upper_cell.get_code();
lower_text = lower_cell.get_code();
upper_cell.set_code(upper_text+'\n'+lower_text);
this.delete_cell(index+1);
};
};
};
// Cell collapsing and output clearing
Notebook.prototype.collapse = function (index) {

Loading…
Cancel
Save