Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #include "KDTextDocument.h"
00024 #include <QRect>
00025 #include <QAbstractTextDocumentLayout>
00026 #include <QtDebug>
00027 #include <QTextBlock>
00028
00029 #include <KDABLibFakes>
00030
00031
00032
00033
00034
00035 KDTextDocument::KDTextDocument( QObject * p )
00036 : QTextDocument( p ),
00037 mHintValid( false ),
00038 mSizeHint(),
00039 mMinimumSizeHint()
00040 {
00041
00042 }
00043
00044 KDTextDocument::KDTextDocument( const QString & text, QObject * p )
00045 : QTextDocument( text, p ),
00046 mHintValid( false ),
00047 mSizeHint(),
00048 mMinimumSizeHint()
00049 {
00050
00051 }
00052
00053 KDTextDocument::~KDTextDocument() {}
00054
00055
00056 QSize KDTextDocument::sizeHint()
00057 {
00058 if( !mHintValid )
00059 (void)minimumSizeHint();
00060 return mSizeHint;
00061 }
00062
00063 QSize KDTextDocument::minimumSizeHint()
00064 {
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076 if( mHintValid )
00077 return mMinimumSizeHint;
00078
00079 mHintValid = true;
00080 mSizeHint = sizeForWidth( -1 );
00081 QSize sz(-1, -1);
00082
00083
00084 sz.rwidth() = sizeForWidth( 0 ).width();
00085 sz.rheight() = sizeForWidth( 32000 ).height();
00086 if( mSizeHint.height() < sz.height())
00087 sz.rheight() = mSizeHint.height();
00088
00089 mMinimumSizeHint = sz;
00090 return sz;
00091 }
00092
00093
00094 QSize KDTextDocument::sizeForWidth(int w)
00095 {
00096 Q_UNUSED( w );
00097
00098 setPageSize(QSize(0, 100000));
00099
00100 return documentLayout()->documentSize().toSize();
00101 }