From e5f77a1094ce193bf695a4c638795e42fab548f2 Mon Sep 17 00:00:00 2001 From: Aleix Pol Date: Wed, 2 Oct 2019 18:02:13 +0200 Subject: [PATCH] Fix build without KUserFeedback --- shell/CMakeLists.txt | 6 +++++- shell/shellcorona.cpp | 38 ++++++++++++++++++++++---------------- 2 files changed, 27 insertions(+), 17 deletions(-) diff --git a/shell/CMakeLists.txt b/shell/CMakeLists.txt index f98aaa078..a032c9365 100644 --- a/shell/CMakeLists.txt +++ b/shell/CMakeLists.txt @@ -71,8 +71,12 @@ target_link_libraries(plasmashell KF5::WaylandClient KF5::Notifications PW::KWorkspace - KUserFeedbackCore ) +if (TARGET KUserFeedbackCore) + target_link_libraries(plasmashell KUserFeedbackCore) + target_compile_definitions(plasmashell PRIVATE -DWITH_KUSERFEEDBACKCORE) +endif() + target_include_directories(plasmashell PRIVATE "${CMAKE_BINARY_DIR}") target_compile_definitions(plasmashell PRIVATE -DPROJECT_VERSION="${PROJECT_VERSION}") diff --git a/shell/shellcorona.cpp b/shell/shellcorona.cpp index 0ac6a6295..6c95ecf31 100644 --- a/shell/shellcorona.cpp +++ b/shell/shellcorona.cpp @@ -51,6 +51,8 @@ #include #include #include + +#ifdef WITH_KUSERFEEDBACKCORE #include #include #include @@ -60,6 +62,9 @@ #include #include +#include "panelcountsource.h" +#endif + #include #include @@ -78,7 +83,6 @@ #include "plasmashelladaptor.h" #include "debug.h" #include "futureutil.h" -#include "panelcountsource.h" #ifndef NDEBUG #define CHECK_SCREEN_INVARIANTS screenInvariants(); @@ -281,25 +285,27 @@ void ShellCorona::setShell(const QString &shell) t->setThemeName(themeName); } - auto m_feedbackProvider = new KUserFeedback::Provider(this); - m_feedbackProvider->setProductIdentifier(QStringLiteral("org.kde.plasmashell")); - m_feedbackProvider->setFeedbackServer(QUrl(QStringLiteral("https://telemetry.kde.org/"))); - m_feedbackProvider->setSubmissionInterval(7); - m_feedbackProvider->setApplicationStartsUntilEncouragement(5); - m_feedbackProvider->setEncouragementDelay(30); - m_feedbackProvider->addDataSource(new KUserFeedback::ApplicationVersionSource); - m_feedbackProvider->addDataSource(new KUserFeedback::CompilerInfoSource); - m_feedbackProvider->addDataSource(new KUserFeedback::PlatformInfoSource); - m_feedbackProvider->addDataSource(new KUserFeedback::QtVersionSource); - m_feedbackProvider->addDataSource(new KUserFeedback::UsageTimeSource); - m_feedbackProvider->addDataSource(new KUserFeedback::OpenGLInfoSource); - m_feedbackProvider->addDataSource(new KUserFeedback::ScreenInfoSource); - m_feedbackProvider->addDataSource(new PanelCountSource(this)); +#ifdef WITH_KUSERFEEDBACKCORE + auto feedbackProvider = new KUserFeedback::Provider(this); + feedbackProvider->setProductIdentifier(QStringLiteral("org.kde.plasmashell")); + feedbackProvider->setFeedbackServer(QUrl(QStringLiteral("https://telemetry.kde.org/"))); + feedbackProvider->setSubmissionInterval(7); + feedbackProvider->setApplicationStartsUntilEncouragement(5); + feedbackProvider->setEncouragementDelay(30); + feedbackProvider->addDataSource(new KUserFeedback::ApplicationVersionSource); + feedbackProvider->addDataSource(new KUserFeedback::CompilerInfoSource); + feedbackProvider->addDataSource(new KUserFeedback::PlatformInfoSource); + feedbackProvider->addDataSource(new KUserFeedback::QtVersionSource); + feedbackProvider->addDataSource(new KUserFeedback::UsageTimeSource); + feedbackProvider->addDataSource(new KUserFeedback::OpenGLInfoSource); + feedbackProvider->addDataSource(new KUserFeedback::ScreenInfoSource); + feedbackProvider->addDataSource(new PanelCountSource(this)); { auto plasmaConfig = KSharedConfig::openConfig(QStringLiteral("PlasmaUserFeedback")); - m_feedbackProvider->setTelemetryMode(KUserFeedback::Provider::TelemetryMode(plasmaConfig->group("Global").readEntry("FeedbackLevel", int(KUserFeedback::Provider::BasicUsageStatistics)))); + feedbackProvider->setTelemetryMode(KUserFeedback::Provider::TelemetryMode(plasmaConfig->group("Global").readEntry("FeedbackLevel", int(KUserFeedback::Provider::BasicUsageStatistics)))); } +#endif //FIXME: this would change the runtime platform to a fixed one if available // but a different way to load platform specific components is needed beforehand