diff --git a/CMakeLists.txt b/CMakeLists.txt
index 43a63556950d84951623d4dc95e1d5abfe626f60..59031614c5f6380852387ed92e4a5893a881b35f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -25,6 +25,9 @@ IF((CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUCC) AND GPROF_PATH)
 	OPTION(OGS_PROFILE "Enables compiling with flags set for profiling with gprof." OFF)
 ENDIF() # GCC AND GPROF_PATH
 
+# Disable Qt
+OPTION(OGS_DONT_USE_QT "Disables all Qt specific code." OFF)
+
 ######################
 ### Subdirectories ###
 ######################
diff --git a/scripts/cmake/Find.cmake b/scripts/cmake/Find.cmake
index dc96a893f09aff6e318279964eff644263b7d7f7..9140083dd8e925f4d707ac7a151dacd6ee3426fe 100644
--- a/scripts/cmake/Find.cmake
+++ b/scripts/cmake/Find.cmake
@@ -28,3 +28,20 @@ ENDIF()
 
 FIND_PACKAGE(Metis)
 
+## Qt4 library ##
+IF(NOT OGS_DONT_USE_QT)
+	FIND_PACKAGE( Qt4 4.5)
+ENDIF(NOT OGS_DONT_USE_QT)
+
+IF ( QT4_FOUND )
+	# Enable more modules
+	SET(QT_USE_QTOPENGL TRUE)
+	SET(QT_USE_QTSQL TRUE)
+	SET(QT_USE_QTTEST TRUE)
+	SET(QT_USE_QTXML TRUE)
+	IF(QT_QTXMLPATTERNS_FOUND)
+		SET(QT_USE_QTXMLPATTERNS TRUE)
+	ENDIF(QT_QTXMLPATTERNS_FOUND)
+	INCLUDE( ${QT_USE_FILE} )
+	ADD_DEFINITIONS(${QT_DEFINITIONS})
+ENDIF (QT4_FOUND )
diff --git a/scripts/cmake/cmake/CodeCoverage.cmake b/scripts/cmake/cmake/CodeCoverage.cmake
index 4fe002368b74343e850159954827f5ec225e52b0..1277a3167d14bcb9faac7bb5f4a7a09bc7c8d7db 100644
--- a/scripts/cmake/cmake/CodeCoverage.cmake
+++ b/scripts/cmake/cmake/CodeCoverage.cmake
@@ -15,19 +15,12 @@
 FIND_PROGRAM( GCOV_PATH gcov )
 FIND_PROGRAM( LCOV_PATH lcov )
 FIND_PROGRAM( GENHTML_PATH genhtml )
+FIND_PROGRAM( GCOVR_PATH gcovr PATHS ${CMAKE_SOURCE_DIR}/tests)
 
 IF(NOT GCOV_PATH)
 	MESSAGE(FATAL_ERROR "gcov not found! Aborting...")
 ENDIF() # NOT GCOV_PATH
 
-IF(NOT LCOV_PATH)
-	MESSAGE(FATAL_ERROR "lcov not found! Aborting...")
-ENDIF() # NOT LCOV_PATH
-
-IF(NOT GENHTML_PATH)
-	MESSAGE(FATAL_ERROR "genhtml not found! Aborting...")
-ENDIF() # NOT GENHTML_PATH
-
 IF(NOT CMAKE_COMPILER_IS_GNUCXX)
 	MESSAGE(FATAL_ERROR "Compiler is not GNU gcc! Aborting...")
 ENDIF() # NOT CMAKE_COMPILER_IS_GNUCXX
@@ -46,27 +39,34 @@ LINK_LIBRARIES(gcov)
 # Param _testrunner     The name of the target which runs the tests
 # Param _outputname     lcov output is generated as _outputname.info
 #                       HTML report is generated in _outputname/index.html
-FUNCTION(SETUP_TARGET_FOR_COVERAGE _targetname _testrunnerexe _outputname)
+FUNCTION(SETUP_TARGET_FOR_COVERAGE _targetname _testrunner _outputname)
+
+	IF(NOT LCOV_PATH)
+		MESSAGE(FATAL_ERROR "lcov not found! Aborting...")
+	ENDIF() # NOT LCOV_PATH
+
+	IF(NOT GENHTML_PATH)
+		MESSAGE(FATAL_ERROR "genhtml not found! Aborting...")
+	ENDIF() # NOT GENHTML_PATH
 
 	# Setup target
 	ADD_CUSTOM_TARGET(${_targetname}
 		
 		# Cleanup lcov
-		lcov --directory . --zerocounters
+		${LCOV_PATH} --directory . --zerocounters
 		
 		# Run tests
 		COMMAND ${_testrunner}
 		
 		# Capturing lcov counters and generating report
-		COMMAND lcov --directory . --capture --output-file ${_outputname}.info
-		COMMAND lcov --remove ${_outputname}.info 'tests/*' '/usr/*' --output-file ${_outputname}.info.cleaned
-		COMMAND genhtml -o ${_outputname} ${_outputname}.info.cleaned
+		COMMAND ${LCOV_PATH} --directory . --capture --output-file ${_outputname}.info
+		COMMAND ${LCOV_PATH} --remove ${_outputname}.info 'tests/*' '/usr/*' --output-file ${_outputname}.info.cleaned
+		COMMAND ${GENHTML_PATH} -o ${_outputname} ${_outputname}.info.cleaned
 		COMMAND ${CMAKE_COMMAND} -E remove ${_outputname}.info ${_outputname}.info.cleaned
 		
 		DEPENDS ${_testrunner}
 		WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
-		COMMENT "Resetting code coverage counters to zero.\n
-			Processing code coverage counters and generating report."
+		COMMENT "Resetting code coverage counters to zero.\nProcessing code coverage counters and generating report."
 	)
 	
 	# Show info where to find the report
@@ -76,3 +76,36 @@ FUNCTION(SETUP_TARGET_FOR_COVERAGE _targetname _testrunnerexe _outputname)
 	)
 
 ENDFUNCTION() # SETUP_TARGET_FOR_COVERAGE
+
+# Param _targetname     The name of new the custom make target
+# Param _testrunner     The name of the target which runs the tests
+# Param _outputname     lcov output is generated as _outputname.info
+#                       HTML report is generated in _outputname/index.html
+FUNCTION(SETUP_TARGET_FOR_COVERAGE_COBERTURA _targetname _testrunner _outputname)
+
+	IF(NOT PYTHON_EXECUTABLE)
+		MESSAGE(FATAL_ERROR "Python not found! Aborting...")
+	ENDIF() # NOT PYTHON_EXECUTABLE
+
+	IF(NOT GCOVR_PATH)
+		MESSAGE(FATAL_ERROR "gcovr not found! Aborting...")
+	ENDIF() # NOT GCOVR_PATH
+
+	ADD_CUSTOM_TARGET(${_targetname}
+
+		# Run tests
+		${_testrunner}
+
+		# Running gcovr
+		COMMAND ${GCOVR_PATH} -x -r ${CMAKE_SOURCE_DIR} -o ${_outputname}.xml
+		WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
+		COMMENT "Running gcovr to produce Cobertura code coverage report."
+	)
+
+	# Show info where to find the report
+	ADD_CUSTOM_COMMAND(TARGET ${_targetname} POST_BUILD
+		COMMAND ;
+		COMMENT "Cobertura code coverage report saved in ${_outputname}.xml."
+	)
+
+ENDFUNCTION() # SETUP_TARGET_FOR_COVERAGE_COBERTURA
\ No newline at end of file