1 /* 2 This file is part of the Okteta Kasten Framework, made within the KDE community. 3 4 SPDX-FileCopyrightText: 2009 Friedrich W. H. Kossebau <kossebau@kde.org> 5 SPDX-FileCopyrightText: 2009, 2012 Alex Richardson <alex.richardson@gmx.de> 6 7 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 8 */ 9 10 #ifndef KASTEN_STRUCTURESMANAGERVIEW_HPP 11 #define KASTEN_STRUCTURESMANAGERVIEW_HPP 12 13 // KF 14 #include <KNS3/Entry> 15 // Qt 16 #include <QWidget> 17 18 class StructureAddRemoveWidget; 19 class QPushButton; 20 class KPluginSelector; 21 22 namespace KNS3 { 23 class Button; 24 } 25 namespace Kasten { 26 class StructuresManager; 27 class StructuresTool; 28 } 29 30 class StructuresManagerView : public QWidget 31 { 32 Q_OBJECT 33 34 public: 35 Q_PROPERTY(QStringList values READ values NOTIFY changed USER true) 36 explicit StructuresManagerView(Kasten::StructuresTool* manager, QWidget* parent = nullptr); 37 38 ~StructuresManagerView() override; 39 40 public: 41 QStringList values() const; 42 43 Q_SIGNALS: 44 void selectedPluginsChanged(); 45 void changed(const QStringList& newValues); 46 47 private Q_SLOTS: 48 void onGetNewStructuresClicked(const KNS3::Entry::List& changedEntries); 49 void onPluginSelectorChange(bool change); 50 void advancedSelection(); 51 void setSelectedStructures(const QStringList& selectedStructures); 52 53 private: 54 void rebuildPluginSelectorEntries(); 55 void reloadSelectedItems(); 56 57 private: 58 Kasten::StructuresTool* mTool; 59 QStringList mSelectedStructures; 60 KNS3::Button* mGetNewStructuresButton; 61 QPushButton* mAdvancedSelectionButton; 62 KPluginSelector* mStructuresSelector = nullptr; 63 bool mRebuildingPluginsList : 1; 64 65 }; 66 67 #endif 68