Warning, file /utilities/okteta/kasten/core/document/bytearraydocument.cpp 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 #include "bytearraydocument.hpp" 0010 0011 // Okteta core 0012 #include <Okteta/PieceTableByteArrayModel> 0013 // KF 0014 #include <KLocalizedString> 0015 0016 using Okteta::PieceTableByteArrayModel; 0017 0018 namespace Kasten { 0019 0020 ByteArrayDocument::ByteArrayDocument(const QString& initDescription) 0021 : mByteArray(new Okteta::PieceTableByteArrayModel()) 0022 , mInitDescription(initDescription) 0023 { 0024 connect(mByteArray, &PieceTableByteArrayModel::modifiedChanged, this, &ByteArrayDocument::onModelModified); 0025 connect(mByteArray, &PieceTableByteArrayModel::readOnlyChanged, this, &ByteArrayDocument::readOnlyChanged); 0026 connect(mByteArray, &PieceTableByteArrayModel::revertedToVersionIndex, this, &ByteArrayDocument::revertedToVersionIndex); 0027 connect(mByteArray, &PieceTableByteArrayModel::headVersionChanged, this, &ByteArrayDocument::headVersionChanged); 0028 connect(mByteArray, &PieceTableByteArrayModel::headVersionDescriptionChanged, 0029 this, &ByteArrayDocument::onHeadVersionDescriptionChanged); 0030 } 0031 0032 ByteArrayDocument::~ByteArrayDocument() 0033 { 0034 delete mByteArray; 0035 } 0036 0037 ByteArrayDocument::ByteArrayDocument(Okteta::PieceTableByteArrayModel* byteArray, const QString& initDescription) 0038 : mByteArray(byteArray) 0039 , mInitDescription(initDescription) 0040 { 0041 connect(mByteArray, &PieceTableByteArrayModel::modifiedChanged, this, &ByteArrayDocument::onModelModified); 0042 connect(mByteArray, &PieceTableByteArrayModel::readOnlyChanged, this, &ByteArrayDocument::readOnlyChanged); 0043 connect(mByteArray, &PieceTableByteArrayModel::revertedToVersionIndex, this, &ByteArrayDocument::revertedToVersionIndex); 0044 connect(mByteArray, &PieceTableByteArrayModel::headVersionChanged, this, &ByteArrayDocument::headVersionChanged); 0045 connect(mByteArray, &PieceTableByteArrayModel::headVersionDescriptionChanged, 0046 this, &ByteArrayDocument::onHeadVersionDescriptionChanged); 0047 } 0048 0049 Okteta::AbstractByteArrayModel* ByteArrayDocument::content() const { return mByteArray; } 0050 0051 QString ByteArrayDocument::title() const { return mTitle; } 0052 QString ByteArrayDocument::mimeType() const { return QStringLiteral("ByteArrayDocument"); } 0053 QString ByteArrayDocument::typeName() const { return i18nc("name of the data type", "Byte Array"); } 0054 0055 bool ByteArrayDocument::isModifiable() const { return true; } 0056 bool ByteArrayDocument::isReadOnly() const { return mByteArray->isReadOnly(); } 0057 void ByteArrayDocument::setReadOnly(bool isReadOnly) { mByteArray->setReadOnly(isReadOnly); } 0058 0059 ContentFlags ByteArrayDocument::contentFlags() const 0060 { 0061 return (mByteArray->isModified() ? ContentHasUnstoredChanges : ContentStateNormal); 0062 } 0063 0064 void ByteArrayDocument::setTitle(const QString& title) 0065 { 0066 mTitle = title; 0067 emit titleChanged(mTitle); 0068 } 0069 0070 int ByteArrayDocument::versionIndex() const { return mByteArray->versionIndex(); } 0071 int ByteArrayDocument::versionCount() const { return mByteArray->versionCount(); } 0072 DocumentVersionData ByteArrayDocument::versionData(int versionIndex) const 0073 { 0074 const QString changeComment = (versionIndex == 0) ? mInitDescription : mByteArray->versionDescription(versionIndex); 0075 return DocumentVersionData(versionIndex, changeComment); 0076 } 0077 0078 void ByteArrayDocument::revertToVersionByIndex(int versionIndex) { mByteArray->revertToVersionByIndex(versionIndex); } 0079 0080 void ByteArrayDocument::onModelModified(bool isModified) 0081 { 0082 emit contentFlagsChanged((isModified ? ContentHasUnstoredChanges : ContentStateNormal)); 0083 } 0084 0085 void ByteArrayDocument::onHeadVersionDescriptionChanged(const QString& newDescription) 0086 { 0087 const DocumentVersionData data(mByteArray->versionIndex(), newDescription); 0088 emit headVersionDataChanged(data); 0089 } 0090 0091 } 0092 0093 #include "moc_bytearraydocument.cpp"