-rw-r--r-- | noncore/apps/odict/dingwidget.cpp | 32 | ||||
-rw-r--r-- | noncore/apps/odict/dingwidget.h | 1 |
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, | |||
59 | void DingWidget::parseInfo( QStringList &lines, QString &top, QString &bottom ) | 59 | void 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; |