summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/odict/dingwidget.cpp15
1 files changed, 4 insertions, 11 deletions
diff --git a/noncore/apps/odict/dingwidget.cpp b/noncore/apps/odict/dingwidget.cpp
index 4be6e71..5c4b13b 100644
--- a/noncore/apps/odict/dingwidget.cpp
+++ b/noncore/apps/odict/dingwidget.cpp
@@ -1,148 +1,141 @@
1/*************************************************************************** 1/***************************************************************************
2 application: : ODict 2 application: : ODict
3 3
4 begin : December 2002 4 begin : December 2002
5 copyright : ( C ) 2002, 2003 by Carsten Niehaus 5 copyright : ( C ) 2002, 2003 by Carsten Niehaus
6 email : cniehaus@handhelds.org 6 email : cniehaus@handhelds.org
7 **************************************************************************/ 7 **************************************************************************/
8 8
9/*************************************************************************** 9/***************************************************************************
10 * * 10 * *
11 * This program is free software; you can redistribute it and/or modify * 11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by * 12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or * 13 * the Free Software Foundation; either version 2 of the License, or *
14 * ( at your option ) any later version. * 14 * ( at your option ) any later version. *
15 * * 15 * *
16 **************************************************************************/ 16 **************************************************************************/
17#include "dingwidget.h" 17#include "dingwidget.h"
18 18
19#include <qfile.h> 19#include <qfile.h>
20#include <qpe/config.h> 20#include <qpe/config.h>
21#include <qhbox.h> 21#include <qhbox.h>
22#include <qlabel.h> 22#include <qlabel.h>
23#include <qpushbutton.h> 23#include <qpushbutton.h>
24#include <qlineedit.h> 24#include <qlineedit.h>
25#include <qmainwindow.h> 25#include <qmainwindow.h>
26#include <qstring.h> 26#include <qstring.h>
27#include <qtextstream.h> 27#include <qtextstream.h>
28#include <qstringlist.h> 28#include <qstringlist.h>
29#include <qregexp.h> 29#include <qregexp.h>
30#include <qtextbrowser.h> 30#include <qtextbrowser.h>
31#include <stdlib.h> // for getenv 31#include <stdlib.h> // for getenv
32 32
33DingWidget::DingWidget( ) 33DingWidget::DingWidget( )
34{ 34{
35 methodname = QString::null; 35 methodname = QString::null;
36 trenner = QString::null; 36 trenner = QString::null;
37 lines = 0L; 37 lines = 0L;
38} 38}
39 39
40void DingWidget::loadDict( QString name ) 40void DingWidget::loadDict( QString name )
41{ 41{
42 qDebug( "MUSS ich wirklich aufgerufen werder? schreit loadDict" );
43 qDebug( "Starte mit dem loadedDict(...)" );
44 dictName = name; 42 dictName = name;
45 qDebug( "bin in loadedDict() und lade das Dict:" );
46 qDebug( dictName );
47 QString opie_dir = getenv("OPIEDIR"); 43 QString opie_dir = getenv("OPIEDIR");
48 QFile file( opie_dir+"/noncore/apps/odict/eng_ita.dic" ); 44
49 //FIXME:this should of course be not hardcoded ;) 45 Config cfg( "odict" );
46 cfg.setGroup( "Method_" + methodname );
47 QFile file( cfg.readEntry( "file" ) );
50 48
51 if( file.open( IO_ReadOnly ) ) 49 if( file.open( IO_ReadOnly ) )
52 { 50 {
53 QTextStream stream( &file ); 51 QTextStream stream( &file );
54 while ( !stream.eof() ) 52 while ( !stream.eof() )
55 { 53 {
56 lines.append( stream.readLine() ); 54 lines.append( stream.readLine() );
57 } 55 }
58 file.close(); 56 file.close();
59 } 57 }
60 qDebug( "loadedDict(...) ist beended" );
61 loadValues(); 58 loadValues();
62} 59}
63 60
64QString DingWidget::loadedDict() 61QString DingWidget::loadedDict()
65{ 62{
66 qDebug( dictName );
67 qDebug( "^ ^ ^ ^ ^ ^ ^ war der dictName" );
68 return dictName; 63 return dictName;
69} 64}
70 65
71void DingWidget::setCaseSensitive( bool caseS ) 66void DingWidget::setCaseSensitive( bool caseS )
72{ 67{
73 isCaseSensitive = caseS; 68 isCaseSensitive = caseS;
74} 69}
75 70
76void DingWidget::setDict( QString dict ) 71void DingWidget::setDict( QString dict )
77{ 72{
78 methodname = dict; 73 methodname = dict;
79} 74}
80 75
81void DingWidget::setCompleteWord( bool cword ) 76void DingWidget::setCompleteWord( bool cword )
82{ 77{
83 isCompleteWord = cword; 78 isCompleteWord = cword;
84} 79}
85 80
86void DingWidget::setQueryWord( QString qword ) 81void DingWidget::setQueryWord( QString qword )
87{ 82{
88 queryword = qword; 83 queryword = qword;
89} 84}
90 85
91 86
92void DingWidget::loadValues() 87void DingWidget::loadValues()
93{ 88{
94 Config cfg( "odict" ); 89 Config cfg( "odict" );
95 cfg.setGroup( "Method_" + methodname ); 90 cfg.setGroup( "Method_" + methodname );
96 trenner = cfg.readEntry( "Seperator" ); 91 trenner = cfg.readEntry( "Seperator" );
97} 92}
98 93
99BroswerContent DingWidget::setText( QString word ) 94BroswerContent DingWidget::setText( QString word )
100{ 95{
101 queryword = word; 96 queryword = word;
102 qDebug( queryword );
103 qDebug( "^ ^ ^ ^ ^ ^ ^ war das gesuchte Word");
104 return parseInfo(); 97 return parseInfo();
105} 98}
106 99
107 100
108BroswerContent DingWidget::parseInfo() 101BroswerContent DingWidget::parseInfo()
109{ 102{
110 if ( isCompleteWord ) 103 if ( isCompleteWord )
111 queryword = " " + queryword + " "; 104 queryword = " " + queryword + " ";
112 QStringList search = lines.grep( queryword , isCaseSensitive ); 105 QStringList search = lines.grep( queryword , isCaseSensitive );
113 106
114 QString current; 107 QString current;
115 QString left; 108 QString left;
116 QString right; 109 QString right;
117 QRegExp reg_div( trenner ); 110 QRegExp reg_div( trenner );
118 QRegExp reg_word( queryword ); 111 QRegExp reg_word( queryword );
119 reg_word.setCaseSensitive( isCaseSensitive ); 112 reg_word.setCaseSensitive( isCaseSensitive );
120 QStringList toplist, bottomlist; 113 QStringList toplist, bottomlist;
121 QString substitute = "<strong>"+queryword+"</strong>"; 114 QString substitute = "<strong>"+queryword+"</strong>";
122 115
123 for( QStringList::Iterator it = search.begin() ; it != search.end() ; ++it ) 116 for( QStringList::Iterator it = search.begin() ; it != search.end() ; ++it )
124 { 117 {
125 current = *it; 118 current = *it;
126 left = current.left( current.find( trenner ) ); 119 left = current.left( current.find( trenner ) );
127 120
128 right = current.right( current.length() - current.find(trenner) - trenner.length() ); 121 right = current.right( current.length() - current.find(trenner) - trenner.length() );
129 122
130 if ( left.contains( queryword , isCaseSensitive ) ) 123 if ( left.contains( queryword , isCaseSensitive ) )
131 { 124 {
132 left.replace( queryword, substitute ); 125 left.replace( queryword, substitute );
133 left = left + " --> " + right; 126 left = left + " --> " + right;
134 toplist.append( left ); 127 toplist.append( left );
135 } 128 }
136 else 129 else
137 { 130 {
138 right.replace( queryword, substitute ); 131 right.replace( queryword, substitute );
139 right = right + " --> " + left; 132 right = right + " --> " + left;
140 bottomlist.append( right ); 133 bottomlist.append( right );
141 } 134 }
142 } 135 }
143 136
144 s_strings.top = toplist.join( "<br>" ); 137 s_strings.top = toplist.join( "<br>" );
145 s_strings.bottom = bottomlist.join( "<br>" ); 138 s_strings.bottom = bottomlist.join( "<br>" );
146 139
147 return s_strings; 140 return s_strings;
148} 141}