Diffstat (limited to 'noncore/apps/odict/dingwidget.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/apps/odict/dingwidget.cpp | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/noncore/apps/odict/dingwidget.cpp b/noncore/apps/odict/dingwidget.cpp index 8f5a7ae..b69a803 100644 --- a/noncore/apps/odict/dingwidget.cpp +++ b/noncore/apps/odict/dingwidget.cpp | |||
@@ -9,86 +9,96 @@ | |||
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, QString activated_name) : QWidget(parent) |
34 | { | 34 | { |
35 | methodname = activated_name; | ||
35 | queryword = word; | 36 | queryword = word; |
37 | trenner = QString::null; | ||
38 | loadValues(); | ||
36 | QString opie_dir = getenv("OPIEDIR"); | 39 | QString opie_dir = getenv("OPIEDIR"); |
37 | QFile file( opie_dir+"/noncore/apps/odict/eng_ita.dic" ); | 40 | QFile file( opie_dir+"/noncore/apps/odict/eng_ita.dic" ); |
38 | QStringList lines; | 41 | QStringList lines; |
39 | 42 | ||
40 | if( file.open( IO_ReadOnly ) ) | 43 | if( file.open( IO_ReadOnly ) ) |
41 | { | 44 | { |
42 | QTextStream stream( &file ); | 45 | QTextStream stream( &file ); |
43 | while ( !stream.eof() ) | 46 | while ( !stream.eof() ) |
44 | { | 47 | { |
45 | lines.append( stream.readLine() ); | 48 | lines.append( stream.readLine() ); |
46 | } | 49 | } |
47 | file.close(); | 50 | file.close(); |
48 | } | 51 | } |
49 | 52 | ||
50 | lines = lines.grep( queryword ); | 53 | lines = lines.grep( queryword ); |
51 | 54 | ||
52 | QString top, bottom; | 55 | QString top, bottom; |
53 | 56 | //parseInfo( lines, top , bottom ); | |
54 | parseInfo( lines, top , bottom ); | ||
55 | browser_top->setText( top ); | 57 | browser_top->setText( top ); |
56 | browser_bottom->setText( bottom ); | 58 | browser_bottom->setText( bottom ); |
57 | } | 59 | } |
58 | 60 | ||
61 | void DingWidget::loadValues() | ||
62 | { | ||
63 | Config cfg( "odict" ); | ||
64 | cfg.setGroup( "Method_"+methodname ); | ||
65 | trenner = cfg.readEntry( "Seperator" ); | ||
66 | } | ||
67 | |||
59 | void DingWidget::parseInfo( QStringList &lines, QString &top, QString &bottom ) | 68 | void DingWidget::parseInfo( QStringList &lines, QString &top, QString &bottom ) |
60 | { | 69 | { |
61 | 70 | ||
62 | QString current; | 71 | QString current; |
63 | QString left; | 72 | QString left; |
64 | QString right; | 73 | QString right; |
65 | QString html_header = "<html><table>"; | 74 | QString html_header = "<html><table>"; |
66 | QString html_footer = "</table></html>"; | 75 | QString html_footer = "</table></html>"; |
67 | QString html_table_left = "<tr><td width='50'>"; | 76 | QString html_table_left = "<tr><td width='50'>"; |
68 | QString html_table_sep = "</td><td>"; | 77 | QString html_table_sep = "</td><td>"; |
69 | QString html_table_right = "</td></tr>"; | 78 | QString html_table_right = "</td></tr>"; |
70 | QRegExp reg_div( "\\" ); | 79 | QRegExp reg_div( "\\" ); |
80 | //QRegExp reg_div( trenner ); | ||
71 | QRegExp reg_word( queryword ); | 81 | QRegExp reg_word( queryword ); |
72 | //QString substitute = "<font color=red>"+queryword+"</font>"; | 82 | //QString substitute = "<font color=red>"+queryword+"</font>"; |
73 | QString substitute = "<a href=''>"+queryword+"</a>"; | 83 | QString substitute = "<a href=''>"+queryword+"</a>"; |
74 | QStringList toplist, bottomlist; | 84 | QStringList toplist, bottomlist; |
75 | for( QStringList::Iterator it = lines.begin() ; it != lines.end() ; ++it ) | 85 | for( QStringList::Iterator it = lines.begin() ; it != lines.end() ; ++it ) |
76 | { | 86 | { |
77 | current = *it; | 87 | current = *it; |
78 | left = current.left( current.find(reg_div) ); | 88 | left = current.left( current.find(reg_div) ); |
79 | right = current.right( current.length() - current.find(reg_div) - 1 ); | 89 | right = current.right( current.length() - current.find(reg_div) - 1 ); |
80 | if ( left.contains( reg_word ) ) | 90 | if ( left.contains( reg_word ) ) |
81 | { | 91 | { |
82 | left.replace( queryword, substitute ); | 92 | left.replace( queryword, substitute ); |
83 | toplist.append( html_table_left + left + html_table_sep + right + html_table_right ); | 93 | toplist.append( html_table_left + left + html_table_sep + right + html_table_right ); |
84 | } | 94 | } |
85 | else | 95 | else |
86 | { | 96 | { |
87 | right.replace( reg_word, substitute ); | 97 | right.replace( reg_word, substitute ); |
88 | bottomlist.append( html_table_left + right + html_table_sep + left + html_table_right ); | 98 | bottomlist.append( html_table_left + right + html_table_sep + left + html_table_right ); |
89 | } | 99 | } |
90 | } | 100 | } |
91 | 101 | ||
92 | //thats it, the lists are rendered. Lets put them in one string | 102 | //thats it, the lists are rendered. Lets put them in one string |
93 | bottom = html_header + bottomlist.join( "<br>" ) + html_footer; | 103 | bottom = html_header + bottomlist.join( "<br>" ) + html_footer; |
94 | top = html_header + toplist.join( "<br>" ) + html_footer; | 104 | top = html_header + toplist.join( "<br>" ) + html_footer; |