User Tools

Site Tools



* Home

Documentation & help

LibreCAD Community

Help on DokuWiki

Temporary shorcuts


GSoC 2020 Dev Log

Community Bonding Period (May 4th - June 1)

  • Discussed and developed a proof of concept for the customizable toolbar.
  • Mentors provided me accounts for wiki and blog.
  • Reading and understanding the program flow of the lua ui scripts.
  • Set up account info, dev log and blog with the help of mentors.

09 May 2020

  • Added basic MainWindow class containing CadMdiChild, Layers, CliCommand, Toolbar and Select tools.

10 May 2020

  • Updated the toolbar class for basic initialization, attaching select tools.

11 May 2020

  • Shifted GUI related connect calls from lua code to MainWindow class, as well input trigger connections.

12 May 2020

  • Replaced luaInterface::qtConnect calls with actual Qt connect calls.
  • Moved command list from lua to CliCommand class, along with a few other changes.
  • Replaced menu luaConnect calls with temporary API function call.

13 May 2020

  • Toolbar manual button creation in lua replaced with temporary API function call.
  • Removal and refactoring of redundant lua code.

14 May 2020

  • Finished removal and refactoring of id related code since window id is not required anymore.
  • Added WindowManager class which will hold a list of window instances and have the new and open functions.

15 May 2020

  • Feedback from mentors regarding new entry point for lua scripts.
  • Moved UI button connect calls from their UI lua files to each of the tool's lua files, so that each operation can connect the button in it's initialization function.
  • Shifted save and saveAs slots from lua to C++.

16 May 2020

  • Removed init.lua as lua script execution start point.
  • Lua folders are now scanned for files and run, after which init function in each operation is called which adds and connects buttons/registers commands.
  • Removed all lua files in ui folder except for operations.lua

17 May 2020

  • Began work on automatic generation of operation buttons by using operation properties.
  • Added support for command line, menu buttons and toolbar buttons.

18 May 2020

  • Added command line list support, toolbar group on the basis of file location.
  • Added operations icon property support.
  • Shifted remaining global functions from operations.lua to C++.
  • Removed lua UI folder completely.

19 May 2020

  • Added support for method wise toolbar icons in operation properties.

20 May 2020

  • Attempted to make the unit tests run locally on my pc, ran into some issues with gtest,

21 May 2020

  • Added WindowManager unit tests, updated old unit tests to work with new changes.
  • Added MainWindow unit tests.

22 May 2020

  • Added few more MainWindow unit tests.
  • Refactored operations related code in luaInterface.
  • Created PR.

23 May 2020

  • Did not do anything related to the project.

24 May 2020

  • Began work on Menu part of the Lua GUI API.
  • Added Menu class.

25 May 2020

  • Added menu and menuitem class
  • Changed QMenu widgets to Menu class in ui file
  • Ran into some issues regarding replacing qaction widgets.

26 May 2020

  • Solved previous day's issues, replacement of qaction with menuitem works.
  • Added callbacks list and few more functions for menu and menuitem class.

27 May 2020

  • Added few more Menu API functions.
  • Added menu positioning and fixed bug in findMenu function.

28 May 2020

  • Added menu item positioning.
  • Added more function overloads for Menu API operations.

29 May 2020

  • Added support for menu inside menus.

30 May 2020

  • Added menu item unit tests.
  • Restricted menu items from having same label on the same level.
  • Attempted disconnection of lua function slot, ran into some issues.

31 May 2020

  • Spent some time debugging it, more weird issues. Decided to put named callbacks on hold and add unit tests first.
  • Added menu unit tests.
  • While adding unit tests, realized issue with updation of positions on removing menu.

Coding Period - I (June 1 - July 3)

01 June 2020

  • Fixed remove function issues.
  • Added more menu unit tests.
  • Added named callbacks and ability to delete callbacks.
  • CliCommand GUI API functions added.

02 June 2020

  • Added CliCommand API unit tests.
  • Started Layers GUI API

03 June 2020

  • Added Layers GUI API functions
  • Added few Layers API unit tests

04 June 2020

  • Added ToolbarButton class
  • Added ToolbarGroup class

05 June 2020

  • Updated and replaced toolbartab functions
  • Updated operation icon loading in luainterface
  • Added few more toolbar gui functions

06 June 2020

  • Updated and changed toolbar class functions.
  • Added remaining toolbar gui api functions.

07 June 2020

  • Attempted to solve issues with Qt and Visual Studio.

08 June 2020

  • Shifted button connect function to toolbargroup class
  • LuaQObject bug causing issues.

09 June 2020

  • Fixed luaqobject bug
  • Moved snap button initialization to after script loading to avoid issues.

10 June 2020

  • Add toolbar and toolbar tab unit tests.
  • Added toolbar group and toolbar button unittests.
  • Changed menu item callback connection to use signals and slots.

