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