CONTRIBUTING TO DIGIKAM
|
|
|
Internationalization
|
|
You can easily contribute to the Digikam project by translating the GUI and
the Handbook in your language.
Please contact your KDE i18n team for this task. The teams list is available at this url.
A great HowTo about KDE translations is available here.
Please, contact caulier gilles for all technicals informations.
|
|
Packaging
|
|
The Digikam project needs packagers for all Linux distributions
(Suse, Mandrake, Red Hat, Debian, etc.).
Please contact the
digikam-devel at lists.sourceforge.net mailing-list for all official packaging contributions.
|
|
Code contributions
|
|
Code contributions are always welcome in digikam.
In order to ensure that others can look, understand, fix your code i would
like to recommend a few coding styles for the developers:
- No lines to exceed more than 80 columns (i personally use 70 columns max)
- Follow consistent indentations:
a) if/while/for ...
recommended:
if (a == b) {
.....
.....
}
also ok:
if (a == b)
{
.....
.....
}
b) class definitions:
class A : public B
{
public:
A();
~A();
private:
...
};
for this we highly recommend an editor which does auto-indentation (like
xemacs/emacs or Kdevelop... the kde-sdk package comes with a very nice initialization
file for xemacs for qt/kde programming which comes from trolltech
directly and has been modified by the kde developers. a vast majority of
kde/qt developers use xemacs/emacs).
Some links about on good coding styles are available here:
SGI
C++ style
- Variable naming: all data member variables should be easily
distinguishable from local variables. different conventions are:
dataMember_, m_dataMember, mDataMember
- Class name clashes: to avoid class name clashing with other
plugins/mainapp use namespace wrapping of all plugin classes.
- Avoid global defines like #define MYVAR 1, use enum
inside classes instead.
- All objects which are created with a new/malloc (unless its derived
from a QObject AND is a child of another QObject) has to
be explicitly deleted with a delete/free
- Use forward declaration as much as possible. it reduces compilation
time by a great deal. For example if you have a class header like:
#include
class A
{
....
private:
QFileInfo *m_var;
};
change it to:
class QFileInfo;
class A
{
....
private:
QFileInfo *m_var;
};
and put the #include in the class definition file (.cpp)
- All files should have lower names: not MyCPP.h,
instead mycpp.h
Please forgive us if this sounds too pedantic in this case; but following
above guidelines can help in the opensource initiative of being able to
share your code more easily.
Please check the TODO list here
and contact the
digikam-devel at lists.sourceforge.net mailing-list for more information.
|
|
Patchesn bugs reports and wishes
|
|
Please send patches to the
digikam-devel at lists.sourceforge.net mailing list.
Since Digikam is available in KDE CVS, please use the KDE bug tracking system for all bugs report and for the new features whishes.
You can consult the currents bugs and wishes lists at this url :
Digikam bugs and wishes.
DigikamImagePlugins bugs and wishes.
KIPI bugs and wishes.
|
|
GUI Themes
|
|
Digikam 0.7.0 introduce the theme support. You can provide a new GUI theme in according with this
howto.
Please, contact renchi raju for more informations.
|