File indexing completed on 2024-04-28 05:34:29
0001 /* 0002 * SPDX-FileCopyrightText: 2017, 2018, 2019 Ivan Cukic <ivan.cukic (at) kde.org> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0005 */ 0006 0007 #ifndef PLASMAVAULT_KDED_SERVICE_H 0008 #define PLASMAVAULT_KDED_SERVICE_H 0009 0010 #include <KDEDModule> 0011 0012 #include <QVariant> 0013 0014 #include <common/vaultinfo.h> 0015 #include <engine/vault.h> 0016 0017 class Q_DECL_EXPORT PlasmaVaultService : public KDEDModule 0018 { 0019 Q_CLASSINFO("D-Bus Interface", "org.kde.plasmavault") 0020 Q_OBJECT 0021 0022 public: 0023 PlasmaVaultService(QObject *parent, const QVariantList &); 0024 ~PlasmaVaultService() override; 0025 0026 public Q_SLOTS: 0027 Q_SCRIPTABLE void requestNewVault(); 0028 Q_SCRIPTABLE void requestImportVault(); 0029 Q_SCRIPTABLE void openVault(const QString &device); 0030 Q_SCRIPTABLE void closeVault(const QString &device); 0031 Q_SCRIPTABLE void forceCloseVault(const QString &device); 0032 0033 Q_SCRIPTABLE void configureVault(const QString &device); 0034 Q_SCRIPTABLE void openVaultInFileManager(const QString &device); 0035 0036 Q_SCRIPTABLE PlasmaVault::VaultInfoList availableDevices() const; 0037 0038 Q_SCRIPTABLE bool hasOpenVaults() const; 0039 Q_SCRIPTABLE void closeAllVaults(); 0040 Q_SCRIPTABLE void forceCloseAllVaults(); 0041 0042 Q_SCRIPTABLE void deleteVault(const QString &device, const QString &name); 0043 0044 Q_SCRIPTABLE void updateStatus(); 0045 0046 Q_SIGNALS: 0047 void registered(); 0048 0049 Q_SCRIPTABLE void vaultAdded(const PlasmaVault::VaultInfo &vaultData); 0050 Q_SCRIPTABLE void vaultRemoved(const QString &device); 0051 Q_SCRIPTABLE void vaultChanged(const PlasmaVault::VaultInfo &vaultData); 0052 0053 Q_SCRIPTABLE void hasOpenVaultsChanged(bool hasOpenVaults); 0054 0055 private Q_SLOTS: 0056 void slotRegistered(const QDBusObjectPath &path); 0057 0058 void registerVault(PlasmaVault::Vault *vault); 0059 void forgetVault(PlasmaVault::Vault *vault); 0060 0061 void onVaultStatusChanged(PlasmaVault::VaultInfo::Status status); 0062 void onVaultMessageChanged(const QString &message); 0063 void onVaultInfoChanged(); 0064 0065 void onActivitiesChanged(const QStringList &knownActivities); 0066 void onCurrentActivityChanged(const QString ¤tActivity); 0067 void onActivityRemoved(const QString &removedActivity); 0068 0069 private: 0070 class Private; 0071 QScopedPointer<Private> d; 0072 }; 0073 0074 #endif // include guard