This file describes the coding conventions used in Gwenview.


Naming
------

Classes should be named like this: MyClass. The class MyClass should be defined
in the myclass.h file and implemented in myclass.cpp.

Variables and functions should be named like this: myVariable. Static and
member variables are identified by a prefix (s or m), without underscore.

int sStaticVariable.

class MyClass {
	int mMemberVariable;

	void doSomething() {
		int localVariable;
	}
};


Enum items and consts are spelled like this:

const int MY_CONST_VALUE=120;
enum AnEnum { ITEM1, ITEM2, ITEM3 };


Namespace
---------

All code should be enclosed in the "Gwenview" namespace. Make sure the closing
curly bracket of the namespace looks like this :

} // namespace

This avoids wondering why the curly bracket is here.


Code layout
-----------

Use tabs, not spaces.

The opening brace follows the function/class/for/while. Insert a space after
commas and after for/while keywords.

void myFunction() {
	int v1;
	int v2=12;
	for (v1=0; v1<10; ++v1) {
		doSomething(v1, v2);
	}
}

class MyClass {
};


If the if content is only one line long, you can place it on the same line and
omit the curly braces, but DO NOT omit them if you place the content after the
if.

// Ok 
if (!data) {
	return;
}

// Ok too
if (!data) return;

// Bad
if (!data)
	return;
	

Include files
-------------

Group include files in the Qt, KDE or local groups and sort them
alphabetically. When writing the implementation file of a class which is a
Q_OBJECT, make sure you include the .moc file, not the .h.

// Qt
#include <qobject.h>
#include <qwidget.h>

// KDE
#include <kiconview.h>
#include <klistview.h>

// Local
#include "aclass.h"
#include "myclass.moc"
