summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/odict/dingwidget.cpp11
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
@@ -43,48 +43,49 @@ DingWidget::DingWidget(QWidget *parent, QString word, QTextBrowser *browser_top,
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
59void DingWidget::parseInfo( QStringList &lines, QString &top, QString &bottom ) 59void 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}