Welcome to The Document Foundation Planet

This is a feed aggregator that collects what LibreOffice and Document Foundation contributors are writing in their respective blogs.

To have your blog added to this aggregator, please mail the website@global.libreoffice.org mailinglist or file a ticket in Redmine.


Tuesday
16 July, 2019


face

Hi,

LibreOffice 6.3 isn’t release but I have already plans for the 6.4 winter release. I have two (three) main topics:

Notebookbar
  • Tabbed, Tabbed compact, Groupedbar, Groupedbar compact, Contextual Single toolbar layout style should be done for writer, calc, draw and impress
  • all layouts should be available for the other apps like chart, master, form, …
  • LibO 6.4 will get customization support for NB so here stuff has to be done (thanks to GSOC student Sumit Chauhan)
Unified Styles, Design and Brand
  • I plan to update all style related stuff like
    • bullet styles
    • table styles
    • shape styles
    • everything that result into an image/drawing
  • I also plan to make unified stuff like
    • templates for all apps
    • gallery presets with an unified brand
    • smartart templates and predefinitions
Icon stuff
  • as Colibre, Sifr, Breeze are in a good shape and thanks to Rizal Muttaqin I don’t plan a new icon theme or big changes here
  • For sure maintenance work will be done
  • as all icon themes are available in svg also for fix HiDPI bugs the icons are prepared
What can you do
  • for the brand, unified style and design stuff I could need help
  • join the design group
  • help with better styles support (code)
  • give me your knowledge
    • send me links to examples
    • send me links to other apps that did the job well
    • submit feedback

I contribute 100 % in my spare time, so if you like my work, become a downloads_wordmark_white_on_coral2x.jpg


face

This week:

I was implementing the Compiler of the Special Commands of:
      
       1) Calc
    (calc_Type_command - calc_switch_sheet - calc_Select_cell - calc_AutoFill_filter)
   
        2) impress
    (impress_Type_command)    

        3) math
    (math_element_selector - math_Type_command)


Also, I have finished the General Commands Compiler:
    (setZoom_command)

this work can be found here:
                     https://gerrit.libreoffice.org/75527   
----------------------------------------------------------------------------------------------------------
Then I working on Changing the Structure of the Compiler to become more genneral by adding Some general functions that can make the Compiling easier like these functions:

    1) init_app
    2) init_Object
    3) write_line_without_parameters
    4) write_line_with_one_parameters

this Work Can be found here:
                     https://gerrit.libreoffice.org/#/c/75529/
------------------------------------------------------------------------------------------------------------

Then I spend more time reading some UI tests written with Python framework and try to figure out what missing of the UI elements and Idisccuss adding logs for new events with my mentors.

The next week I will work on :

1) adding new events to be logged by adding the grammar and write the log statements but they will not have a Compiler as they don't included yet in the python UI framework.

2)Finishing the Current Compiler by making some Random tests and run them and test the efficiency overall.  


face

The problem

Years ago I posted about work to attach comments to text ranges. This improved compatibility with Word greatly, but it was always a piece of text that was commented, never frames. If you just selected a frame and tried to comment by selecting the menu entry or the Ctrl-Alt-C shortcut, nothing happened, because frame selection did not interpret comment insertion.

Result

https://lh3.googleusercontent.com/PvlDM6Ox1UBEXj57F4SyBN5hlv1sjJHjI4VjmwIoM-3btxSR1Uh5HAwch_tw95vDOhdSZnEbDPkuYYAU2iiHvSeHafFtToGQzntEqO8wGgkDgmIOxGBXWw6vdTPQlgPPF3lFd0ES8Q=w640
Figure 1. Comment on an at-char anchored image in Writer

Examples for frames are images or charts. This needs explicit handling, so at the moment the at-char and as-char anchor types are supported, and you can simply insert the comment to a frame once the frame is selected. This works in both desktop Writer and Online.

Want to start using this?

You can get a snapshot / demo of Collabora Office and try it out yourself right now: try unstable snapshot. Collabora is a major contributor to LibreOffice and all of this work will be available in TDF’s next release too (6.4).


Monday
15 July, 2019


face

In 2018, 17,473 commits were made to the LibreOffice source code, from 223 authors. Here’s an overview of what they worked on…

Behind the scenes of LibreOffice 6.2

Throughout the second half of 2018, the developer community worked on a new major release: LibreOffice 6.2. Details about the end-user-facing new features are provided on this page, and in the following video – so in the rest of this blog post, we’ll focus on developer-related changes.

Please confirm that you want to play a YouTube video. By accepting, you will be accessing content from YouTube, a service provided by an external third party.

YouTube privacy policy

If you accept this notice, your choice will be saved and the page will refresh.

So, let’s get technical!

In terms of system requirements, the macOS minimum version was bumped up to 10.9 (and will be 10.10 in LibreOffice 6.3). Similarly, binary Linux x86 (32-bit) releases from The Document Foundation were deprecated, so there will be no Linux x86 builds produced by TDF after LibreOffice 6.2. However, this does not mean that Linux x86 compatibility will be removed; Linux distributions can still opt to build 32-bit binaries. See here for more details.

