sd/source/ui/table/tablefunction.cxx | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-)
New commits: commit 86fb1b4590873e436c60d935ff2953988b3d9498 Author: Justin Luth <justin_l...@sil.org> Date: Wed Jan 6 21:23:47 2016 +0300 set reasonable default size for new draw/impress tables The width was decent, except that on small paper (A6) it was wider than the paper size. The height was terrible - the minimum size possible. It was too small for even a single line of text. That made it hard to grab the table edge (instead grabbing a row edge) when trying to resize. Now the height and width are limited to the page/view size, and based on the number of rows created. One possible enhancement would be to use the border width instead of the page width. Change-Id: I4e106a7bc34f65886e3c80d308499242c0fdd7d8 Reviewed-on: https://gerrit.libreoffice.org/21171 Reviewed-by: Justin Luth <justin_l...@sil.org> Tested-by: Samuel Mehrbrodt <samuel.mehrbr...@cib.de> Reviewed-by: Samuel Mehrbrodt <samuel.mehrbr...@cib.de> (cherry picked from commit 66b8b09d0aa97e4009d2019a9d93b74cd1e11a09) Reviewed-on: https://gerrit.libreoffice.org/21214 Tested-by: Jenkins <c...@libreoffice.org> diff --git a/sd/source/ui/table/tablefunction.cxx b/sd/source/ui/table/tablefunction.cxx index 0070bee..7535798 100644 --- a/sd/source/ui/table/tablefunction.cxx +++ b/sd/source/ui/table/tablefunction.cxx @@ -146,12 +146,32 @@ void DrawViewShell::FuTable(SfxRequest& rReq) } else { - Size aSize( 14100, 200 ); + Size aSize( 14100, 2000 ); Point aPos; Rectangle aWinRect(aPos, GetActiveWindow()->GetOutputSizePixel() ); + aWinRect = GetActiveWindow()->PixelToLogic(aWinRect); + + // make sure that the default size of the table fits on the paper and is inside the viewing area. + // if zoomed in close, don't make the table bigger than the viewing window. + Size aMaxSize = getCurrentPage()->GetSize(); + if( aMaxSize.Height() > aWinRect.getHeight() ) + aMaxSize.setHeight( aWinRect.getHeight() ); + if( aMaxSize.Width() > aWinRect.getWidth() ) + aMaxSize.setWidth( aWinRect.getWidth() ); + + if( aSize.Width() > aMaxSize.getWidth() ) + aSize.setWidth( aMaxSize.getWidth() ); + + // adjust height based on # of rows. + if( nRows > 0 ) + { + aSize.setHeight( aSize.Height() * nRows ); + if( aSize.Height() > aMaxSize.getHeight() ) + aSize.setHeight( aMaxSize.getHeight() ); + } + aPos = aWinRect.Center(); - aPos = GetActiveWindow()->PixelToLogic(aPos); aPos.X() -= aSize.Width() / 2; aPos.Y() -= aSize.Height() / 2; aRect = Rectangle(aPos, aSize); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits