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=