On the user interface front, there were other changes. Two new VCL plugins (qt5 and kde5) were implemented (with the KDE5 plugin extending the Qt5 one), to provide integration with KDE Plasma 5 and other Qt5-based desktop environments. These were mainly implemented by Katarína Behrens (CIB) and Jan-Marek Glogowski (City of Munich).

If the kde5 and the gtk3_kde5 plugins are installed, the desktop detection will now prefer the kde5 one. The qt5 plugin must be explicitly selected via SAL_USE_VCLPLUGIN=qt5, as it’s never selected automatically.

Native copy and paste of spreadsheet data in Writer tables was implemented by László Németh (NISZ): previously, you could paste a copied table as image, object, plain text, and as RTF; the latter resulting in a new table in Writer. In LibreOffice 6.2 you can paste directly in an existing table.

Data Validation now supports custom formulas thanks to Marco Cecchetti (Collabora), while Edit > Track Changes > Show no longer severely impacts performance in documents with many tracked changes. The document view is now capable of hiding the tracked changes, so they do not have to be rearranged in the document model to be hidden – implemented by Michael Stahl (CIB).

LibreLogo, the programming interface for graphic design and education got unit testing, IDE and compiler fixes and improvements (László Németh – FSF.hu Foundation). Meanwhile, work continued on the native GTK3 UI, as demonstrated by Caolan McNamara (Red Hat) at FOSDEM 2018:

Please confirm that you want to play a YouTube video. By accepting, you will be accessing content from YouTube, a service provided by an external third party.

YouTube privacy policy

If you accept this notice, your choice will be saved and the page will refresh.

Google


Saturday
13 July, 2019


face

For menubar lovers the simplest and responsible LibreOffice layout on earth

IMG_20190713_110335_008.jpg

Check out LibreOffice 6.3 release candidate and enjoy the new stuff come with it.


Friday
12 July, 2019


face

Fork-Awesome Logo Yesterday, I sat down to upgrade the Font Awesome package used by Beast’s new UI from 4.7.0 to 5.9.0. In the end, I found that the icons look way more crispy and professional in the 4.7.0 version. Here is an example: Font-Awesome 4 vs 5 The Font Awesome 5 package has some other…


Thursday
11 July, 2019


face

Regina Henschel is a long-time member of the LibreOffice community, and has worked on ODF, the native file format of the suite. At our recent German community meetup, we talked to her about how ODF is developed, and how users can help to improve it…

Tell us a bit about ODF, and why it’s important…

Open Document Format is LibreOffice’s native file format. (If you have a file with a .odt, .ods, .odp or .odg extension, then it’s an Open Document Text, Spreadsheet or Presentation file or Graphic respectively.)

ODF is developed by OASIS, then submitted to ISO (the International Organization for Standardization), and then adopted as a standard. There is also a working group at ISO, which by the way also works on OOXML – which can then ask questions about development, and so on.

For ODF we are now working on version 1.3. We had a “feature freeze” last summer. We have come so far that everything we wanted to have in it is available in the “editor version”. Now we’re going to fine-tune it, then we’ll be back in summer – so that was a whole year. Then comes the coordination process at OASIS, so it usually takes two years until a new version of the standard is ready.

How do you decide which new features to add?

The feature has to be well defined, and that depends a little on how good the proposal you get is. There are some suggestions like: “We want to have a feature for Fourier transformations” – but nothing else! And then we say: as long as there is no implementation that actively handles it, we’ll postpone it for later. It’s not worth it, for a standards body to deal with a proposal like this, if there are no applications that are actually interested in it.

ODF exists as a “strict” standard, for features that are fully standardized, and then there is an “extended mode” in which you can try out new features in applications. They then run under their own namespace, and if that works, organizations can make a suggestion for OASIS, eg: “This feature works well for us, so please include this in the strict standard.”

Then others can say: “Yes, we want to do something similar, but it would be better for us if we didn’t call it X, but Y instead”. Or: “We need an additional attribute to make it work for us”, for example. In situations like that, the proposals are discussed.

For example, in LibreOffice, it’s now possible to specify the size of charts, independent of their labels. In the old standard, you could only set the size including the label. This means that when data changed and the label changed, the effect was that the size of the chart changed. So that’s been fixed in ODF 1.3.

There are also bugfixes, where there are things that are simply wrong, or that are not clear enough


Tuesday
09 July, 2019


face

LibreOffice 6.3 will offer a new tabbed layout called tabbed compact. Focus are users with widescreen and a simple user interface.

tabbed compact

Install LibreOffice 6.3 RC1 and give me feedback. You can change the UI via menubar -> View -> Layout.


face

The LibreOffice Quality Assurance ( QA ) Team is happy to announce LibreOffice 6.3 RC1 is ready for testing!

