1 /* 2 This file is part of the Kasten Framework, made within the KDE community. 3 4 SPDX-FileCopyrightText: 2007-2008, 2011 Friedrich W. H. Kossebau <kossebau@kde.org> 5 6 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 7 */ 8 9 #ifndef KASTEN_COPYASCONTROLLER_HPP 10 #define KASTEN_COPYASCONTROLLER_HPP 11 12 // Kasten gui 13 #include <Kasten/AbstractXmlGuiController> 14 15 class KXMLGUIClient; 16 class KSelectAction; 17 class QAction; 18 19 namespace Kasten { 20 21 class ModelCodecViewManager; 22 class ModelCodecManager; 23 namespace If { 24 class DataSelectable; 25 } 26 class AbstractModelStreamEncoder; 27 class AbstractModelSelection; 28 29 class CopyAsController : public AbstractXmlGuiController 30 { 31 Q_OBJECT 32 33 public: 34 CopyAsController(ModelCodecViewManager* modelCodecViewManager, 35 ModelCodecManager* modelCodecManager, 36 KXMLGUIClient* guiClient); 37 38 public: // AbstractXmlGuiController API 39 void setTargetModel(AbstractModel* model) override; 40 41 private Q_SLOTS: 42 void updateActions(); 43 void onActionTriggered(QAction* action); 44 void triggerExecution(Kasten::AbstractModelStreamEncoder* encoder, 45 const Kasten::AbstractModelSelection* selection); 46 47 private: 48 ModelCodecViewManager* mModelCodecViewManager; 49 ModelCodecManager* mModelCodecManager; 50 51 AbstractModel* mModel = nullptr; 52 If::DataSelectable* mSelectionControl = nullptr; 53 54 KSelectAction* mCopyAsSelectAction; 55 }; 56 57 } 58 59 #endif 60