File indexing completed on 2024-05-12 05:35:55

0001 /*
0002     SPDX-FileCopyrightText: 2009 Trever Fischer <wm161@wm161.net>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include "AutomounterSettingsBase.h"
0010 #include "DeviceSettings.h"
0011 
0012 #include <KConfigGroup>
0013 
0014 #include <Solid/Device>
0015 
0016 class AutomounterSettings : public AutomounterSettingsBase
0017 {
0018 public:
0019     using AutomounterSettingsBase::AutomounterSettingsBase;
0020     enum AutomountType {
0021         Login,
0022         Attach,
0023     };
0024 
0025     bool hasDeviceInfo(const QString &udi) const;
0026     DeviceSettings *deviceSettings(const QString &udi) const;
0027     QStringList knownDevices() const;
0028     bool shouldAutomountDevice(const QString &udi, AutomountType type) const;
0029 
0030     void setDeviceLastSeenMounted(const QString &udi, bool mounted);
0031     void setDeviceInfo(const Solid::Device &dev);
0032     void removeDeviceGroup(const QString &udi);
0033 
0034     bool usrIsSaveNeeded();
0035 
0036 private:
0037     void usrRead() override;
0038     bool usrSave() override;
0039 
0040 private:
0041     QHash<QString, DeviceSettings *> m_devices;
0042 };