author | tille <tille> | 2003-01-03 23:20:17 (UTC) |
---|---|---|
committer | tille <tille> | 2003-01-03 23:20:17 (UTC) |
commit | 28b06247aaa55f80d91be1f8591e2cc30bac29d3 (patch) (unidiff) | |
tree | aae7c199e4149478489dbd6d2812dd1ba1d0ee94 | |
parent | f1140315017f49805c4dafa495791e0810effb91 (diff) | |
download | opie-28b06247aaa55f80d91be1f8591e2cc30bac29d3.zip opie-28b06247aaa55f80d91be1f8591e2cc30bac29d3.tar.gz opie-28b06247aaa55f80d91be1f8591e2cc30bac29d3.tar.bz2 |
clean up
-rw-r--r-- | noncore/apps/odict/dingwidget.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/noncore/apps/odict/dingwidget.cpp b/noncore/apps/odict/dingwidget.cpp index 8ad0b16..8f5a7ae 100644 --- a/noncore/apps/odict/dingwidget.cpp +++ b/noncore/apps/odict/dingwidget.cpp | |||
@@ -1,91 +1,95 @@ | |||
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(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 | QString html_header = "<html><table>"; | ||
66 | QString html_footer = "</table></html>"; | ||
67 | QString html_table_left = "<tr><td width='50'>"; | ||
68 | QString html_table_sep = "</td><td>"; | ||
69 | QString html_table_right = "</td></tr>"; | ||
65 | QRegExp reg_div( "\\" ); | 70 | QRegExp reg_div( "\\" ); |
66 | QRegExp reg_word( queryword ); | 71 | QRegExp reg_word( queryword ); |
67 | //QString substitute = "<font color=red>"+queryword+"</font>"; | 72 | //QString substitute = "<font color=red>"+queryword+"</font>"; |
68 | QString substitute = "<a href=''>"+queryword+"</a>"; | 73 | QString substitute = "<a href=''>"+queryword+"</a>"; |
69 | QStringList toplist, bottomlist; | 74 | QStringList toplist, bottomlist; |
70 | for( QStringList::Iterator it = lines.begin() ; it != lines.end() ; ++it ) | 75 | for( QStringList::Iterator it = lines.begin() ; it != lines.end() ; ++it ) |
71 | { | 76 | { |
72 | current = *it; | 77 | current = *it; |
73 | left = current.left( current.find(reg_div) ); | 78 | left = current.left( current.find(reg_div) ); |
74 | right = current.right( current.length() - current.find(reg_div) - 1 ); | 79 | right = current.right( current.length() - current.find(reg_div) - 1 ); |
75 | if ( left.contains( reg_word ) ) | 80 | if ( left.contains( reg_word ) ) |
76 | { | 81 | { |
77 | left.replace( queryword, substitute ); | 82 | left.replace( queryword, substitute ); |
78 | toplist.append( "<tr><td>" + left + "</td><td>" + right + "</td></tr>" ); | 83 | toplist.append( html_table_left + left + html_table_sep + right + html_table_right ); |
79 | } | 84 | } |
80 | else | 85 | else |
81 | { | 86 | { |
82 | right.replace( reg_word, substitute ); | 87 | right.replace( reg_word, substitute ); |
83 | bottomlist.append( "<tr><td>" + right + "</td><td>" + left + "</td></tr>" ); | 88 | bottomlist.append( html_table_left + right + html_table_sep + left + html_table_right ); |
84 | } | 89 | } |
85 | } | 90 | } |
86 | 91 | ||
87 | //thats it, the lists are rendered. Lets put them in one string | 92 | //thats it, the lists are rendered. Lets put them in one string |
88 | 93 | bottom = html_header + bottomlist.join( "<br>" ) + html_footer; | |
89 | bottom = "<html><table><tbody>"+bottomlist.join( "<br>" )+"</tbody></table></html>"; | 94 | top = html_header + toplist.join( "<br>" ) + html_footer; |
90 | top = "<html><table><tbody>"+toplist.join( "<br>" )+"</tbody></table></html>"; | ||
91 | } | 95 | } |