File projectM-2.1.0-Qt5.patch of Package projectM

From: Luigi Baldoni <aloisio@gmx.com>
Date: 2017-07-24 13:37:58 +0200
Subject: Build against Qt5

A few small code patches plus name changes for libraries, executables
and other files to avoid conflicts with the regular Qt4 package.

Index: projectM-complete-2.1.0-Source/src/libprojectM/CMakeLists.txt
===================================================================
--- projectM-complete-2.1.0-Source.orig/src/libprojectM/CMakeLists.txt
+++ projectM-complete-2.1.0-Source/src/libprojectM/CMakeLists.txt
@@ -106,11 +106,11 @@ endif(USE_FTGL)
 if (BUILD_PROJECTM_STATIC)
 	ADD_LIBRARY(projectM STATIC ${projectM_SOURCES})
 else(BUILD_PROJECTM_STATIC)
-	ADD_LIBRARY(projectM SHARED ${projectM_SOURCES})
+	ADD_LIBRARY(projectM-qt5 SHARED ${projectM_SOURCES})
 endif(BUILD_PROJECTM_STATIC)
 
-set_property(TARGET projectM PROPERTY IMPORTED_LINK_DEPENDENT_LIBRARIES "")
-SET_TARGET_PROPERTIES(projectM PROPERTIES VERSION ${PROJECTM_VERSION} SOVERSION ${PROJECTM_ABI_LEVEL})
+set_property(TARGET projectM-qt5 PROPERTY IMPORTED_LINK_DEPENDENT_LIBRARIES "")
+SET_TARGET_PROPERTIES(projectM-qt5 PROPERTIES VERSION ${PROJECTM_VERSION} SOVERSION ${PROJECTM_ABI_LEVEL})
 
 if (USE_THREADS)
 ADD_DEFINITIONS(-DUSE_THREADS)
@@ -124,7 +124,7 @@ else (APPLE)
 		set (RESOURCE_PREFIX "Resources")
 		ADD_DEFINITIONS(-DWIN32 -DSTBI_NO_DDS)
 	else(WIN32)
-		set (RESOURCE_PREFIX "share/projectM")
+		set (RESOURCE_PREFIX "share/projectM-qt5")
 		ADD_DEFINITIONS(-DLINUX -DSTBI_NO_DDS)
 	endif(WIN32)
 endif(APPLE)
@@ -202,7 +202,7 @@ if(BUILD_PROJECTM_STATIC)
 				${OPENGL_LIBRARIES}
 	)
 else(BUILD_PROJECTM_STATIC)
