File qt5.patch of Package polkit-kde-agent-5

diff --git a/AuthDialog.cpp b/AuthDialog.cpp
index f2c4886..7ccc6da 100644
--- a/AuthDialog.cpp
+++ b/AuthDialog.cpp
@@ -27,6 +27,7 @@
 #include <QtGui/QPainter>
 #include <QtGui/QStandardItemModel>
 #include <KDebug>
+#include <KLocale>
 
 #include <KToolInvocation>
 #include <KUser>
@@ -36,6 +37,8 @@
 
 #include <KWindowSystem>
 #include <KNotification>
+#include <KIconLoader>
+#include <KIcon>
 
 AuthDialog::AuthDialog(const QString &actionId,
                        const QString &message,
@@ -215,15 +218,13 @@ void AuthDialog::createUserCB(const PolkitQt1::Identity::List &identities)
                 display = user.loginName();
             }
 
-            KIcon icon;
             // load user icon face
+            // appends the user item
             if (!user.faceIconPath().isEmpty()) {
-                icon = KIcon(user.faceIconPath());
+                userCB->addItem(KIcon(user.faceIconPath()), display, qVariantFromValue<QString> (identity.toString()));
             } else {
-                icon = KIcon("user-identity");
+                userCB->addItem(KIcon("user-identity"), display, qVariantFromValue<QString> (identity.toString()));
             }
