Friday, December 1, 2023
Home3D ModelingLibreCAD 3 GUI Revamp – GSoC 2020 Remaining Report

LibreCAD 3 GUI Revamp – GSoC 2020 Remaining Report

That is my last report for GSoC 2020. I’ve completed all my duties specified by my proposal and in addition managed to get a couple of extra duties achieved. I’d prefer to thank my mentors Florian and Armin for his or her super assist and swift reply to my doubts. I’d additionally prefer to thank members of the neighborhood like Rupak Bajgain, Guruprasad Rane and flywire for his or her assist and recommendation.

Main PRs :-

Different PRs :-

Vital Hyperlinks :-


Temporary description of labor achieved

GUI shift from Lua to C++

  • The GUI has been solely shifted from lua to C++.
  • Created MainWindow class, up to date layer,toolbar,clicommand lessons.
  • All qt associated code faraway from qtbridge, now renamed to lua bridge.
  • All lua ui recordsdata eliminated.


  • Added Lua GUI API to permit lua plugin scripts to work together with the gui parts just like the mainwindow, toolbar buttons, menu buttons, layer, clicommand and so on.
  • Added many dialog widget GUI lessons, which permit the person to kind his personal gui widget for the person utilizing a plugin.
  • Lua GUI API Documentation added to the wiki.

Unit Exams

  • Up to date unit checks for the widgets like layers, clicommand, toolbar and mainwindow unit checks.
  • Added Lua GUI API unit checks

Operation Loading

Loading of operation and era and connection of the proper buttons, menu gadgets, cli instructions, context operations and so on occur routinely through the use of the properties specified at first of every lua operation file, making it simpler so as to add new lua recordsdata while not having to alter code elsewhere

Customise Toolbar Widget

  • Means to customise and order the toolbar buttons within the person’s desired order
  • Order might be saved and loaded by the person (saved in json format)
  • Added ui settings json file which shops ui settings and is validated by a schema on loading.

Property Editor

  • Property editor added which permits the person to alter the properties of the created entities, the change in properties updates the entity with new properties instantaneously.
  • Makes use of the enter gui widgets developed earlier within the lua gui api.
  • Additionally comprises meta information and layer properties.

Context Menu

  • Context menu might be opened by proper clicking, it has three states, energetic,inactive and chosen.
  • Can simply entry create and modify instruments utilizing the context menu
  • Incorporates undo, final command, copy, paste and so on.
  • Permits transition between totally different strategies whereas creating an entity.


  • Copying and pasting of entities amongst totally different librecadv3 home windows.
  • Few lacking arc operations applied.
  • Added textual content operations lua file and a textual content dialog which permits including extra custom-made textual content with totally different type and font.

What I’ve realized

GSoC at librecad has been an excellent studying expertise for me and I had a variety of enjoyable engaged on the venture. A few of the issues I’ve realized

  • Gained confidence in writing C++ object oriented code, as effectively realized the significance of writing feedback and readable code.
  • Learnt lua whereas making ready and dealing on my gsoc venture.
  • Learnt the way to work with instruments like CMake, which I used to be initially intimidated by however am now pretty comfy with.
  • Learnt the significance of approaching issues correctly, like how florian identified that utilizing the customer design sample in a sure drawback was higher than the strategy I used to be going for.
  • Gained confidence in utilizing git and github, studying the way to work with branches, squash commits, merge and so on.
  • Learnt the way to use the Qt framework and about qt’s sign and slots system, mannequin/view programming and so on.
  • Significance of discussing the duty and drawback, as an alternative of diving head first into implementing it, and to additionally take into consideration the person’s perspective.
  • Realized the way to correctly debug and monitor down issues.

I used to be fortunate to have nice mentors to assist information me by means of the summer time, Florian has been extraordinarily useful and responsive from the very begin once I began contributing on the finish of December. Armin too has been very useful and made the organising of the required accounts for wiki and the weblog a breeze.

Thanks for taking the time to learn my last report, I’d once more prefer to thank everybody concerned for his or her assist and recommendation. GSoC was an excellent expertise and has helped me acquire confidence to proceed contributing to LibreCAD and different open supply organizations sooner or later.

Akhil Nair



Please enter your comment!
Please enter your name here

Most Popular

Recent Comments