Editing User:Shainasabarwal/Openscad UI Brushup

From BRL-CAD

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 17: Line 17:
 
*Working in C, C++, Wt(www.webtoolkit.eu) for last 2 years. I, in a team of 4 students developed a blogging engine in Wt. It is released under open source GPL license and the code is at https://github.com/GreatDevelopers/LBE
 
*Working in C, C++, Wt(www.webtoolkit.eu) for last 2 years. I, in a team of 4 students developed a blogging engine in Wt. It is released under open source GPL license and the code is at https://github.com/GreatDevelopers/LBE
 
*Deeply interested in front-end development. Recently developing a wordpress theme for our blog cpp-tricks.com where C++11 will be promoted and different tutorials will be provided for Fundamentals of C++, Wt, Qt, boost. Screen Shots of the theme are: http://bit.ly/PDdNfq
 
*Deeply interested in front-end development. Recently developing a wordpress theme for our blog cpp-tricks.com where C++11 will be promoted and different tutorials will be provided for Fundamentals of C++, Wt, Qt, boost. Screen Shots of the theme are: http://bit.ly/PDdNfq
*I am an active member of Linux User Group, Ludhiana where the students are made aware about the open source technologies and motivated to contribute in them.
+
*I am an active member of Linux User Group, Ludhiana where the students are made awared about the open source technologies and motivated to contribute in them.
 
*I am quite familiar with git. Commit my work on git using github account(github.com/shaina7837).
 
*I am quite familiar with git. Commit my work on git using github account(github.com/shaina7837).
  
Line 46: Line 46:
 
hide widgets and use Qt size policy to keep the editor expanding when
 
hide widgets and use Qt size policy to keep the editor expanding when
 
viewer is hidden and vice versa.
 
viewer is hidden and vice versa.
 +
 +
'''Ribbon UI:- '''
 +
Finding the right menu through the menubar is a hectic task for the
 +
user. It takes lots of clicks and hassle going through various menus
 +
and submenus to just say change the font-size. So Instead of menu
 +
Based interface, icons are provided directly on the editing area so
 +
that user does not have to waste time digging inside menus to do a
 +
simple task.
 +
I am not talking here about Microsoft's Ribbon UI specifically (as it
 +
has some patent issues that we may not want to be involved in) but
 +
about the concept of having Icons at top instead of multi-level menus.
 +
Other examples of Ribbon UI can be found in
 +
http://qt-project.org/forums/viewthread/4214
 +
We can even use the QtRibbon library for creating Ribbon widgets or
 +
just create buttons on the top to provide easy access.
 +
[Will upload a mockup for this, please stay tuned]
  
 
'''Better Code Editor Colors:- '''
 
'''Better Code Editor Colors:- '''
Line 58: Line 74:
 
* Solarized http://ethanschoonover.com/solarized
 
* Solarized http://ethanschoonover.com/solarized
 
Can add more if required by developers.
 
Can add more if required by developers.
 +
 
This will require diving into highlighter.cc and adding more color themes.
 
This will require diving into highlighter.cc and adding more color themes.
[[File:improved code editor.png]]
 
 
'''Custom designed toolbar:- '''
 
Finding the right menu through the menubar is a hectic task for the
 
user. It takes lots of clicks and hassle going through various menus
 
and submenus to just say change the font-size. So a custom designed toolbar will be designed and added to the application so that the icons which user like to use very often can be added to the toolbar. This way, it will provide ease to use and precious time of the user. Though this toolbar is designed with intention of not covering much space of the editor, still there will be option to hide this toolbar.
 
Qt has a class QStyle that will be used to develop this toolbar.
 
[[File:Custom designed toolbar.png]]
 
[[File:With Console.png]]
 
  
 
'''Better Model Colors:- '''
 
'''Better Model Colors:- '''
Line 74: Line 82:
 
rendered model. Currently, we can have figures in yellow and green
 
rendered model. Currently, we can have figures in yellow and green
 
color. That must have more options.
 
color. That must have more options.
[[File:Colored model.png]]
 
 
'''Other Editors Review'''
 
 
These are the editors we can integrate into OpenSCAD application and have a better user experience of programming.
 
 
http://www.riverbankcomputing.co.uk/software/qscintilla/intro
 
 
http://bellard.org/qemacs/
 
 
https://github.com/pasnox/qodeedit
 
 
One of these will be chosen and integrated according to the agreement of mentor and feedback of the community
 
 
'''Launching Screen'''
 
 
A get started window will be provided to ask the user, what is his next approach like the one we have in Qt Creator application. Different approaches can be
 
  
*Examples
+
'''Adding smart Indentation in code editor:- '''
*Get started tutorial
+
Identation is very important to the code readability. Almost any basic
*Open existing file
+
code editor would ident automatically when it encounters '{'.
*Create new project
+
Currently In editor.cc, we have functions indentselection( ) and
 +
unindentselection( ) which are used to provide indentation on
 +
selecting the option from edit menu. Every time going to Edit menu and
 +
clicking on indent option is vey tedious task. The indentation should
 +
