Diffstat (limited to 'noncore/apps/opie-write/qrichtext.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/apps/opie-write/qrichtext.cpp | 41 |
1 files changed, 32 insertions, 9 deletions
diff --git a/noncore/apps/opie-write/qrichtext.cpp b/noncore/apps/opie-write/qrichtext.cpp index f040f1e..768da44 100644 --- a/noncore/apps/opie-write/qrichtext.cpp +++ b/noncore/apps/opie-write/qrichtext.cpp @@ -191,5 +191,8 @@ QTextCursor *QTextDeleteCommand::execute( QTextCursor *c ) QTextParagraph *s = doc ? doc->paragAt( id ) : parag; - if ( !s ) { + if ( !s && doc ) { owarn << "can't locate parag at " << id << ", last parag: " << doc->lastParagraph()->paragId() << "" << oendl; return 0; + } else if ( !doc ) { + owarn << "No valid doc" << oendl; + return 0; } @@ -219,5 +222,8 @@ QTextCursor *QTextDeleteCommand::unexecute( QTextCursor *c ) QTextParagraph *s = doc ? doc->paragAt( id ) : parag; - if ( !s ) { + if ( !s && doc ) { owarn << "can't locate parag at " << id << ", last parag: " << doc->lastParagraph()->paragId() << "" << oendl; return 0; + } else if ( !doc ) { + owarn << "No valid doc" << oendl; + return 0; } @@ -235,2 +241,5 @@ QTextCursor *QTextDeleteCommand::unexecute( QTextCursor *c ) c->gotoNextLetter(); + } else { + owarn << "No valid cursor" << oendl; + return 0; } @@ -1394,6 +1403,17 @@ struct Q_EXPORT QTextDocumentTag { -#define NEWPAR do{ if ( !hasNewPar) { \ +#define NEWPAR do { \ + if ( !hasNewPar) { \ + if ( !curpar ) { \ + owarn << "no current paragraph" << oendl; \ + return; \ + } \ if ( !textEditMode && curpar && curpar->length()>1 && curpar->at( curpar->length()-2)->c == QChar_linesep ) \ curpar->remove( curpar->length()-2, 1 ); \ - curpar = createParagraph( this, curpar, curpar->next() ); styles.append( vec ); vec = 0;} \ + curpar = createParagraph( this, curpar, curpar->next() ); styles.append( vec ); \ + if ( !curpar ) { \ + owarn << "failed in creating a new paragraph" << oendl; \ + return; \ + } \ + vec = 0; \ + } \ hasNewPar = TRUE; \ @@ -1405,3 +1425,4 @@ struct Q_EXPORT QTextDocumentTag { space = TRUE; \ - delete vec; vec = new QPtrVector<QStyleSheetItem>( (uint)tags.count() + 1); \ + delete vec; \ + vec = new QPtrVector<QStyleSheetItem>( (uint)tags.count() + 1); \ int i = 0; \ @@ -1412,3 +1433,2 @@ struct Q_EXPORT QTextDocumentTag { - void QTextDocument::setRichText( const QString &text, const QString &context ) @@ -1897,4 +1917,7 @@ void QTextDocument::setRichTextMarginsInternal( QPtrList< QPtrVector<QStyleSheet int i, mar; - QStyleSheetItem* mainStyle = curStyle->size() ? (*curStyle)[curStyle->size()-1] : 0; - if ( mainStyle && mainStyle->displayMode() == QStyleSheetItem::DisplayListItem ) + QStyleSheetItem* mainStyle = (*curStyle)[curStyle->size()-1]; + if ( !mainStyle ) + return; + + if ( mainStyle->displayMode() == QStyleSheetItem::DisplayListItem ) stylesPar->setListItem( TRUE ); @@ -5343,3 +5366,3 @@ int QTextFormatterBreakWords::format( QTextDocument *doc, QTextParagraph *parag, // ### next line should not be needed - if ( painter ) + if ( c && painter ) c->format()->setPainter( painter ); |