summaryrefslogtreecommitdiff
path: root/wizards
AgeCommit message (Collapse)Author
2023-05-27Fix typoAndrea Gelmini
Change-Id: Id0d9335df80539877d1ee27e57e98b0a6aae75db Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152337 Tested-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-05-27Fix typoAndrea Gelmini
Change-Id: I989d9a915c61186b4fd9132f70b916b3dfd7f202 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152338 Tested-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-05-26ScriptForge (SF_Dialog) new CloneControl() methodJean-Pierre Ledure
Duplicate an existing control of any type in the actual dialog. The duplicated control is left unchanged. The new control can be relocated. Args: SourceName: the name of the control to duplicate ControlName: the name of the new control. It must not exist yet. Left, Top: the coordinates of the new control expressed in "Map AppFont" units. Returns: an instance of the SF_DialogControl class or Nothing The method is available from Basic and Python user scripts This change will require an update of the SF_Dialog help page. Change-Id: I5c2a5404a14ad60b2d4df2ac7eabbf0ddd843170 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152333 Reviewed-by: Jean-Pierre Ledure <jp@ledure.be> Tested-by: Jenkins
2023-05-24ScripForge (SF_Dialog) new OrderTabs() methodJean-Pierre Ledure
Set the tabulation index f a series of controls. The sequence of controls are given as an array of control names from the first to the last. Next controls will not be accessible (anymore ?) via the TAB key if >=1 of next conditions is met: - if they are not in the given list - if their type is FixedLine, GroupBox or ProgressBar - if the control is disabled Args: TabsList: an array of valid control names in the order of tabulation. Start: the tab index to be assigned to the 1st control in the list. Default = 1. Increment: the difference between 2 successive tab indexes. Default = 1. Returns: True when successful. The method is available from Basic and Python user scripts This change will require an update of the SF_Dialog help page. Change-Id: Ie854227691c4e182b49a521b1285deaa4de3d1ff Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152166 Reviewed-by: Jean-Pierre Ledure <jp@ledure.be> Tested-by: Jenkins
2023-05-22Fix typoAndrea Gelmini
Change-Id: Ic3f79113f09be10f6ff33183b09f80e269f77f93 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152122 Reviewed-by: Jean-Pierre Ledure <jp@ledure.be> Tested-by: Julien Nabet <serval2412@yahoo.fr>
2023-05-22Fix typoAndrea Gelmini
Change-Id: I6fab6b5c40eb9668df72ea01a2d158eabdc99f86 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152121 Tested-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-05-22ScriptForge (SFDialogs: create dialogs on-the-flyJean-Pierre Ledure
A dialog service is returned by next statement dialog = CreateScriptService("newdialog", dialogname, place) All properties and methods applicable to predefined dialogs are available for such new dialogs. In particular the series of CreateXXX() methods for the addition of ne dialog controls. The functionality is available from Basic and Python user scripts. An update of the SFDialogs.SF_Dialog help page is required. A display rendering unstability (flickerings, delays, ..) has been observed when (all conditions must be met) - the user script is run from Python - from inside the LibreOffice process - the dialog is non-modal Change-Id: Id3f311cd04497fd79712ce712bdb2724b5caa861 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/152071 Tested-by: Jean-Pierre Ledure <jp@ledure.be> Reviewed-by: Jean-Pierre Ledure <jp@ledure.be>
2023-05-20ScriptForge New method dialog.CreateHyperlink()Jean-Pierre Ledure
Method (Dialog service) CreateHyperlink(controlname, place, border, multiline, align, verticalalign) completes the set of available methods for dynamic DialogControl creation. Cfr. https://gerrit.libreoffice.org/c/core/+/151896 Change-Id: I162075ea39efdd2e1189fe8b16ac05316e6a13ff Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151954 Tested-by: Jean-Pierre Ledure <jp@ledure.be> Reviewed-by: Jean-Pierre Ledure <jp@ledure.be>
2023-05-18Fix typoAndrea Gelmini
Change-Id: Ia737462375311bb8642a9326a2980111e3ef7064 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151953 Tested-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-05-18Fix typoAndrea Gelmini
Change-Id: Ie097c4afad429ed23a616658502e3936afaea86a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151951 Tested-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-05-18Fix typoAndrea Gelmini
Change-Id: I1a18149550cdfbaf7537213bdf41734751503598 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151950 Tested-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-05-18Fix typoAndrea Gelmini
Change-Id: I101861eaa810dc6e2f92a57ddc4e247a76a4b558 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151949 Tested-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-05-18Fix typoAndrea Gelmini
Change-Id: I372395970887c4201e973aa0583c288714fdbf6f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151947 Tested-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-05-18Fix typoAndrea Gelmini
Change-Id: I4a9abe0683f6dfd116fa15a6e1202d5a69328553 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151945 Tested-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-05-18Fix typoAndrea Gelmini
Change-Id: Ifbda8492c1b7c6cef1616a6183e2d04aee1b9bde Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151944 Tested-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-05-18ScriptForge (SFDialogs) create controls dynamicallyJean-Pierre Ledure
The dialog service hosts now a bunch of methods to create new controls dynamically in an existing dialog predefined in the Basic IDE. In other words, a dialog is initialized with controls in the Basic IDE. New controls can be added at run-time before or after the Execute() statement. All the new methods have in common their first 2 arguments: ControlName Place: an (X, Y, Width, Height) array or a com.sun.star.awt.Rectangle New methods: CreateButton(..., toggle, push) CreateCheckBox(..., multiline) CreateComboBox(..., border, dropdown, linecount) CreateCurrencyField(..., border, spinbutton, minvalue, maxvalue, increment, accuracy) CreateDateField(..., border, dropdown, mindate, maxdate) CreateFileControl(..., border) CreateFixedLine(..., orientation) CreateFixedText(..., border, multiline, align, verticalalign) CreateFormattedField(..., border, spinbutton, minvalue, maxvalue) CreateGroupBox(...) CreateImageControl(..., border, scale) CreateListBox(..., border, dropdown, linecount, multiselect) CreateNumericField(..., border, spinbutton, minvalue, maxvalue, increment, accuracy) CreatePatternField(..., border, editmask, literalmask) CreateProgressBar(..., border, minvalue, maxvalue) CreateRadioButton(..., multiline) CreateScrollBar(..., orientation, border, minvalue, maxvalue) CreateTableControl(..., border, rowheaders, columnheaders, scrollbars, gridlines) CreateTextField(..., border, multiline, maximumlength, passwordcharacter) CreateTimeField(..., border, mintime, maxtime) CreateTreeControl(..., border) All the methods return a SF_DialogControl instance. The arguments have bben chosen based on functionality rather than on layout. After the creatio of the control, most properties and methods relevant to SF_DialogControl objects are applicable. Also the XControlModel property might contribute to layout refinements. Other changes: - The SF_DialogControl class receives next updatable properties: Border and TabIndex - The dialogcontrol.SetTableData() receives an additional argument: rowheaderwidth - The dialogcontrol.Resize() method without arguments resizes the control to its "preferred size", a size adjusted depending on its actual content All the new functionalities are callable from both Basic and Python user scripts. Described changes will require a serios review of the Dialog and DialogControl help pages. Change-Id: I654eeae5456527bf14b1f4b43f04d176bbd830b6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151896 Reviewed-by: Jean-Pierre Ledure <jp@ledure.be> Tested-by: Jenkins
2023-05-17ScriptForge - database.GetRows() tdf#155204 error when no dataJean-Pierre Ledure
The complete expected bheviour is: when there is no data returned by the query, - either GetRows() returns an empty array, (Header := False) - or GetRows() returns an array with a single row containing the column names only (Header := True) In the example given in the bug report, GetRows() gives an unexpected error. Actually the "end-of-file" status is tested with the isAfterLast() indicator. It seems better to rely on the Boolean value returned by the first() and next() methods applied on the resultset. Change-Id: Ibe97dbbcb03d45ebb9184fab2733abe4e04963a6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151844 Tested-by: Jean-Pierre Ledure <jp@ledure.be> Reviewed-by: Jean-Pierre Ledure <jp@ledure.be> Tested-by: Jenkins
2023-04-23ScriptForge (SFDialogs) support hyperlink control typesJean-Pierre Ledure
Controls designated in english as "Hyperlink controls" in the Basic IDE are from now on accepted as instances of the SF_DialogControl service. All generic properties are accepted. The supported specific properties are: - Caption (the text that appears in the dialog box) - URL (the URL to activate when clicked) The new control type is supported in Basic and Python user scripts. The SFDialogs.DialogControl help page needs to be updated. Change-Id: I4827834ad8ef336c084ee51b5285b85745ceb1b9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150824 Tested-by: Jean-Pierre Ledure <jp@ledure.be> Reviewed-by: Jean-Pierre Ledure <jp@ledure.be> Tested-by: Jenkins
2023-04-22Fix typo in codeAndrea Gelmini
Change-Id: Iba5e188204fafa4cd88282d001eea31f277fcc4b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150768 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-04-22Fix typoAndrea Gelmini
Change-Id: I59aea5a7b71d6ddf14d4d7d22b61bdc8ab01ae3b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150767 Tested-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-04-22Fix typoAndrea Gelmini
Change-Id: I943dbf7dd8c6ac138ab9fc16638a06b07dcace93 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150766 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-04-21ScriptForge (SFDialogs) dialogs and controls are sized in APPFONTsJean-Pierre Ledure
Dimensioning a dialog in the Basic IDE is done by using "Map AppFont" units. Map AppFont units are device and resolution independent. One Map AppFont unit is equal to one eighth of the average character (Systemfont) height and one quarter of the average character width. A dialog or control model also uses AppFont units. While their views use pixels. This is confusing. It also complicates size prototyping with the Basic IDE. In ScriptForge, sizing and positioning a dialog or a control is done from now on in AppFont units as well. Additionally, X and Y positions accept now negative values. Compatibility with past is ensured: dynamic change or position and size is a new feature in 7.6. The change is valid both for Basic and Python user scripts. It requires a small change in the actual documentation (pixels => AppFontunits) Change-Id: Id80b0ccf473eb012b0a8c85d66f5a8ada9b26be5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150704 Tested-by: Jean-Pierre Ledure <jp@ledure.be> Reviewed-by: Jean-Pierre Ledure <jp@ledure.be> Tested-by: Jenkins
2023-04-11ScriptForge - (SF_FileSystem) tdf#154462 2nd call of PickFile() failsJean-Pierre Ledure
Error happens in gen and gtk3 modes. Does not happen in kf5 mode. Linux only. Windows OK. Change-Id: Ia5dd21f6879c1a732d291d15d6fb9f4bf20c76e5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150238 Tested-by: Jean-Pierre Ledure <jp@ledure.be> Reviewed-by: Jean-Pierre Ledure <jp@ledure.be> Tested-by: Jenkins
2023-03-21ScriptForge - (SF_DialogControl) new Resize() methodJean-Pierre Ledure
Addition of method control.Resize(X, Y, Width, Height) to selectively (arguments are applicable only when present) update the position and/or the size of any dialog control. Addition of updatable properties: Height Width X Y for the same purpose. All measures are expressed in PIXELS. The measures for dialogs are also as from now expressed in pixels. Changes are applicable to Basic and Python user scripts. Documentation should be updated. Change-Id: I03a6c819efa6a2a67c88403f1ae644d94eb7f2d7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/149174 Tested-by: Jean-Pierre Ledure <jp@ledure.be> Reviewed-by: Jean-Pierre Ledure <jp@ledure.be> Tested-by: Jenkins
2023-03-14Fix typoAndrea Gelmini
Change-Id: Ie7b0692c5f79eb4e8022ac1bcedfe01b3f7b75f9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148878 Tested-by: Jean-Pierre Ledure <jp@ledure.be> Reviewed-by: Jean-Pierre Ledure <jp@ledure.be> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-03-14Fix typoAndrea Gelmini
Change-Id: I3c7b644de7b6e6bf46161a33f56eb89df662777c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148876 Tested-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-03-14Fix typoAndrea Gelmini
Change-Id: I9a46298fe53880cd84aa1cb9713e576eece3d2f1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148877 Tested-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-03-14Fix typoAndrea Gelmini
Change-Id: Ie08c4c4b6997b13eea7b29f987f994d8a894a331 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148875 Tested-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-03-14ScriptForge (SFDialogs) make On properties editableJean-Pierre Ledure
A dialog box and its controls may be associated with scripts triggered by events (mouse moved, key pressed, ...). The link is usually preset in the Basic IDE when the dialog is designed. So far, ScriptForge did not offer the setting of a link event-script by code. The actual commit removes this limitation: every On-property related to either a dialog or a dialog control is now editbale. With the important precision that such a property may be updated ONLY IF it was NOT PRESET in the Basic IDE. Static (IDE) and dynamic (by code) definition of a specific On property on a specific dialog or on a specific dialog control are mutually exclusive. The new capacity may be used both in Basic and Python scripts. A short update of the help texts (dialog and dialogcontrol) is needed with mention of above restriction. Change-Id: Ia078aaab317ced7ade7ce69694504013f8e768a1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148800 Tested-by: Jean-Pierre Ledure <jp@ledure.be> Reviewed-by: Jean-Pierre Ledure <jp@ledure.be> Tested-by: Jenkins
2023-03-01Fix typoAndrea Gelmini
Change-Id: I53e2a2f57ca1f00a07c62918e6e34c57a53fdcf3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148022 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-03-01Fix typoAndrea Gelmini
Change-Id: I7a1302f472473171b31a4c2b21c9bfbfe1517904 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148020 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-03-01Fix typoAndrea Gelmini
Change-Id: Ib620227c38d27d3de1a774f9c3aebfbcc5edd0a8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148021 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-02-28ScriptForge (SFWidgets) new Toolbar and ToolbarButton servicesJean-Pierre Ledure
Each component has its own set of toolbars, depending on the component type (Calc, Writer, Basic IDE, ...). In the context of the actual class, a toolbar is presumed defined statically: - either by the application - or by a customization done by the user. The definition of a toolbar can be stored in the application configuration files or in the current document. Changes made by scripts to toolbars stored in the application are persistent. They are valid for all documents of the same type. Note that the menubar and the statusbar are not considered toolbars in this context. A toolbar consists in a series of graphical controls to trigger actions. The "Toolbar" service gives access to the "ToolbarButton" service to manage the individual buttons belonging to the toolbar. The "Toolbar" service is triggered from next services: Document, Calc, Writer, Base, FormDocument and Datasheet. All those components might host toolbars. Proposed properties in the Toolbar service: BuiltIn Docked HasGlobalScope Name ResourceURL Visible (r/w) XUIElement Proposed method: ToolbarButtons() Proposed properties in the ToolbarButton service: Caption Height Index OnClick (r/w) Parent TipText (r/w) Visible (r/w) X Y (The Height, Width, X, Y properties allow for easy hook of a popup menu to tye button) Proposed method: Execute() Both services are available both from Basic and Python user scripts. An update of the dcumentation help is required. Change-Id: I43cb523b52e3d6362994557d74c4ef9faa220507 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/147925 Tested-by: Jean-Pierre Ledure <jp@ledure.be> Reviewed-by: Jean-Pierre Ledure <jp@ledure.be> Tested-by: Jenkins
2023-02-13Fix/simplify some vnd.sun.star.expand: handlingMike Kaganski
The vnd.sun.star.expand: payload must be URL-decoded prior to passing it to expandMacros; the protocol must be checked case-insensitively. Use startsWithIgnoreAsciiCase for that. Change-Id: I2be993a0400a27cb7dc57207cd0824b4505afd2b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146855 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2023-01-27ScriptForge (SF_Document) Echo() method freezes screen updatesJean-Pierre Ledure
While a script is executed any display update resulting from that execution is done immediately. For performance reasons it might be an advantage to differ the display updates up to the end of the script. This is where pairs of Echo() methods to set and reset the removal of the immediate updates may be beneficial. Optionally the actual mouse pointer can be modified to the image of an hourglass. Arguments: EchoOn: when False, the display updates are suspended. Default = True. Multiple calls with EchoOn = False are harmless. Hourglass: when True, the mouse pointer is changed to an hourglass. Default = False. The mouse pointer needs to be inside the actual document's window. Note that it is very likely that at the least manual movement of the mouse, the operating system or the LibreOffice process will take back the control of the mouse icon and its usual behaviour. The method may be called from any document, including Calc and Writer, or form document. It may be invoked from Basic and Python user scripts. Echo() should be documented in the sfdocument.xhp help page. Change-Id: I4d669f5e332131bd1b2efcd33b7a98b304796ad1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146258 Tested-by: Jean-Pierre Ledure <jp@ledure.be> Reviewed-by: Jean-Pierre Ledure <jp@ledure.be> Tested-by: Jenkins
2023-01-26ScriptForge (SF_Calc) more accurate commentsJean-Pierre Ledure
Impact only on comments, code left unchanged Change-Id: I5549f2549d2b9ff351ad6174b9dba458525db210 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146139 Tested-by: Jean-Pierre Ledure <jp@ledure.be> Reviewed-by: Jean-Pierre Ledure <jp@ledure.be> Tested-by: Jenkins
2023-01-24ScriptForge (SF_Dialog) define constants as propertiesJean-Pierre Ledure
OKBUTTON and CANCELBUTTON are defined in the help as properties, both for Basic and Python user scripts. To make dialog.OKBUTTON valid in Basic, OKBUTTON should be defined either as (1) Public Const OKBUTTON = 1 or (2) Property Get OKBUTTON() Actually, it if a Private constant. <= wrong Choice is made to make it a full property (2). Python equivalent is OK, no change required. No impact on help documentation. Change-Id: Id4cf7dfbaff68fc8cc48a5c4779374ce1e7cc88b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/146008 Tested-by: Jenkins Reviewed-by: Jean-Pierre Ledure <jp@ledure.be>
2023-01-22ScriptForge (SF_Calc) fix typoJean-Pierre Ledure
Change-Id: I086d4f9f6490ecce773aef598049af07b5f852d7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145978 Tested-by: Jean-Pierre Ledure <jp@ledure.be> Reviewed-by: Jean-Pierre Ledure <jp@ledure.be> Tested-by: Jenkins
2023-01-22ScriptForge Upgrade version number to 7.6Jean-Pierre Ledure
Change-Id: Ifbf5ba5b28b7afff64ed36965eadfa68a750cfd9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145976 Tested-by: Jean-Pierre Ledure <jp@ledure.be> Reviewed-by: Jean-Pierre Ledure <jp@ledure.be> Tested-by: Jenkins
2023-01-21Fix typosAndrea Gelmini
Change-Id: Ie6dcedee4a1202f43feee99169172e2a3b1523b4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145959 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-01-21ScriptForge (SF_Calc) new RemoveDuplicates() methodJean-Pierre Ledure
Remove duplicate values from a range of values. The comparison between rows is done on a subset of the columns in the range. The resulting range replaces the input range, in which, either: all duplicate rows are cleared from their content all duplicate rows are suppressed and rows below are pushed upwards. Anyway, the first copy of each set of duplicates is kept and the initial sequence is preserved. Arguments of the method: Range: the range, as a string, from which the duplicate rows should be removed Columns: an array of column numbers to compare; items are in the interval [1 .. range width] Default = the first column in the range Header: when True, the first row is a header row. Default = False. CaseSensitive: for string comparisons. Default = False. Mode: either "CLEAR" or "COMPACT" (Default) For large ranges, the "COMPACT" mode is probably significantly slower. The method has been implemented for Basic and Python user scripts. The calc.xhp help page should be updated accordingly. Change-Id: I352b2f3da98974d9482575850550cec4e27d2e01 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145954 Tested-by: Jean-Pierre Ledure <jp@ledure.be> Reviewed-by: Jean-Pierre Ledure <jp@ledure.be> Tested-by: Jenkins
2023-01-18ScriptForge - (SF_Calc) sort ranges on more than 3 keysJean-Pierre Ledure
The Calc.SortRange() method sorts the given range on any number of columns/rows. The sorting order may vary by column/row. The sorting algorithm allows for maximum 3 keys. When the number of sort keys is > 3 then the range is sorted several times, by groups of 3 keys, starting from the last key. In this context the algorithm used by Calc to sort ranges is presumed STABLE, i.e. it maintains the relative order of records with equal keys. Change-Id: If7f4920f7ab8f8ffb71edf648ed9accc8eb62dce Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145681 Tested-by: Jean-Pierre Ledure <jp@ledure.be> Reviewed-by: Jean-Pierre Ledure <jp@ledure.be> Tested-by: Jenkins
2023-01-17ScriptForge - (SF_Calc) fix CompactUp/CompactLeft methodsJean-Pierre Ledure
When - WholeRow/WholeColumn = False - no row or column matches the FilterFormula the cells below or at the right were erroneously shifted down or right. Future behaviour: - when nothing to compact, the initial range is left unchanged the return value = the initial range - when all rows/columns are impacted, the initial range is cleared the return value = zero-length string - otherwise the initial range is compacted the return value is the compacted range In either case, the surrounding cells are unchanged. Change-Id: I27288878dcadeb4ded297b7bb1e6897947ed5e56 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145622 Tested-by: Jenkins Reviewed-by: Jean-Pierre Ledure <jp@ledure.be>
2023-01-05Fix typoAndrea Gelmini
Change-Id: I963f340e0da9a0e7bc50bd1ee8c73f28c8edb6de Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145101 Tested-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-01-05Fix typoAndrea Gelmini
Change-Id: I6a15118c9e0b686c7157a162990b7776362865f2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145100 Tested-by: Julien Nabet <serval2412@yahoo.fr> Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
2023-01-05ScriptForge - (SFDocuments) new FormDocument serviceJean-Pierre Ledure
The SF_FormDocument service is focused on : - The orchestration of Base form documents (aka Base Forms, but this is confusing) and the identification of and the access to their controls. - Form documents are always contained in a Base document. A form document may be opened either: - via code or user interface from the Base file welcome page - via code only, without having its Base container opened first In any mode, a form document can be opened only in 1 single copy. The FormDocument service is triggered either by base.OpenFormDocument(...) database.OpenFormDocument(...) ' Base file may be closed ui.GetDocument(...) Specific methods: CloseDocument() Forms() GetDatabase() PrintOut() Next methods are inherited from the Document superclass: Activate() CreateMenu(), RemoveMenu() ExportAsPdf() RunCommand() SaveCopyAs() SetPrinter() As a consequence, next methods remain available but should be declared as deprecated in the help: base.CloseFormDocument() base.Forms() base.PrintOut() base.SetPrinter() Above changes have several more minor impacts : - beside IsCalc, IsWriter, ... , a new IsFormDocument property - the UI service identifies open form documents - a new service means a new entry to register in the Services catalog - management of form events has been reviewed - the connection between Base, FormDocument, Form and Database services is reinforced - menus were available on components, now also on sub-components The new service is available for both Basic and Python user scripts. It requires in the help - a new sf_formdocument page - a review of the sf_base, sf_database, sf_form, sf_ui pages Change-Id: Ib06d1c4565ca093af2f068fa5b8082082641752e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/145080 Tested-by: Jean-Pierre Ledure <jp@ledure.be> Reviewed-by: Jean-Pierre Ledure <jp@ledure.be> Tested-by: Jenkins
2022-12-16ScriptForge - (SF_Datasheet) default values in GetText() and GetValue()Jean-Pierre Ledure
Before this commit, the 'column' argument was manadatory. Now the argument becomes optional and designates the current column, i.e. the column containing the cursor. Additionally, when a datasheet is closed by code, any filter is better removed to avoid eventual user misunderstandings when the datasheet is reopened manually during the same session. Change-Id: I904cfa56a9407539a89b7d2451dcf6b45292f660 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144242 Tested-by: Jean-Pierre Ledure <jp@ledure.be> Reviewed-by: Jean-Pierre Ledure <jp@ledure.be> Tested-by: Jenkins
2022-12-15ScriptForge - (SF_Datasheet) minor changes in commentsJean-Pierre Ledure
No effect on code execution. Hence no cherry-picks to previous release(s). Change-Id: I724c05ee2807e2783655cbb8889a721a5a5e1b75 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144224 Tested-by: Jean-Pierre Ledure <jp@ledure.be> Reviewed-by: Jean-Pierre Ledure <jp@ledure.be> Tested-by: Jenkins
2022-12-13gb_var2file: remove now unused chunk-size parameterChristian Lohmaier
that parameter did specify how many entries of the list the workaround method could use to not exceed commandline length limits, so it was a guess of sorts and many places didn't actually bother with tweaking that value anyway and just used 100. the $(file …) function doesn't care about that, so the parameter was always ignored in that case. Change-Id: If89ec3a1968be297c0fe7c65336c5a965598f0c9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/143911 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2022-12-13SF_Dictionary: tdf#152351 Fix ReplaceItem does not accept array as valueJean-Pierre Ledure
Next basic code Dim myDict as Variant myDict = CreateScriptService("Dictionary") myDict.Add("key", Array()) myDict.ReplaceItem("key", Array(1, 2, 3)) produces an error message incriminating the user code. While it should run normally ... Fixed by enlarging the validation rules. Change-Id: I667abc81cb712308764c342d0e74b95821e46a5f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144041 Tested-by: Jean-Pierre Ledure <jp@ledure.be> Reviewed-by: Jean-Pierre Ledure <jp@ledure.be> Tested-by: Jenkins