GSoC/2020/StatusReports/NikitaSirgienko: Difference between revisions
No edit summary |
No edit summary |
||
Line 34: | Line 34: | ||
I have added zoom bar, which make zoom changing more convenient. Before, Cantor have had possibility for changing zoom, but method of doing it not very convenient for user - user could increase/decrease zoom on 10% and reset zoom to default via menu actions. Now, user have a zoom bar, which will show current zoom (in percents), will have set of predefined zoom values and allow set manually set need zoom level (right away, without repeatedly increasing zoom level by 10% via menu to satisfactory zoom level). | I have added zoom bar, which make zoom changing more convenient. Before, Cantor have had possibility for changing zoom, but method of doing it not very convenient for user - user could increase/decrease zoom on 10% and reset zoom to default via menu actions. Now, user have a zoom bar, which will show current zoom (in percents), will have set of predefined zoom values and allow set manually set need zoom level (right away, without repeatedly increasing zoom level by 10% via menu to satisfactory zoom level). | ||
[[File:C8RKd60 75 mod.png|center]] | [[File:C8RKd60 75 mod.png|center]] | ||
Plog post about it: https://cantorgsoc2020.blogspot.com/2020/06/cantor-zoom-widget-and-tooltips.html | |||
=== Adding tooltip notes in settings for better UX === | |||
I have added tooltips in settings, which solves a problem of not very clear sense of some settings. Of course, there are explanations of parameters, but for better fitting in window size, explanations are reduced (checkbox with name in three sentences is terrible for user's experience). For example, there is a setting with allow enable/disable automatically recalculation of entries are placed below entry, evaluated by user. In the settings windows the setting named as "Reevaluate Entries automatically", but obviously only this information not enough for understanding, how this setting works. And because of that, more clear explanation placed in tooltip of this setting. | |||
[[File:WaNHpx2.png|center]] | |||
Plog post about it: https://cantorgsoc2020.blogspot.com/2020/06/cantor-zoom-widget-and-tooltips.html | |||
=== Improved the handling of external packages in plot2d and plot3d extensions === | |||
In more specific, the problem with plots extensions consists of two parts. First, on this moment Cantor assumes, that the needed external package installed in system. But if this is not true, Cantor don't notify the user about this situation, but just don't work. So, for example, for using plots extensions (and embedded graphics too) in Julia backends, user needs installed GR package, but if the the package don't installed (because Cantor never mentions this dependency), plots in Julia backend just won't work without any clues for user, why it is happens. Second, as said above, Cantor assumes, that needed external package installed, but it also assumes, that this is particular external package. For example, Python backends assumes, that external package matplotlib installed, but there are many others graphics packages, for example, Python user can use seaborn package and in this case Cantor won't work properly. Also, part of this problem, that user have no choice, which graphic package will be used by Cantor. | |||
[[File:JuliaGrWarning.png|center]] | |||
[[File:PythonMultiplePlots.png|center]] | |||
[[File:PythonPlotly.png|center]] | |||
Plog post about it: https://cantorgsoc2020.blogspot.com/2020/06/cantor-zoom-widget-and-tooltips.html | Plog post about it: https://cantorgsoc2020.blogspot.com/2020/06/cantor-zoom-widget-and-tooltips.html |
Revision as of 12:18, 27 August 2020
Extend the usability and feature set of Cantor
Cantor is a KDE application providing a graphical interface to different open-source computer algebra systems and programming languages, like Octave, Maxima, Julia, Python etc. The main idea of this application is to provide one single, common and user-friendly interface for different systems instead of providing different GUIs for different systems. The details specific to the different languages are transparent to the end-user and are handled internally in the language specific parts of Cantor’s code.
Though the code base of Cantor is already in quite good shape, there is still room for improvements with respect to the missing features, user experience and functional issues. Given the existence of similar open-source applications like wxMaxima, Jupyter, Octave GUI but also commercial like Mathematica, it is important to address all issues and to add missing features to become competitive with other applications or even be ahead of them.
The idea of this project is not to implement one single and big "killer feature" but to address several smaller and bigger open and outstanding topics in Cantor.
Project mentor: Alexander Semke
Project log
Collapse/uncollapse all entries and remove all entries results
I have added this minor improvement first. It was easy, because Cantor already have a feature for hiding/showing/removing results of executed entry.
Plog post about it: https://cantorgsoc2020.blogspot.com/2020/06/cantor-new-features.html
Comment/uncomment (from execution) cells (T12843 on phabricator)
I have added possibility to Excluding some entries from execution useful for user, for example, when the user experiments with code and want to understand, which variant of code better. Exclusion of entries is more easy for user, what commenting parts of code. Especially, if language of the backend don't allow multiline commenting (for example, in python users comment multiline code via multiline strings). Excluding action can be done from entry context menu, which appears on right mouse button click.
![](/images.community/c/ca/Exclude_from_execution.png)
Plog post about it: https://cantorgsoc2020.blogspot.com/2020/06/cantor-new-features.html
Possibility for adding horizontal line entry
I have added possibility for adding horizontal line entry. It is a minor, but useful feature, which allow add visible horizontal line in worksheet. It will be useful for visual separation of worksheet.
![](/images.community/2/2c/HorizontalLine_1.png)
![](/images.community/0/08/HorizontalLine_Example_2.png)
Plog post about it: https://cantorgsoc2020.blogspot.com/2020/06/cantor-new-features.html
Zoom bar (for more easy zoom changing)
I have added zoom bar, which make zoom changing more convenient. Before, Cantor have had possibility for changing zoom, but method of doing it not very convenient for user - user could increase/decrease zoom on 10% and reset zoom to default via menu actions. Now, user have a zoom bar, which will show current zoom (in percents), will have set of predefined zoom values and allow set manually set need zoom level (right away, without repeatedly increasing zoom level by 10% via menu to satisfactory zoom level).
![](/images.community/d/d4/C8RKd60_75_mod.png)
Plog post about it: https://cantorgsoc2020.blogspot.com/2020/06/cantor-zoom-widget-and-tooltips.html
Adding tooltip notes in settings for better UX
I have added tooltips in settings, which solves a problem of not very clear sense of some settings. Of course, there are explanations of parameters, but for better fitting in window size, explanations are reduced (checkbox with name in three sentences is terrible for user's experience). For example, there is a setting with allow enable/disable automatically recalculation of entries are placed below entry, evaluated by user. In the settings windows the setting named as "Reevaluate Entries automatically", but obviously only this information not enough for understanding, how this setting works. And because of that, more clear explanation placed in tooltip of this setting.
![](/images.community/5/54/WaNHpx2.png)
Plog post about it: https://cantorgsoc2020.blogspot.com/2020/06/cantor-zoom-widget-and-tooltips.html
Improved the handling of external packages in plot2d and plot3d extensions
In more specific, the problem with plots extensions consists of two parts. First, on this moment Cantor assumes, that the needed external package installed in system. But if this is not true, Cantor don't notify the user about this situation, but just don't work. So, for example, for using plots extensions (and embedded graphics too) in Julia backends, user needs installed GR package, but if the the package don't installed (because Cantor never mentions this dependency), plots in Julia backend just won't work without any clues for user, why it is happens. Second, as said above, Cantor assumes, that needed external package installed, but it also assumes, that this is particular external package. For example, Python backends assumes, that external package matplotlib installed, but there are many others graphics packages, for example, Python user can use seaborn package and in this case Cantor won't work properly. Also, part of this problem, that user have no choice, which graphic package will be used by Cantor.
![](/images.community/d/d2/JuliaGrWarning.png)
![](/images.community/4/42/PythonMultiplePlots.png)
![](/images.community/a/ab/PythonPlotly.png)
Plog post about it: https://cantorgsoc2020.blogspot.com/2020/06/cantor-zoom-widget-and-tooltips.html
Summary
Done
Features
- Improved the handling of external packages in plot2d and plot3d extensions (T9475 on phabricator).
- Possibility for adding horizontal line entry
- Added tooltip notes in settings for better UX (T12492 on phabricator)
- Collapse/uncollapse all entries (T12843 on phabricator) and remove all entries results.
- Comment/uncomment (from execution) cells (T12843 on phabricator).
- Possibility for adding horizontal line entry
- Improve Cantor’s panels performance and usability.
- Zoom bar (for more easy zoom changing).
- Adding a new panel for file browsing.
- Possibility to organize worksheet structure (T12844 on phabricator).
- Copy/paste image into entries (for example, markdown entry) or as entries (for example, pasting image as ImageEntry).
Bug fixes
- Fixed tabulation behaviour in Command Entry (bug №418358).
- Fixing problems with portability Image Entry
- Better information from variable manager (bug 409137).
- Fixing wrong highlighting in R backend: the backend doesn’t distinguish system functions and system constants.
In Progress
Bug fixes
- Fixing Julia interrupt code: it shouldn’t work as backend restart.
- Fixing color problems on print, when using a theme with non-default colours
- Fixing strange problems with plots in Octave backend (bug №408335).