User Interface Brushup Brief Description: The present Openscad user interface is just a window splited into three parts- a code editor, rendered object and a console. Under this project, interface will be brushed up by removing existing bugs and adding new features.
This project aims to make the User Interface of the software OpenSCAD elegant. OpenSCAD is a great software for making 3D solid models and parametric designs but its user interface is lacking interesting features. The present menu is little messy. The code editor and 3D interaction requires proper detailing which increase the scope of the software to a higher level.
Understanding the various requirements of the users of this software, following features will be added under the scope of this project.
Full Screen Editing and Viewing (Detatchable View Pane):- It would be nice if we'll be able to detach the render window and make it fullscreen. Currently we can hide the editor and console to get the output at full screen, but there is no option to detach it from the main window. The http://qt-project.org/doc/qt-4.8/qdockwidget.html QDockWidgetcan be used to detatch from the main window. For Full screen distraction free code editing or viewing we can also hide widgets and use Qt size policy to keep the editor expanding when viewer is hidden and vice versa.
Better Code Editor Colors:- This option should be added in preferences to change the color of the syntax. Currently we can change the font and size of coding syntax but not the color. For long terms coding, the color scheme we chose has a direct effect on strain that our eyes suffer. A low contrast theme is advised but at the end it comes to personal taste. So I propose to add following color schemes in code editor along with an option to choose whatever color scheme the user desires
Can add more if required by developers.
This will require diving into highlighter.cc and adding more color themes.
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.
Better Model Colors:-
ALso we can change the color of output window from prefrences but
options are less .There should be different themes for colors of
rendered model. Currently, we can have figures in yellow and green
color. That must have more options.
Adding smart Indentation in code editor:- Identation is very important to the code readability. Almost any basic code editor would ident automatically when it encounters '{'. 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'
This can be done via two approaches:-
Code line numbers:- An option will be provided in the menu to add line number before each line of the code.
Error Highlighting:- The line having error will be highlighted along with the line numbers.
Community Bonding Period
Week 1(19th May)
Week 2(26th May)
"Week 3(2nd June)
Week 4(9 June)
Week 5(16 June)
Week 6(23 June)
MID TERM EVALUATION
Week 7(30 June)
Week 8(7 July)
Week 9(14 JuLy)
Week 10(21 July)
"Week 11 (28 July)
Week 12(4 August)
Week 13(11 July)
Week 14(18 July)
I will be available 40 to 48 hours / week, can spend more, if needed.
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.
I can interact with the mentors through OpenSCAD's IRC channel(#openscad) on freenode. My nick name on IRC is shaina_ . I am also comfortable with talking to my mentor via telephone if need arises. Contact Number: +91 7837091321
My mentor will be able to see my progress as I push the code to the git repository of project (https://github.com/shaina7837/UI-Brushup-of-OpenSCAD)
OpenSCAD is an open source CAD software application used to make 3D solid models. It has various applications in mechanical, civil, electronics and designing hardware tools for research and education purposes. The software has potential to be used by the large number of professionals and hardware developers. I personally like the community. This is the first time, I am contributing into an open source community and participating in GSOC but while discussing on various topics, like problems in compilations, issues, projects and proposal on mailing list (OpenSCAD@rocklinux.org) and IRC (#openscad), I felt very confortable to discuss and come up with new ideas.
When I decided to work under this community. I explored various projects, I can work in and finally liked this one the most. As I am very much intersted in working UI. UI are not just looks and colors and providing shortcuts. One has to identify the audience and its interest and work accordingly. I am sure, I will be able to make the software more alive. Also the interface is in Qt and I have great experience in Wt(www.webtoolkit.eu) so working effiently in Qt won't be a big deal for me. I have also explored various classes and libraries of Qt also to make my self ready for working in this project.
I am very much passionate for the programming and always wanted to work under an open source community. Even after the completion of the project. I will love to keep on contributing and maintaing various projects of the community. Also graphics is my favourite field, I will be able to keep on working with full zeal and interest for long. Working in this project will enhance my programming, and UI skills and give me chance to come up with new ideas to solve real time problems that I will love to. Also I personally like to use such softwares for 2D and 3D model designing, so I can understand well what a user can expect while working with these softwares. <will write here about patch after submission>