LibreOffice 6.3 will be released as final in mid August, 2019, being LibreOffice 6.3 RC1 the forth pre-release since the development of version 6.3 started in mid November, 2018 ( See the release plan ). Since LibreOffice 6.3 Beta2 ( the previous pre-release ), 123 commits have been submitted to the code repository and 66 bugs have been fixed. Check the release notes to find the new features included in this version of LibreOffice.

LibreOffice 6.3 RC1 can be downloaded from here, it’s available for Linux, MacOS and Windows. ( Note tha it will replace your actual installation )

In case you find any problem in this pre-release, please report it in Bugzilla ( You just need a legit email address in order to create a new account ) so it can get fixed before LibreOffice 6.3 final is released.

For help, you can contact us directly in our IRC channel.

Happy testing!!


face

(This post was originally written in Hungarian by Adam Kovacs for his blog. Thanks Adam!)

In our previous post in this series, we looked at building on Linux. But it’s also possible to download and compile the LibreOffice source code on Windows, so that’s what we’ll demonstrate here!

(Note: if you encounter problems following this guide, please also check this wiki page.)


Step 1: Download and install Visual Studio Community version (free)

Get it from the Visual Studio website. Add these components during installation:

  • C++ compiler
  • Windows SDK 10
  • UCRT library
  • Visual C++ ATL for x86 and x64
  • .NET Framework SDK

Step 2: Download and install openJDK

Get these:


Step 3: Download and install Cygwin

Get it from here. Then, in a command prompt, access the Cygwin installer directory, for example:

cd c:\Users\username\Desktop\

And run the following command:

setup-x86_64.exe -P autoconf -P automake -P bison -P cabextract -P doxygen -P flex -P gcc-g++ ^
-P gettext-devel -P git -P gnupg -P gperf -P make -P mintty ^
-P nasm -P openssh -P openssl -P patch -P perl -P python -P python3 ^
-P pkg-config -P rsync -P unzip -P vim -P wget -P zip -P perl-Archive-Zip ^
-P perl-Font-TTF -P perl-IO-String

(This command installs different dependencies, including packages and programs, that are needed to compile LibreOffice.)

If you later want to install new programs or packages in Cygwin, you can also restart the installer. Then, when you can select the programs from the list, look for the appropriate name (eg nano, mc, wdiff) and in the drop-down list, change pending to full.


Step 4: Download JUnit and Ant

From now on, all commands are run in Cygwin.

mkdir -p /cygdrive/c/sources
cd /cygdrive/c/sources
wget https://archive.apache.org/dist/ant/binaries/apache-ant-1.9.5-bin.tar.bz2
tar -xjvf apache-ant-1.9.5-bin.tar.bz2
wget http://downloads.sourceforge.net/project/junit/junit/4.10/junit-4.10.jar

(These commands will download JUnit and Ant to the c:\sources folder. The path of Ant will be, for example: c:\sources\apache-ant-1.9.5, which should be specified later in autogen.input.)


Step 5: Download Make

mkdir -p /opt/lo/bin
cd /opt/lo/bin
wget http://dev-www.libreoffice.org/bin/cygwin/make-4.2.1-msvc.exe
mv make-4.2.1-msvc.exe make
chmod a+x make

(This will allow you to start the actual compilation later.)


Step 6: Download the LibreOffice source code

Create a directory for LibreOffice somewhere (eg in your home directory), and then go into it:

mkdir ~/libreoffice
cd ~/libreoffice

This command downloads the source files to the current directory (the “.” character):

git clone git://gerrit.libreoffice.org/core .

If the current directory is not specified as a parameter, it will create a “core” directory and download the files.

Another example: this command creates a directory called “libreoffice” in the current


Monday
08 July, 2019


face

Today we’re talking to Jun Nogata from our Japanese community!

To start, tell us a bit about yourself!

So, I live in Himeji, Japan where UNESCO World Heritage site Himeji Castle is. I work a part-time lecturer at a local university.

I am a big fan of free and open source software (FOSS). I started to use Linux from Slackware 95, and I’m using Debian Sid at the moment. I am active in the Debian community in Japan and I’m also an OpenStreetMap mapper.

I like listening to indie rock music, playing guitar and DJing sometimes. Also, I’m learning Korean – I want to talk to my friend DaeHyun Sung from the Korean LibreOffice community!

Oh, and I created the LibreOffice Impress templates “Midnight Blue” and “Alizarin” – thank you for using them. On social media, you can find me on Twitter and Facebook.

What are you working on in LibreOffice at the moment?

I am working on the Japanese Ask LibreOffice website as answerer and moderator – and I’m also involved in marketing and public relations for the Japanese team.

Previously, there was no marketing from the Japanese team. December 2018, I started to post information about LibreOffice from the Japanese community Facebook and Twitter accounts. There were reactions from the users, like: “I was worried that there was no information about LibreOffice, but now it’s getting better.”

