File indexing completed on 2024-05-05 17:43:13
0001 /* 0002 * SPDX-FileCopyrightText: 2017 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_UI_DIRECTORY_PAIR_CHOOSER_WIDGET_H 0008 #define PLASMAVAULT_KDED_UI_DIRECTORY_PAIR_CHOOSER_WIDGET_H 0009 0010 #include "dialogdsl.h" 0011 0012 class DirectoryPairChooserWidget : public DialogDsl::DialogModule 0013 { 0014 Q_OBJECT 0015 0016 public: 0017 enum Flag { 0018 ShowDevicePicker = 1, 0019 ShowMountPointPicker = 2, 0020 RequireEmptyDevice = 4, 0021 RequireExistingDevice = 8, 0022 RequireEmptyMountPoint = 16, 0023 RequireExistingMountPoint = 32, 0024 0025 AutoFillPaths = 64, 0026 }; 0027 Q_DECLARE_FLAGS(Flags, Flag) 0028 0029 DirectoryPairChooserWidget(Flags flags); 0030 ~DirectoryPairChooserWidget() override; 0031 0032 PlasmaVault::Vault::Payload fields() const override; 0033 void init(const PlasmaVault::Vault::Payload &payload) override; 0034 0035 private: 0036 class Private; 0037 QScopedPointer<Private> d; 0038 }; 0039 0040 inline DialogDsl::ModuleFactory directoryPairChooser(DirectoryPairChooserWidget::Flags flags) 0041 { 0042 return [=] { 0043 return new DirectoryPairChooserWidget(flags); 0044 }; 0045 } 0046 0047 Q_DECLARE_OPERATORS_FOR_FLAGS(DirectoryPairChooserWidget::Flags) 0048 0049 #endif // include guard