From 47d455dd55be855e4cc691c32f687f723d9247ee Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdegraphics@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- kooka/ocrresedit.cpp | 148 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 148 insertions(+) create mode 100644 kooka/ocrresedit.cpp (limited to 'kooka/ocrresedit.cpp') diff --git a/kooka/ocrresedit.cpp b/kooka/ocrresedit.cpp new file mode 100644 index 00000000..a289a079 --- /dev/null +++ b/kooka/ocrresedit.cpp @@ -0,0 +1,148 @@ +/*************************************************************************** + ocrresedit.cpp - ocr result editor widget + ------------------- + begin : Tue 12 Feb 2003 + copyright : (C) 2003 by Klaas Freitag + email : freitag@suse.de + ***************************************************************************/ + +/*************************************************************************** + * * + * This file may be distributed and/or modified under the terms of the * + * GNU General Public License version 2 as published by the Free Software * + * Foundation and appearing in the file COPYING included in the * + * packaging of this file. * + * + * As a special exception, permission is given to link this program * + * with any version of the KADMOS ocr/icr engine of reRecognition GmbH, * + * Kreuzlingen and distribute the resulting executable without * + * including the source code for KADMOS in the source distribution. * + * + * As a special exception, permission is given to link this program * + * with any edition of Qt, and distribute the resulting executable, * + * without including the source code for Qt in the source distribution. * + * * + ***************************************************************************/ +#include + +#include "ocrresedit.h" +#include "ocrword.h" +#include +#include +#include + +#include +#include + +/* -------------------- ocrResEdit -------------------- */ + +ocrResEdit::ocrResEdit( QWidget *parent ) + : QTextEdit(parent) +{ + m_updateColor.setNamedColor( "SeaGreen"); + m_ignoreColor.setNamedColor( "CadetBlue4" ); + m_wrnColor.setNamedColor( "firebrick2" ); +} + + +void ocrResEdit::slMarkWordWrong( int line, const ocrWord& word ) +{ + // m_textEdit->setSelection( line, + slReplaceWord( line, word, word, m_wrnColor ); +} + + +void ocrResEdit::slUpdateOCRResult( int line, const QString& wordFrom, + const QString& wordTo ) +{ + /* the index is quite useless here, since the text could have had been + * changed by corrections before. Thus better search the word and update + * it. + */ + slReplaceWord( line, wordFrom, wordTo, m_updateColor ); + +} + + +void ocrResEdit::slIgnoreWrongWord( int line, const ocrWord& word ) +{ + slReplaceWord( line, word, word, m_ignoreColor ); +} + + +void ocrResEdit::slSelectWord( int line, const ocrWord& word ) +{ + if( line < paragraphs() ) + { + QString editLine = text(line); + int cnt = editLine.contains( word); + + if( cnt > 0 ) + { + int pos = editLine.find(word); + setCursorPosition( line, pos ); + setSelection( line, pos, line, pos + word.length()); + } + } +} + +void ocrResEdit::slReplaceWord( int line, const QString& wordFrom, + const QString& wordTo, const QColor& color ) +{ + kdDebug(28000) << "Updating word " << wordFrom << " in line " << line << endl; + + bool isRO = isReadOnly(); + + if( line < paragraphs() ) + { + QString editLine = text(line); + int cnt = editLine.contains( wordFrom ); + + if( cnt > 0 ) + { + int pos = editLine.find(wordFrom); + setSelection( line, pos, line, pos+wordFrom.length()); + + QColor saveCol = this->color(); + setColor( color ); + if( isRO ) { + setReadOnly(false); + } + insert( wordTo, unsigned (4) ); + if( isRO ) { + setReadOnly( true ); + } + setColor(saveCol); + } + else + { + kdDebug(28000) << "WRN: Paragraph does not contain word " << wordFrom << endl; + } + + } + else + { + kdDebug(28000) << "WRN: editor does not have line " << line << endl; + } +} + + +void ocrResEdit::slSaveText() +{ + QString fileName = KFileDialog::getSaveFileName( (QDir::home()).path(), + "*.txt", + this, + i18n("Save OCR Result Text") ); + if( fileName.isEmpty() ) + return; + QFile file( fileName ); + if ( file.open( IO_WriteOnly ) ) + { + QTextStream stream( &file ); + stream << text(); + file.close(); + } +} + +#include "ocrresedit.moc" +/* */ -- cgit v1.2.1