Commit ea15cdde authored by Alexander.Trofimov's avatar Alexander.Trofimov Committed by Alexander.Trofimov

Поправил баг http://bugzserver/show_bug.cgi?id=24221

При быстром вводе числа добавляем проценты в конце.

git-svn-id: svn://192.168.3.15/activex/AVS/Sources/TeamlabOffice/trunk/OfficeWeb@56267 954022d7-b5bf-4e40-9824-e11837661b57
parent 2ec93664
......@@ -1880,7 +1880,19 @@
//t.setFocus(true);
t.isUpdateValue = false;
t._addChars(String.fromCharCode(event.which));
var tmpCursorPos;
var newChar = String.fromCharCode(event.which);
t._addChars(newChar);
// При первом быстром вводе стоит добавить в конце проценты (для процентного формата и только для числа)
if (t.options.isAddPersentFormat && isNumber(newChar)) {
t.options.isAddPersentFormat = false;
tmpCursorPos = t.cursorPos;
t.undoMode = true;
t._addChars("%");
t.cursorPos = tmpCursorPos;
t.undoMode = false;
t._updateCursorPosition();
}
if (t.textRender.getEndOfText() === t.cursorPos && !t.isFormula()) {
var s = t._getFragmentsText(t.options.fragments);
if (!isNumber(s)) {
......@@ -1888,7 +1900,7 @@
var lengthInput = s.length;
if (1 === arrAutoComplete.length) {
var newValue = arrAutoComplete[0];
var tmpCursorPos = t.cursorPos;
tmpCursorPos = t.cursorPos;
t._addChars(newValue.substring(lengthInput));
t.selectionBegin = tmpCursorPos;
t._selectChars(kEndOfText);
......
......@@ -720,7 +720,8 @@
// Выставляем блокировку на выход из редактора по клавишам-стрелкам
t.strictClose = true;
// При F2 выставляем фокус в редакторе
t.handlers.trigger("editCell", 0, 0, /*isCoord*/false, /*isFocus*/true, /*isClearCell*/false, /*isHideCursor*/undefined);
t.handlers.trigger("editCell", 0, 0, /*isCoord*/false, /*isFocus*/true, /*isClearCell*/false,
/*isHideCursor*/undefined, /*isQuickInput*/false);
return result;
case 8: // backspace
......@@ -729,7 +730,7 @@
// При backspace фокус не в редакторе (стираем содержимое)
t.handlers.trigger("editCell", 0, 0, /*isCoord*/false, /*isFocus*/false, /*isClearCell*/true,
/*isHideCursor*/undefined, /*callback*/undefined, event);
/*isHideCursor*/undefined, /*isQuickInput*/false, /*callback*/undefined, event);
return true;
case 46: // Del
......@@ -1037,7 +1038,7 @@
// При нажатии символа, фокус не ставим
// Очищаем содержимое ячейки
t.handlers.trigger("editCell", 0, 0, /*isCoord*/false, /*isFocus*/false, /*isClearCell*/true,
/*isHideCursor*/undefined, /*callback*/undefined, event);
/*isHideCursor*/undefined, /*isQuickInput*/true, /*callback*/undefined, event);
}
return true;
};
......
......@@ -941,11 +941,12 @@
// При dbl клике фокус выставляем в зависимости от наличия текста в ячейке
this._onEditCell (x, y, /*isCoord*/true, /*isFocus*/undefined, /*isClearCell*/undefined,
/*isHideCursor*/isHideCursor);
/*isHideCursor*/isHideCursor, /*isQuickInput*/false);
}
};
WorkbookView.prototype._onEditCell = function (x, y, isCoord, isFocus, isClearCell, isHideCursor, callback, event) {
WorkbookView.prototype._onEditCell = function (x, y, isCoord, isFocus, isClearCell, isHideCursor,
isQuickInput, callback, event) {
var t = this;
// Проверка глобального лока
......@@ -961,7 +962,7 @@
ws.setCellEditMode(true);
if (!ws.openCellEditor(t.cellEditor, x, y, isCoord, /*fragments*/undefined,
/*cursorPos*/undefined, isFocus, isClearCell,
/*isHideCursor*/isHideCursor, /*activeRange*/arn)) {
/*isHideCursor*/isHideCursor, /*isQuickInput*/isQuickInput, /*activeRange*/arn)) {
t.controller.setCellEditMode(false);
t.controller.setStrictClose(false);
t.controller.setFormulaEditMode(false);
......
......@@ -10305,7 +10305,7 @@
};
WorksheetView.prototype.openCellEditor = function (editor, x, y, isCoord, fragments, cursorPos,
isFocus, isClearCell, isHideCursor, activeRange) {
isFocus, isClearCell, isHideCursor, isQuickInput, activeRange) {
var t = this, vr = t.visibleRange.clone(), tc = t.cols, tr = t.rows, col, row, c, fl, mc, bg, isMerged;
var offsetX = 0, offsetY = 0;
var ar = t.activeRange;
......@@ -10469,6 +10469,8 @@
focus: isFocus,
isClearCell: isClearCell,
isHideCursor: isHideCursor,
isQuickInput: isQuickInput,
isAddPersentFormat: isQuickInput && c_oAscNumFormatType.Percent === c.getNumFormat().getType(),
autoComplete: arrAutoComplete,
autoCompleteLC: arrAutoCompleteLC,
saveValueCallback: function (val, flags, skipNLCheck) {
......@@ -10494,8 +10496,9 @@
copyValue = [];
copyValue[0] = new Fragment({text: text, format: v[0].format.clone()});
var bSuccess = t.openCellEditor(editor, 0, 0, /*isCoord*/false, /*fragments*/undefined, /*cursorPos*/undefined, isFocus, /*isClearCell*/true,
/*isHideCursor*/false, activeRange);
var bSuccess = t.openCellEditor(editor, 0, 0, /*isCoord*/false, /*fragments*/undefined,
/*cursorPos*/undefined, isFocus, /*isClearCell*/true, /*isHideCursor*/false,
/*isQuickInput*/false, activeRange);
if (bSuccess) {
editor.paste(copyValue, cursorPos);
}
......
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