I talked to the Japanese team about the necessity of creating a blog, to share and communicate information outside of social networking services. Naruhiko Ogasawara consulted with Italo Vignoli to create the blog for the Japanese team. I am happy to add information about LibreOffice in Japanese to the blog.

Is there anything else you’d like to work on in the future?

I would like to try to improve the Japanese settings. LibreOffice is known as “cost-free, but poor-quality office software” in Japan because LibreOffice’s settings are not appropriate for the language.

In Japanese, for example, you can set characters per line and lines per page to determine the page layout, but the page style text grid is not able to specify characters per line and lines per page due to improper implementation. (If you are interested, please set 37 characters x 30 lines, without changing the font and ruby size.) I will try to fix these settings and change the bad image.

How did you originally get involved with LibreOffice – and what was the experience like?

As a user, I was attending the “Kansai LibreOffice Group” (関西LibreOffice勉強会) hosted by Shinji Enoki. My templates were included in LibreOffice 4.4 – it was a big surprise, and a pleasure for me that I could contribute to LibreOffice without changing the source code. A big thanks to the whole community for LibreOffice!

Finally, what do you see in the future for LibreOffice? What does it need most?

Ideally? users in all languages can use LibreOffice without changing any settings. The paragraph style of Writer is “Align left”, but


face

This week:

I was implementing the Compiler of the UI Objects:
      
        1) ButtonUIObject
        2) CheckBoxUIObject   
        3) TabControlUIObject
        4) ComboBoxUIObject
        5) RadioButtonUIObject
        6) ListBoxUIObject
        7) SpinFieldUIObject
        8) EditUIObject       

Also, I implemented a simple algorithm that will remove some redundant lines for example with the old logger we may have this:





now we will get this doing same functionality:




All this changes can be found here:
https://gerrit.libreoffice.org/#/c/75156/


Also, thier was missing part in the Close Dialog Compiler it's now implemented here:
https://gerrit.libreoffice.org/#/c/75165/

Also, This week I worked in the Special Commands from the writer application and implement:

    1) Type Command
    2) Select Command
    3) GoTo page

this can be found here: 
https://gerrit.libreoffice.org/75171


Next Week I will try to finish the Compiler of all the Special Commands and the General Commands and start imtergrating and testing the project total.

Friday
05 July, 2019


face

LibreOffice 6.3 is being developed by our worldwide community, and is due to be released in early August 2019 – see the release notes describing the new features here.

In order to find, report and triage bugs, the LibreOffice QA team is organizing the second Bug Hunting Session for LibreOffice 6.3 on Monday July 08, 2019.

Tests will be performed on the first Release Candidate version, which will be available on the pre-releases server a few days before the event. Builds will be available for Linux (DEB and RPM) with GTK3 and KDE5 support, macOS and Windows. ( Note that it will replace your actual installation)

Mentors will be available from 07:00 UTC to 19:00 UTC for questions or help in the IRC channel #libreoffice-qa and the Telegram QA Channel. Of course, hunting bugs will be possible also on other days, as the builds of this particular Release Candidate (LibreOffice 6.3.0 RC 1) will be available until mid July. Check the Release Plan.


Wednesday
03 July, 2019


face

General Activities

  1. LibreOffice 6.3 beta2 was released for testing on June, 25
  2. The bibisect repositories from libreoffice-6-3-branch-point to latest master for Windows and Linux are available for cloning
  3. Miklos Vajna (Collabora) keeps working on btLr text direction
  4. Balazs Varga (NISZ Team) keeps improving Chart interoperability
  5. Noel Grandin (Collabora) keeps fixing performance issues. See ‘List of performance issues fixed’ below
  6. Arkadiy Illarionov is working on removing duplicated code
  7. Regina Henschel is working on converting Fontwork to TextWarp on export
  8. Jan-Marek Glogowski keeps improving Qt5 support
  9. Grzegorz Araminowicz (Collabora) keeps improving SmartArt support
  10. Tünde Tóth (NISZ Team) fixed some hyperlink interoperability problems
  11. Tomaž Vajngerl (Collabora) keeps improving support for iOs
  12. László Németh (NISZ Team) keeps working on improving tracking changes interoperability
  13. Thorsten Behrens (CIB) added support for PDF/A-2 export
  14. Roman Kuznetsov updated the fonts in the window installer
  15. Jim Raykowski fixed some undo and UI bugs

Reported Bugs

544 bugs, 74 of which are enhancements, have been reported by 282 people.

Top 10 Reporters

  1. Telesto ( 57 )
  2. NISZ LibreOffice Team ( 22 )
  3. Xisco Faulí ( 15 )
  4. Roman Kuznetsov ( 13 )
  5. Markus Elfring ( 11 )
  6. Robert Großkopf ( 10 )
  7. BottleOnTheGround ( 9 )
  8. Regina Henschel ( 7 )
  9. sergio.callegari ( 7 )
  10. Buovjaga ( 7 )

Triaged Bugs

545 bugs have been triaged by 80 people.

