File indexing completed on 2024-06-16 05:25:07

0001 /*
0002     This file is part of the Okteta Kasten module, made within the KDE community.
0003 
0004     SPDX-FileCopyrightText: 2010, 2012-2013 Friedrich W. H. Kossebau <kossebau@kde.org>
0005 
0006     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0007 */
0008 
0009 #ifndef KASTEN_VIEWPROFILESMANAGEDIALOG_HPP
0010 #define KASTEN_VIEWPROFILESMANAGEDIALOG_HPP
0011 
0012 // Okteta Kasten gui
0013 #include <Kasten/Okteta/ByteArrayViewProfile>
0014 // Qt
0015 #include <QDialog>
0016 
0017 template <class C> class QVector;
0018 class QTreeView;
0019 class QPushButton;
0020 
0021 namespace Kasten {
0022 
0023 class ByteArrayViewProfileManager;
0024 class ViewProfileTableModel;
0025 
0026 class ViewProfilesManageDialog : public QDialog
0027 {
0028     Q_OBJECT
0029 
0030 public:
0031     explicit ViewProfilesManageDialog(ByteArrayViewProfileManager* viewProfileManager,
0032                                       QWidget* parent = nullptr);
0033 
0034     ~ViewProfilesManageDialog() override;
0035 
0036 private Q_SLOTS:
0037     void onViewProfileSelectionChanged();
0038 
0039     void onCreateNewButtonClicked();
0040     void onEditButtonClicked();
0041     void onSetDefaultButtonClicked();
0042     void onDeleteButtonClicked();
0043 
0044     void saveViewProfile(const Kasten::ByteArrayViewProfile& viewProfile);
0045 
0046     void onModelReset();
0047     void onViewProfilesLocked(const QVector<Kasten::ByteArrayViewProfile::Id>& viewProfileIds);
0048     void onViewProfilesUnlocked(const QVector<Kasten::ByteArrayViewProfile::Id>& viewProfileIds);
0049     void onDefaultViewProfileChanged(const Kasten::ByteArrayViewProfile::Id& viewProfileId);
0050 
0051 private:
0052     ByteArrayViewProfileManager* mViewProfileManager;
0053     ViewProfileTableModel* mViewProfileTableModel;
0054     ByteArrayViewProfile::Id mCurrentViewProfileId;
0055 
0056     QTreeView* mViewProfileTableView;
0057     QPushButton* mEditButton;
0058     QPushButton* mSetDefaultButton;
0059     QPushButton* mDeleteButton;
0060 
0061     QPushButton* mCloseButton;
0062 };
0063 
0064 }
0065 
0066 #endif