be smart, like an enter after { should put an indent of '\t'
  
'''Code line numbers'''
+
This can be done via two approaches:-
An option will be provided in the menu to add line number before each line of the code.
+
* Built our own simple indentation mechanism or
 +
* Use a complete formatting library like http://astyle.sourceforge.net/
  
'''Error Highlighting'''
+
'''Code line numbers:- '''
The line having error will be highlighted along with the line number.
 
 
 
'''Better Console'''
 
Errors and warning will be shown in better way. Warning will also show line number with it.  A cross sign to hide the console will be on the console itself.
 
 
 
'''Export Dashboard'''
 
A separate dialog box will be provided to export the model in different file formats.
 
 
 
'''Code line numbers'''
 
 
An option will be provided in the menu to add line number before each
 
An option will be provided in the menu to add line number before each
 
line of the code.
 
line of the code.
  
'''Error Highlighting'''
+
'''Error Highlighting:- '''
The line having error will be highlighted along with the line numbers.
+
(Some doubts need to be cleared from mentor)
  
 
==MILESTONES==
 
==MILESTONES==
 +
 
'''Community Bonding Period'''
 
'''Community Bonding Period'''
 
* Talk to the community members
 
* Talk to the community members
 
* Get to know the code
 
* Get to know the code
  
'''Week 1(19th May)'''
+
'''Week 1(19 May)'''
*Get started and remove the bug given in issue [https://github.com/openscad/openscad/issues/408 #408]
+
*Get started and remove a bug
 
* Get comfortable with the code
 
* Get comfortable with the code
 +
* Allow users to use Ctrl+C to copy
  
'''Week 2(26th May)'''
+
'''Week 2/3(26 May)'''
* Take community feedback on the editors that can be integrated. (Given above in editors section)
+
* Make the editor beautiful
* Decide one editor and start working on integrating it with openscad.
+
* Add Color schemes to the code editor
 
+
* Give users to choose color schemes or make their own
'''Week 3(2nd June)'''
+
* Show Line numbers
*Improve on and integrate a good code editor.
 
  
 
'''Week 4(9 June)'''
 
'''Week 4(9 June)'''
* Read about color contrast, and theory about designing themes for code editors.
+
*Highlight errors and warnings.
* Add themes to the code editor, at-least three of the proposed themes. 'ZenBurn', 'Monokai' and 'Solarized'
 
* Give option to users to edit colors and addressing the issue [https://github.com/openscad/openscad/issues/643 #643]
 
  
 
'''Week 5(16 June)'''
 
'''Week 5(16 June)'''
* Add Better Highlighting and warnings.
+
*Make the View pane detatchable
* Work towards a better console,  line numbers are not shown correct even counts them from include files.
 
 
 
  
 
'''Week 6(23 June)'''
 
'''Week 6(23 June)'''
*Make the View pane detatchable as requested in issue
+
*Start working on menus
[https://github.com/openscad/openscad/issues/233 #233] and issue
 
[https://github.com/openscad/openscad/issues/451 #451].
 
*Add various views, and allow user to switch between them.
 
  
 
'''MID TERM EVALUATION'''
 
'''MID TERM EVALUATION'''
  
 
'''Week 7(30 June)'''
 
'''Week 7(30 June)'''
*Take community feedback on toolbar and start working on toolbar.
+
*Continue working on menus and start working on Ribbon
* Give an option to hide/show toolbar
 
  
 
'''Week 8(7 July)'''
 
'''Week 8(7 July)'''
*Add more navigational elements in both editor and viewer. (Expand, Detach etc.)
+
*Add Ribbon UI
*Ability to change themes from the toolbar.
 
 
 
'''Week 9(14 JuLy)'''
 
* Read color theory.
 
* Work on colors of the viewer.
 
* Add few color themes (after community feedback) to the viewer.
 
  
'''Week 10(21 July)'''
+
'''Week 9/10(14 JuLy)'''
* Create an export dashboard, where a single dialog box can be used to export to various formats as adressed in issue (https://github.com/openscad/openscad/issues/649 )
+
*Beautify the viewer.
 +
*Give more colors to it.
  
'''Week 11 (28 July)'''
+
'''Week 11(28 July)'''
* Create a first launch screen, where various examples made in openscad will be showcased.
+
*Add the auto-indent feature to code editor.
  
 
'''Week 12(4 August)'''
 
'''Week 12(4 August)'''
 +
*Icons to change formatting (font-size, font-family) on code editor
 
*Do heavy testing and clean the code.
 
*Do heavy testing and clean the code.
*Time to make up for missed milestone (if any).
 
  
 
'''Week 13(11 July)'''
 
'''Week 13(11 July)'''
Line 194: Line 169:
 
===Email/Mailing List===
 
===Email/Mailing List===
  
My email address is iamshainasabarwal@gmail.com, I have subscribed to both brlcad and openscad mailing lists. I have been in contact through these mailing lists with other community members.
+
My email address is shainasabarwal@gmail.com, I have subscribed to both brlcad and openscad mailing lists. I have been in contact through these mailing lists with other community members.
  
 
===Real-Time Contact===
 
===Real-Time Contact===
Line 246: Line 221:
 
designing, so I can understand well what a user can expect while
 
designing, so I can understand well what a user can expect while
 
working with these softwares.
 
working with these softwares.
 +
<will write here about patch after submission>
  
 
==Future scope==
 
==Future scope==

Please note that all contributions to BRL-CAD may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see BRL-CAD:Copyrights for details). Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)