Top 10 Triagers

  1. Xisco Faulí ( 139 )
  2. Dieter Praas ( 67 )
  3. V Stuart Foote ( 34 )
  4. raal ( 31 )
  5. Julien Nabet ( 19 )
  6. Alex Thurgood ( 14 )
  7. Timur ( 13 )
  8. Heiko Tietze ( 13 )
  9. Olivier Hallot ( 12 )
  10. Roman Kuznetsov ( 11 )

Resolution of resolved bugs

622 bugs have been set to RESOLVED.

Check the following sections for more information about bugs resolved as FIXED, WORKSFORME and DUPLICATE.

Fixed Bugs

206 bugs have been fixed by 40 people.

Top 10 Fixers

  1. Caolán McNamara ( 21 )
  2. Jan-Marek Glogowski ( 17 )
  3. Miklos Vajna ( 11 )
  4. Eike Rathke ( 10 )
  5. Noel Grandin ( 9 )
  6. László Németh ( 7 )
  7. Roman Kuznetsov ( 7 )
  8. Jim Raykowski ( 6 )
  9. rizmut ( 6 )
  10. Balazs Varga ( 6 )

List of crashes fixed

  1. tdf#101473 [EDITING] Function wizard crashes LibO when evaluating addin that implement XVolatileResult ( Thanks to Eike Rathke )
  2. tdf#111522 SdrUndoMoveObj::Undo() Crash When multi windows ( Thanks to Miklos Vajna )
  3. tdf#122200 kde5: Crash when navigating tree in accerciser (Accessibility Explorer) ( Thanks to Michael Weghorn )
  4. tdf#125333 Crash on repeated searches with FindReplaceRememberedSearches=0 ( Thanks to heiko tietze )
  5. tdf#125382 Crash when check a “Personal Letter” on Letter Wizard ( Thanks to Xisco Fauli )
  6. tdf#125624 CRASH working with file with lots of hints ( Thanks to Mike Kaganski )
  7. tdf#125660 COMPARE DOCUMENTS: Crash in swlo!SwRedlineData::SetSeqNo ( Thanks to Michael Stahl )
  8. tdf#125670 Crash in: OutputDevice::InitClipRegion on Slide show ( Thanks to Caolán McNamara )
  9. tdf#125685 crash in layout after paste on particular document ( Thanks to Michael Stahl )
  10. tdf#125692 kde5: Impress crashes when closing after using presentation minimizer ( Thanks to Jan-Marek Glogowski )
  11. tdf#125741 Crash: swlo!SwFrame::PrepareCursor ( Thanks to Michael Stahl )
  12. tdf#125751 Crash: ntdll!RtlEnterCriticalSection ( Thanks to Michael Stahl )
  13. tdf#125754 Crash swlo!SwAnchoredDrawObject::IsValidPos ( Thanks to Michael Stahl )
  14. tdf#125821 Crash on insertion of video ( Thanks to Jan-Marek Glogowski )
  15. tdf#125840 Crash when

Monday
01 July, 2019


face

At week 4 I have finished the first phase of the new UI logger which was the grammar and the new sentences of the log messages and rewrite all the log statement with the new grammar.

This week I have started the implementation of the Compiler of the new logger grammar. This Compiler is responsible for taking the log file with the new grammar and generate a UI test case that performs the same as the user actions.

This week I write the python script that will take the input addresses from the user and the path of the test case to be generated. Also, I begin to implement the handler of each type of commands. This handler is the functions that called for each type of commands found in the grammar and start to replace it by the corresponding UI python functions that used for testing. I have finished this week the Starter handler, Uno commands Handler and Dialog handler.

This can be found here.

Also, all these changes are stored in this branch:


private/EL-SHREIF/ui_logger

to test the new script and the new project this can be done after adding TEXTX library to our build system to be able to test it. For now, you can use any virtual env and install python and TEXTX on it then run this command:
python3 <path_to_log_interpreter> <path_to_log_file> <path_to_a_new_python_file>

for example, if we have this log file:

We will get this UILogger:


all these images show a real example from the new project.

also, I add some minor changes in the grammar and the rewrite of Dialogs here :

next week I will Continue implementing the rest of handlers and verify that the Project performs well.






Wednesday
26 June, 2019


face

The LibreOffice Quality Assurance ( QA ) Team is happy to announce the bisect repository from libreoffice-6-3-branch-point to latest master for Windows is available for cloning at Gerrit. As a novelty, it’s the first time the bisect repository for Windows is built for 64 bits instead of 32 as in previous repositories. Future repositories will be built for 64 bits as well.

What is a bisect repository ?

it’s a git repository populated with hundreds of builds of LibreOffice. Added to the repository in chronological order, each build represents each commit in the LibreOffice core repository, allowing the QA Team to easily identify at which point a regression was introduced. Watch Effective Bisection and Bibisection (Matthew Francis’s talk at LibOCon 2015 on YouTube) for both an introduction, and practical details.…


face

