summaryrefslogtreecommitdiff
path: root/noncore/apps/odict/dingwidget.cpp
Unidiff
Diffstat (limited to 'noncore/apps/odict/dingwidget.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/odict/dingwidget.cpp16
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
33DingWidget::DingWidget(QWidget *parent, QString word, QTextBrowser *browser_top, QTextBrowser *browser_bottom) : QWidget(parent) 33DingWidget::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
61void DingWidget::loadValues()
62{
63 Config cfg( "odict" );
64 cfg.setGroup( "Method_"+methodname );
65 trenner = cfg.readEntry( "Seperator" );
66}
67
59void DingWidget::parseInfo( QStringList &lines, QString &top, QString &bottom ) 68void 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;