kit/Kit.cpp | 42 +++++++++------------------ loleaflet/src/control/Control.ContextMenu.js | 2 - loleaflet/src/control/Control.Menubar.js | 6 +++ loleaflet/unocommands.js | 4 ++ 4 files changed, 25 insertions(+), 29 deletions(-)
New commits: commit 784e7a16453b7d7f4d86c79a4a8f470cc863dc7a Author: Jan Holesovsky <ke...@collabora.com> Date: Fri Dec 15 11:51:46 2017 +0100 Avoid an unnecessary buffer in the watermark code. Change-Id: I29b162fd9d8f43d0a2cb75853f0a3c0dc8ee92df Reviewed-on: https://gerrit.libreoffice.org/46527 Reviewed-by: Ashod Nakashian <ashnak...@gmail.com> Tested-by: Ashod Nakashian <ashnak...@gmail.com> diff --git a/kit/Kit.cpp b/kit/Kit.cpp index 5cb82801..193b8ccb 100644 --- a/kit/Kit.cpp +++ b/kit/Kit.cpp @@ -525,7 +525,7 @@ public: } private: - /// Alpha blend 'pixel_count' pixels from 'from' over the 'to'. + /// Alpha blend pixels from 'from' over the 'to'. void alphaBlend(const unsigned char* from, int from_width, int from_height, int from_offset_x, int from_offset_y, unsigned char* to, int to_width, int to_height) { @@ -556,6 +556,7 @@ private: } } + /// Create bitmap that we later use as the watermark for every tile. const unsigned char* getPixmap(int width, int height) { if (_pixmap && width == _width && height == _height) @@ -585,38 +586,24 @@ private: } const unsigned int pixel_count = width * height * 4; - - // Create the blurred background; first a white text _pixmap = static_cast<unsigned char*>(malloc(pixel_count)); - unsigned char* from = text; - unsigned char* to = _pixmap; - for (; to < _pixmap + pixel_count; from += 4, to += 4) - { - // Pre-multiplied alpha! - const double alpha = from[3] / 255.0; - to[0] = 0xff * alpha; - to[1] = 0xff * alpha; - to[2] = 0xff * alpha; - to[3] = from[3]; - } - // Use box blur, which is fast, though crude. - unsigned char* buffer = static_cast<unsigned char*>(malloc(pixel_count)); - memcpy(buffer, _pixmap, pixel_count); - - // Repeat an even number of times to smooth out. + // Create the white blurred background + // Use box blur, it's enough for our purposes const int r = 2; const double weight = (r+1) * (r+1); - for (int y = r; y < height - r; ++y) + for (int y = 0; y < height; ++y) { - for (int x = r; x < width - r; ++x) + for (int x = 0; x < width; ++x) { double t = 0; - for (int ky = y - r; ky <= y + r; ++ky) + for (int ky = std::max(y - r, 0); ky <= std::min(y + r, height - 1); ++ky) { - for (int kx = x - r; kx <= x + r; ++kx) + for (int kx = std::max(x - r, 0); kx <= std::min(x + r, width - 1); ++kx) { - t += buffer[4 * (ky * width + kx) + 3]; + // Pre-multiplied alpha; the text is black, so all the + // information is only in the alpha channel + t += text[4 * (ky * width + kx) + 3]; } } @@ -624,19 +611,20 @@ private: double avg = t / weight; if (avg > 255.0) avg = 255.0; + + // Pre-multiplied alpha, but use white for the resulting color const double alpha = avg / 255.0; _pixmap[4 * (y * width + x) + 0] = 0xff * alpha; _pixmap[4 * (y * width + x) + 1] = 0xff * alpha; _pixmap[4 * (y * width + x) + 2] = 0xff * alpha; - _pixmap[4 * (y * width + x) + 3] = static_cast<unsigned char>(avg < 255.0 ? avg : 255); + _pixmap[4 * (y * width + x) + 3] = avg; } } - // Now copy text over the blur + // Now copy the (black) text over the (white) blur alphaBlend(text, _width, _height, 0, 0, _pixmap, _width, _height); // No longer needed. - std::free(buffer); std::free(text); // Make the resulting pixmap semi-transparent commit ff0c7fb6445003c562179ca5b13f207ad21e68e5 Author: Pranav Kant <pran...@collabora.co.uk> Date: Thu Dec 14 20:48:03 2017 +0530 lokdialog: Dialogs related to object and shapes in presentation Change-Id: If9a2e3d8bdbeab00397d2970f472602201991445 Reviewed-on: https://gerrit.libreoffice.org/46463 Reviewed-by: Jan Holesovsky <ke...@collabora.com> Tested-by: Jan Holesovsky <ke...@collabora.com> diff --git a/loleaflet/src/control/Control.ContextMenu.js b/loleaflet/src/control/Control.ContextMenu.js index e9006719..f49e924e 100644 --- a/loleaflet/src/control/Control.ContextMenu.js +++ b/loleaflet/src/control/Control.ContextMenu.js @@ -39,7 +39,7 @@ L.Control.ContextMenu = L.Control.extend({ spreadsheet: ['MergeCells', 'SplitCell', 'RecalcPivotTable', 'FormatCellDialog'], - presentation: ['EditStyle'], + presentation: ['TransformDialog', 'FormatLine', 'FormatArea'], drawing: [] } // UNOCOMMANDS_EXTRACT_END <- don't remove this line, it's used by unocommands.py diff --git a/loleaflet/src/control/Control.Menubar.js b/loleaflet/src/control/Control.Menubar.js index c15a286c..3af4925e 100644 --- a/loleaflet/src/control/Control.Menubar.js +++ b/loleaflet/src/control/Control.Menubar.js @@ -244,7 +244,11 @@ L.Control.Menubar = L.Control.extend({ {name: _UNO('.uno:InsertSymbol', 'presentation'), id: 'specialcharacter', type: 'action'}] }, {name: _UNO('.uno:FormatMenu', 'presentation'), type: 'menu', menu: [ - {uno: '.uno:EditStyle'} + {name: _UNO('.uno:FormatObjectMenu', 'presentation'), type: 'menu', menu: [ + {uno: '.uno:TransformDialog'}, + {uno: '.uno:FormatLine'}, + {uno: '.uno:FormatArea'} + ]}, ]}, {name: _UNO('.uno:TableMenu', 'text'/*HACK should be 'presentation', but not in xcu*/), type: 'menu', menu: [ {name: _UNO('.uno:TableInsertMenu', 'text'/*HACK should be 'presentation', but not in xcu*/), type: 'menu', menu: [ diff --git a/loleaflet/unocommands.js b/loleaflet/unocommands.js index e610559f..e0442f97 100644 --- a/loleaflet/unocommands.js +++ b/loleaflet/unocommands.js @@ -59,9 +59,12 @@ var unoCommandsArray = { FilterMenu:{spreadsheet:{menu:_('More ~Filters'),},}, FontColor:{global:{menu:_('Font Color'),},text:{menu:_('Font Color'),},}, FontDialog:{global:{menu:_('Character...'),},}, + FormatArea:{global:{menu:_('A~rea...'),},}, FormatBulletsMenu:{global:{menu:_('Lis~ts'),},}, FormatCellDialog:{spreadsheet:{context:_('~Format Cells...'),menu:_('Ce~lls...'),},}, + FormatLine:{global:{menu:_('L~ine...'),},}, FormatMenu:{global:{menu:_('F~ormat'),},}, + FormatObjectMenu:{global:{menu:_('~Object and Shape'),},text:{menu:_('Text Box and Shap~e'),},}, FormatSpacingMenu:{global:{menu:_('~Spacing'),},}, FormatTextMenu:{global:{menu:_('Te~xt'),},}, FormattingMarkMenu:{global:{menu:_('Formatting Mark'),},}, @@ -196,6 +199,7 @@ var unoCommandsArray = { ToggleMergeCells:{spreadsheet:{menu:_('M~erge and Center Cells'),},}, ToolsMenu:{global:{menu:_('~Tools'),},}, TrackChanges:{text:{menu:_('~Record'),},}, + TransformDialog:{global:{menu:_('Position and Si~ze...'),},}, Underline:{global:{menu:_('Underline'),},}, UnderlineDouble:{presentation:{menu:_('Double Underline '),},spreadsheet:{menu:_('Underline: Double'),},text:{menu:_('Double Underline '),},}, Undo:{global:{menu:_('Undo'),},}, _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits