summaryrefslogtreecommitdiff
path: root/examples/demos/documentviewer/txtviewer.h
blob: 2b3ba9534d4a900de08d3e93f4a70359e496b34e (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
// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause

#ifndef TXTVIEWER_H
#define TXTVIEWER_H

#include "abstractviewer.h"
#include <QPointer>

class QMainWindow;
class QPlainTextEdit;
class QLabel;
class TxtViewer : public AbstractViewer
{
public:
    TxtViewer(QFile *file, QWidget *parent, QMainWindow *mainWindow);
    ~TxtViewer() override;
    QString viewerName() const override { return staticMetaObject.className(); };
    bool saveDocument() override { return saveFile(m_file.get()); };
    bool saveDocumentAs() override;
    bool hasContent() const override;
    QByteArray saveState() const override { return QByteArray(); }
    bool restoreState(QByteArray &) override { return true; }

#if defined(QT_ABSTRACTVIEWER_PRINTSUPPORT)
protected:
    void printDocument(QPrinter *printer) const override;
#endif // QT_ABSTRACTVIEWER_PRINTSUPPORT

private slots:
    void setupTxtUi();
    void documentWasModified();

private:
    void openFile();
    bool saveFile (QFile *file);

    int m_classId;
    QPlainTextEdit *m_textEdit;
};

#endif //TXTVIEWER_H