summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/odict/dingwidget.cpp113
-rw-r--r--noncore/apps/odict/dingwidget.h35
-rw-r--r--noncore/apps/odict/odict.cpp55
-rw-r--r--noncore/apps/odict/odict.h4
4 files changed, 161 insertions, 46 deletions
diff --git a/noncore/apps/odict/dingwidget.cpp b/noncore/apps/odict/dingwidget.cpp
index 2913836..7abad22 100644
--- a/noncore/apps/odict/dingwidget.cpp
+++ b/noncore/apps/odict/dingwidget.cpp
@@ -32,11 +32,29 @@
-DingWidget::DingWidget(QString word, QTextBrowser *browser_top, QTextBrowser *browser_bottom, QString activated_name)
+
+DingWidget::DingWidget( )
{
- methodname = activated_name;
- queryword = word;
- trenner = QString::null;
+ methodname = QString::null;
+ trenner = "::";//QString::null;
lines = 0L;
loadValues();
+
+//X qDebug( topbrowser );
+//X qDebug( top );
+//X
+//X topbrowser = "blahbalh";
+//X
+//X qDebug( topbrowser );
+//X qDebug( top );
+}
+
+void DingWidget::loadDict( QString name )
+{
+ qDebug( "MUSS ich wirklich aufgerufen werder? schreit loadDict" );
+ qDebug( "Starte mit dem loadedDict(...)" );
+ dictName = name;
+ qDebug( "bin in loadedDict() und lade das Dict:" );
+ qDebug( dictName );
QString opie_dir = getenv("OPIEDIR");
QFile file( opie_dir+"/noncore/apps/odict/eng_ita.dic" );
+ //FIXME:this should of course be not hardcoded ;)
@@ -51,17 +69,38 @@ DingWidget::DingWidget(QString word, QTextBrowser *browser_top, QTextBrowser *br
}
+ qDebug( "loadedDict(...) ist beended" );
+}
+
+QString DingWidget::loadedDict()
+{
+ qDebug( dictName );
+ qDebug( "^ ^ ^ ^ ^ ^ ^ war der dictName" );
+ return dictName;
+}
- lines = lines.grep( queryword );
+void DingWidget::setCaseSensitive( bool caseS )
+{
+ isCaseSensitive = caseS;
+}
- topbrowser = browser_top;
- bottombrowser = browser_bottom;
+void DingWidget::setDict( QString dict )
+{
+ methodname = dict;
}
-void DingWidget::setText()
+void DingWidget::setCompleteWord( bool cword )
{
- QString top, bottom;
- QStringList test = lines;
- parseInfo( test, top , bottom );
-
- topbrowser->setText( top );
- bottombrowser->setText( bottom );
+ isCompleteWord = cword;
+}
+
+void DingWidget::setQueryWord( QString qword )
+{
+ queryword = qword;
+}
+
+BroswerContent DingWidget::setText( QString word )
+{
+ queryword = word;
+ qDebug( queryword );
+ qDebug( "^ ^ ^ ^ ^ ^ ^ war das gesuchte Word");
+ return parseInfo();
}
@@ -72,7 +111,8 @@ void DingWidget::loadValues()
cfg.setGroup( "Method_"+methodname );
- trenner = cfg.readEntry( "Seperator" );
+ //trenner = cfg.readEntry( "Seperator" );
}
-void DingWidget::parseInfo( QStringList &lines, QString &top, QString &bottom )
+BroswerContent DingWidget::parseInfo()
{
+ QStringList search = lines.grep( queryword );
@@ -88,5 +128,11 @@ void DingWidget::parseInfo( QStringList &lines, QString &top, QString &bottom )
QRegExp reg_word( queryword );
- QString substitute = "<a href=''>"+queryword+"</a>";
QStringList toplist, bottomlist;
- for( QStringList::Iterator it = lines.begin() ; it != lines.end() ; ++it )
+ QString substitute = "<strong>"+queryword+"</strong>";
+
+ /* Dieser Block ist von Patrik. Ich versuche einen neuen
+ * Ansatz. Zum einen ist HTML scheiße an dieser Stelle und
+ * zum andern funktioniert der Code nicht so wie er sollte.
+ QString substitute = "<a href=''>"+queryword+"</a>";
+
+ for( QStringList::Iterator it = search.begin() ; it != search.end() ; ++it )
{
@@ -108,4 +154,31 @@ void DingWidget::parseInfo( QStringList &lines, QString &top, QString &bottom )
//thats it, the lists are rendered. Lets put them in one string
- bottom = html_header + bottomlist.join( "<br>" ) + html_footer;
- top = html_header + toplist.join( "<br>" ) + html_footer;
+ s_strings.bottom = html_header + bottomlist.join( "<br>" ) + html_footer;
+ s_strings.top = html_header + toplist.join( "<br>" ) + html_footer;
+ */
+
+ for( QStringList::Iterator it = search.begin() ; it != search.end() ; ++it )
+ {
+ current = *it;
+ left = current.left( current.find( trenner ) );
+
+ right = current.right( current.length() - current.find(trenner) -2 );
+
+ if ( left.contains( queryword ) )
+ {
+ left.replace( queryword, substitute );
+ left = left + "-->" + right;
+ toplist.append( left );
+ }
+ else
+ {
+ right.replace( queryword, substitute );
+ left = right + "-->" + left;
+ bottomlist.append( right );
+ }
+ }
+
+ s_strings.bottom = bottomlist.join( "\n" );
+ s_strings.top = toplist.join( "\n" );
+
+ return s_strings;
}
diff --git a/noncore/apps/odict/dingwidget.h b/noncore/apps/odict/dingwidget.h
index c96039f..ba37009 100644
--- a/noncore/apps/odict/dingwidget.h
+++ b/noncore/apps/odict/dingwidget.h
@@ -9,10 +9,11 @@
-class QString;
-class QTextBrowser;
-class QStringList;
-
#include <qstringlist.h>
-
#include <qstring.h>
+struct BroswerContent
+{
+ QString top;
+ QString bottom;
+};
+
class DingWidget
@@ -20,15 +21,27 @@ class DingWidget
public:
- DingWidget(QString word = 0, QTextBrowser* = 0, QTextBrowser* =0, QString activated_name=0);
+ DingWidget();
- void setText();
+ BroswerContent setText( QString );
QStringList lines;
+ void setCaseSensitive( bool );
+ void setCompleteWord( bool );
+ void loadDict( QString );
+ QString loadedDict();
+ void setQueryWord( QString );
+ void setDict( QString );
+
private:
+ BroswerContent parseInfo();
+
+ BroswerContent s_strings;
+ bool isCompleteWord;
+ bool isCaseSensitive;
+
+ QString dictName;
+
QString search_word;
- void parseInfo( QStringList& , QString&, QString& );
- QString queryword;
void loadValues();
+ QString queryword;
QString methodname;
QString trenner;
-
- QTextBrowser *topbrowser, *bottombrowser;
};
diff --git a/noncore/apps/odict/odict.cpp b/noncore/apps/odict/odict.cpp
index 6f176f9..549c40a 100644
--- a/noncore/apps/odict/odict.cpp
+++ b/noncore/apps/odict/odict.cpp
@@ -41,4 +41,4 @@ ODict::ODict() : QMainWindow()
{
-
activated_name = QString::null;
+
vbox = new QVBox( this );
@@ -46,2 +46,3 @@ ODict::ODict() : QMainWindow()
setupMenus();
+
@@ -57,2 +58,4 @@ ODict::ODict() : QMainWindow()
+ ding = new DingWidget();
+
loadConfig();
@@ -77,2 +80,3 @@ void ODict::loadConfig()
}
+ slotMethodChanged(1 ); //FIXME: this line should not contain a integer
}
@@ -92,3 +96,3 @@ void ODict::slotDisplayAbout()
{
- QMessageBox::about( this, tr( "About ODict" ), tr( "OPIE-Dictionary ODict \n (c) 2002, 2003 Carsten Niehaus \n cniehaus@handhelds.org \n Version 20030104" ) );
+ QMessageBox::about( this, tr( "About ODict" ), tr( "OPIE-Dictionary ODict \n (c) 2002, 2003 Carsten Niehaus \n cniehaus@handhelds.org \n Version 20030108" ) );
}
@@ -98,12 +102,37 @@ void ODict::slotStartQuery()
QString querystring = query_le->text();
- qDebug("opening dict >%s< for >%s<", activated_name.latin1(),querystring.latin1());
- if (querystring.isEmpty()){
- qWarning("empty querystring");
- return;
- }
- if (!activated_name || activated_name.isEmpty())
- QMessageBox::warning(this,tr("No Dictionary"),tr("Please choose a dictonary") );
- else
- DingWidget *ding = new DingWidget( querystring , browser_top, browser_bottom, activated_name );
- ding->setText();
+//X qDebug("opening dict >%s< for >%s<", activated_name.latin1(),querystring.latin1());
+//X if (querystring.isEmpty()){
+//X qWarning("empty querystring");
+//X return;
+//X }
+//X if (!activated_name || activated_name.isEmpty())
+//X QMessageBox::warning(this,tr("No Dictionary"),tr("Please choose a dictonary") );
+//X else
+//X {
+
+ ding->setCaseSensitive( casesens );
+ ding->setCompleteWord( completewords );
+ ding->setDict( activated_name );
+
+ qDebug( " activated_name ist :" );
+ qDebug( activated_name );
+
+ qDebug( " loadedDict() ist :" );
+ qDebug( ding->loadedDict() );
+ if ( activated_name != ding->loadedDict() )
+ {
+ qDebug( "ComboBox geändert" );
+ ding->loadDict(activated_name);
+ }
+ else qDebug( "ComboBox war GLEICH" );
+
+ BroswerContent test = ding->setText( querystring );
+
+ browser_top->setText( test.top );
+ browser_bottom->setText( test.bottom );
+
+ qDebug( "Text sollte gesetzt sein..." );
+
+//X }
+
}
@@ -154,3 +183,3 @@ void ODict::slotSetParameter( int count )
-void ODict::slotMethodChanged( int methodnumber )
+void ODict::slotMethodChanged( int /*methodnumber*/ )
{
diff --git a/noncore/apps/odict/odict.h b/noncore/apps/odict/odict.h
index 5096c5e..b20c165 100644
--- a/noncore/apps/odict/odict.h
+++ b/noncore/apps/odict/odict.h
@@ -23,2 +23,3 @@ class QTextBrowser;
class QComboBox;
+class DingWidget;
@@ -33,2 +34,3 @@ class ODict : public QMainWindow
*browser_bottom;
+ DingWidget *ding;
@@ -45,4 +47,2 @@ class ODict : public QMainWindow
QAction *setting_a, *setting_b;
-
- DingWidget *ding;