GSoC/2012/Ideas: Difference between revisions

From KDE Community Wiki
< GSoC‎ | 2012
Line 440: Line 440:
The KDE Accessibility subproject aims to make KDE applications accessible to all users no matter the disability.
The KDE Accessibility subproject aims to make KDE applications accessible to all users no matter the disability.


==== Project: ====
==== Project: Focus tracking in KWin and KMagnifier ====


'''Brief explanation:'''
'''Brief explanation:'''
Currently the <a href="http://quickgit.kde.org/index.php?p=kde-workspace.git&a=tree&h=54b5db28657f85edd2aae66e0f7cfbe46dd37b43&hb=98c25aa2e996b6d02a76717bf5934fef7b5001cf&f=kwin%2Feffects%2Fzoom">KWin zoom plugin</a> and <a href="http://quickgit.kde.org/index.php?p=kmag.git&a=tree">KMagnifier</a> implement focus tracking using <a href="http://quickgit.kde.org/index.php?p=kaccessible.git&a=tree&hb=32747448cb1bead46492215850992e63dc34a20f&h=9c6ea1bb2ce27477211c93bc36d0228a668ffb8d">KAccessible</a>. KAccessible uses <a href="http://developer.qt.nokia.com/doc/qt-4.8/QAccessible.html">QAccessible</a> direct to implement focus-tracking. The problem with that is that it only works for Qt/KDE applications. The plan is to change the existing code in the KWin zoom-plugin and KMagnifier to not use KAccessible any longer to fetch the information what application/widget/etc has the focus but to use dbus to connect with AT-SPI2 and fetch all needed informations (means the x/y-coordinates where the focus is atm) from there.
Once done and if there is time left we will look at common applications like KWrite, Kate, Konsole, etc. to identify and fix cases where the applications are not sending the proper QAccessible::Focus events so that focus-tracking doesn't work there and fix such cases.
'''More details:'''
* http://blogs.kde.org/node/4287 describes our current solution for focus-tracking
* http://community.kde.org/Accessibility/qt-atspi describes how to setup your environment to get ATSPI2 and Qt working together using the Qt-ATSPI bridge.
* See the linked source-code above and grep there for "focusChanged"


'''Expected results:'''
'''Expected results:'''
* The KWin zoom-plugin and KMagnifier are using ATSPI2 rather then KAccessible to implement focus-tracking.
* Focus-tracking within KDE works for Qt/KDE applications like it does today with KAccessible (or even better :-) ) and applications using other Toolkits (e.g. GEdit) will work too.


'''Knowledge Prerequisite:'''
'''Knowledge Prerequisite:'''
C++/Qt


'''Mentor:'''
'''Mentor:'''
Sebastian Sauer <[email protected]>

Revision as of 20:16, 7 February 2012

See also: GSoc Instructions

Guidelines

Information for Students

These ideas were contributed by our developers and users. They are sometimes vague or incomplete. If you wish to submit a proposal based on these ideas, you may wish to contact the developers and find out more about the particular suggestion you're looking at.

Being accepted as a Google Summer of Code student is quite competitive. Accepted students typically have thoroughly researched the technologies of their proposed project and have been in frequent contact with potential mentors. Simply copying and pasting an idea here will not work. On the other hand, creating a completely new idea without first consulting potential mentors is unlikely to work out.

When writing your proposal or asking for help from the general KDE community don't assume people are familiar with the ideas here. KDE is really big!

If there is no specific contact given you can ask questions on the general KDE development list [email protected]. See the KDE mailing lists page for information on available mailing lists and how to subscribe.

Adding a Proposal

Note

Follow the template of other proposals!


Project:

Brief explanation:

Expected results:

Knowledge Prerequisite:

Mentor:

