summaryrefslogtreecommitdiffstats
path: root/examples/webenginewidgets/recipebrowser/document.cpp
blob: c991e14f8248530dd19e96a3399972d30483f5ea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause

#include "document.h"

#include <QSettings>

Document::Document(QObject *parent) : QObject(parent)
{
    QSettings settings;
    settings.beginGroup("textCollection");
    QStringList pageTexts = settings.allKeys();
    for (const QString &name : std::as_const(pageTexts)) {
        QString pageText = settings.value(name).value<QString>();
        if (!pageText.isEmpty())
            m_textCollection.insert(name, pageText);
    }
    settings.endGroup();
}

void Document::setTextEdit(QPlainTextEdit *textEdit)
{
    m_textEdit = textEdit;
}

void Document::setCurrentPage(const QString &page)
{
    m_currentPage = page;
}

void Document::setInitialText(const QString &text)
{
    m_textEdit->setPlainText(m_textCollection.value(m_currentPage, text));
}

void Document::setText(const QString &text)
{
    if (text == m_currentText)
        return;
    m_currentText = text;
    emit textChanged(m_currentText);

    QSettings settings;
    settings.beginGroup("textCollection");
    settings.setValue(m_currentPage, text);
    m_textCollection.insert(m_currentPage, text);
    settings.endGroup();
}