-rw-r--r-- | noncore/apps/odict/dingwidget.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/noncore/apps/odict/dingwidget.cpp b/noncore/apps/odict/dingwidget.cpp index 61ddbbf..8ad0b16 100644 --- a/noncore/apps/odict/dingwidget.cpp +++ b/noncore/apps/odict/dingwidget.cpp | |||
@@ -19,72 +19,73 @@ | |||
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(QWidget *parent, QString word, QTextBrowser *browser_top, QTextBrowser *browser_bottom) : QWidget(parent) | 33 | DingWidget::DingWidget(QWidget *parent, QString word, QTextBrowser *browser_top, QTextBrowser *browser_bottom) : QWidget(parent) |
34 | { | 34 | { |
35 | queryword = word; | 35 | queryword = word; |
36 | QString opie_dir = getenv("OPIEDIR"); | 36 | QString opie_dir = getenv("OPIEDIR"); |
37 | QFile file( opie_dir+"/noncore/apps/odict/eng_ita.dic" ); | 37 | QFile file( opie_dir+"/noncore/apps/odict/eng_ita.dic" ); |
38 | QStringList lines; | 38 | QStringList lines; |
39 | 39 | ||
40 | if( file.open( IO_ReadOnly ) ) | 40 | if( file.open( IO_ReadOnly ) ) |
41 | { | 41 | { |
42 | QTextStream stream( &file ); | 42 | QTextStream stream( &file ); |
43 | while ( !stream.eof() ) | 43 | while ( !stream.eof() ) |
44 | { | 44 | { |
45 | lines.append( stream.readLine() ); | 45 | lines.append( stream.readLine() ); |
46 | } | 46 | } |
47 | file.close(); | 47 | file.close(); |
48 | } | 48 | } |
49 | 49 | ||
50 | lines = lines.grep( queryword ); | 50 | lines = lines.grep( queryword ); |
51 | 51 | ||
52 | QString top, bottom; | 52 | QString top, bottom; |
53 | 53 | ||
54 | parseInfo( lines, top , bottom ); | 54 | parseInfo( lines, top , bottom ); |
55 | browser_top->setText( top ); | 55 | browser_top->setText( top ); |
56 | browser_bottom->setText( bottom ); | 56 | browser_bottom->setText( bottom ); |
57 | } | 57 | } |
58 | 58 | ||
59 | void DingWidget::parseInfo( QStringList &lines, QString &top, QString &bottom ) | 59 | void DingWidget::parseInfo( QStringList &lines, QString &top, QString &bottom ) |
60 | { | 60 | { |
61 | 61 | ||
62 | QString current; | 62 | QString current; |
63 | QString left; | 63 | QString left; |
64 | QString right; | 64 | QString right; |
65 | QRegExp reg_div( "\\" ); | 65 | QRegExp reg_div( "\\" ); |
66 | QRegExp reg_word( queryword ); | 66 | QRegExp reg_word( queryword ); |
67 | //rot:QString substitute = "<font color='#FF0000'>"+queryword+"</font>"; | 67 | //QString substitute = "<font color=red>"+queryword+"</font>"; |
68 | QString substitute = "<a href=''>"+queryword+"</a>"; | 68 | QString substitute = "<a href=''>"+queryword+"</a>"; |
69 | QStringList toplist, bottomlist; | 69 | QStringList toplist, bottomlist; |
70 | for( QStringList::Iterator it = lines.begin() ; it != lines.end() ; ++it ) | 70 | for( QStringList::Iterator it = lines.begin() ; it != lines.end() ; ++it ) |
71 | { | 71 | { |
72 | current = *it; | 72 | current = *it; |
73 | left = current.left( current.find(reg_div) ); | 73 | left = current.left( current.find(reg_div) ); |
74 | right = current.right( current.length() - current.find(reg_div) - 1 ); | 74 | right = current.right( current.length() - current.find(reg_div) - 1 ); |
75 | if ( left.contains( reg_word ) ) | 75 | if ( left.contains( reg_word ) ) |
76 | { | 76 | { |
77 | left.replace( queryword, substitute ); | 77 | left.replace( queryword, substitute ); |
78 | toplist.append( left + " -> " + right); | 78 | toplist.append( "<tr><td>" + left + "</td><td>" + right + "</td></tr>" ); |
79 | } | 79 | } |
80 | else | 80 | else |
81 | { | 81 | { |
82 | right.replace( reg_word, substitute ); | 82 | right.replace( reg_word, substitute ); |
83 | bottomlist.append( right + " -> " + left ); | 83 | bottomlist.append( "<tr><td>" + right + "</td><td>" + left + "</td></tr>" ); |
84 | } | 84 | } |
85 | } | 85 | } |
86 | 86 | ||
87 | //thats it, the lists are rendered. Lets put them in one string | 87 | //thats it, the lists are rendered. Lets put them in one string |
88 | bottom = bottomlist.join( "<br>\n" ); | 88 | |
89 | top = toplist.join( "<br>\n" ); | 89 | bottom = "<html><table><tbody>"+bottomlist.join( "<br>" )+"</tbody></table></html>"; |
90 | top = "<html><table><tbody>"+toplist.join( "<br>" )+"</tbody></table></html>"; | ||
90 | } | 91 | } |