LibreOffice is an application with a large number of expert features, and though aimed to be easy to use there are always surprising shortcuts to achieve a goal. We post every day a tip on Twitter, and with the upcoming release 6.3 there will be also a tip-of-the-day messagebox when you start the program.…


Tuesday
25 June, 2019


face

The LibreOffice Quality Assurance ( QA ) Team is happy to announce LibreOffice 6.3 Beta2 is ready for testing!

LibreOffice 6.3 will be released as final in mid August, 2019, being LibreOffice 6.3 Beta2 the third pre-release since the development of version 6.3 started in mid November, 2018 ( See the release plan ). Since LibreOffice 6.3 Beta1, 226 commits have been submitted to the code repository and 106 bugs have been set to FIXED in Bugzilla. Check the release notes to find the new features included in this version of LibreOffice.

LibreOffice 6.3 Beta2 can be downloaded from here, it’s available for Linux, MacOS and Windows. Besides, and it can be installed along with your actual installation.

In case you find any problem in this pre-release, please report it in Bugzilla ( You just need a legit email account in order to create a new account ) so it can get fixed before LibreOffice 6.3 final is released.

For help, you can contact us directly in our IRC channel.

Happy testing!!


Monday
24 June, 2019


face

This week:

As this week was my last week in my exams I worked in many minor points to finish it and finish all missing parts for phase1.

I migrate all the work in this branch :
                                 >  private/EL-SHREIF/ui_logger
This will make it easy to work on the old commits then we can merge at the end of the project.

as I found we have many lines that we will not use in the compiler in the future for example these lines:
        Action on element: urled with action : TYPE
        Action on element: urled with action : 16

So I solve this by make this function :
        OUString WindowUIObject::get_action(VclEventId nEvent) const
return empty string when we don't need to log this statement I think this won't be the best approach in the future.

this is example of what we can get now from the new logger:



Also for adding Jinja2 to use it in generation. I tried this week to create simple data structure that we can use to make same thing without any need to add external resources.

Also this week the SideBar actions wasn't implemented so I add it to the grammar as a general commands as it will be the same for all the applications.

Also this week the Select actions wasn't logged with the new grammar. I add it to the grammar as a general commands also. it will be like this:
                              >>Select  {"OBJECT": "Unnamed_Obj_0"}

Also This week I worked on adding the special command for math and impress in the grammar and write the log statements with the new grammar.

all this can be found in this patch: https://gerrit.libreoffice.org/#/c/74629/

So for phase 1 we have:
1) grammar for the new ui_logger
2) all the log statements now worked with the new grammar

to finish the project the next stage will be:
1) working on the compiler that will generate the test cases from this grammar
2) start adding new events to be logged


Sunday
16 June, 2019


face

This week:
I continue working on Rewriting the logger messages with the new DSL grammar:

    1)EditUIObject
        It wasn't finished last week but this week it's finished with the new garmmar and can log select and write actions.

    2)Uno Commands
        some small changes to be understandable with the new grammar
        ** a missing part here that we want to ignore logging message if the parameters of the UNO command are empty as they will be logged twice which is not good.

    3)Dialog Commands
        **Sometimes we have empty dialog names I don't know now how to handle this.
   
    4)Special Commands of (writer and Calc)
        In this part we know that we use EventDescription Object to transfere what we need to the logger for example in the GOTO command we put this parameters:
            aDescription.aAction = "GOTO";
            aDescription.aParameters = {{"PAGE", aPage}};
            aDescription.aID = "writer_edit";
            aDescription.aKeyWord = "SwEditWinUIObject";
            aDescription.aParent = "MainWindow";
            UITestLogger::getInstance().logEvent(aDescription);

So in the logger we will use these parameter to construct the log statement that we need and ignore having same construction as old logger which made it not friendly in reading.

    5)Also Type Command handled alone wherever you type.

I create 2 new functions that will help in getting data from the EventDescription Object and Use it to log all available actions of Calc and writer.
Now if we want to log new action in any application after sending its parameters to logger we will need to receive these parameters and use it to make sentences that match our grammar.

You can find the patch that make all of this here.

The next step is to finish some missing parts in the Uno Commands and fix problem of Dialog Commands and add new feature helpful statements in the ObjectUI commands.Then I will start write the compiler that will make code generation.


           




face


This week I start implementation of the grammar of the new DSL language:

I add this project files in core/uitest/ui_logger_dsl/
 

The new DSL language consist of some commands with diffrent types:
   
    1) UNOCommand
        finished the commands that don't take parameters

    2) StarterCommand
        done
   
    3) UIObjectCommand
        this command logs all these objects actions:

  •             ButtonUIObject
  •             CheckBoxUIObject
  •             EditUIObject
  •             RadioButtonUIObject
  •             ListBoxUIObject
  •             ComboBoxUIObject
  •             SpinUIObject
  •             SpinFieldUIObject
  •             TabControlUIObject
        all of these types are done

    4) DialogCommand
        done 

    5) SpecialCommand
        this command consist of any other action that related to special application   like actions for writer as (set zoom - GOTO page)
        I will work on this next week.