11 June 2020

  • Replaced static and dynamic casts with qobject casts, qt crashes have stopped.
  • Named callbacks and remove callback added to toolbar button.
  • Renamed some api functions to adhere to coding style.

12 June 2020

  • Added back luascript widget.
  • Enabled changing of number of group columns for toolbargroup.

13 June 2020

  • Fixed luascript bug.
  • Added OperationLoader class.
  • Callback calling is now done directly instead of using luaConnect.
  • Removed LuaQObject class and Qt related code in luainterface.

14 June 2020

  • Renamed qtbridge to guibridge.
  • Removed qt related code in guibridge.

15 June 2020

  • Began work on GUI Dialog.
  • Added dialog widget, InputGUI class.
  • Added TextGUI, ButtonGUI and ButtonGroupGUI class.

16 June 2020

  • Added checkbox, radiobutton, radiogroup, horizontalgroup widgets.
  • Added Coordinate GUI widget.

17 June 2020

  • Added angle widget.
  • Added slider and combobox widget.
  • Added number widget and updated widgets to allow retrieving of values.

18 June 2020

  • Added finish callback functionality of dialog box retrieving all values in a lua table.
  • Added keys for widgets added to dialog box.

19 June 2020

  • Allow selection of coordinate points for coordinate widget by clicking on the point.

20 June 2020

  • Added color picker widget.
  • Added entity picker widget.
  • Added few more input gui unit tests.

21 June 2020

  • Used visitor design pattern to resolve entity determining issue.
  • Added horizontal group unit test.

22 June 2020

  • Fixed menu positioning bug and entity picker bug.
  • Created PR
  • Fixed issues on compiling through gnu compiler that were not showing up in msvc.

23 June 2020

  • Added layer unit tests as they were less according to the coverage report.
  • Began work on customizable toolbar.

24 June 2020

  • Worked on GUI for customize toolbar widget.
  • Updated the drag and drop functionality.

25 June 2020

  • Changed layout and added parent tabs for customize widget.
  • Updated the customize widget.

26 June 2020

  • Added delete functionality for customize widget.
  • Started integrating with librecad.

27 June 2020

  • Shifted widget classes from qtcreator to librecad.

28 June 2020

  • Updated customize widget classes for proper initialization.
  • Few changes in the drag model.

29 June 2020

  • Button loading and proper handling of duplicate icons in the customize widget,
  • Remove button added to tabs and groups in the widget.
  • Implemented basic re-addition of buttons on finish.

30 June 2020

  • Added clone function for toolbar buttons.
  • Fixed re addition of buttons.

1 July 2020

  • Partly implemented reading of toolbar data file.

2 July 2020

  • Added reading of toolbar data from xml file through custom parsing code.
  • Icon map shifted to toolbar class from iconlist so that it doesn't get overwritten.

3 July 2020

  • Replaced custom parsing code with qxmlstreamreader and writer.

Coding Period - II (July 3rd - July 31)

04 July 2020

  • Added UI settings class and writing to ui settings file.

05 July 2020

  • Added default settings to ui settings.
  • Added default and load toolbar file buttons.

06 July 2020

  • Created PR for customizable toolbar.
  • Added documentation for MainWindow menu and for menu class.

07 July 2020

  • Documentation for Menu classes added.
  • Documentation for toolbar classes added.

08 July 2020

  • Documentation for layers and clicommand classes added.
  • Documentation for dialog widget class added.

09 July 2020

  • Documentation for all the input gui widgets added.

10 July 2020

  • Documentation for dialog example added.
  • Finished up the documentation for gui api.
  • Made toolbar xml schema.

11 July 2020

  • Searched for a good library for xml/json parsing and schema validation.
  • Started shifting settings from xml to json.

12 July 2020

  • Settings shifted from xml to json using rapidjson library.
  • Settings json schema validation added.

13 July 2020

  • Began work on the property editor.
  • Added property editor class.

14 July 2020

  • Abstracted away input gui containing code to the inputguicontainer class.
  • Faced a few bugs with entity selection.

15 July 2020

  • Fixed coordinate gui bug in property editor.
  • Finally fixed bug with entity selection, properties of already selected entities get retained.

16 July 2020

  • Added property visitor class.
  • Tried out different ways of setting and retrieving property data.

17 July 2020

  • Overrode copy function of entity builder classes for proper copying of entities.
  • Added a variant type for retrieving property values from entities.

18 July 2020

  • Removed property visitor class, opting for setProperties method instead.
  • Changed creation of property widgets.
  • Added properties for a few classes like line,circle,ellipse,arc.

19 July 2020

  • Added group boxes to seperate entity properties.
  • Added spline, polyspline and all dimension properties.

20 July 2020

  • Added List Input GUI Class.

21 July 2020

  • Added Plus and Minus button functionality for List GUI widget.
  • Added control points property widget for spline entity.