When adding an idea to this section, please try to include the following data:

  • if the application is not widely known, a description of what it does and where its code lives
  • a brief explanation
  • the expected results
  • pre-requisites for working on your project
  • if applicable, links to more information or discussions
  • mailing list or IRC channel for your application/library/module
  • your name and email address for contact (if you're willing to be a mentor)

If you are not a developer but have a good idea for a proposal, get in contact with relevant developers first.

Ideas

How to find ideas? To see previous Project ideas, see: 2011 ideas. Obvious sources of projects are the bugs database, the forum, and your list and IRC channel ideas.

Amarok

Amarok is a powerful KDE based music player for Linux and Unix, MacOS X and Windows with an intuitive interface. It makes playing the music you love and discovering new music easier than ever before - and it looks good doing it!


Website - Mailing list - IRC channel: #amarok on Freenode.

Project:

Brief explanation:

Expected results:

Knowledge Prerequisite:

Mentor:

digiKam

Photo Management program

digiKam project web site - Mailinglist - IRC channel: #digikam on Freenode.

Project:

Brief explanation:

Expected results:

Knowledge Prerequisite:

Mentor:

KDE Edu

Project:

Brief explanation:

Expected results:

Knowledge Prerequisite:

Mentor:

KDevelop

KDE-based Integrated Development Environment, specializing in c++ support, but including a powerful generic framework (definition use chain) which makes it possible to relatively easily support multiple different languages.

Website - Mailing list - IRC channel: #kdevelop on Freenode.

Project:

Brief explanation:

Expected results:

Knowledge Prerequisite:

Mentor:

KDE PIM

KDE PIM is the interest group working on applications related to personal information management, e.g. contacts, calendar, mails, etc.

There are interesting projects on all levels of the software stack: libraries, application porting, new applications, access to online resources, etc.

Have a look at last year's ideas as well.

Website - Project Wiki - Mailing list - IRC channel: #kontact and #akonadi on Freenode.

Project:

Brief explanation:

Expected results:

Knowledge Prerequisite:

Mentor:

Calligra Karbon

Karbon is a vector drawing application with an user interface that is easy to use, highly customizable and extensible.

Web - Mailinglist - IRC channel: #calligra on Freenode.

Project:

Brief explanation:

Expected results:

Knowledge Prerequisite:

Mentor:

Calligra Words

Web - Mailinglist - IRC channel: #calligra on Freenode.

Project:

Brief explanation:

Expected results:

Knowledge Prerequisite:

Mentor:

Calligra Krita

Krita is a KDE program for sketching and painting, offering an end–to–end solution for creating digital painting files from scratch by masters.

Mailing-list: https://mail.kde.org/mailman/listinfo/kimageshop/

Project Page: http://www.krita.org/

Irc channel: #krita on irc.freenode.net

Forums: http://forum.kde.org/viewforum.php?f=136.

Wiki: http://community.kde.org/Krita

Project:

Brief explanation:

Expected results:

Knowledge Prerequisite:

Mentor:

Calligra Stage

Stage is an easy to use yet still flexible KDE-based presentation application.

Mailing-list: https://mail.kde.org/mailman/listinfo/calligra-devel

Project Page: http://www.calligra-suite.org/stage/

Irc channel: #calligra on irc.freenode.net

Forums: http://forum.kde.org/viewforum.php?f=203

Wiki: http://community.kde.org/Calligra/Stage

Project:

Brief explanation:

Expected results:

Knowledge Prerequisite:

Mentor:

Calligra Plugins

As Calligra is quite powerful it is easy to add plugins to it that then can be used by all Calligra applications.

Mailing-list: https://mail.kde.org/mailman/listinfo/calligra-devel

Project Page: http://www.calligra-suite.org

Irc channel: #calligra on irc.freenode.net

Forums: http://forum.kde.org/viewforum.php?f=203

Wiki: http://community.kde.org/Calligra

Project:

Brief explanation:

Expected results:

Knowledge Prerequisite:

Mentor:

KWin

KDE's window manager

Techbase page - Mailinglist - IRC channel: #kwin on Freenode.

Project:

Brief explanation:

Expected results:

Knowledge Prerequisite:

Mentor:

Nepomuk

Website- Documentation/Howtos - Ontologies - Mailing list - IRC channel: #nepomuk-kde on Freenode.

(Also see the Nepomuk techbase page for a long list of Nepomuk-related ToDos and ideas.)

Project:

Brief explanation:

Expected results:

Knowledge Prerequisite:

Mentor:

Plasma

Website - Mailing list - IRC channel: #plasma on Freenode.

Project:

Brief explanation:

Expected results:

Knowledge Prerequisite:

Mentor:

Phonon

Abstraction library for sound and video support. Used by KDE notifications, Amarok, Dragon Player and Qt Software.

Website - Mailing list - IRC channel: #phonon on Freenode.

Project:

Brief explanation:

Expected results:

Knowledge Prerequisite:

Mentor:

Kate

Kate is a powerful programmer's editor.


Website - Mailing list - IRC channel: #kate on Freenode.

Project:

Brief explanation:

Expected results:

Knowledge Prerequisite:

Mentor:

Rekonq

Rekonq is a web browser for KDE based on WebKit. It first focuses on being a light, fast & clean way to access to net. Its development is doubly based on using the new amazing features offered by the WebKit rendering engine and on the rock solid network KDE technologies.

Project:

Brief explanation:

Expected results:

Knowledge Prerequisite:

Mentor:

ownCloud

An open personal cloud which runs on your personal server. It enables accessing your data from all of your devices. Sharing with other people is also possible. It support automatic backups, versioning and encryption.


Website - Mailing list - IRC channel: #owncloud on Freenode.

Project:

Brief explanation:

Expected results:

Knowledge Prerequisite:

Mentor:

KDE Usability

Project:

Brief explanation:

Expected results:

Knowledge Prerequisite:

Mentor:

KDE SDK

Project:

Brief explanation:

Expected results:

Knowledge Prerequisite:

Mentor:

Okular

Project:

Brief explanation:

Expected results:

Knowledge Prerequisite:

Mentor:

Gluon

Gluon is a Free and Open Source framework for creating and distributing games - supporting the flow of the idea all the way from the author to the player of the finished game, and back.

Gluon Website

Contacting the Gluon team (irc, email etc)

Project:

Brief explanation:

Expected results:

Knowledge Prerequisite:

Mentor:

Telepathy

Telepathy is a cross-desktop framework for real-time communication and collaboration - think IM, Voice/Video Conferencing and Collaborative document editing/gaming/etc.

More information:

Project:

Brief explanation:

Expected results:

Knowledge Prerequisite:

Mentor:

simon

simon is an open source speech recognition system using many parts of the KDE infrastructure. You can find out more about us on our homepage, blog or the development site.

There is also a demonstration video on youtube.

Project:

Brief explanation:

Expected results:

Knowledge Prerequisite:

Mentor:

KDE on Windows

The KDE on Windows subproject makes KDE applications available on Microsoft Windows, both desktop (XP, Vista, 7) and Windows CE

Project:

Brief explanation:

Expected results:

Knowledge Prerequisite:

Mentor:

KDE Accessibility

The KDE Accessibility subproject aims to make KDE applications accessible to all users no matter the disability.

Project: Focus tracking in KWin and KMagnifier

Brief explanation: Currently the <a href="http://quickgit.kde.org/index.php?p=kde-workspace.git&a=tree&h=54b5db28657f85edd2aae66e0f7cfbe46dd37b43&hb=98c25aa2e996b6d02a76717bf5934fef7b5001cf&f=kwin%2Feffects%2Fzoom">KWin zoom plugin</a> and <a href="http://quickgit.kde.org/index.php?p=kmag.git&a=tree">KMagnifier</a> implement focus tracking using <a href="http://quickgit.kde.org/index.php?p=kaccessible.git&a=tree&hb=32747448cb1bead46492215850992e63dc34a20f&h=9c6ea1bb2ce27477211c93bc36d0228a668ffb8d">KAccessible</a>. KAccessible uses <a href="http://developer.qt.nokia.com/doc/qt-4.8/QAccessible.html">QAccessible</a> direct to implement focus-tracking. The problem with that is that it only works for Qt/KDE applications. The plan is to change the existing code in the KWin zoom-plugin and KMagnifier to not use KAccessible any longer to fetch the information what application/widget/etc has the focus but to use dbus to connect with AT-SPI2 and fetch all needed informations (means the x/y-coordinates where the focus is atm) from there.

Once done and if there is time left we will look at common applications like KWrite, Kate, Konsole, etc. to identify and fix cases where the applications are not sending the proper QAccessible::Focus events so that focus-tracking doesn't work there and fix such cases.

More details:

Expected results:

  • The KWin zoom-plugin and KMagnifier are using ATSPI2 rather then KAccessible to implement focus-tracking.
  • Focus-tracking within KDE works for Qt/KDE applications like it does today with KAccessible (or even better :-) ) and applications using other Toolkits (e.g. GEdit) will work too.

Knowledge Prerequisite: C++/Qt

Mentor: Sebastian Sauer <[email protected]>