You can see example of expected logged file otput here : uitest/ui_logger_dsl/example.ul
as .ul mean uiLogger


also this example with the old logger will be like:

    ButtonUIObject Action:CLICK Id:writer_all Parent:
    CommandSent Name:.uno:UpdateInputFields
    CommandSent Name:.uno:FontDialog
    ModalDialogExecuted Id:CharacterPropertiesDialog
    Action on element: tabcontrol with action : 77
    Action on element: westfontnamelb-cjk with action : 18
    TabControlUIObject Action:SELECT Id:tabcontrol Parent:CharacterPropertiesDialog {"POS": "0"}
    Action on element: tabcontrol with action : 77
    TabControlUIObject Action:SELECT Id:tabcontrol Parent:CharacterPropertiesDialog {"POS": "2"}
    RadioButtonUIObject Action:CLICK Id:90deg Parent:CharacterPropertiesDialog
    Action on element: 90deg with action : CLICK
    Action on element: 90deg with action : CLICK
    ComboBoxUIObject Action:SELECT Id:weststylelb-cjk Parent:CharacterPropertiesDialog {"POS": "2"}
    Action on element: weststylelb-cjk with action : 12
    CheckBoxUIObject Action:CLICK Id:pairkerning Parent:CharacterPropertiesDialog
    Action on element: pairkerning with action : CLICK
    Action on element: pairkerning with action : CLICK
    SpinFieldUIObject Action:UP Id:scalewidthsb Parent:CharacterPropertiesDialog
    Action on element: scalewidthsb with action : 18
    Action on element: scalewidthsb with action : 16
    Action on element: scalewidthsb with action : TYPE
    Action on element: scalewidthsb with action : 16
    SpinFieldUIObject Action:UP Id:scalewidthsb Parent:CharacterPropertiesDialog
    Action on element: scalewidthsb with action : 18
    Action on element: scalewidthsb with action : 16
    Action on element: scalewidthsb with action : TYPE
    Action on element: scalewidthsb with action : 16
    SpinFieldUIObject Action:DOWN Id:scalewidthsb Parent:CharacterPropertiesDialog
    Action on element: scalewidthsb with action : 18
    Action on element: scalewidthsb with action : 16
    Action on element: scalewidthsb with action : TYPE
    Action on element: scalewidthsb with action : 16
    EditUIObject Action:TYPE Id:linewidthmf Parent:CharacterPropertiesDialog {"TEXT": "1"}
    Action on element: linewidthmf with action : TYPE
    Action on element: linewidthmf with action : 16
    ListBoxUIObject Action:SELECT Id:effectslb Parent:CharacterPropertiesDialog {"POS": "2"}
    Action on element: effectslb with action : 12
    ButtonUIObject Action:CLICK Id:ok Parent:CharacterPropertiesDialog
    DialogClosed
    ModalDialogExecuted Id:QuerySaveDialog
    ButtonUIObject Action:CLICK Id:discard Parent:QuerySaveDialog
    DialogClosed

This has same output as you can find in the example.ul here

Start writer_all
Send UNO Command (".uno:UpdateInputFields")
Send UNO Command (".uno:FontDialog")
Open CharacterPropertiesDialog
choose Tab number 0 from CharacterPropertiesDialog
choose Tab number 2 from CharacterPropertiesDialog
select "90deg" Radio Button from CharacterPropertiesDialog
toggle "pairkerning" CheckBox from CharacterPropertiesDialog
select from "weststylelb-cjk" ComboBox iterm number 2 from CharacterPropertiesDialog
increase "scalewidthsb" from CharacterPropertiesDialog
increase "scalewidthsb" from CharacterPropertiesDialog
decrease "scalewidthsb" from CharacterPropertiesDialog
Type on "linewidthmf" {"TEXT": "1"} from CharacterPropertiesDialog
select element with position=2 from "effectslb" from CharacterPropertiesDialog
Click on "ok" from CharacterPropertiesDialog


face

This week

I continue working on the DSL grammar I added:

    1)UNOCommand

        I addded the parameters option.

    2) SpecialCommand

        I added the writer and calc commands as a start and I think it will be enough for now to start with this 2 applications and in the future we can add other applications and also we can add more features for the logger in this application easily.

This is the new statements for logging writer events:
    Type on writer {"TEXT": "s"}
    Select from Pos 5 to Pos 7
    Set Zoom to be 100
    GOTO page number 2

This is the new statements for logging calc events:
    Type on current cell {"TEXT": "a"}
    Switch to sheet number 2
    Select from calc {"CELL": "A1"}
    Lanuch AutoFilter from Col 2 and Row 1

I added all of this here: https://gerrit.libreoffice.org/#/c/73241/

Also Start to update the log statements for this UI objects:
(note that: this patch can't be merged now it should wait for the compiler to be done first)
I have finished :

    a) ButtonUIObject
    b) CheckBoxUIObject
    c) TabControlUIObject
    d) RadioButtonUIObject
    e) ComboBoxUIObject
    f) SpinFieldUIObject
    g) ListBoxUIObject