22 July 2020

  • Added point highlighting for list gui widget.
  • Created LWVertexGroup class for holding polyline vertices in the properties widget.

23 July 2020

  • Added LWVertex list for the polyline entity properties.
  • Fixed few bugs related to lwvertex and added doxygen comments.
  • Fixed entity removal and drag points width bugs.

24 July 2020

  • Replaced group box with tree widget in the property editor.

25 July 2020

  • Fixed minor bugs.
  • Created PR and resolved merge conflicts.

26 July 2020

  • Tried to figure out seg fault on travis build but not on pc.
  • Started refactoring button and checkbox part of input gui.

27 July 2020

  • Refactored some input gui code (relating to button and checkbox gui)
  • Changes to saving of customize toolbar widget (added ok,close and ask user on close)
  • Merged and resolved merge conflicts with master.

28 July 2020

  • Fixed minor arc bug, added point properties.
  • Added copy paste functionality for input guis through context menu.

29 July 2020

  • Added widget titlebar and fixed for proper expansion/collapse of dock widget.
  • Add column to make property editor table-like, also added some styling.
  • Attempted to fix build constants bug with help from mentors.

30 July 2020

  • Fixed build constants bug.
  • Added few spacing and styling changes for property editor.
  • Fixed proper resizing of property editor on being closed using widget toolbar.

31 July 2020

  • Started work on context menu.

Coding Period - III (August 1st - August 31)

01 August 2020

  • Added context menu manager class.
  • Added loading of basic operation to context menu.

02 August 2020

  • Changed initialization of context menu manager to use a static list of instances instead.
  • Added few commands like last command, undo, redo, select options etc.

03 August 2020

  • Divided context menu into active, inactive and selected states.
  • Fix snap options to update changes on both toolbar and context menu.
  • Fix undo bug.

04 August 2020

  • Added meta info property to property editor.
  • Added lineselect class.
  • Added layer combo box to property editor.

05 August 2020

  • Added command specific context menu commands.
  • Added properties for transition from current command to other commands.
  • Added context menu transitions for line operation.

06 August 2020

  • Added context menu transitions for circle and few other operations.
  • Added contextMenuOptions for other commands like arc and line switching in polyline.
  • Added PAN operation to pause the current active operation to allow the user to PAN.

07 August 2020

  • Fixed dock widget movement bug.
  • Added auto adjusting of titlebar between vertical and horizontal depending on dock position.

08 August 2020

  • Nothing done on this day.

09 August 2020

  • Changed toolbar data saving method to use rapidjson document.
  • Refactored ui settings code to make it easier to add other settings to the json file.

10 August 2020

  • Added saving of dock proportions for the dock widgets.

11 August 2020

  • Minor fix in unit tests as new menu item is added.
  • Added ArcWithSCE, ArcWithSCL and ArcWithSCA functions to arcoperations.

12 August 2020

  • Added ArcWithCSA and ArcWithSCL.
  • Added context transitions for these arc operations.

13 August 2020

  • Added ArcWithSEA for arcoperations.

14 August 2020

  • Added entity serialization to JSON
  • Entity Property serialization to JSON.

15 August 2020

  • Deserialization of json properties on pasting.
  • Added ArcWithSER and ArcWithSEC

16 August 2020

  • Add CCW,switch direction context menu command for toggling CCW in arc/switch direction.
  • Created PR for arc_operations
  • Entity creation using deserialized json data.

17 August 2020

  • Keyboard shortcuts for copy/paste.
  • Added copying of polyline vertices.
  • Fix spline and dimensions bug while copying.

18 August 2020

  • Added TextBuilder class

19 August 2020

  • Added textoperations lua file
  • Added entity properties for text.

20 August 2020

  • Added text dialog widget and class
  • Text dialog initialization

21 August 2020

  • Updated TextBuilder class to add more properties
  • Dialog close transition to text operation
  • Settings of text values through dialog.

22 August 2020

  • Add fonts combo box
  • Fetching of font from font family in painter

23 August 2020

  • Loading of fonts from resources/fonts folder
  • Added menu item and toolbar icon for text
  • Added context menu transitions for text operation

24 August 2020

  • Wrote phase 3 blog post.

25 August 2020

  • Added symbols list to text dialog.
  • Wrote final report blog post.

26 August 2020

  • Fix dimension modification bug.
  • Implemented bounding box function for dimensions.

27 August 2020

28 August 2020

  • Added writing and reading of mtext to dxf.

29 August 2020

  • Added alignment box with icons to replace combo boxes.
  • Fix text align position bug.

30 August 2020

  • Added underline and strikethrough for text in lcvtext,text and builder.
  • Added underline and strikethrough options in text dialog.

31 August 2020

  • Final submisison of gsoc report.
gsoc/log2020.txt · Last modified: 2020/09/02 09:11 by jedi18