Quanta and the KDevelop framework
Jens Herden
jens at kdewebdev.org
Mon Jul 25 21:11:09 UTC 2005
Hi all,
this mail is somewhat longer and is the essence of my attendance at the
KDevelop conference in Kiev and my hacking meeting with Andras here in
Romania. I am about to go back to Cambodia and we will summarise our problems
in using the KDevelop framework we found so far in this mail.
But I want to start with saying that we are very happy with the framework and
we could quite easily port Quanta code to KDevelop. We were able to produce a
first working version during the last six weeks (see branches/work/kdevquanta
in SVN). When we started we were not sure if we could reach such a good
result.
So thumbs up for KDevelop and now the list of open questions and requests for
changes. Please bear in mind that all this is targeted for KDevelop 4.0.
We are not quite sure how we want to procede with this list. Our plans are to
release a first test version of what we did together with Quanta 3.5 and we
plan to create the first real release for KDE 4.0 This means we will not join
yet the KDE 4.0 development until 3.5 was released. So we can start working
on the mentioned issues then or other people can pick up them yet already.
1. create a new file that is not in the filesystem
We miss a way to open a new file without creating it in the filesystem. We
found an ugly workaround that does not really work nice. Our wish would be to
pass an empty KURL to open a new texteditor.
2. remote file or projects
The framework use QStrings to store an absolute path for files or folders.
This prevents us from creating remote projects. The framework should use KURL
for all absolute paths.
E.g. in KDevProject the method projectDirectory should return KURL,
isProjectFile() and relativeProjectFile() should use KURL. The first argument
of openProject() should be KURL.
3. additional methods for the project handling
We could not find a method to close the open project and one to save the open
project. Saving a project can be usefull after changes in the settings.
4. more signals in the interface
We would like to have new signals for aboutToSaveFile, aboutToCloseFile and
aboutToCloseProject.
5. events
Quanta has a feature to create and react on special events inside of the
application. We would like to implement a similar feature in the framework.
It would work with QCustomEvents and would allow plugins to filter and react
on events.
6. one URL in more than one part
The framework assumes that only one part can open the same url at the same
time. This is a limitation which we must remove for Quanta, because the same
document can be in the editor, the preview and a link checker at the same
moment.
7. support for different kparts in the framework
For opening an url it is not enough to pass the url, we also need a way to
specify which kpart should open this url. This means also we need to be able
to find out which kpart has opened an url and save this information.
8. disable plugins without the profile editor
currently the user can disable plugins when he/she uses a project but since
Quanta does not depend on a project it would also be important to disable
plugins without an project. A kind of dialog that only allows to disable
plugins from the current profile.
9. splash screen text has hardcoded colors
The splash screen class does not use the provided color parameter to render
the text message.
10. problem with configuration dialog
The config dialog does not display the first page, if the extension does not
provide a global page for the application.
11. modified on disc
The framework uses the kate part to get information if a document was changed
on the disc. This does not work if no Kate part is used. The framework should
detect this on its own.
The message about a change in disk does appear when the user saves the
document. We would suggest to show this message when the document get the
focus instead.
12. context menus
The current implementation for the context menu does allow to add entries to
popup menus from other plugins. This works nice so far but has the problem
that we do not know the source plugin. So we are not able to conditionaly
show an entry for a file context. E.g. the tabbar has file context but we
would not like to pollute this menu with all file context actions.
13. open project dialog
The extensions in the open project dialog are hard coded. Since we want to
use ".quanta" as a new file extension with the KDevelop data structure
internally we need a way to set the filter for the dialog to something else.
We are looking forward to a fruitfull cooperation
Jens
More information about the KDevelop-devel
mailing list