Commit 7ab28efd authored by Laurent Montel's avatar Laurent Montel 😁
Browse files

Start to implement userfeedback. Disable by default

parent f168e745
......@@ -60,6 +60,17 @@ set(AKONADINOTES_LIB_VERSION "5.13.40")
set(QT_REQUIRED_VERSION "5.12.0")
option(KDEPIM_ENTERPRISE_BUILD "Enable features specific to the enterprise branch, which are normally disabled. Also, it disables many components not needed for Kontact such as the Kolab client." FALSE)
find_package(Qt5 ${QT_REQUIRED_VERSION} CONFIG REQUIRED DBus Gui Widgets Test UiTools)
option(KDEPIM_KUSERFEEDBACK "Enable user feedback support (experimental)" FALSE)
if (KDEPIM_KUSERFEEDBACK)
#Optional
find_package(KUserFeedback)
endif()
if (TARGET KUserFeedbackWidgets)
add_definitions(-DWITH_KUSERFEEDBACK)
endif()
set(KDEPIM_APPS_LIB_VERSION_LIB "5.13.40")
set(PIMCOMMON_LIB_VERSION_LIB "5.13.43")
set(LIBKDEPIM_LIB_VERSION_LIB "5.13.40")
......
......@@ -143,9 +143,16 @@ install(TARGETS
)
########### next target ###############
set(korganizerprivate_userfeedback_SRCS)
if (TARGET KUserFeedbackWidgets)
set(korganizerprivate_userfeedback_SRCS ${korganizerprivate_userfeedback_SRCS}
userfeedback/userfeedbackmanager.cpp
)
endif()
set(korganizerprivate_LIB_SRCS
${korganizer_common_SRCS}
${korganizerprivate_userfeedback_SRCS}
manageshowcollectionproperties.cpp
korgmigrateapplication.cpp
collectiongeneralpage.cpp
......@@ -187,6 +194,8 @@ set(korganizerprivate_LIB_SRCS
views/whatsnextview/kowhatsnextview.cpp
)
qt5_add_resources(korganizerprivate_LIB_SRCS korganizer.qrc)
set_property(SOURCE ${CMAKE_CURRENT_BINARY_DIR}/qrc_korganizer.cpp PROPERTY SKIP_AUTOMOC ON)
......@@ -228,6 +237,11 @@ qt5_add_dbus_interfaces(korganizerprivate_LIB_SRCS
add_library(korganizerprivate ${korganizerprivate_LIB_SRCS})
generate_export_header(korganizerprivate BASE_NAME korganizerprivate)
set(korganizer_userfeedback_LIB)
if (TARGET KUserFeedbackWidgets)
set(korganizer_userfeedback_LIB KUserFeedbackWidgets)
endif()
target_link_libraries(korganizerprivate
PUBLIC
KF5::PimCommonAkonadi
......@@ -257,6 +271,7 @@ target_link_libraries(korganizerprivate
KF5::WindowSystem
KF5::Notifications
KF5::ItemViews
${korganizer_userfeedback_LIB}
)
target_include_directories(korganizerprivate PUBLIC
......
/*
Copyright (C) 2020 Laurent Montel <montel@kde.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#include "userfeedbackmanager.h"
#include <KUserFeedback/ApplicationVersionSource>
#include <KUserFeedback/PlatformInfoSource>
#include <KUserFeedback/ScreenInfoSource>
#include <KUserFeedback/QtVersionSource>
#include <KUserFeedback/Provider>
#include <KUserFeedback/StartCountSource>
#include <KUserFeedback/UsageTimeSource>
#include <KUserFeedback/LocaleInfoSource>
UserFeedBackManager::UserFeedBackManager(QObject *parent)
: QObject(parent)
{
mUserFeedbackProvider = new KUserFeedback::Provider(this);
mUserFeedbackProvider->setProductIdentifier(QStringLiteral("org.kde.korganizer"));
mUserFeedbackProvider->setFeedbackServer(QUrl(QStringLiteral("https://telemetry.kde.org/")));
mUserFeedbackProvider->setSubmissionInterval(7);
mUserFeedbackProvider->setApplicationStartsUntilEncouragement(5);
mUserFeedbackProvider->setEncouragementDelay(30);
mUserFeedbackProvider->addDataSource(new KUserFeedback::ApplicationVersionSource);
mUserFeedbackProvider->addDataSource(new KUserFeedback::PlatformInfoSource);
mUserFeedbackProvider->addDataSource(new KUserFeedback::ScreenInfoSource);
mUserFeedbackProvider->addDataSource(new KUserFeedback::QtVersionSource);
mUserFeedbackProvider->addDataSource(new KUserFeedback::StartCountSource);
mUserFeedbackProvider->addDataSource(new KUserFeedback::UsageTimeSource);
mUserFeedbackProvider->addDataSource(new KUserFeedback::LocaleInfoSource);
}
UserFeedBackManager *UserFeedBackManager::self()
{
static UserFeedBackManager s_self;
return &s_self;
}
KUserFeedback::Provider *UserFeedBackManager::userFeedbackProvider() const
{
return mUserFeedbackProvider;
}
/*
Copyright (C) 2020 Laurent Montel <montel@kde.org>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; see the file COPYING. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#ifndef USERFEEDBACKMANAGER_H
#define USERFEEDBACKMANAGER_H
#include <QObject>
namespace KUserFeedback {
class Provider;
}
class UserFeedBackManager : public QObject
{
Q_OBJECT
public:
explicit UserFeedBackManager(QObject *parent = nullptr);
static UserFeedBackManager *self();
KUserFeedback::Provider *userFeedbackProvider() const;
private:
KUserFeedback::Provider *mUserFeedbackProvider = nullptr;
};
#endif // USERFEEDBACKMANAGER_H
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment