File indexing completed on 2025-03-09 05:20:57
0001 /* 0002 This file is part of the Kasten Framework, made within the KDE community. 0003 0004 SPDX-FileCopyrightText: 2011 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_SINGLEDOCUMENTSTRATEGY_P_HPP 0010 #define KASTEN_SINGLEDOCUMENTSTRATEGY_P_HPP 0011 0012 // lib 0013 #include "abstractdocumentstrategy_p.hpp" 0014 #include "singledocumentstrategy.hpp" 0015 // Kasten core 0016 #include <Kasten/DocumentManager> 0017 #include <Kasten/DocumentSyncManager> 0018 // Qt Core 0019 #include <QStringList> 0020 0021 namespace Kasten { 0022 class ViewManager; 0023 0024 class SingleDocumentStrategyPrivate : public AbstractDocumentStrategyPrivate 0025 { 0026 public: 0027 SingleDocumentStrategyPrivate(SingleDocumentStrategy* parent, 0028 DocumentManager* documentManager, 0029 ViewManager* viewManager); 0030 ~SingleDocumentStrategyPrivate() override; 0031 0032 public: 0033 void init(); 0034 0035 public: // AbstractDocumentStrategy API 0036 void createNew(); 0037 void createNewFromClipboard(); 0038 void createNewWithGenerator(AbstractModelDataGenerator* generator); 0039 0040 void load(const QUrl& url); 0041 0042 void closeDocument(AbstractDocument* document); 0043 void closeAll(); 0044 void closeAllOther(AbstractDocument* document); 0045 0046 public: // const AbstractDocumentStrategy API 0047 QVector<AbstractDocument*> documents() const; 0048 QStringList supportedRemoteTypes() const; 0049 0050 bool canClose(AbstractDocument* document) const; 0051 bool canCloseAll() const; 0052 bool canCloseAllOther(AbstractDocument* document) const; 0053 0054 private: 0055 void triggerGeneration(AbstractModelDataGenerator* generator); 0056 0057 private: 0058 Q_DECLARE_PUBLIC(SingleDocumentStrategy) 0059 0060 private: 0061 DocumentManager* mDocumentManager; 0062 ViewManager* mViewManager; 0063 }; 0064 0065 inline 0066 SingleDocumentStrategyPrivate::SingleDocumentStrategyPrivate(SingleDocumentStrategy* parent, 0067 DocumentManager* documentManager, 0068 ViewManager* viewManager) 0069 : AbstractDocumentStrategyPrivate(parent) 0070 , mDocumentManager(documentManager) 0071 , mViewManager(viewManager) 0072 { 0073 } 0074 0075 inline SingleDocumentStrategyPrivate::~SingleDocumentStrategyPrivate() = default; 0076 0077 inline QVector<AbstractDocument*> SingleDocumentStrategyPrivate::documents() const 0078 { 0079 return mDocumentManager->documents(); 0080 } 0081 0082 inline QStringList SingleDocumentStrategyPrivate::supportedRemoteTypes() const 0083 { 0084 return mDocumentManager->syncManager()->supportedRemoteTypes(); 0085 } 0086 0087 inline bool SingleDocumentStrategyPrivate::canClose(AbstractDocument* document) const 0088 { 0089 return mDocumentManager->canClose(document); 0090 } 0091 0092 inline bool SingleDocumentStrategyPrivate::canCloseAllOther(AbstractDocument* document) const 0093 { 0094 return mDocumentManager->canCloseAllOther(document); 0095 } 0096 0097 inline bool SingleDocumentStrategyPrivate::canCloseAll() const 0098 { 0099 return mDocumentManager->canCloseAll(); 0100 } 0101 0102 inline void SingleDocumentStrategyPrivate::closeAll() 0103 { 0104 mDocumentManager->closeAll(); 0105 } 0106 0107 inline void SingleDocumentStrategyPrivate::closeAllOther(AbstractDocument* document) 0108 { 0109 mDocumentManager->closeAllOther(document); 0110 } 0111 0112 inline void SingleDocumentStrategyPrivate::closeDocument(AbstractDocument* document) 0113 { 0114 mDocumentManager->closeDocument(document); 0115 } 0116 0117 } 0118 0119 #endif