понедельник, 31 августа 2020 г.

Cantor - GSoC2020 final post

Hello everyone,

this is the sixth and the final post about the progress in my GSoC project. I want to present an overview of what was done in the last couple of days and to also provde the overall summary of the project.

The last phase of my project was about but fixing. There were several bugs reported earlier already and I selected seven bug to be fixed as part of my GSoC project. Those bugs are the most important ones and addressing those issues perfectly fits into the overall idea of my project to improve the usability of Cantor. Out of those 7 bugs, four were resolved. More on this below.

The first bug was about the tabulation behaviour. The tabulation in Cantor worked always as the auto-completion, also even if there was no need for the auto-completion, for example in the beginnig of the line.  Now it works better. If the auto-completion logic says there are completion results, the tabulation works as the completion but if there're no completion results, the tabulation works as expected and the cursor is moved forward. Also, backward tabulation with Shift+Tab has been added and the multi-line tabulation is now supported, too.


The second bug was a problem with portability of Cantor's project files that have Image Entries. The image entries didn't store the original image in the project file but only their paths. So, if the project file was copied to another computer or the image file have been deleted, then the user didn't get any images in the worksheet after project opening. Now the image entries store the actual image as part of the project.

The third bug was about a wrong highlighting in R for functions and constants. Cantor didn't distinguish well between the constants, for example "pi", and functions, for example "abs". I improved the entire highlighting logic for R in Cantor and such problems have gone now.


The fourth and the last bug that was resolved recently was actually a feature requirement for variable manager in Cantor. For big variables, Cantor showed in the variable manager the text "big variable" which is not really informative. Now, in stead of this text the actual size of the variable in Bytes is shown for languages wehre it's possible to extract this information (Octave, Python, Julia).

That's was everything related to the bug fixing that was done in the final part of my GSoC project. Looking back at what was achieved this summer, all planned new features were implemented and the most relevant bugs were fixed. The project has reached its original goals. Even though the actual GSoC is considered to be done now, also because of the time frame, I continue invastigating now how to adress the still unresolved bugs. More on this maybe in another blog post later.



четверг, 20 августа 2020 г.

Cantor - Hierarchy Entry and Markdown Image drag&drop

Hello everyone,

this is the fifth post about the progress in my GSoC project and I want to present a new major feature that help to structure the content of the worksheet as well as another minor feature improving the handling and the usability of the insertion of images in the markdown worksheet entries.

When working with worksheets holding a lot of information it is sometimes required to be able to structure the content. This structuring is possible now with the help of a new entry type - Hierarchy Entry. With this entry a hierarchical representation of the content can be achieved which allows structures like "Chapter -> Section -> Sub-Section", etc.

The Hierarchy entry type has three important peculiarities. First, every hierarchy entry can hold entries of other types (command entry, image entry, etc.), which are considered as sub-entries (or child-entries) of the parent entry in the hierarchy. The screenshot below shows an example project with multiple text and command entries defined on the lowest level of the hierarchy:

Second, for each level of the hierarchy the properties of the used font (family, size, italic or bold) can be defined separately. The pre-defined properties (default system font is used on default) can be modified by the user. This is done in the new page in the setting dialog.

And this is an example for how a worksheet can look with the different font settings for the different levels in the hierarchy:

Third, the hierarchy entry together with all its children can be hidden as shown on the next screenshots:

Note the collapsed sections 1.1 and 1.1.1 here. This is achieved similarly to the collapsing of the results in a command entry.

To simplify the navigation in big woskheets I implemented the "Table Of Contents" panel. This new panel shows the hierarchy of the worksheet and allows to scroll to the different parts of the worksheet by clicking on the the corresponding entries of the hierarchy in the table of contents:



Now about the minor feature related to the Markdown entry. In the past it was possible to add an image to the markdown entry via the context menu only. Now it is also possible to direclty paste from the clipboard and to add an image via the drag&drop mechanism. The example for how this is done via drag&drop is shown on the next screenshot:


This were last new features that were planned to be implemented as part of my GSoC project. Thus, in the remaining days in August and according to the project schedule I'll concentrate on the outstanding bugs in Cantor and I'll talk about the bug fixes in the next post.

Cantor - GSoC2020 final post

Hello everyone, this is the sixth and the final post about the progress in my GSoC project. I want to present an overview of what was done i...