- 1 Community Bonding Period (May 6 - May 27)
- 2 Coding Period (May 27 - Aug 19)
- 3 Week 1 (May 27 - June 2)
- 4 Week 2 (June 3 - June 9)
- 5 Week 3 (June 10 - June 16)
- 6 Week 4 (June 17 - June 23)
- 7 Week 5 (June 24 - June 30)
- 8 Week 6 (July 1 - July 7)
Community Bonding Period (May 6 - May 27)
Discussed about sharing of mock-up code and prototypes with mentor
Developed a prototype for gui implementation of multi-tab feature. Prototype1 Code
Implementing prototype in openscad codebase
Implemented the prototype in openscad codebase. Made PR #2949. This pr will act as a sandbox for prototyping and sharing of coding with mentor. Discussion about integrating pre-available editing features in all tabs
Implemented the comment feature using signal dispatcher as suggested by mentor. Made the pr.
Studying the openscad codebase to look for implementation of saving feature for each tab.
Implemented the feature of saving of tab contents in prototype code. Main Window name updates on switching tab.
Discussed about correctness of signal dispatcher.
Implemented signal dispatcher in a separate class. Made the pr. Discussed about implementation details of multi-tab feature. Decided to implement the feature in a separate TabManager class.
Studying the openscad codebase for feasibility of implementation of TabManager class.
Studying openscad codebase.
Made a prototype project with similar gui features as multi-tab. Implemented those features using with a separate TabManager class as suggested by mentors. Prototype2 Code
Implement basic gui(opening and closing of tabs) of multi-tab in openscad code. The feature in implemented in a separate TabManager class. Made the pr #2955
Coding Period (May 27 - Aug 19)
Week 1 (May 27 - June 2)
Discussed about possibility and various method of integration of Simple and QScintilla Editor with multi-tab editor.
Implemented the code for integration of pre-available editor features with multi tab. There are some issues that need to be handled like checking the undo state, highlighting of error in multiple files.
Corrected the updation of undoState and windowModified. Now these states behave correctly for multi-tab environment. Realised that stl exports and enable status of parameterWidget are not behaving correctly.
Corrected the behaviour of stl exports and enable status of parameterWidget. Running some basic tests to check the correctness of work done till now.
Discussed with mentor about behaviour of Customizer widget and animation on changing tabs. Implemented those behaviour in codebase of openscad. Pushed the commits to pr #2955
Run basic tests on gui implemented so far. Discovered that Find, Find and Replace are not behaving correctly for multi-tab.
Week 2 (June 3 - June 9)
Correcting the behaviour of Find, Find and Replace for multi-tab
Implemented the correct behaviour of Find, Find and Replace for multi-tab. Pushed commit 23129ba to pr #2955. Found a bug related to previous implementation of Find. Raised issue #2962. Discussed about implementing save feature for multi-tab and naming of new tabs and tabs that have same file names.
Studying the openscad codebase for implementation of save features in multi-tab.
Working on implementing the open feature for multi-tab.
Removed the option for single file QScintilla Editor. Instead now multi-tab editor will not show tabs in case of single tab, effectively giving the feeling of single file QScintilla Editor. Implemented this feature in multi-tab editor. Pushed commit d594980 to pr #2955
Continuing the work to implement open feature in multi-tab.
Completed the work of implementing Open(File menu option, Recent Files, Examples), Save, Close feature for multi-tab. Pushed the corresponding commits to pr #2955.
Week 3 (June 10 - June 16)
Started testing of code submitted.
Testing and cleaning of code.
Done cleanup of code. This includes renaming variable/function, removing redundant function, removing mdi checkbox from Preferences/Advanced, correcting implementation of reload, prevention of double emission of currentChanged signal for first tab. Pushed commits 0e92308 and cdaee5e in pr #2955.
Implemented the Save All feature. Pushed commit b0c95e8 in pr #2955. Corrected the enabling of Parameter Widget on file load and opening of Recent Files and examples in empty tab. Pushed commits 35e3fe0 and acc3123 corresponding to the changes. Discussed with mentor about the idea of Tab Header spanning the whole window.
Working on Tab Header spanning whole window length.
Week 4 (June 17 - June 23)
Testing multi tab implementation
Continuation of testing of multi-tab implementation. Looking and exploring various methods for auto completion feature.
Posted in mailing group inviting users for testing of multi-tab feature. Going through the codebase at pr #2889 to understand details of auto completion feature.
Looking at web resources available to understand auto-completion in qscintilla.
Made a new pr #2975 implementing auto-completion of openscad keywords. The commit is bdc8e10. Also pushed commit 7cda02a to enable qscintilla in travis check. Discussed with mentor about various options of providing keyword list for auto-completion.
Week 5 (June 24 - June 30)
Checking the plausibility of making keyword list for auto-completion at Builtin class.
Discussed with mentor about implementation details for auto-completion keyword list in Builtin class.
Working on html formatting of calltips.
Week 6 (July 1 - July 7)
Made a separate Keyword class for storing information about keywords. Pushed commit 1eefb4a in pr #2975. Checked about possibilty of html formatted string for calltips. It seems that QScintilla does not support formatting of strings in html form.
Working on implementation of mentor suggested approach.
Applying the approach for primitives keywords.
Completing the primitive keyword autocompletion.