Saving this way, key sequences are forwarded to core directly, so
loolwsd is not aware if a save operation is going on or not. This
leads to problem as loolwsd might want to upload to storage.
Change-Id: I32d10012064a0dda7fff0c3ac4848f140b1b6fb8
Specified when websocket is initialized. Documents once
opened in readonly mode cannot edit throughout the life of the session.
This is very much like present view mode except the ability to
change to edit mode.
Change-Id: I176e3bbf210c3383268d1a5b50dc17f0cbfb26b8
In cp-5.1 branch, the state table cell reports the string "Sum=0"
for empty cells, the client side splits the string with a separator '=',
so the status item shows "Sum".
A bug was found: Slide was translated to Slide in pt_BR, while Slide was
translated to Diapositivo in pt. The identical translation was ignored,
and browser fell back to pt translation, which was wrong in pt_BR UI.
Assigning this._graphicMarker to visibleCursor leads to problems
as graphicMarker is not the same kind of object as visibleCursor.
Change-Id: Ic0aa1d7d2a8d11fa38a86e2c143342c9a16d507e
OnInsertFile is triggered on onchange event, but this event is
not triggered if same image is choosen again from file chooser
dialog. Reset the value everytime so that onchange event is
always triggered.
Change-Id: I1efb76122b3a9437622754d28d0c55d4adbf32e8
There is still one problem though, that if already opened
document is opened in a different browser window, it doesn't
receive any command states which shows enable/disable states of
menubar items incorrectly.
Change-Id: Ib03f1becfb6585fed075bb5f1bf9c587063323a6
Remove direct usage of editlock; instead change loleaflet
permission from view to edit when editlock message is received.
By default, map would be in 'view' mode and only get to 'edit'
when server asks it to switch to.
Use a new event 'doclayerinit' for actions that are directly
dependent on intialization of doclayer.
Change-Id: Iaceb95ad85721ddcd675c75cfeb1504ab2759ad4
... easy to differentiate on client side among various version
info parts, especially for LOKit version information.
Change-Id: I4ba18c60367fb9166462b535bc46953a82a8435d
This was removed in c7588f0e8c in
an effort to fix calc row/col offset where it must not be ignored to
have aligned row/col offset without any side-effects that one can
have in single-part documents like writer.
Earlier approach using a timer of 200 ms for 'scroll ignore' also
doesn't seem very effective, so change it to: ignoring the first
'whileScrolling' invocation.
Change-Id: Ic3a6868a279fc200b8f9fee74bb40aebad5d9646
Option 'updateOnContentResize' is true by default, which means
this method is called automatically when scroll container is
resized, so no need to manually call it again.
Change-Id: Ie80e90239752acb119e3a92c09a1f77dd61b2ad4
All post requests will now have to be prefixed with /lool/
This is necessary to ease proxy url redirection setup.
Change-Id: I04fbc211879722f6433cb9eb17786f394187a1b9
Reviewed-on: https://gerrit.libreoffice.org/26091
Reviewed-by: Andras Timar <andras.timar@collabora.com>
Tested-by: Andras Timar <andras.timar@collabora.com>
Normal websocket connections are now :
/lool/ws/filename
Admin websocket is now :
/lool/adminws/
Change-Id: If39382cb852d89ed0394adbd7fe168fe4767a075
Reviewed-on: https://gerrit.libreoffice.org/26029
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
Reviewed-by: Andras Timar <andras.timar@collabora.com>
Tested-by: Andras Timar <andras.timar@collabora.com>
* Use new param DontCommit in .uno:EnterString to not trigger
recalculation until enter is pressed.
* On pressing 'ESC', reset the current content
* Range selection is now possible when formula is entered in
* formula bar
* Forward 'enter' key events to `map` from formula bar
Change-Id: I073eca2fa08520faa9f679b1c986e10805da0ad6
Apparently it does not work. In desktop version I cannot delete a table by
Select All + Cut, or Select All + Delete/Backspace key. Only Select All +
Delete Rows/Columns works...
Move the spinner initialization to a separate class L.LOUtil.
Other similar LO related functions should also go there.
Also remove superfluous class leaflet-slideshow-spinner. It was
not being used anyway due to wrong spelling.
Change-Id: Ie8fac0391a9c6a3771900539e8f08d1b73b9be28
Such a huge confusing diff is mainly due to moving of functions from bottom
to top because a function should be defined before it is used.
Other changes include using single quotes for strings, and other
minor style fixes.
Change-Id: Ieb8e5054a9c8113ec211973e086111d91759f80b
Till now we have only been linting our src/ directory. toolbar.js
is the only file we edit directly in dist/. Lets keep a check on
it too.
Change-Id: I3e8a6e675a1d0c508339db1363600b5fe8f9c2cd
The top left corner of dropdown table widget is near to the mouse
position where the user clicks. If Insert table button is too close
to egde of screen, it cannot be drawn properly.
- Use css for highlight cells.
- Close insert-table dialog on mouse leave.
- Better GUI
- More jQuery
Change-Id: I35e25f4ff150e373e70e7b14aa434d1dc055746a
Set the min-width of window to 600px so that all select list
boxes remain in main toolbar, and not go in toolbar-more.
While resizing the toolbar, if the user tries to reduce the
window width past the min-width set, we would run into an
infinite loop causing spike in browser CPU usage and eventually
crash. This used to happen earlier also before setting this
min-width with very small browser window size.
Also simplify the toolbar resize algorithm. Rather than using raw
jquery methods to move items from one toolbar to another, use
library's (w2ui) methods to add/remove items from toolbar. This
also requires the need of proper initialization of few buttons
such as color picker, table picker because moving item from one
toolbar to another strips off the initialization corresponding to
these toolbar buttons and these need to be reinitialized. Moving
such initialization to onRefresh, hence, would keep them
initialized whenever toolbar is resized.
This also solves one major problem with enabled/disabled state of
toolbar buttons. Since, now, we are actually moving the items
from one toolbar to another, we can enable/disable them using
toolbar's methods ie. enable(), disable().
Change-Id: I64fb0a9d7761f66701bc0e020d1dbad9e4defe29
Use an object to keep track of enabled/disabled state of buttons.
This also prevents us looping all the format buttons everytime a
commandstatechanged is received, so better algorithmic
complexity.
For sessions in view-only mode, keep storing the state of these
buttons in this object, and use the stored states to
enable/disable buttons when edit lock is taken.
While enabling/disabling the toolbar buttons, also check in
toolbar-more.
Change-Id: I6555fde6669e1a8ba349c3213280a627a05d80b7
The gif spinner had a white background flashes in its frames, so
it always needed white background behind it. With this, we will
have no such restriction, can can have transparent background.
Change-Id: I1faffa326ae85114e52231cc4e33d84c7ac0675d
After the introduction of editlock, old styled loleaflet's view
and edit permissions have become obsolete. By default, when
opening a new document, the user is in that old styled 'view'
mode unless specified in the url by permission=
Lets change the behavior and make document to be in 'edit' mode
by default unless specified.
Change-Id: Iebf0d8512ddc8f7ff549c12dbb366643ca207345
The animation name shouldn't be in quotes.
Change-Id: Ib2e4489e482dd1a22472588599df87cab55a6005
(cherry picked from commit 401e3b12778cc5c7883322e4543370acf270c479)
Reviewed-on: https://gerrit.libreoffice.org/25392
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
Selection background color is now consistent across context menu
and menubars.
Don't change the cursor to 'pointer' in context menus on hover.
Change-Id: I25d1fcba113f2c27a8ab6d028244afd75c28cd59
* Center the label on top-level menubar items
* Remove padding off the top of menubar
* Little more padding-top to menubar
Change-Id: I70adc72bb93d7388f59f670ad76b1b4ac6741f68
1. Prune out all other items that are not possible now.
2. Add a seperator CSS class and use it between menuitems.
... and other minor functional/UI changes.
Change-Id: I037e2b6f751824c973072c52905d46b0fd4be38b
... with some CSS tweaks in sm-simple.css to make it look more
like LO menubar in desktop application.
Change-Id: I62c88d5876da752fb487e89a3613698c463d9f32
License: MIT
Additionally, the sm-simple.css file is indented appropriately as
we would need to modify it to our needs later.
Change-Id: Iab909d2e06af342b22ebeffc86b3efdc1bacb73e
Kept the small icons around for the case we'd like to implement switching
between these two (?) - OTOH not sure it makes sense, as the toolbars will not
get smaller by just using the smaller icons... But always can remove them in
a separate commit.
This message is required to update row/column headers when client
changes its part, otherwise we won't see new row/column headers
in new part.
This reverts commit d8f6aa7146.
Change-Id: Iabafdf27b45d174abd7bbd6ba79e7badc52b9985
But use a whitelist to not show items/uno commands that
correspond to opening a dialog. Whitelist is limited as of now,
but can be extended easily to include more commands to the
context menu as required.
Change-Id: I3ff8cf722d395aa643d512c98db41ebeee0a95d1
In case of presentation we are getting an empty value in response
to .uno:CharFontName. While this looks like a bug in LOKit, no harm
in putting a check for empty values here.
In ES5 argument to Object.keys must be an object otherwise it
throws an exception.
Change-Id: I5c2f7963544fda55bab3f314f1b098b3c9e3bd0b
Currently, it does get fired, it seems, and vertical scrollbar
does get adjusted automatically according to new size, but
horizontal scrollbar doesn't for some reason/bug. Lets explicitly
tell the plugin to update on every resize we do.
Change-Id: I706228302cb43fb22cf54acfe1b990d3e66d5281
Text documents have a single coordinate system, so they
only render in part 0. For others, each page/slide/tab
is a part.
Change-Id: I3c61f4482e5bb535e41ea699147c8c258ca6fb93
Reviewed-on: https://gerrit.libreoffice.org/24850
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
'Standard', and 'Default' styles seem to containing same values
anyways. If we do not have 'Default', use 'Standard' ones.
Change-Id: I4402f78fb54c77a7cf6d9868210cb97a9e2c4580
Upon creating an .odp file from owncloud, 'Default' styles are
not created which leads to a js error as variable styles go
undefined later in the script.
Change-Id: I30caf980bd924e6329559b36b1f0a5fbe60ecc4b
... otherwise, shift + space combination would select the whole
row in calc even while editing. After this, row selection feature
using shift + space would only work while we are not editing,
that is, when text cursor is not visible.
Change-Id: I07ddf045d023487d70fa632edd7c173ed1df610d
And use these directly from debug/document/loleaflet.html instead
of CDN. Helpful for development when no internet connection.
License: MIT
Change-Id: I4d2086ffc9e9e646164c70481ae74e6c1f7a7062
Invalidation for spreadsheet and presentation
are part-sensitive. The handler will take
care of this distinction and construct the correct
invalidate command.
Also, set active flag before firing invalidation.
Change-Id: I9e897750e0768b54cc1521d47d69b5dbb1a36244
Reviewed-on: https://gerrit.libreoffice.org/24779
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
The handles imply (and indeed are designed for) changing the
selection by dragging them around. Viewers can't change the
selection, so no reason to give them the selection handles either.
Change-Id: Ifa793ac982fd48be877e7ed7709f70890d8de194
Reviewed-on: https://gerrit.libreoffice.org/24770
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
This message is already sent from CalcTilelayer.js.
Change-Id: I9f84d5f365dbfea38061e206d5d52e2201be22ed
Reviewed-on: https://gerrit.libreoffice.org/24769
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
Make sure to sync both lokit and viewers as to which
part is being edited when a previously-viewer takes
editing.
Change-Id: Ia70f647a26029447bb4360633f79233fa9596059
Reviewed-on: https://gerrit.libreoffice.org/24768
Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Tested-by: Ashod Nakashian <ashnakash@gmail.com>
This leads to row/column offsets because the document view would
ignore the scroll but row/col header would be scrolled.
Change-Id: Ieec25429dbf698e710ce1f9765c51756f2a75032
In case of spreadsheets, zooming in and then switching
the sheet to a new one will leave the new sheet in a situation
where panning would not be possible. This is because of incorrect
maximum bounds set on the map.
Further, this often leads to row/col offsets in spreadsheets
because document view is bound under these MaxBounds but row/col
are not.
Change-Id: I468d2fee5424e11c93a0a707fde96e687061fb89
We use 180x180 px as thumbnail size, and 2px border for selected
thumbnail on top of that which makes its 184x180.
.parts-preview needs to be expanded to 214px for
mCustomScrollbar to work properly without hiding any thumbnails
including borders. With all of this, we also need to shift
impress document offset to 214px from left to make all things fit
nicely.
Change-Id: I446918403cd43fe61f0ebfb358e6a2051014b28a
Hide the spreadsheet-toolbar by default, and only show when we
are confirmed that its a spreadsheet, instead of doing
vice-versa.
Change-Id: Iddaca0fb272dbe8dd8b6e73157eb4733762d8a8a
Use w2overlay instead of w2popup. The former adjusts itself in
the visible screen region and fixes, and does not introduce any
additional scrollbars for the lifetime of the popup message.
The w2overlay gets removed with mouse events. So instead of
'mousedown' events originally, use 'mouseup', so that there is no
succeeding mouse events to switch the overlay off.
Also point the overlay pointer towards the button, not the label.
Change-Id: Ic6c22fecc2e32075c27b6f4647373c28d2f635ae
On Windows, AltGr events are treated as Alt + Ctrl. Use the
'location' property to distinguish from plain Alt + Ctrl.
It is not present in 'keypress' event, so use
the previous invocation of Alt + Ctrl to detect whether AltGr was
used or not.
Change-Id: Id6b64b6fc0a5300ea5362880536d3b926eb0acce
Reviewed-on: https://gerrit.libreoffice.org/24400
Reviewed-by: Andras Timar <andras.timar@collabora.com>
Tested-by: Andras Timar <andras.timar@collabora.com>
Reviewed-by: pranavk <pranavk@collabora.com>
Treating empty item as an object expects `id` attribute on which
toString method would be invoked. In case of object without `id`, it
would throw an error trying to call toString on undefined
attribute.
Change-Id: I44e591044487b0d236760cc79438ccfcf0f53846