Also part of the EditUIObject is finished but still have something missing.

you can find this changes in this commit : https://gerrit.libreoffice.org/#/c/73743/





Friday
14 June, 2019


face

I already wrote about the btLr text direction in the context of Writer table cells as a result of a Collabora hack week (part 1, part 2). The next step in this journey is btLr text direction of Writer Text Frames, and building on top of that: DOCX Text Boxes. Here is a series of screenshots showing the result:

https://lh3.googleusercontent.com/mHrS3KHuLf4tnWOZTw83jJiF3bJ6Ti8fiHXSJlqBFwrdDEpCdS9m_mTfHQPhOXNbZ5atXkagrGO7fSAJPSUo9pEm73UMr_kT6oVwOLCjZwxR9NB_EsLxHUXmUtUiSq0Zr-C0_TNLMg=w640
Figure 1. tdf104353.docx, baseline
https://lh3.googleusercontent.com/haH8Tu0CiUQ9OHWn3Pc9PJ8pP6fEwpGZtrtYUrtkYLYH_BLnLknIA5hBruslE2XIJnuoFjGxYhuFj3GqH4Peu2slIH83ss9vIPMXSn_E5q2Lr80cz2_h7rPuI1DRgJYou6AaOQzAaw=w640
Figure 2. tdf104353.docx, current
https://lh3.googleusercontent.com/ZZKDSlC3-VmuVbvvR7nlsNUi6A-mWAj6wJgg2TMzBMg0MQ01kN0iwnHvw_16GDopYT2hNuJwUKWZ5ugbg6TjkJWJ_V5rHwv2fpwumuGLLF29hYYtEPOb0v2en5UHY5p8kHyxTWtYZA=w640
Figure 3. tdf104353.docx, reference

You can see that the bug document is some kind of card you can print and fold in the middle: no matter if you are in front of the card or you are behind it, you always see the name and details of the person. Sure, you can do the same with a table with no borders, but using a Text Frame for this purpose is a sane use-case.

The text from the 3 paragraphs used to have the same horizontal position, and now it’s laid out the same way as Word does it.

Technically, this result is just the last commit in a series. I fixed the following problems since the last blog post on this topic:

All this is available in LibreOffice master (towards 6.4), so you can try it out right now, if interested.


Thursday
13 June, 2019


face

The LibreOffice Quality Assurance ( QA ) Team is happy to announce the bisect repository from libreoffice-6-3-branch-point to latest master is available for cloning from Gerrit. As a novelty, this repository adds support for KDE5 environment.

What is a bisect repository ?

it’s a git repository populated with hundreds of builds of LibreOffice. Added to the repository in chronological order, each build represents each commit in the LibreOffice core repository, allowing the QA Team to easily identify at which point a regression was introduced. Watch Effective Bisection and Bibisection (Matthew Francis’s talk at LibOCon 2015 on YouTube) for both an introduction, and practical details.…


face
  • B&B Hotel - lots of traffic noise through the closed window, ambulances to dream of; up lateish, train, Eurostar, train and so on. Reasonable connectivity - built ESC agenda a tad late while on the train encouraging using Collabora Online rather effectively; good.

Wednesday
12 June, 2019


face
  • Up early, a couple of dismal, late trains to Kings Cross, and the Eurostar to OW2Con / Paris. Dodgy taxi ride, arrived somewhat late for the session. Gave a talk on LibreOffice Online and then C'bras role in it briefly.
  • Caught up with Sigmund, Philippe from Arawa, Simon, and enjoyed a fine evening together with friends old & new.

Tuesday
11 June, 2019


face
  • More admin, project planning, prototype acceptance criteria construction. Three lots of maths revision in the evening. Worked late putting documentation together with Kendy.

Monday
10 June, 2019


face
  • Mail chew, worked away at project planning and acceptance criteria. Couple of project calls and sync with Kendy.

Sunday
09 June, 2019


face
  • All Saints, band in the morning. Back for a fine lunch, and out for another, much less used stretch of walk along the nearby ancient, defensive Dyke.
  • Slept while H. did Organ practice, encouraging progres with the quartet. Slugged in front of a movie in the evening.

Saturday
08 June, 2019


face
  • Up late; did some maths with H, N. and E. variously. More work - attacked various problems with long re-build times.
  • Finally, after some weeks, got space to get around to repairing the toilet flush in the upstairs toilet. One good opportunity for Goverments would be to ban pointless, self- defeating and environmentally damaging cost-engineering. A non-servicable, polythene flush membranes is an abomination. Hours of work, waste and expense to replace a sub-penny worth of plastic. Siliconed everything in sight to get it watertight.
  • Why is it that when my daughters invite their friends over, one of them inevitably appears used to turning the bathroom tap off with the moral equivalent of a spanner - making it come loose & rotate. Mended that too.

Older blog entries ->