kdeconnect-kde/kcm/kcm.h
Albert Vaca Cintora 981796ed66 Fix KCM reloading the plugins N times when a device was selcted
Every time a device is selected, `pluginsConfigChanged` would trigger even
if no plugins actually changed (there's a boolean to distinghish that on
the signal that we were ignoring). On top of that, we were connecting to
the signal again each time we selected a device, causing this bug to
trigger N+1 times every time a device was selected.

This is bad because `pluginsConfigChanged` would reload all the plugins,
which for some plugins even implies network calls to the connected device.
2023-06-24 17:45:48 +00:00

70 lines
1.5 KiB
C++

/**
* SPDX-FileCopyrightText: 2013 Albert Vaca <albertvaka@gmail.com>
*
* SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
*/
#ifndef KDECONNECTKCM_H
#define KDECONNECTKCM_H
#include <KCModule>
#include <QStandardItemModel>
#include <core/pairstate.h>
class QModelIndex;
class DeviceDbusInterface;
class DaemonDbusInterface;
class DevicesModel;
class DevicesSortProxyModel;
namespace Ui
{
class KdeConnectKcmUi;
}
class KdeConnectKcm : public KCModule
{
Q_OBJECT
public:
KdeConnectKcm(QWidget *parent, const QVariantList &);
~KdeConnectKcm() override;
private:
void save() override;
QSize sizeHint() const override;
QSize minimumSizeHint() const override;
private Q_SLOTS:
void deviceSelected(const QModelIndex &current);
void requestPairing();
void pluginsConfigChanged(bool changed);
void sendPing();
void resetSelection();
void pairingFailed(const QString &error);
void refresh();
void renameShow();
void renameDone();
void setRenameMode(bool b);
void resetCurrentDevice();
void setCurrentDevicePairState(int pairStateAsInt);
void acceptPairing();
void cancelPairing();
private:
void resetDeviceView();
Ui::KdeConnectKcmUi *kcmUi;
DaemonDbusInterface *daemon;
DevicesModel *devicesModel;
DevicesSortProxyModel *sortProxyModel;
DeviceDbusInterface *currentDevice;
QModelIndex currentIndex;
QStringList m_oldSupportedPluginNames;
public Q_SLOTS:
void unpair();
};
#endif