Warning, file /utilities/okteta/kasten/core/document/bytearraydocument.hpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 This file is part of the Okteta Kasten module, made within the KDE community. 0003 0004 SPDX-FileCopyrightText: 2006-2009 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_BYTEARRAYDOCUMENT_HPP 0010 #define KASTEN_BYTEARRAYDOCUMENT_HPP 0011 0012 // lib 0013 #include "oktetakastencore_export.hpp" 0014 // #include "kbytearrayinterface.hpp" 0015 // Kasten core 0016 #include <Kasten/Versionable> 0017 #include <Kasten/AbstractDocument> 0018 // Qt 0019 #include <QString> 0020 0021 namespace Okteta { 0022 class AbstractByteArrayModel; 0023 class PieceTableByteArrayModel; 0024 } 0025 0026 namespace Kasten { 0027 0028 class OKTETAKASTENCORE_EXPORT ByteArrayDocument : public AbstractDocument 0029 , public If::Versionable 0030 // , public If::UserListable 0031 // ,public If::ByteArray 0032 { 0033 Q_OBJECT 0034 Q_INTERFACES( 0035 Kasten::If::Versionable 0036 // Kasten::If::UserListable 0037 // Kasten::If::ByteArray 0038 ) 0039 0040 public: 0041 explicit ByteArrayDocument(const QString& initDescription); 0042 ByteArrayDocument(Okteta::PieceTableByteArrayModel* byteArray, const QString& initDescription); 0043 ~ByteArrayDocument() override; 0044 0045 public: // AbstractModel API 0046 QString title() const override; 0047 bool isModifiable() const override; 0048 bool isReadOnly() const override; 0049 void setReadOnly(bool isReadOnly) override; 0050 0051 public: // AbstractDocument API 0052 QString typeName() const override; 0053 QString mimeType() const override; 0054 ContentFlags contentFlags() const override; 0055 0056 public: // If::Versionable 0057 int versionIndex() const override; 0058 DocumentVersionData versionData(int versionIndex) const override; 0059 int versionCount() const override; 0060 void revertToVersionByIndex(int versionIndex) override; 0061 0062 public: // If::ByteArray 0063 virtual Okteta::AbstractByteArrayModel* content() const; 0064 0065 public: 0066 void setTitle(const QString& title); 0067 0068 Q_SIGNALS: // If::Versionable 0069 void revertedToVersionIndex(int versionIndex) override; 0070 void headVersionDataChanged(const Kasten::DocumentVersionData& versionData) override; 0071 void headVersionChanged(int newHeadVersionIndex) override; 0072 0073 private Q_SLOTS: 0074 OKTETAKASTENCORE_NO_EXPORT void onModelModified(bool isModified); 0075 OKTETAKASTENCORE_NO_EXPORT void onHeadVersionDescriptionChanged(const QString& newDescription); 0076 0077 private: 0078 Okteta::PieceTableByteArrayModel* mByteArray; 0079 0080 mutable QString mTitle; 0081 0082 const QString mInitDescription; 0083 }; 0084 0085 } 0086 0087 #endif