#include "titleinscriptionsmodel.h"

TitleInscriptionsModel::TitleInscriptionsModel(QObject *parent)
    : QObject(parent)
{
}

void TitleInscriptionsModel::setInscriptionValue(int fieldNumber, const QString &value)
{
    if (value.isEmpty()) {
        m_inscriptions.remove(fieldNumber);
    } else {
        m_inscriptions[fieldNumber] = value;
    }
    
    // Испускаем сигналы об изменении данных
    emit dataChanged();
    emit inscriptionChanged(fieldNumber, value);
}

QString TitleInscriptionsModel::getInscriptionValue(int fieldNumber) const
{
    return m_inscriptions.value(fieldNumber, "");
}

QMap<int, QString> TitleInscriptionsModel::getAllInscriptions() const
{
    return m_inscriptions;
}

void TitleInscriptionsModel::setAllInscriptions(const QMap<int, QString> &inscriptions)
{
    m_inscriptions = inscriptions;
    
    // Испускаем сигнал об изменении данных
    emit dataChanged();
}

void TitleInscriptionsModel::clear()
{
    m_inscriptions.clear();
    
    // Испускаем сигнал об изменении данных
    emit dataChanged();
}

void TitleInscriptionsModel::clearField(int fieldNumber)
{
    m_inscriptions.remove(fieldNumber);
    
    // Испускаем сигнал об изменении данных
    emit dataChanged();
}

bool TitleInscriptionsModel::hasData() const
{
    return !m_inscriptions.isEmpty();
}

bool TitleInscriptionsModel::hasField(int fieldNumber) const
{
    return m_inscriptions.contains(fieldNumber);
}

int TitleInscriptionsModel::getFieldCount() const
{
    return m_inscriptions.size();
} 