-            // appends the user item
-            userCB->addItem(icon, display, qVariantFromValue<QString> (identity.toString()));
 
             if (user == currentUser) {
                 currentUserIndex = index;
diff --git a/AuthDialog.h b/AuthDialog.h
index 620145d..594690a 100644
--- a/AuthDialog.h
+++ b/AuthDialog.h
@@ -26,6 +26,8 @@
 #include "ui_AuthDialog.h"
 #include "ui_authdetails.h"
 
+#include <KDialog>
+
 #include <PolkitQt1/Identity>
 #include <PolkitQt1/ActionDescription>
 
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f79b88f..f32db2d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,39 +1,86 @@
+cmake_minimum_required(VERSION 2.8.12)
 project(polkit-kde-agent-1)
 
+option(USE_QT4 "Use KDE4 and Qt4 to compile the agent" OFF)
+option(USE_QT5 "Use KF5 and Qt5 to compile the agent" OFF)
+
 set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules")
 
-find_package(KDE4 REQUIRED)
+if(NOT USE_QT4 AND NOT USE_QT5)
+    # Autodetect, prefering Qt 5
+    message(STATUS "Autodetecting Qt version to use")
+    find_package(Qt5Core QUIET)
+    if(NOT Qt5Core_FOUND)
+        message(STATUS "Qt5 not found, defaulting to Qt4")
+        set(USE_QT4 TRUE)
+    else()
+        message(STATUS "Qt5 found")
+    endif()
+endif()
+
+
+if(USE_QT4)
+    set(POLKITQT-1_MIN_VERSION "0.99.0")
+    find_package(PolkitQt-1 REQUIRED)
+    find_package(KDE4 REQUIRED)
+
+    set(KDEx_LIBRARIES ${KDE4_KDEUI_LIBS} )
+    set(KDEx_INCLUDES ${KDE4_INCLUDES} )
+    set(AGENT_NAME "polkit-kde-authentication-agent-1")
+
+    qt4_add_dbus_adaptor(policykit_SRCS org.kde.Polkit1AuthAgent.xml policykitlistener.h PolicyKitListener)
+    qt4_wrap_ui(policykit_SRCS AuthDialog.ui authdetails.ui)
+else()
+    set(POLKITQT5-1_MIN_VERSION "0.99.0")
+    find_package(PolkitQt5-1 REQUIRED)
+    find_package(ECM REQUIRED NO_MODULE)
+    find_package(Qt5 REQUIRED Core DBus)
+    find_package(KF5KDELibs4Support)
+    find_package(KF5IconThemes)
+    set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
 
-set(POLKITQT-1_MIN_VERSION "0.99.0")
-find_package(PolkitQt-1 REQUIRED)
+    include(KDEInstallDirs)
+    include(KDECompilerSettings)
+    include(KDECMakeSettings)
+    include(FeatureSummary)
 
-include_directories(${KDE4_INCLUDES}
+    set(KDEx_LIBRARIES KF5::KDELibs4Support KF5::IconThemes)
+    set(KDEx_INCLUDES  )
+    set(AGENT_NAME "polkit-kde-authentication-agent-5")
+
+    qt5_add_dbus_adaptor(policykit_SRCS org.kde.Polkit1AuthAgent.xml policykitlistener.h PolicyKitListener)
+    qt5_wrap_ui(policykit_SRCS AuthDialog.ui authdetails.ui)
+endif()
+
+set(CMAKE_AUTOMOC TRUE)
+add_definitions( -DAGENT_NAME=\"${AGENT_NAME}\" )
+
+
+include_directories(${KDEx_INCLUDES}
                     ${POLKITQT-1_INCLUDE_DIR}
                     ${CMAKE_CURRENT_SOURCE_DIR}
                     ${CMAKE_CURRENT_BINARY_DIR})
 
 set(policykit_SRCS
+    ${policykit_SRCS}
     policykitkde.cpp
     policykitlistener.cpp
     main.cpp
     AuthDialog.cpp
 )
 
-qt4_add_dbus_adaptor(policykit_SRCS org.kde.Polkit1AuthAgent.xml policykitlistener.h PolicyKitListener)
-
-kde4_add_ui_files(policykit_SRCS AuthDialog.ui authdetails.ui)
 
-kde4_add_executable(polkit-kde-authentication-agent-1 ${policykit_SRCS})
+add_executable(${AGENT_NAME} ${policykit_SRCS})
 
-target_link_libraries(polkit-kde-authentication-agent-1
-                                         ${KDE4_KDEUI_LIBS}
-                                         ${POLKITQT-1_LIBRARIES}
+target_link_libraries(${AGENT_NAME}
+                                        ${POLKITQT-1_LIBRARIES}
+                                        ${KDEx_LIBRARIES}
 )
 
-configure_file(polkit-kde-authentication-agent-1.desktop.in ${CMAKE_BINARY_DIR}/polkit-kde-authentication-agent-1.desktop)
+configure_file(polkit-kde-authentication-agent-1.desktop.in ${CMAKE_BINARY_DIR}/${AGENT_NAME}.desktop)
 
-install(TARGETS polkit-kde-authentication-agent-1 DESTINATION ${LIBEXEC_INSTALL_DIR})
+install(TARGETS ${AGENT_NAME} DESTINATION ${LIBEXEC_INSTALL_DIR})
 
-install(FILES ${CMAKE_BINARY_DIR}/polkit-kde-authentication-agent-1.desktop DESTINATION ${AUTOSTART_INSTALL_DIR})
+install(FILES ${CMAKE_BINARY_DIR}/${AGENT_NAME}.desktop DESTINATION ${AUTOSTART_INSTALL_DIR})
 
 install(FILES policykit1-kde.notifyrc DESTINATION ${DATA_INSTALL_DIR}/policykit1-kde)
diff --git a/main.cpp b/main.cpp
index 33ef236..943d19c 100644
--- a/main.cpp
+++ b/main.cpp
@@ -18,8 +18,15 @@
 
 */
 
+#include <QtGlobal>
+#if QT_VERSION >= 0x050000
+# include <K4AboutData>
+#else
+# include <KAboutData>
+# define K4AboutData KAboutData
+#endif
+
 #include <KCmdLineArgs>
-#include <KAboutData>
 #include <KLocale>
 #include <KCrash>
 
@@ -27,11 +34,11 @@
 
 int main(int argc, char *argv[])
 {
-    KAboutData aboutData("Polkit1AuthAgent", "polkit-kde-authentication-agent-1", ki18n("PolicyKit1-KDE"), "0.99.0",
-                         ki18n("PolicyKit1-KDE"), KAboutData::License_GPL,
+    K4AboutData aboutData("Polkit1AuthAgent", AGENT_NAME, ki18n("PolicyKit1-KDE"), "0.99.0",
+                         ki18n("PolicyKit1-KDE"), K4AboutData::License_GPL,
                          ki18n("(c) 2009 Red Hat, Inc."));
     aboutData.addAuthor(ki18n("Jaroslav Reznik"), ki18n("Maintainer"), "jreznik@redhat.com");
-    aboutData.setProductName("policykit-kde/polkit-kde-authentication-agent-1");
+    aboutData.setProductName(AGENT_NAME);
 
     KCmdLineArgs::init(argc, argv, &aboutData);
 
diff --git a/policykitlistener.cpp b/policykitlistener.cpp
index 6da9461..0e96863 100644
--- a/policykitlistener.cpp
+++ b/policykitlistener.cpp
@@ -23,6 +23,7 @@
 
 #include <KDebug>
 #include <KWindowSystem>
+#include <KLocale>
 
 #include <PolkitQt1/Agent/Listener>
 #include <PolkitQt1/Agent/Session>
diff --git a/polkit-kde-authentication-agent-1.desktop.in b/polkit-kde-authentication-agent-1.desktop.in
index aa088cc..40ae52c 100644
--- a/polkit-kde-authentication-agent-1.desktop.in
+++ b/polkit-kde-authentication-agent-1.desktop.in
@@ -16,7 +16,7 @@ Comment[pt]=Agente de Autenticação do PolicyKit
 Comment[sv]=Policykit behörighetskontrollverktyg
 Comment[uk]=Агент розпізнавання PolicyKit
 Comment[x-test]=xxPolicyKit Authentication Agentxx
-Exec=${LIBEXEC_INSTALL_DIR}/polkit-kde-authentication-agent-1
+Exec=${LIBEXEC_INSTALL_DIR}/${AGENT_NAME}
 Terminal=false
 Type=Application
 Categories=
openSUSE Build Service is sponsored by