File indexing completed on 2024-06-23 05:49:22
0001 /* 0002 This file is part of the Kasten Framework, made within the KDE community. 0003 0004 SPDX-FileCopyrightText: 2007, 2009, 2011, 2019 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_DOCUMENTSYNCMANAGER_P_HPP 0010 #define KASTEN_DOCUMENTSYNCMANAGER_P_HPP 0011 0012 // lib 0013 #include "documentsyncmanager.hpp" 0014 0015 namespace Kasten { 0016 0017 class DocumentSyncManagerPrivate 0018 { 0019 public: 0020 explicit DocumentSyncManagerPrivate(DocumentSyncManager* q, DocumentManager* manager); 0021 DocumentSyncManagerPrivate(const DocumentSyncManagerPrivate&) = delete; 0022 0023 ~DocumentSyncManagerPrivate(); 0024 0025 DocumentSyncManagerPrivate& operator=(const DocumentSyncManagerPrivate&) = delete; 0026 0027 public: 0028 void load(const QUrl& url); 0029 bool setSynchronizer(AbstractDocument* document); 0030 bool canClose(AbstractDocument* document); 0031 void reload(AbstractDocument* document); 0032 void save(AbstractDocument* document); 0033 0034 public: 0035 QStringList supportedRemoteTypes() const; 0036 bool hasSynchronizerForLocal(const QString& workDocumentType) const; 0037 QUrl urlOf(AbstractDocument* document) const; 0038 0039 public: 0040 void setDocumentSynchronizerFactory(AbstractModelSynchronizerFactory* synchronizerFactory); 0041 void setSaveDiscardDialog(AbstractSaveDiscardDialog* saveDiscardDialog); 0042 void setOverwriteDialog(AbstractOverwriteDialog* overwriteDialog); 0043 0044 private: // slots 0045 void onDocumentLoaded(Kasten::AbstractDocument* document); 0046 0047 private: 0048 DocumentSyncManager* const q_ptr; 0049 0050 // unless there is a singleton 0051 DocumentManager* mManager; 0052 0053 // temporary hack: hard coded factories for byte arrays 0054 AbstractModelSynchronizerFactory* mSynchronizerFactory = nullptr; 0055 0056 AbstractSaveDiscardDialog* mSaveDiscardDialog = nullptr; 0057 AbstractOverwriteDialog* mOverwriteDialog = nullptr; 0058 0059 Q_DECLARE_PUBLIC(DocumentSyncManager) 0060 }; 0061 0062 } 0063 0064 #endif