-	TARGET_LINK_LIBRARIES(projectM Renderer
+	TARGET_LINK_LIBRARIES(projectM-qt5 Renderer
 				${IMAGE_LINK_TARGETS}
 				${CG_LINK_TARGETS}
 				${PRESET_FACTORY_LINK_TARGETS}
@@ -231,9 +231,9 @@ IF(projectM_FONT_MENU MATCHES "${CMAKE_I
 ENDIF(projectM_FONT_MENU MATCHES "${CMAKE_INSTALL_PREFIX}/${RESOURCE_PREFIX}/fonts/VeraMono.ttf" OR projectM_FONT_TITLE MATCHES "${CMAKE_INSTALL_PREFIX}/${RESOURCE_PREFIX}/fonts/VeraMono.ttf")
 
 FILE(GLOB presets "presets/*.milk" "presets/*.prjm" "presets/*.tga")
-INSTALL(FILES ${presets} DESTINATION ${CMAKE_INSTALL_PREFIX}/share/projectM/presets)
-INSTALL(FILES ${Renderer_SOURCE_DIR}/projectM.cg ${Renderer_SOURCE_DIR}/blur.cg DESTINATION ${CMAKE_INSTALL_PREFIX}/share/projectM/shaders)
-INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libprojectM.pc DESTINATION ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/pkgconfig)
-INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/config.inp DESTINATION ${CMAKE_INSTALL_PREFIX}/share/projectM)
-INSTALL(FILES projectM.hpp event.h dlldefs.h fatal.h PCM.hpp Common.hpp DESTINATION include/libprojectM)
-INSTALL(TARGETS projectM DESTINATION lib${LIB_SUFFIX})
+INSTALL(FILES ${presets} DESTINATION ${CMAKE_INSTALL_PREFIX}/share/projectM-qt5/presets)
+INSTALL(FILES ${Renderer_SOURCE_DIR}/projectM.cg ${Renderer_SOURCE_DIR}/blur.cg DESTINATION ${CMAKE_INSTALL_PREFIX}/share/projectM-qt5/shaders)
+INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libprojectM.pc RENAME libprojectM-qt5.pc DESTINATION ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}/pkgconfig)
+INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/config.inp DESTINATION ${CMAKE_INSTALL_PREFIX}/share/projectM-qt5)
+INSTALL(FILES projectM.hpp event.h dlldefs.h fatal.h PCM.hpp Common.hpp DESTINATION include/libprojectM-qt5)
+INSTALL(TARGETS projectM-qt5 DESTINATION lib${LIB_SUFFIX})
Index: projectM-complete-2.1.0-Source/src/NativePresets/CMakeLists.txt
===================================================================
--- projectM-complete-2.1.0-Source.orig/src/NativePresets/CMakeLists.txt
+++ projectM-complete-2.1.0-Source/src/NativePresets/CMakeLists.txt
@@ -46,10 +46,10 @@ LINK_DIRECTORIES(${PROJECTM_LINK} ${Rend
 
 include_directories(${PROJECTM_INCLUDE} ${Renderer_SOURCE_DIR} ${NativePresetFactory_SOURCE_DIR} ${CMAKE_CURRENT_LIBRARY_DIR})
 
-target_link_libraries(RovastarDarkSecret Renderer NativePresetFactory projectM)
-target_link_libraries(RovastarFractopiaFrantic Renderer NativePresetFactory projectM)
-target_link_libraries(RovastarFractalSpiral Renderer NativePresetFactory projectM)
-target_link_libraries(RovastarDriftingChaos Renderer NativePresetFactory projectM)
-target_link_libraries(MstressJuppyDancer Renderer NativePresetFactory projectM)
+target_link_libraries(RovastarDarkSecret Renderer NativePresetFactory projectM-qt5)
+target_link_libraries(RovastarFractopiaFrantic Renderer NativePresetFactory projectM-qt5)
+target_link_libraries(RovastarFractalSpiral Renderer NativePresetFactory projectM-qt5)
+target_link_libraries(RovastarDriftingChaos Renderer NativePresetFactory projectM-qt5)
+target_link_libraries(MstressJuppyDancer Renderer NativePresetFactory projectM-qt5)
 # Doesn't build yet
 #target_link_libraries(RLGFractalDrop7c Renderer NativePresetFactory projectM)
Index: projectM-complete-2.1.0-Source/src/projectM-libvisual/CMakeLists.txt
===================================================================
--- projectM-complete-2.1.0-Source.orig/src/projectM-libvisual/CMakeLists.txt
+++ projectM-complete-2.1.0-Source/src/projectM-libvisual/CMakeLists.txt
@@ -7,7 +7,7 @@ if(COMMAND cmake_policy)
     cmake_policy(SET CMP0003 NEW)
 endif(COMMAND cmake_policy)
 
-ADD_LIBRARY(projectM_libvisual SHARED actor_projectM.cpp lvtoprojectM.h ConfigFile.h ConfigFile.cpp)
+ADD_LIBRARY(projectM_libvisual-qt5 SHARED actor_projectM.cpp lvtoprojectM.h ConfigFile.h ConfigFile.cpp)
 
 INCLUDE(FindPkgConfig.cmake)
 cmake_policy(SET CMP0005 OLD)
@@ -51,6 +51,6 @@ endif (${CMAKE_PROJECT_NAME} MATCHES "pr
 INCLUDE_DIRECTORIES(${PROJECTM_INCLUDE} ${LIBVISUAL_INCLUDEDIR} ${SDL_INCLUDE_DIR})
 LINK_DIRECTORIES(${PROJECTM_LINK})
 
-TARGET_LINK_LIBRARIES(projectM_libvisual projectM  ${SDL_LIBRARY} ${LIBVISUAL_LIBRARIES})
+TARGET_LINK_LIBRARIES(projectM_libvisual-qt5 projectM-qt5  ${SDL_LIBRARY} ${LIBVISUAL_LIBRARIES})
 
-INSTALL(TARGETS projectM_libvisual DESTINATION ${LIBVISUAL_PLUGINSDIR}/actor )
+INSTALL(TARGETS projectM_libvisual-qt5 DESTINATION lib${LIB_SUFFIX}/libvisual-0.4-qt5/actor )
Index: projectM-complete-2.1.0-Source/src/projectM-pulseaudio/CMakeLists.txt
===================================================================
--- projectM-complete-2.1.0-Source.orig/src/projectM-pulseaudio/CMakeLists.txt
+++ projectM-complete-2.1.0-Source/src/projectM-pulseaudio/CMakeLists.txt
@@ -26,7 +26,9 @@ else(${CMAKE_PROJECT_NAME} MATCHES ${PRO
 endif(${CMAKE_PROJECT_NAME} MATCHES ${PROJECT_NAME})
 
 FIND_PACKAGE(OpenGL)
-FIND_PACKAGE(Qt4 REQUIRED)
+FIND_PACKAGE(Qt5Widgets REQUIRED)
+FIND_PACKAGE(Qt5OpenGL REQUIRED)
+FIND_PACKAGE(Qt5Core REQUIRED)
 
 
 pkg_search_module(LIBPULSE REQUIRED libpulse>=0.9.8)
@@ -74,10 +76,10 @@ set(projectM_pulseaudio_UIS
 )
 
 
-qt4_wrap_ui(projectM_pulseaudio_UIS_H ${projectM_pulseaudio_UIS})
+qt5_wrap_ui(projectM_pulseaudio_UIS_H ${projectM_pulseaudio_UIS})
 
 # After this call, foo_MOC_SRCS = moc_Class1.cxx moc_Class2.cxx moc_Class3.cxx.
-qt4_wrap_cpp(projectM_pulseaudio_MOC_SRCS ${projectM_pulseaudio_MOC_HDRS})
+qt5_wrap_cpp(projectM_pulseaudio_MOC_SRCS ${projectM_pulseaudio_MOC_HDRS})
 
 ADD_DEFINITIONS(-DLINUX)
 ADD_DEFINITIONS(${QT_DEFINITIONS})
@@ -95,10 +97,9 @@ elseif (${CMAKE_PROJECT_NAME} MATCHES ${
 endif (${CMAKE_PROJECT_NAME} MATCHES "projectM-complete")
 
 INCLUDE_DIRECTORIES(${PROJECTM_INCLUDE}
-		${QT_INCLUDE_DIR}
-		${QT_QTGUI_INCLUDE_DIR}
-		${QT_QTOPENGL_INCLUDE_DIR}
-		${QT_QTCORE_INCLUDE_DIR}
+		${Qt5Widgets_INCLUDE_DIR}
+		${Qt5OpenGL_INCLUDE_DIR}
+		${Qt5Core_INCLUDE_DIR}
 		${LIBPULSE_INCLUDEDIR}
 		${CMAKE_CURRENT_BINARY_DIR}
 		${CMAKE_BINARY_DIR}/projectM-pulseaudio
@@ -110,9 +111,9 @@ if(COMMAND cmake_policy)
       cmake_policy(SET CMP0003 NEW)
 endif(COMMAND cmake_policy)
 
-ADD_EXECUTABLE(projectM-pulseaudio ${projectM_pulseaudio_SRCS} ${projectM_pulseaudio_MOC_SRCS} ${projectM_pulseaudio_UIS_H})
+ADD_EXECUTABLE(projectM-pulseaudio-qt5 ${projectM_pulseaudio_SRCS} ${projectM_pulseaudio_MOC_SRCS} ${projectM_pulseaudio_UIS_H})
 
-TARGET_LINK_LIBRARIES(projectM-pulseaudio projectM-qt projectM pulse ${QT_QTGUI_LIBRARIES} ${QT_QTOPENGL_LIBRARIES} ${QT_QTCORE_LIBRARIES} ${QT_LIBRARIES} ${GLEW_LIBRARY} ${FTGL_LIBRARIES})
+TARGET_LINK_LIBRARIES(projectM-pulseaudio-qt5 projectM-qt-qt5 projectM-qt5 pulse ${QT_QTGUI_LIBRARIES} ${QT_QTOPENGL_LIBRARIES} ${QT_QTCORE_LIBRARIES} ${QT_LIBRARIES} ${GLEW_LIBRARY} ${FTGL_LIBRARIES})
 
-INSTALL(TARGETS projectM-pulseaudio DESTINATION ${CMAKE_INSTALL_PREFIX}/bin )
-install(FILES "projectM-pulseaudio.desktop" DESTINATION ${CMAKE_INSTALL_PREFIX}/share/applications)
+INSTALL(TARGETS projectM-pulseaudio-qt5 DESTINATION ${CMAKE_INSTALL_PREFIX}/bin )
+install(FILES "projectM-pulseaudio.desktop" RENAME projectM-pulseaudio-qt5.desktop DESTINATION ${CMAKE_INSTALL_PREFIX}/share/applications)
Index: projectM-complete-2.1.0-Source/src/projectM-pulseaudio/QPulseAudioDeviceModel.cpp
===================================================================
--- projectM-complete-2.1.0-Source.orig/src/projectM-pulseaudio/QPulseAudioDeviceModel.cpp
+++ projectM-complete-2.1.0-Source/src/projectM-pulseaudio/QPulseAudioDeviceModel.cpp
@@ -20,6 +20,7 @@
  */
 
 #include "QPulseAudioDeviceModel.hpp"
+#include <QtWidgets>
 #include <QIcon>
 #include <QtDebug>
 #include <QMessageBox>
@@ -69,9 +70,9 @@ QVariant QPulseAudioDeviceModel::data (
 			
 		case Qt::BackgroundRole:
 			if (_devicePosition == _devices.begin() + index.row()) {
-				return Qt::green;										
+				return QColor(Qt::green);
 			} else {
-				return Qt::white;
+				return QColor(Qt::white);
 			}						
 		default:			
 			
Index: projectM-complete-2.1.0-Source/src/projectM-qt/CMakeLists.txt
===================================================================
--- projectM-complete-2.1.0-Source.orig/src/projectM-qt/CMakeLists.txt
+++ projectM-complete-2.1.0-Source/src/projectM-qt/CMakeLists.txt
@@ -21,14 +21,16 @@ set(PROJECTM_QT_VERSION 1.10)
 set(PROJECTM_QT_ABI_LEVEL 1)
 #
 
-find_package(Qt4 REQUIRED) # find and setup Qt4 for this project
-include(${QT_USE_FILE})
+find_package(Qt5Widgets REQUIRED) # find and setup Qt5 for this project
+find_package(Qt5OpenGL REQUIRED)
 
-if (QT4_FOUND)
-MESSAGE(STATUS "[projectM-qt] Qt4 detected.")
-else (QT4_FOUND)
-MESSAGE(FATAL_ERROR "Qt4 not detected. Please install Qt4 before continuing (visit www.trolltech.org for more info)")
-endif(QT4_FOUND)
+#include(${QT_USE_FILE})
+
+if (Qt5Widgets_FOUND)
+MESSAGE(STATUS "[projectM-qt] Qt5Widgets detected.")
+else (Qt5Widgets_FOUND)
+MESSAGE(FATAL_ERROR "Qt5Widgets not detected. Please install Qt5 before continuing (visit www.trolltech.org for more info)")
+endif(Qt5Widgets_FOUND)
 set(QT_USE_OPENGL TRUE)
 
 if (LIBPROJECTM_FOUND)
@@ -94,12 +96,12 @@ set( projectM-qt_RESOURCES
 )
 
 # compile resources
-qt4_add_resources( projectM-qt_RC_SRCS ${projectM-qt_RESOURCES} )
+qt5_add_resources( projectM-qt_RC_SRCS ${projectM-qt_RESOURCES} )
 
-qt4_wrap_ui(projectM-qt_UIS_H ${projectM-qt_UIS})
+qt5_wrap_ui(projectM-qt_UIS_H ${projectM-qt_UIS})
 
 # After this call, foo_MOC_SRCS = moc_Class1.cxx moc_Class2.cxx moc_Class3.cxx.
-qt4_wrap_cpp(projectM-qt_MOC_SRCS ${projectM-qt_MOC_HDRS})
+qt5_wrap_cpp(projectM-qt_MOC_SRCS ${projectM-qt_MOC_HDRS})
 
 if(COMMAND cmake_policy)
       cmake_policy(SET CMP0003 NEW)
@@ -108,11 +110,11 @@ endif(COMMAND cmake_policy)
 if (BUILD_PROJECTM_QT_STATIC)
 ADD_LIBRARY(projectM-qt STATIC ${projectM-qt_SRCS} ${projectM-qt_RC_SRCS} ${projectM-qt_MOC_SRCS} ${projectM-qt_UIS_H})
 else(BUILD_PROJECTM_QT_STATIC)
-ADD_LIBRARY(projectM-qt SHARED ${projectM-qt_SRCS} ${projectM-qt_RC_SRCS} ${projectM-qt_MOC_SRCS} ${projectM-qt_UIS_H})
+ADD_LIBRARY(projectM-qt-qt5 SHARED ${projectM-qt_SRCS} ${projectM-qt_RC_SRCS} ${projectM-qt_MOC_SRCS} ${projectM-qt_UIS_H})
 endif(BUILD_PROJECTM_QT_STATIC)
 
-set_property(TARGET projectM-qt PROPERTY IMPORTED_LINK_DEPENDENT_LIBRARIES "")
-SET_TARGET_PROPERTIES(projectM-qt PROPERTIES VERSION ${PROJECTM_QT_VERSION} SOVERSION ${PROJECTM_QT_ABI_LEVEL})
+set_property(TARGET projectM-qt-qt5 PROPERTY IMPORTED_LINK_DEPENDENT_LIBRARIES "")
+SET_TARGET_PROPERTIES(projectM-qt-qt5 PROPERTIES VERSION ${PROJECTM_QT_VERSION} SOVERSION ${PROJECTM_QT_ABI_LEVEL})
 
 if (${CMAKE_PROJECT_NAME} MATCHES "projectM-complete")
    set(PROJECTM_INCLUDE ${projectM-complete_SOURCE_DIR}/libprojectM)
@@ -124,12 +126,12 @@ endif (${CMAKE_PROJECT_NAME} MATCHES "pr
 
 LINK_DIRECTORIES(${PROJECTM_LINK})
 
-include_directories(${PROJECTM_INCLUDE} ${QT_INCLUDE_DIR} ${QT_QTGUI_INCLUDE_DIR} ${QT_QTXML_INCLUDE_DIR} ${QT_QTOPENGL_INCLUDE_DIR} ${CMAKE_CURRENT_LIBRARY_DIR})
+include_directories(${PROJECTM_INCLUDE} ${Qt5Widgets_INCLUDE_DIR} ${Qt5OpenGL_INCLUDE_DIR} ${CMAKE_CURRENT_LIBRARY_DIR})
 
 # link the "qprojectM" target against the Qt libraries. which libraries exactly, is defined by the "include(${QT_USE_FILE})" line above, which sets up this variable.
-target_link_libraries(projectM-qt projectM GLEW GL ${QT_QTGUI_LIBRARIES} ${QT_QTOPENGL_LIBRARIES} ${QT_QTXML_LIBRARIES} ${QT_LIBRARIES})
+target_link_libraries(projectM-qt-qt5 projectM-qt5 GLEW GL ${Qt5Widgets_LIBRARIES} ${Qt5OpenGL_LIBRARIES})
 
-install(FILES qprojectm_mainwindow.hpp DESTINATION include/libprojectM-qt)
-install(TARGETS projectM-qt DESTINATION lib${LIB_SUFFIX})
-install(FILES "${CMAKE_CURRENT_BINARY_DIR}/libprojectM-qt.pc" DESTINATION lib${LIB_SUFFIX}/pkgconfig)
-install(FILES "images/icons/prjm16-transparent.svg" DESTINATION	${CMAKE_INSTALL_PREFIX}/share/pixmaps)
+install(FILES qprojectm_mainwindow.hpp DESTINATION include/libprojectM-qt-qt5)
+install(TARGETS projectM-qt-qt5 DESTINATION lib${LIB_SUFFIX})
+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/libprojectM-qt.pc" RENAME libprojectM-qt-qt5.pc DESTINATION lib${LIB_SUFFIX}/pkgconfig)
+install(FILES "images/icons/prjm16-transparent.svg" RENAME prjm16-transparent-qt5.svg DESTINATION	${CMAKE_INSTALL_PREFIX}/share/pixmaps)
Index: projectM-complete-2.1.0-Source/src/projectM-qt/qplaylistfiledialog.hpp
===================================================================
--- projectM-complete-2.1.0-Source.orig/src/projectM-qt/qplaylistfiledialog.hpp
+++ projectM-complete-2.1.0-Source/src/projectM-qt/qplaylistfiledialog.hpp
@@ -127,10 +127,7 @@
  private slots:
 	 
 	 void updateFileMode(const QString fileName) {
-		 
-		 QString filter = getFilter();
-		 		
-		 	
+
 		if (fileName == QString()) {
 			 if (isPlaylistSaveMode())
 				 this->setFileMode(QFileDialog::AnyFile);
@@ -156,7 +153,7 @@
 				 this->setFileMode(QFileDialog::Directory);
 		}
 				
-		this->setFilter(filter);
+		this->setFilter(filter());
 	 }
 	 
 	 void updateFileMode(const QStringList & selectedFiles) {
Index: projectM-complete-2.1.0-Source/src/projectM-qt/qplaylistmodel.cpp
===================================================================
--- projectM-complete-2.1.0-Source.orig/src/projectM-qt/qplaylistmodel.cpp
+++ projectM-complete-2.1.0-Source/src/projectM-qt/qplaylistmodel.cpp
@@ -278,9 +278,9 @@ QVariant QPlaylistModel::data ( const QM
 			if (!m_projectM.selectedPresetIndex(pos))
 				return QVariant();						
 			if (m_projectM.isPresetLocked() && ( index.row() == pos ) )
-				return Qt::red;
+				return QColor(Qt::red);
 			if (!m_projectM.isPresetLocked() && ( index.row() == pos ) )
-				return Qt::green;
+				return QColor(Qt::green);
 			return QVariant();
 		case QPlaylistModel::URLInfoRole:
 			return QVariant ( QString ( m_projectM.getPresetURL ( index.row() ).c_str() ) );
Index: projectM-complete-2.1.0-Source/src/projectM-qt/qprojectm_mainwindow.cpp
===================================================================
--- projectM-complete-2.1.0-Source.orig/src/projectM-qt/qprojectm_mainwindow.cpp
+++ projectM-complete-2.1.0-Source/src/projectM-qt/qprojectm_mainwindow.cpp
@@ -19,7 +19,7 @@
  *
  */
 
-#include <QtGui>
+#include <QtWidgets>
 #include "qprojectm_mainwindow.hpp"
 #include "qpresetfiledialog.hpp"
 #include "qplaylistfiledialog.hpp"
@@ -164,7 +164,7 @@ void QProjectM_MainWindow::popupPlaylist
 
 void QProjectM_MainWindow::readConfig(const std::string & configFile ) {
 
-	QSettings settings ( "projectM", "qprojectM" );
+	QSettings settings ( "projectM-qt5", "qprojectM-qt5" );
 
 	if ( settings.value("FullscreenOnStartup", false).toBool() )
 		this->setWindowState ( this->windowState() | Qt::WindowFullScreen );
@@ -276,7 +276,7 @@ void QProjectM_MainWindow::selectPlaylis
 void QProjectM_MainWindow::postProjectM_Initialize()
 
 {
-	QSettings qSettings("projectM", "qprojectM");
+	QSettings qSettings("projectM-qt5", "qprojectM-qt5");
 
 	playlistModel = new QPlaylistModel ( *qprojectM(), this );
 	ui->tableView->setModel ( playlistModel );
@@ -435,7 +435,7 @@ void QProjectM_MainWindow::setMenuAndSta
 }
 
 void QProjectM_MainWindow::readPlaylistSettings() {
-	const QSettings settings ( "projectM", "qprojectM" );
+	const QSettings settings ( "projectM-qt5", "qprojectM-qt5" );
 
 	/// @bug Hack for default values here. Should be auto placed or something elative to main window.
 
@@ -655,15 +655,15 @@ void QProjectM_MainWindow::keyReleaseEve
 void QProjectM_MainWindow::refreshHeaders(QResizeEvent * event) {
 
 
-	hHeader->setResizeMode ( 0, QHeaderView::Fixed);
-	hHeader->setResizeMode ( 1, QHeaderView::ResizeToContents);
+	hHeader->setSectionResizeMode ( 0, QHeaderView::Fixed);
+	hHeader->setSectionResizeMode ( 1, QHeaderView::ResizeToContents);
 
 	const int numRatings =  qprojectM()->settings().softCutRatingsEnabled ? 2 : 1;
 
 	int sizeTotal = 0;
 	for (int i = 0; i < numRatings; i++) {
 		// Add 1 to skip the Name column
-		hHeader->setResizeMode (i+1, QHeaderView::ResizeToContents);
+		hHeader->setSectionResizeMode (i+1, QHeaderView::ResizeToContents);
 		sizeTotal += hHeader->sectionSize(i+1);
 	}
 	hHeader->resizeSection(0, ui->tableView->size().width()-20-sizeTotal);
@@ -1021,7 +1021,7 @@ void QProjectM_MainWindow::refreshPlayli
 	hHeader = new QHeaderView ( Qt::Horizontal, this );
 	vHeader = new QHeaderView ( Qt::Vertical, this );
 
-	hHeader->setClickable ( false );
+	hHeader->setSectionsClickable ( false );
 	hHeader->setSortIndicatorShown ( false );
 
 	ui->tableView->setVerticalHeader ( vHeader );
@@ -1145,7 +1145,7 @@ void QProjectM_MainWindow::readSettings(
 {
 
 	// The settings exclusively due to qprojectM
-	QSettings settings ( "projectM", "qprojectM" );
+	QSettings settings ( "projectM-qt5", "qprojectM-qt5" );
 	QPoint pos = settings.value ( "pos", QPoint ( 200, 200 ) ).toPoint();
 	//QSize size = settings.value ( "size", QSize ( 1024, 768 ) ).toSize();
 
@@ -1160,7 +1160,7 @@ void QProjectM_MainWindow::readSettings(
 
 void QProjectM_MainWindow::writeSettings()
 {
-	QSettings settings ( "projectM", "qprojectM" );
+	QSettings settings ( "projectM-qt5", "qprojectM-qt5" );
 	settings.setValue ( "pos", pos() );
 	//settings.setValue ( "size", size() );
 	settings.setValue ( "playlistPath", m_QPlaylistFileDialog->directory().absolutePath() );
Index: projectM-complete-2.1.0-Source/src/projectM-pulseaudio/projectM-pulseaudio.desktop
===================================================================
--- projectM-complete-2.1.0-Source.orig/src/projectM-pulseaudio/projectM-pulseaudio.desktop
+++ projectM-complete-2.1.0-Source/src/projectM-pulseaudio/projectM-pulseaudio.desktop
@@ -1,9 +1,9 @@
 [Desktop Entry]
-Name=projectM PulseAudio Visualization
+Name=projectM-qt5 PulseAudio Visualization
 GenericName=PulseAudio Stream Visualization
-Comment=Visualization of PulseAudio streams with projectM
-Exec=projectM-pulseaudio
-Icon=prjm16-transparent
+Comment=Visualization of PulseAudio streams with projectM-qt5
+Exec=projectM-pulseaudio-qt5
+Icon=prjm16-transparent-qt5
 Terminal=false
 Type=Application
 Categories=AudioVideo;Audio;Mixer;
Index: projectM-complete-2.1.0-Source/src/projectM-pulseaudio/qprojectM-pulseaudio.cpp
===================================================================
--- projectM-complete-2.1.0-Source.orig/src/projectM-pulseaudio/qprojectM-pulseaudio.cpp
+++ projectM-complete-2.1.0-Source/src/projectM-pulseaudio/qprojectM-pulseaudio.cpp
@@ -59,7 +59,7 @@
 #include <QAction>
 #include <QThread>
 #include <QTimer>
-#define CONFIG_FILE "/share/projectM/config.inp"
+#define CONFIG_FILE "/share/projectM-qt5/config.inp"
 
 std::string read_config();
 
@@ -173,28 +173,28 @@ std::string read_config()
 	printf ( "dir:%s \n",projectM_config );
 	home=getenv ( "HOME" );
 	strcpy ( projectM_home, home );
-	strcpy ( projectM_home+strlen ( home ), "/.projectM/config.inp" );
-	projectM_home[strlen ( home ) +strlen ( "/.projectM/config.inp" ) ]='\0';
+	strcpy ( projectM_home+strlen ( home ), "/.projectM-qt5/config.inp" );
+	projectM_home[strlen ( home ) +strlen ( "/.projectM-qt5/config.inp" ) ]='\0';
 
 
 	if ( ( in = fopen ( projectM_home, "r" ) ) != 0 )
 	{
-		printf ( "reading ~/.projectM/config.inp \n" );
+		printf ( "reading ~/.projectM-qt5/config.inp \n" );
 		fclose ( in );
 		return std::string ( projectM_home );
 	}
 	else
 	{
-		printf ( "trying to create ~/.projectM/config.inp \n" );
+		printf ( "trying to create ~/.projectM-qt5/config.inp \n" );
 
 		strcpy ( projectM_home, home );
-		strcpy ( projectM_home+strlen ( home ), "/.projectM" );
-		projectM_home[strlen ( home ) +strlen ( "/.projectM" ) ]='\0';
+		strcpy ( projectM_home+strlen ( home ), "/.projectM-qt5" );
+		projectM_home[strlen ( home ) +strlen ( "/.projectM-qt5" ) ]='\0';
 		mkdir ( projectM_home, 0755 );
 
 		strcpy ( projectM_home, home );
-		strcpy ( projectM_home+strlen ( home ), "/.projectM/config.inp" );
-		projectM_home[strlen ( home ) +strlen ( "/.projectM/config.inp" ) ]='\0';
+		strcpy ( projectM_home+strlen ( home ), "/.projectM-qt5/config.inp" );
+		projectM_home[strlen ( home ) +strlen ( "/.projectM-qt5/config.inp" ) ]='\0';
 
 		if ( ( out = fopen ( projectM_home,"w" ) ) !=0 )
 		{
@@ -212,7 +212,7 @@ std::string read_config()
 
 				if ( ( in = fopen ( projectM_home, "r" ) ) != 0 )
 				{
-					printf ( "created ~/.projectM/config.inp successfully\n" );
+					printf ( "created ~/.projectM-qt5/config.inp successfully\n" );
 					fclose ( in );
 					return std::string ( projectM_home );
 				}
@@ -222,7 +222,7 @@ std::string read_config()
 		}
 		else
 		{
-			printf ( "Cannot create ~/.projectM/config.inp, using default config file\n" );
+			printf ( "Cannot create ~/.projectM-qt5/config.inp, using default config file\n" );
 			if ( ( in = fopen ( projectM_config, "r" ) ) != 0 )
 			{
 				printf ( "Successfully opened default config file\n" );
Index: projectM-complete-2.1.0-Source/src/projectM-libvisual/actor_projectM.cpp
===================================================================
--- projectM-complete-2.1.0-Source.orig/src/projectM-libvisual/actor_projectM.cpp
+++ projectM-complete-2.1.0-Source/src/projectM-libvisual/actor_projectM.cpp
@@ -15,7 +15,7 @@
 #include "lvtoprojectM.h"
 #include "ConfigFile.h"
 
-#define CONFIG_FILE "/share/projectM/config.inp"
+#define CONFIG_FILE "/share/projectM-qt5/config.inp"
 
 
 
@@ -258,28 +258,28 @@ std::string read_config()
    printf("dir:%s \n",projectM_config);
    home=getenv("HOME");
    strcpy(projectM_home, home);
-   strcpy(projectM_home+strlen(home), "/.projectM/config.inp");
-   projectM_home[strlen(home)+strlen("/.projectM/config.inp")]='\0';
+   strcpy(projectM_home+strlen(home), "/.projectM-qt5/config.inp");
+   projectM_home[strlen(home)+strlen("/.projectM-qt5/config.inp")]='\0';
 
 
  if ((in = fopen(projectM_home, "r")) != 0)
    {
-     printf("reading ~/.projectM/config.inp \n");
+     printf("reading ~/.projectM-qt5/config.inp \n");
      fclose(in);
      return std::string(projectM_home);
    }
  else
    {
-     printf("trying to create ~/.projectM/config.inp \n");
+     printf("trying to create ~/.projectM-qt5/config.inp \n");
 
      strcpy(projectM_home, home);
-     strcpy(projectM_home+strlen(home), "/.projectM");
-     projectM_home[strlen(home)+strlen("/.projectM")]='\0';
+     strcpy(projectM_home+strlen(home), "/.projectM-qt5");
+     projectM_home[strlen(home)+strlen("/.projectM-qt5")]='\0';
      mkdir(projectM_home,0755);
 
      strcpy(projectM_home, home);
-     strcpy(projectM_home+strlen(home), "/.projectM/config.inp");
-     projectM_home[strlen(home)+strlen("/.projectM/config.inp")]='\0';
+     strcpy(projectM_home+strlen(home), "/.projectM-qt5/config.inp");
+     projectM_home[strlen(home)+strlen("/.projectM-qt5/config.inp")]='\0';
 
      if((out = fopen(projectM_home,"w"))!=0)
        {
@@ -297,7 +297,7 @@ std::string read_config()
 
 	     if ((in = fopen(projectM_home, "r")) != 0)
 	       {
-		 printf("created ~/.projectM/config.inp successfully\n");
+		 printf("created ~/.projectM-qt5/config.inp successfully\n");
 		 fclose(in);
 		 return std::string(projectM_home);
 	       }
@@ -307,7 +307,7 @@ std::string read_config()
        }
      else
        {
-	 printf("Cannot create ~/.projectM/config.inp, using default config file\n");
+	 printf("Cannot create ~/.projectM-qt5/config.inp, using default config file\n");
 	 if ((in = fopen(projectM_config, "r")) != 0)
 	   { printf("Successfully opened default config file\n");
 	     fclose(in);
Index: projectM-complete-2.1.0-Source/src/projectM-qt/qprojectm_mainwindow.hpp
===================================================================
--- projectM-complete-2.1.0-Source.orig/src/projectM-qt/qprojectm_mainwindow.hpp
+++ projectM-complete-2.1.0-Source/src/projectM-qt/qprojectm_mainwindow.hpp
@@ -21,7 +21,7 @@
 
 #ifndef QPROJECTM_MAINWINDOW_H
 #define QPROJECTM_MAINWINDOW_H
-#define CONFIG_FILE "/share/projectM/config.inp"
+#define CONFIG_FILE "/share/projectM-qt5/config.inp"
 
 #include <QMainWindow>
 #include <QCloseEvent>
Index: projectM-complete-2.1.0-Source/src/projectM-qt/qpresetfiledialog.hpp
===================================================================
--- projectM-complete-2.1.0-Source.orig/src/projectM-qt/qpresetfiledialog.hpp
+++ projectM-complete-2.1.0-Source/src/projectM-qt/qpresetfiledialog.hpp
@@ -23,7 +23,7 @@
 #define QPRESET_FILEDIALOG_H
 
 
-#define CONFIG_FILE "/share/projectM/config.inp"
+#define CONFIG_FILE "/share/projectM-qt5/config.inp"
 
 #include <QMainWindow>
 #include <QCloseEvent>
Index: projectM-complete-2.1.0-Source/src/libprojectM/Renderer/TextureManager.cpp
===================================================================
--- projectM-complete-2.1.0-Source.orig/src/libprojectM/Renderer/TextureManager.cpp
+++ projectM-complete-2.1.0-Source/src/libprojectM/Renderer/TextureManager.cpp
@@ -212,7 +212,7 @@ unsigned int TextureManager::getTextureM
 
 void TextureManager::loadTextureDir()
 {
-	std::string dirname = CMAKE_INSTALL_PREFIX "/share/projectM/textures";
+	std::string dirname = CMAKE_INSTALL_PREFIX "/share/projectM-qt5/textures";
 
 	  DIR * m_dir;
 
Index: projectM-complete-2.1.0-Source/src/libprojectM/projectM.cpp
===================================================================
--- projectM-complete-2.1.0-Source.orig/src/libprojectM/projectM.cpp
+++ projectM-complete-2.1.0-Source/src/libprojectM/projectM.cpp
@@ -180,7 +180,7 @@ void projectM::readConfig (const std::st
     _settings.presetDuration = config.read<int> ( "Preset Duration", 15 );
 
     #ifdef LINUX
-    _settings.presetURL = config.read<string> ( "Preset Path", CMAKE_INSTALL_PREFIX "/share/projectM/presets" );
+    _settings.presetURL = config.read<string> ( "Preset Path", CMAKE_INSTALL_PREFIX "/share/projectM-qt5/presets" );
     #endif
 
     #ifdef __APPLE__
Index: projectM-complete-2.1.0-Source/src/projectM-pulseaudio/QPulseAudioDeviceChooser.cpp
===================================================================
--- projectM-complete-2.1.0-Source.orig/src/projectM-pulseaudio/QPulseAudioDeviceChooser.cpp
+++ projectM-complete-2.1.0-Source/src/projectM-pulseaudio/QPulseAudioDeviceChooser.cpp
@@ -27,7 +27,7 @@
 void QPulseAudioDeviceChooser::writeSettings()
 {
 
-	QSettings settings ( "projectM", "qprojectM-pulseaudio" );
+	QSettings settings ( "projectM-qt5", "qprojectM-pulseaudio-qt5" );
 	settings.setValue ( "tryFirstAvailablePlaybackMonitor",
 	                    this->tryFirstPlayBackMonitorCheckBox->checkState() == Qt::Checked );
 			    
@@ -40,7 +40,7 @@ void QPulseAudioDeviceChooser::writeSett
 void QPulseAudioDeviceChooser::readSettings()
 {
 
-	QSettings settings ( "projectM", "qprojectM-pulseaudio" );
+	QSettings settings ( "projectM-qt5", "qprojectM-pulseaudio-qt5" );
 
 	bool tryFirst = settings.value
 	                ( "tryFirstAvailablePlaybackMonitor", true ).toBool() ;
Index: projectM-complete-2.1.0-Source/src/projectM-pulseaudio/QPulseAudioThread.cpp
===================================================================
--- projectM-complete-2.1.0-Source.orig/src/projectM-pulseaudio/QPulseAudioThread.cpp
+++ projectM-complete-2.1.0-Source/src/projectM-pulseaudio/QPulseAudioThread.cpp
@@ -81,7 +81,7 @@ QPulseAudioThread::~QPulseAudioThread()
 QPulseAudioThread::SourceContainer::const_iterator QPulseAudioThread::readSettings()
 {
 
-	QSettings settings ( "projectM", "qprojectM-pulseaudio" );
+	QSettings settings ( "projectM-qt5", "qprojectM-pulseaudio-qt5" );
 
 	bool tryFirst = settings.value
 			( "tryFirstAvailablePlaybackMonitor", true ).toBool() ;
Index: projectM-complete-2.1.0-Source/src/projectM-qt/qprojectmconfigdialog.cpp
===================================================================
--- projectM-complete-2.1.0-Source.orig/src/projectM-qt/qprojectmconfigdialog.cpp
+++ projectM-complete-2.1.0-Source/src/projectM-qt/qprojectmconfigdialog.cpp
@@ -25,7 +25,7 @@
 #include <QSettings>
 #include "qprojectmwidget.hpp"
 
-QProjectMConfigDialog::QProjectMConfigDialog(const std::string & configFile, QProjectMWidget * qprojectMWidget, QWidget * parent, Qt::WindowFlags f) : QDialog(parent, f), _configFile(configFile), _qprojectMWidget(qprojectMWidget), _settings("projectM", "qprojectM") {
+QProjectMConfigDialog::QProjectMConfigDialog(const std::string & configFile, QProjectMWidget * qprojectMWidget, QWidget * parent, Qt::WindowFlags f) : QDialog(parent, f), _configFile(configFile), _qprojectMWidget(qprojectMWidget), _settings("projectM-qt5", "qprojectM-qt5") {
 
 
 	_ui.setupUi(this);
@@ -145,7 +145,7 @@ void QProjectMConfigDialog::saveConfig()
 
 	projectM::writeConfig(_configFile, settings);
 
-	QSettings qSettings("projectM", "qprojectM");
+	QSettings qSettings("projectM-qt5", "qprojectM-qt5");
 
 	qSettings.setValue("FullscreenOnStartup", _ui.fullscreenOnStartupCheckBox->checkState() == Qt::Checked);
 	qSettings.setValue("MenuOnStartup", _ui.menuOnStartupCheckBox->checkState() == Qt::Checked);
@@ -191,7 +191,7 @@ void QProjectMConfigDialog::loadConfig()
 	_ui.easterEggParameterSpinBox->setValue(settings.easterEgg);
 	_ui.softCutRatingsEnabledCheckBox->setCheckState(settings.softCutRatingsEnabled ? Qt::Checked : Qt::Unchecked);
 
-	QSettings qSettings("projectM", "qprojectM");
+	QSettings qSettings("projectM-qt5", "qprojectM-qt5");
 	_ui.fullscreenOnStartupCheckBox->setCheckState(qSettings.value("FullscreenOnStartup", false).toBool() ? Qt::Checked : Qt::Unchecked);
 	_ui.menuOnStartupCheckBox->setCheckState(qSettings.value("MenuOnStartup", false).toBool() ? Qt::Checked : Qt::Unchecked);
 	_ui.startupPlaylistFileLineEdit->setText(qSettings.value("PlaylistFile", QString()).toString()	);
Index: projectM-complete-2.1.0-Source/src/projectM-qt/qprojectmwidget.hpp
===================================================================
--- projectM-complete-2.1.0-Source.orig/src/projectM-qt/qprojectmwidget.hpp
+++ projectM-complete-2.1.0-Source/src/projectM-qt/qprojectmwidget.hpp
@@ -45,7 +45,7 @@ class QProjectMWidget : public QGLWidget
 
 			m_mouseTimer = new QTimer ( this );
 
-			QSettings settings("projectM", "qprojectM");
+			QSettings settings("projectM-qt5", "qprojectM-qt5");
 			mouseHideTimeoutSeconds = 
 				settings.value("MouseHideOnTimeout", MOUSE_VISIBLE_TIMEOUT_MS/1000).toInt();
 			
Index: projectM-complete-2.1.0-Source/src/libprojectM/libprojectM.pc.in
===================================================================
--- projectM-complete-2.1.0-Source.orig/src/libprojectM/libprojectM.pc.in
+++ projectM-complete-2.1.0-Source/src/libprojectM/libprojectM.pc.in
@@ -5,9 +5,9 @@ includedir=@CMAKE_INSTALL_PREFIX@/includ
 pkgdatadir=@CMAKE_INSTALL_PREFIX@/@RESOURCE_PREFIX@
 sysconfdir=@CMAKE_INSTALL_PREFIX@/@RESOURCE_PREFIX@
 
-Name: libprojectM
+Name: libprojectM-qt5
 Version: @PROJECTM_VERSION@
-Description: projectM - OpenGL Milkdrop
+Description: projectM-qt5 - OpenGL Milkdrop
 Requires:
-Libs: -L${libdir} -lprojectM
-Cflags: -I${includedir}/libprojectM
+Libs: -L${libdir} -lprojectM-qt5
+Cflags: -I${includedir}/libprojectM-qt5
Index: projectM-complete-2.1.0-Source/src/projectM-qt/libprojectM-qt.pc.in
===================================================================
--- projectM-complete-2.1.0-Source.orig/src/projectM-qt/libprojectM-qt.pc.in
+++ projectM-complete-2.1.0-Source/src/projectM-qt/libprojectM-qt.pc.in
@@ -2,12 +2,12 @@ prefix=@CMAKE_INSTALL_PREFIX@
 exec_prefix=@CMAKE_INSTALL_PREFIX@
 libdir=@LIB_INSTALL_DIR@
 includedir=@CMAKE_INSTALL_PREFIX@/include
-pkgdatadir=@CMAKE_INSTALL_PREFIX@/share/projectM-qt
-sysconfdir=@CMAKE_INSTALL_PREFIX@/share/projectM-qt
+pkgdatadir=@CMAKE_INSTALL_PREFIX@/share/projectM-qt-qt5
+sysconfdir=@CMAKE_INSTALL_PREFIX@/share/projectM-qt-qt5
 
-Name: libprojectM-qt
+Name: libprojectM-qt-qt5
 Version: 1.2.0
-Description: projectM-qt provides a full featured Qt4 graphical user interface to projectM
-Requires: libprojectM QtCore QtGui QtXml QtOpenGL
-Libs: -L${libdir} -lprojectM-qt
-Cflags: -I${includedir}/libprojectM-qt
+Description: projectM-qt-qt5 provides a full featured Qt5 graphical user interface to projectM
+Requires: libprojectM-qt5 Qt5Core Qt5Widgets Qt5OpenGL
+Libs: -L${libdir} -lprojectM-qt-qt5
+Cflags: -I${includedir}/libprojectM-qt-qt5
openSUSE Build Service is sponsored by