summaryrefslogtreecommitdiff
path: root/vcl/inc/salvtables.hxx
AgeCommit message (Collapse)Author
2024-12-17weld: Drop now unused weld::Widget::{g,s}et_grid_*Michael Weghorn
These methods were superseded by corresponding methods in the weld::Grid class in Change-Id: I67f5ea16b5108e8359820850f0815e34db439ef1 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Mon Dec 16 11:02:00 2024 +0100 weld: Add weld::Grid to handle grid child positions Now that all existing code has been ported to the new API, drop the unused old methods. Change-Id: I94ffa6a9de5e052e8248276b60f6fe4f10dff697 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/178638 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-12-17weld: Add weld::Grid to handle grid child positionsMichael Weghorn
Currently, weld::Widget provides methods that can be used to retrieve and change the position (and column span) of widgets that are located inside of a grid (parent), e.g. weld::Widget::set_grid_left_attach to set the column. These methods however only make sense for widgets that are actually direct children of a grid, not for any "random" weld::Widget. Generally, it's the grid's responsibility to manage child positions, and the gtk3/gtk4 implementations actually assume that the parent is a GtkGrid, retrieve that parent and then call the corresponding GTK API functions for that grid. Align the weld API more with the concept of the grid being responsible for positioning its children by introducing a new weld::Grid class with methods equivalent to the current weld::Widget ones, but that take the child widget as an additional parameter. Take over the existing logic from the corresponding weld::Widget methods for both, the gtk and vcl implementations (e.g. GtkInstanceWidget::set_grid_left_attach -> GtkInstanceGrid::set_child_left_attach). Add an assert that the passed widget is actually a grid child. Deprecate the existing weld::Widget methods for grid position handling. They will be removed once existing code has been ported to the new weld::Grid API. The fact that the vcl implementation, VclGrid (used by vcl's new SalInstanceGrid implementation of weld::Grid), still relies on its vcl::Window children having the corresponding members set correctly remains unaffected. Change-Id: I67f5ea16b5108e8359820850f0815e34db439ef1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/178570 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-12-10tdf#164072 vcl: Let MenuButton dispose its PopupMenuMichael Weghorn
The MenuButton usually owns the PopupMenu that gets set via MenuButton::SetPopupMenu, but so far didn't dispose it, i.e. the PopupMenu was never disposed. As far as I understand, that is a preexisting issue, but since commit 6708246e20ce522e673f539369cd38687d2dd16d Author: Michael Weghorn <m.weghorn@posteo.de> Date: Thu Dec 5 11:06:48 2024 +0000 tdf#164093 tdf#157001 a11y: Improve menu window disposal , not disposing the menu also means not disposing the menu's MenuFloatingWindow (which gets created when the popup menu shows), resulting in warn:legacy.osl:563630:563630:vcl/source/window/window.cxx:307: Window ( 10MenuButton()) with live SystemWindows destroyed: 18MenuFloatingWindow() Window ( 10MenuButton()) with live SystemWindows destroyed: 18MenuFloatingWindow() and an assert getting triggered as mentioned in tdf#164072 comment 16. Fix this by letting the MenuButton take care of disposing the menu if it is the owner. The only case where the MenuButton is assigned a menu without taking ownership is in SalInstanceComboBox::set_item_menu (which currently only gets called from SvxStyleBox_Base::SetupEntry). In that case, the weld::Menu passed to SalInstanceComboBox::set_item_menu has the ownership: SalInstanceBuilder::weld_menu calls the SalInstanceMenu ctor with a bTakeOwnership=true, and the SalInstanceMenu dtor disposes the menu. Add a `bTakeOwnership` bool param to MenuButton::SetPopupMenu to distinguish between the cases where the PopupMenu is responsible for disposing the menu and where it's not. Change-Id: I32766d5084e4826056ef394a587b8c2e3124c4da Reviewed-on: https://gerrit.libreoffice.org/c/core/+/178197 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-12-09improve SalInstanceNotebook m_aPages handlingNoel Grandin
I added some asserts here, and discovered that sometimes m_aPages and the pages in the underlying TabControl get out of sync. So rather than relying on indexing into a vector, just store a map indexed on the page identifier, which means everything uses the same scheme now. Change-Id: I1b8228e9b124521bda0e79c98e4961bedc71d641 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/178003 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Jenkins
2024-12-05jsdialog: weld::MenuSzymon Kłos
- weld::Menu doesn't have base with weld::Widget - use separate container, only one menu per WindowId - first only send menu and cancel, when user activates option we will send another request and execute entry as menu can be blocking - there is connect_activated way of async setup too Change-Id: Iea03f82a91ecc19af67b91f85364675c119056ea Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177722 (cherry picked from commit efeb511607dacce991866bcf328c96a01ab594f9) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177852 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2024-12-04sd: convert sidebar masterpage panels from drawingview to iconviewRashesh
- also removes unused PreviewValueSet Change-Id: I5e7dacb4f472de526a61366295bc91edca12e9ac Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177642 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2024-11-27weld: Rename weld::Dialog::{widget -> button}_for_responseMichael Weghorn
Rename weld::Dialog::widget_for_response to weld::Dialog_button_for_response as it specifically returns a weld::Button, not a generic weld::Widget (other than GTK's `gtk_dialog_get_widget_for_response` [1] which returns a GtkWidget). [1] https://docs.gtk.org/gtk3/method.Dialog.get_widget_for_response.html Change-Id: I3b1dc34c0af752853551d2ebb706109f2214720d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177376 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-11-27weld: Return unique_ptr in weld::Dialog::widget_for_responseMichael Weghorn
... to make more obvious from the API that the caller owns the returned weld::Button* (but not the underlying toolkit widget). Change-Id: I64f57f80e4eea4c2c984fa7b615b5a2350ed892a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177375 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-11-24tdf#130857 weld: Move Window::set_centered_on_parent to DialogMichael Weghorn
weld::Window::set_centered_on_parent only ever gets called for weld::Dialog instances, so move it to the weld::Dialog subclass. For the Qt implementation, no longer trigger an assert because of the method being unimplemented (doing nothing), as QDialog opens centered on its parent toplevel by default. Quoting from the QDialog doc [1]: > Note that QDialog (and any other widget that has type Qt::Dialog) uses > the parent widget slightly differently from other classes in Qt. A > dialog is always a top-level widget, but if it has a parent, its default > location is centered on top of the parent's top-level widget (if it is > not top-level itself). (API for moving a QWidget to a different position like QWidget::move [2] exists, but would only work on X11/XWayland, not Wayland.) [1] https://doc.qt.io/qt-6/qdialog.html#details [2] https://doc.qt.io/qt-6/qwidget.html#pos-prop Change-Id: I14d41f91e5297c6e58cb4edb2ee98f19814d45cb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/177192 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-11-11vcl: Return unique_ptr in weld::Dialog::weld_content_areaMichael Weghorn
This is effectively the weld::Dialog equivalent of Change-Id: Ia839fac90ea93b9ac6be5819aa4bb3261a775f33 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Sun Nov 10 23:01:07 2024 +0100 vcl: Return unique_ptr in weld::MessageDialog::weld_message_area Change-Id: I3eee2d3617c3576b442a5578090cd5de53e17f33 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176365 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2024-11-11vcl: Return unique_ptr in weld::MessageDialog::weld_message_areaMichael Weghorn
The returned weld::Container* (but not the associated toolkit widget) is owned by the caller. Make that more obvious by returning a unique_ptr<weld::Container> instead of a raw pointer. This is also consistent with what other methods returning instances for which the caller takes over ownership (like weld::Widget::weld_parent) do, whereas e.g. weld::Notebook::get_page returns a weld::Container* that is owned by the weld::Notebook instance, not the caller. Change-Id: Ia839fac90ea93b9ac6be5819aa4bb3261a775f33 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176363 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-11-08tdf#130857 vcl: Move weld::Window::{g,s}et_modal to weld::DialogMichael Weghorn
All calls to get_modal and set_modal are done for weld::Dialog instances, never for plain instances of/pointers to the weld::Window base class. Therefore, drop the methods from weld::Window and add them weld::Dialog instead. SalInstanceDialog was already overriding the SalInstanceWindow implementations of both methods. For QtInstanceWindow, these were not implemented yet, while QtInstanceDialog already has implementations. (If there were a real need, they could be implemented using QWidget::isModal/QWidget::windowModality and QWidget::setWindowModality.) For GTK, move the GtkInstanceWindow::get_modal implementation to GtkInstanceDialog and call gtk_window_set_modal directly instead of GtkInstanceWindow::set_modal in GtkInstanceDialog::set_modal. Change-Id: I71431347f3bca9571c6fd4b7cf995bb79fb5b11d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176252 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2024-10-16tdf#100894 speed up style tree creationNoel Grandin
by using bulk_insert_for_each() more aggressively. Reduces the open time from several minutes to 18s on my machine. I had to pass down a flag, because the gtk and the gen weld backends work differently, and the gen backend absolutely has to know up front if the inserter function is going to call set_text, otherwise it asserts in SvTreeListBox::SetEntryText Change-Id: I84750888c0a80f4041cfe024e6570dd94f6d09db Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174757 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2024-09-30cid#1608502 Overflowed constantCaolán McNamara
and cid#1607222 Overflowed constant Change-Id: If145bae8d05470173d1af6e7f540f8f40d7ab8b5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174208 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Jenkins
2024-09-25tdf#130857 VclBuilder: Pass UI dir/root to BuilderBaseMichael Weghorn
Pass the UI file root down to `BuilderBase`, and add a new getter `BuilderBase::getUIFileUrl` to get the URL composed of the UI dir and the UI file passed to the ctor. This is in preparation of moving the `XmlReader` creation out of the `VclBuilder` ctor, so the code can be reused by the upcoming `QtBuilder`. Change the UI directory param from `const OUString&` to `std::u16_string_view` as suggested by the clang plugin. Change-Id: I3f7719e30e55bae3c774da704e642e4227165a76 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173827 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-08-31tdf#162696 tdf#130857 qt weld: Get parent via SalInstanceWidgetMichael Weghorn
Since only welding for simple message dialogs has been implemented for the Qt based VCL plugins so far, the `weld::Widget*` parent passed to `QtInstance::CreateMessageDialog` is usually not a `QtInstanceWidget`. The initial implementation to get a parent from commit 9e40fc8c9458b937200ea56c96b89113c74b67f5 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Wed Feb 14 10:54:59 2024 +0100 tdf#130857 qt weld: Set msg dialog parent implemented a fallback to use of the currently active window if no native Qt parent is set. That is however not sufficient to reliably set the correct parent for the QMessageBox for the tdf#162696 scenario, where the "Extension" dialog that is the parent and the message box and the message box itself are created shortly after each other, and the extension dialog does not reliably have focus yet when the message box is created, so the start center window would sometimes be set as the parent of the message dialog instead. Adjust the logic to make use of the implementation detail that non-Qt parents are `SalInstanceWidget`s. Retrieve a `QWidget` to use as the parent via the `SalFrame`/`QtFrame` in that case. This makes setting the correct parent work for both, the case described in the commit message of the above-mentioned commit and for the tdf#162696 case, fixing the issue mentioned in tdf#162696#c13: > One small thing I noticed is that after clicking OK on the warning > dialog, the Extensions dialog has to be manually brought into focus. So > it's not layered below the warning dialog during the first installation > action in a session. Change-Id: I4de403a8ed78a649a17f6cabc0e0f5fdecae09c3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172686 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2024-08-07add polymorph function for VCL/ui specific string escapingMoritz Duge
Change-Id: Ie896a1050158acc85f66b8705812e5f6b9717070 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171509 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Jenkins
2024-08-02tdf#155447 a11y: Introduce weld::Widget::get_accessible_id()Michael Weghorn
This will be used in an upcoming commit to implement reporting of the accessible ID for `WeldEditView`. For Qt 6, this uses the API introduced in qtbase commit [1] commit b8b7c58402740204da72e1b1f4ea7321b7bfa540 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Mon Jul 15 16:53:58 2024 +0200 a11y: Add property for QWidget's accessible ID For GTK 4, there is currently no corresponding API; issue [2] suggests to add it. [1] https://code.qt.io/cgit/qt/qtbase.git/commit/?id=b8b7c58402740204da72e1b1f4ea7321b7bfa540 [2] https://gitlab.gnome.org/GNOME/gtk/-/issues/6870 Change-Id: I9bf38b3c2d6d0cf627ac4288695dcc1137c3d120 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/171319 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
2024-07-09jsdialog: support on demand rendering for icon viewSzymon Kłos
- rename action: rendered_combobox_entry -> rendered_entry - change generic get json property callback to more specialized image getter as it wasn't used anywhere apart of that and we need image enceded as base64 only not JSON - add to the full update of icon view "ondemand" property to the entries with images so LOK client will know it has to download the render - it will be possible to support HiDPI renders in the future: added TODO Signed-off-by: Szymon Kłos <szymon.klos@collabora.com> Change-Id: I83a6e91133f8f9cb03e0bc794b51e1947435fa90 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169622 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170160 Tested-by: Jenkins
2024-06-21tdf#161648 vcl a11y: Add weld::Toolbar::set_item_accessible_nameMichael Weghorn
Add API to set the accessible name of toolbar items and implement it for the VCL, gtk3 and gtk4 implementations. This will be used in an upcoming commit to set a11y names for the border items in Calc's sidebar. Change-Id: I958390d8736da8f1281f91586cacbefb5975e229 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169320 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
2024-05-19Resolves: tdf#157453 support FM_PROP_LINECOUNT for combobox dropdow rowsCaolán McNamara
Change-Id: I3d18ed505c2eea7305903f9a476c332db0148113 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167837 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2024-03-28vcl: Implement JSLevelBarHubert Figuière
This fixes the JSDialog layout of the sheet protection dialog. This was introduced for 24.02 to provide password strength indication of the sheet password. Defined a new WindowType of PROGRESSBAR. The type property in JSDialog JSON will be "progressbar". Change-Id: I202528a81706943e1838f3c37fb555f4a1bf889e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165236 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-12-30cid#1545965 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1545849 COPY_INSTEAD_OF_MOVE cid#1545814 COPY_INSTEAD_OF_MOVE cid#1545685 COPY_INSTEAD_OF_MOVE cid#1545583 COPY_INSTEAD_OF_MOVE cid#1545575 COPY_INSTEAD_OF_MOVE cid#1545517 COPY_INSTEAD_OF_MOVE cid#1545474 COPY_INSTEAD_OF_MOVE Change-Id: I79a47ee34dace3a4664bfece26c59e719f469cab Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161448 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-12-19cid#1557601 COPY_INSTEAD_OF_MOVECaolán McNamara
and cid#1546498 COPY_INSTEAD_OF_MOVE cid#1546384 COPY_INSTEAD_OF_MOVE cid#1546376 COPY_INSTEAD_OF_MOVE cid#1546374 COPY_INSTEAD_OF_MOVE cid#1546373 COPY_INSTEAD_OF_MOVE cid#1546368 COPY_INSTEAD_OF_MOVE cid#1546365 COPY_INSTEAD_OF_MOVE cid#1546356 COPY_INSTEAD_OF_MOVE cid#1546340 COPY_INSTEAD_OF_MOVE cid#1546266 COPY_INSTEAD_OF_MOVE cid#1546236 COPY_INSTEAD_OF_MOVE cid#1546188 COPY_INSTEAD_OF_MOVE cid#1546178 COPY_INSTEAD_OF_MOVE cid#1546166 COPY_INSTEAD_OF_MOVE cid#1546156 COPY_INSTEAD_OF_MOVE cid#1546144 COPY_INSTEAD_OF_MOVE cid#1546143 COPY_INSTEAD_OF_MOVE cid#1546100 COPY_INSTEAD_OF_MOVE cid#1546078 COPY_INSTEAD_OF_MOVE cid#1546041 COPY_INSTEAD_OF_MOVE cid#1546036 COPY_INSTEAD_OF_MOVE cid#1546033 COPY_INSTEAD_OF_MOVE Change-Id: Ib3586d93198992e206baf5c2de5a663d5574aa3c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160979 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-10-30tdf#157518: vcl: Introduce vcl control LevelBarSarper Akdemir
Introduces LevelBar that shares implementation with Progress(Bar). LevelBar is to be as a level indicator, e.g. password strength level. Currently with native backends for gtk and Windows. Currently, except on gtk - the colors of the bar at different levels are hardcoded and not dependent on any kind of themeing. On Windows it follows the styling of progress bar of type "Meter" according to the uxguide: https://learn.microsoft.com/en-us/windows/win32/uxguide/progress-bars#meters Change-Id: Id772cda23615e9582463bf589e4674fd4588c864 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157826 Tested-by: Jenkins Reviewed-by: Sarper Akdemir <sarper.akdemir.extern@allotropia.de>
2023-10-14get_iter_abs_pos doesn't neeed to be virtualCaolán McNamara
Change-Id: If69768ffac37aa7b39a806b3c67ad8cbdafc5d2f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157981 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-09-18Move SalInstanceVerticalNotebook decl to headerSzymon Kłos
Change-Id: I38c7ed846c8a19f72f5738bd137cefebd6a33070 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/157026 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2023-08-23tdf#146619 Remove unused includes from vcl/incGabor Kelemen
Change-Id: I8fbe02547d5045cfdb5021720b10ddd10106209a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155750 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
2023-08-02split Point/Size/Rectangle into AbsoluteScreenPixel* typesNoel Grandin
to attempt to make it obvious in code what kind of coordinate system we are dealing with. The idea is that by doing this, the compile-time type checking will flush out inconsistencies between different code. I started with vcl::Window::OutputToAbsoluteScreenPixel and worked outwards from there. Change-Id: Ia967d7a0bb38886695f3a761b85c8b9340ddb1c0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154676 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2023-07-26Related: tdf#156137 allow GtkLinkButton to wrapCaolán McNamara
Change-Id: I00ca5a9056b64389f1d55aa8ca6a9d5fd8a16372 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154899 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-07-23tdf#147911 Implement set_item_help_id for context menu itemsRafael Lima
This patch adds the method set_item_help_id for weld::Menu (similarly to what we already have for weld::Toolbar). This way, it is possible to define help IDs for each entry in context menus that are created during runtime. This is necessary to fix various bug tickets that request F1 to redirect to the corresponding help page when a context menu item has focus. This currently works for context menus created from XML files, but fails for context menus created during runtime. Besides implementing the new method, this patch fixes bug 147911 (see changes in file templatedlglocalview.cxx) to showcase how set_item_help_id can be used. NOTE: Pressing F1 in context menus only work with "gen" and "win"... unfortunately it does not work in kf5 and gtk3 due to a separate bug (see bug 156376). Change-Id: Ic9bb1bca3e646cb4d0b879d8672c5dcc9c19c4c9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154699 Tested-by: Jenkins Tested-by: Caolán McNamara <caolan.mcnamara@collabora.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-07-11Move SalInstanceFormattedSpinButton decl to headerSzymon Kłos
Change-Id: I64582387b9169efa700a0df5c89e042a9a150423 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154192 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Pranam Lashkari <lpranam@collabora.com> (cherry picked from commit b0de1f5fc3b6170f562328de8abd3680f2382a7a) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154313 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2023-07-11jsdialog: Move SalInstanceCalendar decl to header fileSzymon Kłos
Change-Id: Ide9e685d724d646f0ab8825b1fce2b6fd130d3ec Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154135 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com> (cherry picked from commit d792875d79a63364dba02426ef75d696ae0f02ef) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/154266 Tested-by: Jenkins
2023-06-06perf: we don't need to 'really' insert a preview when providing jsonCaolán McNamara
if we have intercepting 'image' when generating the json, then we don't need to really insert the image into the server side TreeView at all, we just need to provide it in the client json payload. so we generate each bitmap once, and its base64 png representation once. Change-Id: I1b6916b036a0b84ef4346ebf2141240c4ae5b706 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152675 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-06-06perf: cache the generated json for an iconview imageCaolán McNamara
before: |--13.95%--JSDialogNotifyIdle::Invoke | | | |--13.01%--JSDialogNotifyIdle::generateWidgetUpdate | | | | | |--11.03%--IconView::DumpAsPropertyTree | | | lcl_DumpEntryAndSiblings (inlined) | | | | | | | |--10.94%--extractPngString (inlined) after: |--4.86%--JSDialogNotifyIdle::Invoke ... | |--2.90%--JSDialogNotifyIdle::generateWidgetUpdate | | | | | |--0.76%--IconView::DumpAsPropertyTree | | | IconView::DumpEntryAndSiblings | | | Link<std::tuple<tools::JsonWriter&, rtl::OUString const&, std::basic_string_view<char, std::char_traits<char> > > const&, bool>::Call (inlined) | | | StylesPreviewWindow_Base::DoJsonProperty | | | | | | | |--0.55%--StylesPreviewWindow_Base::GetCachedPreviewJson Change-Id: Id234a84e36710794822945584be3adf028808625 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152630 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
2023-04-19Resolves: tdf#154912 make double-click to expand rows the same as arrow expandCaolán McNamara
the arrow case does the necessary removal of the "dummy" entry which is necessary to get the treeview to indicate it has children, while the double click case skipped that step, so rearrange so both behave the same. Change-Id: I6161d786cd58b0eea53152074dff2b035c621e7f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150643 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2023-04-06jsdialog: implemented mouse events for drawingareaSzymon Kłos
Change-Id: Ieab3d9fdbcee90ccd125e84f74c06cd1d6711a9f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149953 Tested-by: Szymon Kłos <szymon.klos@collabora.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150057 Tested-by: Jenkins
2023-04-02Avoid conversions between OUString and OString in VCLMike Kaganski
Standardize on OUString, which is the main internal string class. Convert from/to OUString only when communicating with respective external APIs. Removes about 200 conversions from the code. Change-Id: I96ecee7c6fd271bb76639220e96d69d2964bed26 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149930 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-03-22jsdialog: double click for drawing areaSzymon Kłos
Change-Id: I280158b101f39d107090a2eebb2c06e64591cb94 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148852 Tested-by: Szymon Kłos <szymon.klos@collabora.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149231 Tested-by: Jenkins
2023-03-21Move SalInstanceScrolledWindow declaration to header fileSzymon Kłos
Change-Id: I8848358cf04ad0298867903350476f1f3b38b7da Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148608 Tested-by: Szymon Kłos <szymon.klos@collabora.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149160 Tested-by: Jenkins
2023-03-16allow more than DrawingArea to report style updatesCaolán McNamara
Change-Id: I791e4ad45daeeb77ca25e36ae6520168b2ece044 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148980 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2023-03-04JSDialog: implemented jsdialog support for the toggle buttonsPranam Lashkari
Change-Id: I21408f7344f7e100373c368036f81503302b93ad Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148240 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2023-03-04jsdialog: handle weld_widget_for_responseSzymon Kłos
Change-Id: I3b8d3911ff93bd26f8bdfb498b547fd335c3db8b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148113 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2023-03-03lok: macro: VBA message dialogs was causing assertion failureMarco Cecchetti
Get VBA MsgBox and VBA Runtime Script Error dialogs to be displayed correctly without causing an assertion failure. Provided a solution that allows VBA MsgBox to be executed in a not-async way so that the VBA script is paused until the message box is closed. Change-Id: Ica7d0d343a0ea4b6a163c1c43572f18a5779a0ca Reviewed-on: https://gerrit.libreoffice.org/c/core/+/147243 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/147321 Tested-by: Jenkins
2023-03-03Move SalInstanceLinkButton declaration to header fileSzymon Kłos
Change-Id: Icd5b79f31e1839303e81c1914c9e30e078661d9e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148111 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2023-03-03Move SalInstanceAssistant declaration to header fileSzymon Kłos
Change-Id: I3407893c878fd37fe0968c2990c92d5d16213ed3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148107 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
2023-01-10Related: tdf#152950 assert if this arises anywhere elseCaolán McNamara
Change-Id: I29ff145c84fdd784c3b2fbd6e5860dcac42b597d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145262 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2022-12-06tdf#152029 Visually draw attention to in-view bookmarkJim Raykowski
when mouse pointer is over bookmark entry in the Navigator content tree This patch brings attention to in-view bookmarks when the mouse pointer is positioned over bookmark content entries in the Navigator content tree. All in-view bookmarks are brought to attention by placing the mouse pointer over the bookmark content type (category) entry. The patch adds a parameter to the weld::get_dest_row_at_pos function to give the option not to auto scroll. It is needed to prevent auto scrolling when used in the the mouse move handler. Additional use can be made in the content tree CommandHdl to make the tree not jump when the context popup menu is activated for entries near the top and bottom of the the visible tree. Change-Id: I04e306286ca58ab6c8ae7e5c02b25a0592c4a9d3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143628 Tested-by: Jenkins Reviewed-by: Jim Raykowski <raykowj@gmail.com>
2022-12-02loplugin:unusedfields make some fields privateNoel Grandin
Change-Id: I1dfa1818f607fbc35a17bf13590fae47994df89d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143530 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-09-26jsdialog: send action not update for spin button valueSzymon Kłos
This will help us to reduce payload and fix bug where in Chrome regenerated spin field always focused "arrow down" button after click on the "arrow up". Use value from formatter - the same as generated in widget update JSON. Change-Id: I6ace90eb532e894daacb563bc9fb93332fd755ce Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138700 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Rashesh Padia <rashesh.padia@collabora.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/140579 Tested-by: Jenkins