About News Documentation ScreenShots Plugins Download Todo Contrib Links Contacts
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.