-rw-r--r-- | noncore/apps/odict/dingwidget.cpp | 15 |
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 | ||
33 | DingWidget::DingWidget( ) | 33 | DingWidget::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 | ||
40 | void DingWidget::loadDict( QString name ) | 40 | void 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 | ||
64 | QString DingWidget::loadedDict() | 61 | QString DingWidget::loadedDict() |
65 | { | 62 | { |
66 | qDebug( dictName ); | ||
67 | qDebug( "^ ^ ^ ^ ^ ^ ^ war der dictName" ); | ||
68 | return dictName; | 63 | return dictName; |
69 | } | 64 | } |
70 | 65 | ||
71 | void DingWidget::setCaseSensitive( bool caseS ) | 66 | void DingWidget::setCaseSensitive( bool caseS ) |
72 | { | 67 | { |
73 | isCaseSensitive = caseS; | 68 | isCaseSensitive = caseS; |
74 | } | 69 | } |
75 | 70 | ||
76 | void DingWidget::setDict( QString dict ) | 71 | void DingWidget::setDict( QString dict ) |
77 | { | 72 | { |
78 | methodname = dict; | 73 | methodname = dict; |
79 | } | 74 | } |
80 | 75 | ||
81 | void DingWidget::setCompleteWord( bool cword ) | 76 | void DingWidget::setCompleteWord( bool cword ) |
82 | { | 77 | { |
83 | isCompleteWord = cword; | 78 | isCompleteWord = cword; |
84 | } | 79 | } |
85 | 80 | ||
86 | void DingWidget::setQueryWord( QString qword ) | 81 | void DingWidget::setQueryWord( QString qword ) |
87 | { | 82 | { |
88 | queryword = qword; | 83 | queryword = qword; |
89 | } | 84 | } |
90 | 85 | ||
91 | 86 | ||
92 | void DingWidget::loadValues() | 87 | void 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 | ||
99 | BroswerContent DingWidget::setText( QString word ) | 94 | BroswerContent 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 | ||
108 | BroswerContent DingWidget::parseInfo() | 101 | BroswerContent 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 | } |