1 /*
2  * Copyright (C) 2001-2015 Klaralvdalens Datakonsult AB.  All rights reserved.
3  *
4  * This file is part of the KD Chart library.
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License as
8  * published by the Free Software Foundation; either version 2 of
9  * the License, or (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program.  If not, see <https://www.gnu.org/licenses/>.
18  */
19 
20 #ifndef KTEXTDOCUMENT_H
21 #define KTEXTDOCUMENT_H
22 
23 //
24 //  W A R N I N G
25 //  -------------
26 //
27 // This file is not part of the KD Chart API.  It exists purely as an
28 // implementation detail.  This header file may change from version to
29 // version without notice, or even be removed.
30 //
31 // We mean it.
32 //
33 
34 #include <QTextDocument>
35 #include <QSize>
36 
37 /**
38   * KTextDocument is an internally used enhanced QTextDocument
39   * \internal
40   */
41 class KTextDocument : public QTextDocument
42 {
43     Q_OBJECT
44 
45 public:
46     explicit KTextDocument( QObject* parent = nullptr );
47     explicit KTextDocument( const QString& text, QObject* parent = nullptr );
48     ~KTextDocument();
49 
50     QSize sizeHint();
51     QSize minimumSizeHint();
52 
53 private:
54     QSize sizeForWidth( int width );
55 
56 private:
57     bool mHintValid;
58     QSize mSizeHint;
59     QSize mMinimumSizeHint;
60 };
61 
62 
63 #endif /* KTEXTDOCUMENT_H */
64 
65