• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdeedu API Reference
  • KDE Home
  • Contact Us
 

parley

  • sources
  • kde-4.12
  • kdeedu
  • parley
  • src
  • editor
browserwidget.cpp
Go to the documentation of this file.
1 /***************************************************************************
2 
3  Copyright 2008 Frederik Gladhorn <frederik.gladhorn@kdemail.net>
4 
5  ***************************************************************************/
6 
7 /***************************************************************************
8  * *
9  * This program is free software; you can redistribute it and/or modify *
10  * it under the terms of the GNU General Public License as published by *
11  * the Free Software Foundation; either version 2 of the License, or *
12  * (at your option) any later version. *
13  * *
14  ***************************************************************************/
15 
16 #include "browserwidget.h"
17 
18 #include <keduvocexpression.h>
19 #include <KHTMLPart>
20 
21 #include <QDragEnterEvent>
22 
23 using namespace Editor;
24 
25 BrowserWidget::BrowserWidget(QWidget *parent) : QWidget(parent)
26 {
27  setupUi(this);
28  m_currentTranslation = -1;
29  m_entry = 0;
30  m_currentProvider = 0;
31 
32  m_htmlPart = new KHTMLPart(widget);
33  QHBoxLayout *layout = new QHBoxLayout(widget);
34  widget->setLayout(layout);
35  layout->addWidget(m_htmlPart->widget());
36 
37  connect(m_htmlPart->browserExtension(),
38  SIGNAL(openUrlRequest(const KUrl&, const KParts::OpenUrlArguments&, const KParts::BrowserArguments&)),
39  this, SLOT(openUrl(const KUrl&)));
40 
41  connect(showCurrentButton, SIGNAL(clicked()), SLOT(showCurrentTranslation()));
42 
43  setupProviders();
44  connect(providerComboBox, SIGNAL(currentIndexChanged(int)), SLOT(providerChanged(int)));
45 
46  m_htmlPart->setJavaEnabled(false);
47  m_htmlPart->setPluginsEnabled(false);
48  m_htmlPart->setJScriptEnabled(true);
49  m_htmlPart->setMetaRefreshEnabled(true);
50  m_htmlPart->setDNDEnabled(true);
51 }
52 
53 void BrowserWidget::setupProviders()
54 {
55  providerComboBox->clear();
56 
57  DictionaryProvider provider;
58  provider.name="De-Es Beolingus";
59  provider.url="http://beolingus.org/dings.cgi?service=dees&query=\\{@}";
60  provider.languages << "de" << "es";
61  m_providers.append(provider);
62  providerComboBox->addItem(provider.name);
63 
64  provider.name="De-En Beolingus";
65  provider.url="http://beolingus.org/dings.cgi?query=\\{@}";
66  provider.languages << "de" << "en";
67  m_providers.append(provider);
68  providerComboBox->addItem(provider.name);
69 
70  provider.name="De-En Leo";
71  provider.url="http://dict.leo.org/?search=\\{@}";
72  provider.languages << "de" << "en";
73  m_providers.append(provider);
74  providerComboBox->addItem(provider.name);
75 
76  provider.name="De-Es Leo";
77  provider.url="http://dict.leo.org/?lp=esde&search=\\{@}";
78  provider.languages << "de" << "es";
79  m_providers.append(provider);
80  providerComboBox->addItem(provider.name);
81 
82  provider.name="De-Fr Leo";
83  provider.url="http://dict.leo.org/?lp=frde&search=\\{@}";
84  provider.languages << "de" << "fr";
85  m_providers.append(provider);
86  providerComboBox->addItem(provider.name);
87 
88  provider.name="De-Es Pons";
89  provider.url="http://www.ponsline.de/cgi-bin/wb/w.pl?von=pons.de&Richtung=Spanisch&Begriff=\\{@}";
90  provider.languages << "de" << "es";
91  m_providers.append(provider);
92  providerComboBox->addItem(provider.name);
93 
94  provider.name="Ru-En Multitran";
95  provider.url="http://multitran.ru/c/m.exe?SHL=1&CL=1&l1=1&s=\\{@}";
96  provider.languages << "ru" << "en";
97  m_providers.append(provider);
98  providerComboBox->addItem(provider.name);
99 
100  provider.name="Ru-De Multitran";
101  provider.url="http://multitran.ru/c/m.exe?SHL=1&CL=1&l1=3&s=\\{@}";
102  provider.languages << "ru" << "de";
103  m_providers.append(provider);
104  providerComboBox->addItem(provider.name);
105 
106  provider.name="Ru-Fr Multitran";
107  provider.url="http://multitran.ru/c/m.exe?SHL=1&CL=1&l1=4&s=\\{@}";
108  provider.languages << "ru" << "fr";
109  m_providers.append(provider);
110  providerComboBox->addItem(provider.name);
111 
112  provider.name="Heinzelnisse";
113  provider.url="http://heinzelnisse.info/dict?setOptions=true&searchItem=\\{@}&dictDeNoSearch=on&dictNoDeSearch=on&dictExactSearch=on&dictPhoneticSearch=on&wikiSearch=on&dictNynorskSearch=on&dictBokmaalSearch=checked&forumKeywordSearch=on&suggestion=on";
114  provider.languages << "no" << "de";
115  m_providers.append(provider);
116  providerComboBox->addItem(provider.name);
117 
118 }
119 
120 void BrowserWidget::setTranslation(KEduVocExpression* entry, int translation)
121 {
122  m_currentTranslation = translation;
123  m_entry = entry;
124 
125  if (followTableCheckBox->isChecked()) {
126  showCurrentTranslation();
127  }
128 }
129 
130 void BrowserWidget::showCurrentTranslation()
131 {
132  if (m_entry) {
133  if (m_entry->translation(m_currentTranslation)) {
134  QString text = m_entry->translation(m_currentTranslation)->text();
135  if (!text.isEmpty()) {
136  m_htmlPart->openUrl(KUrl(QString(m_providers.value(m_currentProvider).url.replace("\\{@}", text))));
137  }
138  }
139  }
140 }
141 
142 void BrowserWidget::openUrl(const KUrl & targetUrl)
143 {
144  m_htmlPart->openUrl(targetUrl);
145 }
146 
147 void BrowserWidget::providerChanged(int provider)
148 {
149  m_currentProvider = provider;
150  showCurrentTranslation();
151 }
152 
153 
154 #include "browserwidget.moc"
155 
Editor::DictionaryProvider
Definition: browserwidget.h:28
Editor::DictionaryProvider::languages
QStringList languages
Definition: browserwidget.h:31
Editor::DictionaryProvider::url
QString url
Definition: browserwidget.h:30
QWidget
Editor::BrowserWidget::BrowserWidget
BrowserWidget(QWidget *parent=0)
Definition: browserwidget.cpp:25
Editor::DictionaryProvider::name
QString name
Definition: browserwidget.h:29
browserwidget.h
Editor::BrowserWidget::setTranslation
void setTranslation(KEduVocExpression *entry, int translation)
Update the word.
Definition: browserwidget.cpp:120
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:42:05 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

parley

Skip menu "parley"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdeedu API Reference

Skip menu "kdeedu API Reference"
  • Analitza
  •     lib
  • kalgebra
  • kalzium
  •   libscience
  • kanagram
  • kig
  •   lib
  • klettres
  • kstars
  • libkdeedu
  •   keduvocdocument
  • marble
  • parley
  • rocs
  •   App
  •   RocsCore
  •   VisualEditor
  •   stepcore

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal