File indexing completed on 2024-11-03 10:43:32
0001 /* 0002 * Editor dialog for the custom settings 0003 * 0004 * SPDX-FileCopyrightText: 2023 Alexander Reinholdt <alexander.reinholdt@kdemail.net> 0005 * SPDX-License-Identifier: GPL-2.0-or-later 0006 */ 0007 0008 #ifndef SMB4KCUSTOMSETTINGSDIALOG_H 0009 #define SMB4KCUSTOMSETTINGSDIALOG_H 0010 0011 // application specific includes 0012 #include "core/smb4kglobal.h" 0013 #include "smb4kcustomsettingseditorwidget.h" 0014 0015 // Qt includes 0016 #include <QDialog> 0017 #include <QPushButton> 0018 0019 class Q_DECL_EXPORT Smb4KCustomSettingsEditor : public QDialog 0020 { 0021 Q_OBJECT 0022 0023 public: 0024 /** 0025 * Constructor 0026 */ 0027 explicit Smb4KCustomSettingsEditor(QWidget *parent = nullptr); 0028 0029 /** 0030 * Destructor 0031 */ 0032 virtual ~Smb4KCustomSettingsEditor(); 0033 0034 /** 0035 * Set the network item. Ideally, this function should be used before 0036 * the dialog is shown. 0037 * 0038 * This function should be run before the dialog is shown. 0039 * 0040 * @param networkItem The network item for which the custom settings 0041 * should be defined 0042 * 0043 * @returns TRUE if a network item was set and false otherwise 0044 */ 0045 bool setNetworkItem(NetworkItemPtr networkItem); 0046 0047 protected Q_SLOTS: 0048 void slotRestoreDefaults(); 0049 void slotSaveCustomSettings(); 0050 void slotCustomSettingsEdited(bool changed); 0051 void slotCustomSettingsUpdated(); 0052 0053 private: 0054 CustomSettingsPtr m_customSettings; 0055 QLabel *m_descriptionText; 0056 Smb4KCustomSettingsEditorWidget *m_editorWidget; 0057 QPushButton *m_resetButton; 0058 QPushButton *m_saveButton; 0059 QPushButton *m_cancelButton; 0060 bool m_defaultsRestored; 0061 bool m_changedCustomSettings; 0062 bool m_savingCustomSettings; 0063 }; 0064 0065 #endif