summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/odict/dingwidget.cpp32
-rw-r--r--noncore/apps/odict/dingwidget.h1
2 files changed, 21 insertions, 12 deletions
diff --git a/noncore/apps/odict/dingwidget.cpp b/noncore/apps/odict/dingwidget.cpp
index 26c0066..de02dcc 100644
--- a/noncore/apps/odict/dingwidget.cpp
+++ b/noncore/apps/odict/dingwidget.cpp
@@ -37,5 +37,5 @@ DingWidget::DingWidget(QWidget *parent, QString word, QTextBrowser *browser_top,
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 {
@@ -48,5 +48,5 @@ DingWidget::DingWidget(QWidget *parent, QString word, QTextBrowser *browser_top,
48 } 48 }
49 49
50 lines = lines.grep( word ); 50 lines = lines.grep( queryword );
51 51
52 QString top, bottom; 52 QString top, bottom;
@@ -59,21 +59,29 @@ DingWidget::DingWidget(QWidget *parent, QString word, QTextBrowser *browser_top,
59void DingWidget::parseInfo( QStringList &lines, QString &top, QString &bottom ) 59void DingWidget::parseInfo( QStringList &lines, QString &top, QString &bottom )
60{ 60{
61
62 QString current;
63 QString left;
64 QString right;
61 QRegExp reg_div( "\\" ); 65 QRegExp reg_div( "\\" );
62 QRegExp reg_word( queryword ); 66 QRegExp reg_word( queryword );
63 QString substitute = "<b>"+queryword+"</b>"; 67 QString substitute = "<font color='#FF0000'>"+queryword+"</font>";
64 QStringList toplist, bottomlist; 68 QStringList toplist, bottomlist;
65 for( QStringList::Iterator it = lines.begin() ; it != lines.end() ; ++it ) 69 for( QStringList::Iterator it = lines.begin() ; it != lines.end() ; ++it )
66 { 70 {
67 QString current = *it; 71 current = *it;
68 QString temp = current.left( current.find(reg_div) ); 72 left = current.left( current.find(reg_div) );
69 temp.replace( reg_word, substitute ); 73 right = current.right( current.length() - current.find(reg_div) - 1 );
70 toplist.append( temp ); 74 if ( left.contains( reg_word ) ){
71 temp = current.right( current.length() - current.find(reg_div) - 1 ); 75 left.replace( queryword, substitute );
72 temp.replace( reg_word, substitute ); 76 toplist.append( left + " -> " + right);
73 bottomlist.append( temp ); 77 }else{
78 right.replace( reg_word, substitute );
79 bottomlist.append( right + " -> " + left );
80 }
81 // .replace( reg_word, substitute );
74 } 82 }
75 83
76 //thats it, the lists are rendered. Lets put them in one string 84 //thats it, the lists are rendered. Lets put them in one string
77 bottom = bottomlist.join( "\n" ); 85 bottom = bottomlist.join( "<br>\n" );
78 top = toplist.join( "\n" ); 86 top = toplist.join( "<br>\n" );
79} 87}
diff --git a/noncore/apps/odict/dingwidget.h b/noncore/apps/odict/dingwidget.h
index 644162f..cba1edf 100644
--- a/noncore/apps/odict/dingwidget.h
+++ b/noncore/apps/odict/dingwidget.h
@@ -23,4 +23,5 @@ class DingWidget : public QWidget
23 23
24 private: 24 private:
25 QString search_word;
25 void parseInfo( QStringList& , QString&, QString& ); 26 void parseInfo( QStringList& , QString&, QString& );
26 QString queryword; 27 QString queryword;