Commit 4c89ceaa authored by Alexander.Trofimov's avatar Alexander.Trofimov Committed by Alexander.Trofimov

Добавил возможность skipHelpSelector (при вставке пропустить обработку подсказки)

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@63883 954022d7-b5bf-4e40-9824-e11837661b57
parent 0e9d5e7e
......@@ -608,9 +608,8 @@
// Не смогли добавить...
return false;
}
}
else {
if( !isDefName )
} else {
if (!isDefName)
// Это уже форула, добавляем без '='
functionName = functionName + "()";
}
......@@ -619,7 +618,7 @@
// Вставим форумулу в текущую позицию
this._addChars(functionName);
// Меняем позицию курсора внутрь скобок
if( !isDefName )
if (!isDefName)
this._moveCursor(kPosition, this.cursorPos - 1);
};
......
......@@ -151,6 +151,7 @@
this.formulasList = null; // Список всех формул
this.lastFormulaPos = -1; // Последняя позиция формулы
this.lastFormulaName = ""; // Последний кусок формулы
this.skipHelpSelector = false; // Пока true - не показываем окно подсказки
this.lastFindOptions = null; // Последний поиск (параметры)
this.lastFindResults = {}; // Результаты поиска (для поиска по всей книге, чтобы перейти на другой лист)
......@@ -1519,6 +1520,8 @@
};
WorkbookView.prototype._onUpdateCellEditor = function (text, cursorPosition, isFormula, formulaPos, formulaName) {
if (this.skipHelpSelector)
return;
// ToDo для ускорения можно завести объект, куда класть результаты поиска по формулам и второй раз не искать.
var arrResult = [];
if (isFormula && formulaName) {
......@@ -1554,28 +1557,35 @@
// Вставка формулы в редактор
WorkbookView.prototype.insertFormulaInEditor = function (functionName, autoComplete, isDefName) {
var t = this, ws = this.getWorksheet(), cursorPos
var t = this, ws = this.getWorksheet(), cursorPos;
// Проверяем, открыт ли редактор
if (ws.getCellEditMode()) {
if (isDefName)
this.skipHelpSelector = true;
// При autoComplete заканчиваем ввод
if (autoComplete)
this.cellEditor.close(true);
else if (false === this.cellEditor.insertFormula (functionName,isDefName)) {
else if (false === this.cellEditor.insertFormula(functionName, isDefName)) {
// Не смогли вставить формулу, закроем редактор, с сохранением текста
this.cellEditor.close(true);
}
if (isDefName)
this.skipHelpSelector = false;
} else {
// Он закрыт
// Проверка глобального лока
if (this.collaborativeEditing.getGlobalLock())
return false;
// Редактор закрыт
var cellRange = null;
// Если нужно сделать автозаполнение формулы, то ищем ячейки)
if (autoComplete) {
cellRange = ws.autoCompleteFormula(functionName);
}
if(isDefName){
functionName = "=" + functionName
}
else{
if (isDefName) {
functionName = "=" + functionName;
} else{
if (cellRange) {
if (cellRange.notEditCell) {
// Мы уже ввели все что нужно, редактор открывать не нужно
......@@ -1591,10 +1601,6 @@
cursorPos = functionName.length - 1;
}
// Проверка глобального лока
if (this.collaborativeEditing.getGlobalLock())
return false;
var arn = ws.activeRange.clone(true);
var openEditor = function (res) {
......@@ -1604,6 +1610,8 @@
ws.setCellEditMode(true);
t.handlers.trigger("asc_onEditCell", c_oAscCellEditorState.editStart);
if (isDefName)
t.skipHelpSelector = true;
// Открываем, с выставлением позиции курсора
if (!ws.openCellEditorWithText(t.cellEditor, functionName, cursorPos, /*isFocus*/false,
/*activeRange*/arn)) {
......@@ -1614,6 +1622,8 @@
ws.setCellEditMode(false);
ws.setFormulaEditMode(false);
}
if (isDefName)
t.skipHelpSelector = false;
} else {
t.controller.setCellEditMode(false);
t.controller.setStrictClose(false);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment