Remove QtFeedback dependency

This commit is contained in:
Devin Lin 2022-04-29 18:59:14 -04:00
parent 3353cfc498
commit 2201ebd1d7
8 changed files with 48 additions and 52 deletions

View file

@ -46,7 +46,6 @@ find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED
Qml
Quick
QuickCompiler
Feedback
)
if (QUICK_COMPILER)

View file

@ -6,7 +6,6 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/..)
set(mobileshellplugin_SRCS
mobileshellplugin.cpp
haptics.cpp
mobileshellsettings.cpp
quicksetting.cpp
quicksettingsmodel.cpp
@ -38,7 +37,6 @@ target_link_libraries(mobileshellplugin
Qt::Qml
Qt::Gui
Qt::Quick
Qt::Feedback
KF5::ConfigWidgets # for KStandardAction
KF5::KIOGui
KF5::Plasma

View file

@ -1,26 +0,0 @@
/*
* SPDX-FileCopyrightText: 2022 Devin Lin <devin@kde.org>
* SPDX-License-Identifier: GPL-2.0-or-later
*/
#include "haptics.h"
#include <QFeedbackHapticsEffect>
#include "mobileshellsettings.h"
Haptics *Haptics::self()
{
static Haptics *singleton = new Haptics();
return singleton;
}
void Haptics::buttonVibrate()
{
if (MobileShellSettings::self()->vibrationsEnabled()) {
QFeedbackHapticsEffect rumble;
rumble.setIntensity(0.5);
rumble.setDuration(100);
rumble.start();
}
}

View file

@ -1,18 +0,0 @@
/*
* SPDX-FileCopyrightText: 2022 Devin Lin <devin@kde.org>
* SPDX-License-Identifier: GPL-2.0-or-later
*/
#pragma once
#include <QObject>
class Haptics : public QObject
{
Q_OBJECT
public:
static Haptics *self();
Q_INVOKABLE void buttonVibrate();
};

View file

@ -19,7 +19,6 @@
#include "taskswitcher/displaysmodel.h"
#include "haptics.h"
#include "mobileshellsettings.h"
#include "quicksetting.h"
#include "quicksettingsmodel.h"
@ -39,10 +38,6 @@ void MobileShellPlugin::registerTypes(const char *uri)
return ShellUtil::instance();
});
qmlRegisterSingletonType<Haptics>(uri, 1, 0, "Haptics", [](QQmlEngine *, QJSEngine *) -> QObject * {
return Haptics::self();
});
qmlRegisterSingletonType<MobileShellSettings>(uri, 1, 0, "MobileShellSettings", [](QQmlEngine *, QJSEngine *) -> QObject * {
return MobileShellSettings::self();
});
@ -82,6 +77,7 @@ void MobileShellPlugin::registerTypes(const char *uri)
// /components
qmlRegisterType(resolvePath("components/BaseItem.qml"), uri, 1, 0, "BaseItem");
qmlRegisterSingletonType(resolvePath("components/Haptics.qml"), uri, 1, 0, "Haptics");
qmlRegisterType(resolvePath("components/StartupFeedback.qml"), uri, 1, 0, "StartupFeedback");
qmlRegisterType(resolvePath("components/VelocityCalculator.qml"), uri, 1, 0, "VelocityCalculator");

View file

@ -0,0 +1,31 @@
/*
* SPDX-FileCopyrightText: 2022 Devin Lin <devin@kde.org>
* SPDX-License-Identifier: GPL-2.0-or-later
*/
import QtQuick 2.15
import QtFeedback 5.0
import org.kde.plasma.private.mobileshell 1.0 as MobileShell
pragma Singleton
QtObject {
id: root
function buttonVibrate() {
if (MobileShell.MobileShellSettings.vibrationsEnabled) {
if (hapticsEffect.status == Loader.Ready) {
hapticsEffect.item.intensity = 0.5;
hapticsEffect.item.duration = 100;
hapticsEffect.item.start();
}
}
}
Component.onCompleted: {
hapticsEffect.setSource("HapticsEffectWrapper.qml");
}
property var hapticsEffect: Loader {}
}

View file

@ -0,0 +1,14 @@
/*
* SPDX-FileCopyrightText: 2022 Devin Lin <devin@kde.org>
* SPDX-License-Identifier: GPL-2.0-or-later
*/
import QtQuick 2.15
import QtFeedback 5.0
/**
* Private component that wraps a QtFeedback HapticsEffect, so that we can optionally load
* this component.
*/
HapticsEffect {}

View file

@ -21,6 +21,8 @@
<file>qml/actiondrawer/PortraitContentContainer.qml</file>
<file>qml/components/BaseItem.qml</file>
<file>qml/components/Haptics.qml</file>
<file>qml/components/HapticsEffectWrapper.qml</file>
<file>qml/components/MarqueeLabel.qml</file>
<file>qml/components/StartupFeedback.qml</file>
<file>qml/components/util.js</file>