PlasMate first release

Polentino

Short description: PlasMate is the Plasma addons creator for KDE. Its development started more than two years ago, and it's currently in alpha3 stage. Now, it's time to complete what's missing, and push its first release ;)

Name: Diego Casella


Email Address: polentino911@gmail.com


Freenode IRC Nick: [Po]lentino


IM Service and Username: see above


Location (City, Country and/or Time Zone): Montebelluna, Italy


Proposal Title: PlasMate first release


Motivation for Proposal / Goal:

I've started coding PlasMate two years ago, and PlasMate acquired lot of functionalities and improved a lot, thanks to our team. The next goal is to offer an official release ready to be shipped to the public :)

In order to achieve this result, PlasMate must have a complete and easy workflow for creating Plasma Applets, DataEngines and Themes.

Since I've been contributing to PlasMate for two years, this will also be a great opportuniity for become its mantainer :)


Implementation Details:

Development of a Plasmoids project within PlasMate is a fair complete taks, the editor and previewer works fine, so I'm planning to polish the code (fix memleaks, remove i18() puzzles, remove useless conversion from KUrl() -> QString -> KUrl again in the code etc ..), fixing UI glitches (i.e, when moving the previewer dock from a location to an other, sometimes the preview is placed partially outside the visible viewport of the dockwidget). What is needed here is a widget to display the output of log() and debug() and possible errors, to ease the applet development process, and a collection of code snippets for the most commonly-used tasks (i.e. a code snippet for creating notifications, browsing folders etc..). It will be also cool to write some tutorials on techbase about how to write Plasmoids with PlasMate, how increase prductivity with the TimeLine (which is a kick-ass component, but still unkown), and how to share it with the community through OCS service.

About DataEngine projects, we absolutely need a previewer for them . I'm planning to reuse part of the plasmaengineexplorer code to allow previewing and testing the dataengine directly from PlasMate, whitout need to install it in the system; this previewer will have the same look of the plasmoid previewer. As for Plasmoids projects, a widget for displaying errors and the output of log() and debug() calls is strongly needed, along with a series of examples and documentation on techbase about the complete workflow.

The "Theme" project is slightly different from the other ones, because each theme has both icons and a .colors file, so we need a basic text editor for the .color file (perhaps with a fancy color picker), and a "folderview" with drang'n drop capabilities, to allow the developer to easily add/remove icons to his/her current project. The previewer for a Theme project will partially reuse the code from the KCM theme module.

Application-wise talking, I want every project to have their own personal configuration file, instead of having everything stored in one single file, so we can save/store the exact state for each projetc, and reload it when it is opened again (dock placement, last opened file(s) etc.. ). The editor must be improved too because in the current implementation it allows working with just one file; a better approach would be providing a tabwidget with all the files opened.

The Notes widget must be improved to allow use of rich text, in order to better distinguish  priorities to the notes taken.

The TimeLine UI needs a revamp too, like a "filter" option to show only savepoints matching a given word, and the possibility to add remote url to pull/push i.e. their own code to gitorious.

The start page shoud show a small preview (an image taken from the previewer, before closing plasmate) when the user hovers a particular project in the Projects List, along with a short description about the last modification, and other useful infos.

Of course, since this will be the first official release, we need to write the handbook and examples of usage on techbase :)


Tentative Timeline (in weekly intervals until 2 weeks after the end of GSoC):

  • 24 May - 6 June: provide a complete and functioning workflow for Plasmoids, and create a "log" widget to collect the output of the generic previewer, and present it to the developer;
  • 7 June - 20 June: patch plasma api to allow loading dataengines from a custom path, and write a previewer for it with the ability to inspect and interact with the current engine and its services;
  • 21 June - 5 July: improve the Notes widget to allow rich-text editing, revamp TimeLine UI and allow it to work with remote repos.Add Code Snippets menu, and a widget to set our own snippets for the most common tasks;
  • 6 July - 13 July (Midterm eval.): write tutorials about the Plasmoid and DataEgine workflow, starting from creation, through editing/working with the TimeLine, and how to sign and publish them to opendesktop.org;
  • 14 July - 27 July: create a widget with drag'n drop capabilities for Theme projects, a previewer to show its appearance and an text editor to create/modify .color file.
  • 28 July - 10 August: complete the Theme workflow, add color picker for the .color file editor. Implement per-project settings, write "import" wizard to scan old plasmate projects, show them to the user and, if selected, convert them.
  • 11 August - 16 August(Suggested pencil down): Improve the start page by showing an image taken from the previewer for each project, and support multiple file editing. This will require patching the Plasmoid/DataEngine/Theme previewer to save a screenshot which will be loaded the next time the StartPage will be shown.
  • 17 August - 22 August (Final eval.): Polish all the code written, complete the documentation and, if time permits, start with implementing the Runner workflow too.


Of course, all my progresses will be listed weekly in planetkde.org :)


Do you have other obligations from late May to early August (school, work, vacation, etc.)? Please note that we expect the Summer of Code to be a full-time, 40-hr a week occupation. It is important to be clear and upfront about other commitments that you may have during that time.

I have two exams on the second and third week of june but, since I have just one course in these semester, I'm already studying them.


About Me (let us know who you are!):

I’m a 25 years old guy who lives in a small town situated in the north-east Italy. Currently I’m studying Automation Engineering (literal translation: something more accurate could be “Control Theory”) at the University of Padova. I started using GNU/Linux since 2004, switching between lots of distros and increasing my knowledge about software development, esp Qt framework and KDE infrastructure. That's why I participated in the 2009 and 2010 edition of the Google Summer of Code. I work on KDE code in my spare time too of course, because I'm having fun and the community is simply amazing :)