diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/opensearch/opensearchmanager.cpp | 100 | ||||
| -rw-r--r-- | src/opensearch/opensearchmanager.h | 4 | ||||
| -rw-r--r-- | src/opensearch/opensearchreader.cpp | 1 | ||||
| -rw-r--r-- | src/urlbar/urlbar.cpp | 3 | ||||
| -rw-r--r-- | src/urlbar/webshortcutwidget.cpp | 9 | ||||
| -rw-r--r-- | src/urlbar/webshortcutwidget.h | 14 | ||||
| -rw-r--r-- | src/webtab.cpp | 2 | ||||
| -rw-r--r-- | src/webtab.h | 12 | 
8 files changed, 79 insertions, 66 deletions
diff --git a/src/opensearch/opensearchmanager.cpp b/src/opensearch/opensearchmanager.cpp index 04e687f3..c315f9c8 100644 --- a/src/opensearch/opensearchmanager.cpp +++ b/src/opensearch/opensearchmanager.cpp @@ -115,9 +115,8 @@ bool OpenSearchManager::isSuggestionAvailable()  void OpenSearchManager::addOpenSearchEngine(const KUrl &url, const QString &title, const QString &shortcut)  { -    Q_UNUSED(title); -      m_shortcut = shortcut; +    m_title = trimmedEngineName(title);      if (m_state != IDLE)      { @@ -171,67 +170,49 @@ void OpenSearchManager::dataReceived(KIO::Job *job, const QByteArray &data)  void OpenSearchManager::jobFinished(KJob *job)  { -    // Do NOT parse if job had same errors or the typed string is empty -    if (job->error() || _typedText.isEmpty()) -    { -        emit suggestionsReceived(_typedText, ResponseList()); -        m_state = IDLE; -        return; // just silently return -    } - -    if (m_state == REQ_SUGGESTION) -    { -        ResponseList suggestionsList; -        if (isSuggestionAvailable()) -        { -            suggestionsList = m_activeEngine->parseSuggestion(_typedText, m_jobData); -        } -        emit suggestionsReceived(_typedText, suggestionsList); -        idleJob(); -        return; -    } - -    if (m_state == REQ_DESCRIPTION) +    if (!job->error() && m_state == REQ_DESCRIPTION)      {          OpenSearchReader reader;          OpenSearchEngine *engine = reader.read(m_jobData);          if (engine)          { -            m_engineCache.insert(engine->name(), engine); -            m_engines.insert(m_jobUrl, trimmedEngineName(engine->name())); +            m_engineCache.insert(m_title, engine); +            m_engines.insert(m_jobUrl, m_shortcut);              saveEngines();              QString path; -            if (engine->providesSuggestions()) //save opensearch description only if it provides suggestions +            if (engine->providesSuggestions())              { +                // save opensearch description only if it provides suggestions                  OpenSearchWriter writer;                  path = KGlobal::dirs()->findResource("data", "rekonq/opensearch/");                  QFile file(path + trimmedEngineName(engine->name()) + ".xml");                  writer.write(&file, engine); -            } -            QString searchUrl = OpenSearchEngine::parseTemplate("\\{@}", engine->searchUrlTemplate()); -            m_currentJob = NULL; - -            path = KGlobal::mainComponent().dirs()->saveLocation("services", "searchproviders/"); -            KConfig _service(path +  trimmedEngineName(engine->name()) + ".desktop", KConfig::SimpleConfig); -            KConfigGroup service(&_service, "Desktop Entry"); -            service.writeEntry("Type", "Service"); -            service.writeEntry("ServiceTypes", "SearchProvider"); -            service.writeEntry("Name", engine->name()); -            service.writeEntry("Query", searchUrl); -            service.writeEntry("Keys", m_shortcut); -            // TODO charset -            service.writeEntry("Charset", "" /* provider->charset() */); -            // we might be overwriting a hidden entry -            service.writeEntry("Hidden", false); -            service.sync(); - -            // Update filters in running applications... -            QDBusMessage msg = QDBusMessage::createSignal("/", "org.kde.KUriFilterPlugin", "configure"); -            QDBusConnection::sessionBus().send(msg); - -            emit openSearchEngineAdded(engine->name(), searchUrl, m_shortcut); +                // save desktop file here +                QString searchUrl = OpenSearchEngine::parseTemplate("\\{@}", engine->searchUrlTemplate()); +                m_currentJob = NULL; + +                path = KGlobal::mainComponent().dirs()->saveLocation("services", "searchproviders/"); +                KConfig _service(path +  m_title + ".desktop", KConfig::SimpleConfig); +                KConfigGroup service(&_service, "Desktop Entry"); +                service.writeEntry("Type", "Service"); +                service.writeEntry("ServiceTypes", "SearchProvider"); +                service.writeEntry("Name", m_title); +                service.writeEntry("Query", searchUrl); +                service.writeEntry("Keys", m_shortcut); +                // TODO charset +                service.writeEntry("Charset", "" /* provider->charset() */); +                // we might be overwriting a hidden entry +                service.writeEntry("Hidden", false); +                service.sync(); + +                // Update filters in running applications... +                QDBusMessage msg = QDBusMessage::createSignal("/", "org.kde.KUriFilterPlugin", "configure"); +                QDBusConnection::sessionBus().send(msg); + +                emit openSearchEngineAdded(engine->name()); +            }          }          else          { @@ -239,6 +220,27 @@ void OpenSearchManager::jobFinished(KJob *job)          }          idleJob(); +        return; +    } +     +    // Do NOT parse if job had same errors or the typed string is empty +    if (job->error() || _typedText.isEmpty()) +    { +        emit suggestionsReceived(_typedText, ResponseList()); +        m_state = IDLE; +        return; // just silently return +    } + +    if (m_state == REQ_SUGGESTION) +    { +        ResponseList suggestionsList; +        if (isSuggestionAvailable()) +        { +            suggestionsList = m_activeEngine->parseSuggestion(_typedText, m_jobData); +        } +        emit suggestionsReceived(_typedText, suggestionsList); +        idleJob(); +        return;      }  } diff --git a/src/opensearch/opensearchmanager.h b/src/opensearch/opensearchmanager.h index a72e4e20..3f99a06e 100644 --- a/src/opensearch/opensearchmanager.h +++ b/src/opensearch/opensearchmanager.h @@ -97,7 +97,7 @@ private Q_SLOTS:  Q_SIGNALS:      void suggestionsReceived(const QString &text, const ResponseList &suggestion); -    void openSearchEngineAdded(const QString &name, const QString &searchUrl, const QString &fileName); +    void openSearchEngineAdded(const QString &name);  private:      QString trimmedEngineName(const QString &engineName) const; @@ -117,7 +117,9 @@ private:      KUrl m_jobUrl;      QString _typedText; +      QString m_shortcut; +    QString m_title;  };  #endif // OPENSEARCHMANAGER_H diff --git a/src/opensearch/opensearchreader.cpp b/src/opensearch/opensearchreader.cpp index 897fca29..a4f43b7a 100644 --- a/src/opensearch/opensearchreader.cpp +++ b/src/opensearch/opensearchreader.cpp @@ -83,6 +83,7 @@ OpenSearchEngine *OpenSearchReader::read()              || namespaceUri() != QL1S("http://a9.com/-/spec/opensearch/1.1/")         )      { +        kDebug() << "The file is not an OpenSearch 1.1 file: " << name();          raiseError(i18n("The file is not an OpenSearch 1.1 file."));          return engine;      } diff --git a/src/urlbar/urlbar.cpp b/src/urlbar/urlbar.cpp index b796224b..1a8410a3 100644 --- a/src/urlbar/urlbar.cpp +++ b/src/urlbar/urlbar.cpp @@ -136,8 +136,7 @@ UrlBar::UrlBar(QWidget *parent)      connect(_tab->view(), SIGNAL(iconChanged()), this, SLOT(refreshFavicon()));      // search icon -    connect(rApp->opensearchManager(), SIGNAL(openSearchEngineAdded(QString,QString,QString)), -            this, SLOT(updateRightIcons())); +    connect(rApp->opensearchManager(), SIGNAL(openSearchEngineAdded(QString)), this, SLOT(updateRightIcons()));      // bookmark icon      connect(rApp->bookmarkManager(), SIGNAL(bookmarksUpdated()), this, SLOT(updateRightIcons())); diff --git a/src/urlbar/webshortcutwidget.cpp b/src/urlbar/webshortcutwidget.cpp index 409d0b32..c6dc3b79 100644 --- a/src/urlbar/webshortcutwidget.cpp +++ b/src/urlbar/webshortcutwidget.cpp @@ -4,6 +4,7 @@  *  * Copyright (C) 2009 by Fredy Yanardi <fyanardi@gmail.com>  * Copyright (C) 2010-2011 by  Lionel Chauvin <megabigbug@yahoo.fr> +* Copyright (C) 2012 by Andrea Diamantini <adjam7 at gmail dot com>  *  *  * This program is free software; you can redistribute it and/or @@ -27,7 +28,7 @@  // Self Includes  #include "webshortcutwidget.h" -#include "rekonq_defines.h" +#include "webshortcutwidget.moc"  // KDE Includes  #include <KGlobalSettings> @@ -113,6 +114,8 @@ void WebShortcutWidget::show(const KUrl &url, const QString &openSearchName, con  void WebShortcutWidget::accept()  {      emit webShortcutSet(m_url, m_nameLineEdit->text(), m_wsLineEdit->text()); + +    // close widget (and destroy it)      close();  } @@ -158,7 +161,3 @@ void WebShortcutWidget::shortcutsChanged(const QString& newShorthands)          }      }  } - -#include "webshortcutwidget.moc" - - diff --git a/src/urlbar/webshortcutwidget.h b/src/urlbar/webshortcutwidget.h index bc072f47..d1291714 100644 --- a/src/urlbar/webshortcutwidget.h +++ b/src/urlbar/webshortcutwidget.h @@ -4,6 +4,7 @@  *  * Copyright (C) 2009 by Fredy Yanardi <fyanardi@gmail.com>  * Copyright (C) 2010-2011 by  Lionel Chauvin <megabigbug@yahoo.fr> +* Copyright (C) 2012 by Andrea Diamantini <adjam7 at gmail dot com>  *  *  * This program is free software; you can redistribute it and/or @@ -28,15 +29,24 @@  #ifndef WEBSHORTCUTWIDGET_H  #define WEBSHORTCUTWIDGET_H -#include <QMenu> + +// Rekonq Includes +#include "rekonq_defines.h" + +// KDE Includes  #include <KUrl>  #include <KService> +// Qt Includes +#include <QMenu> + +// Forward Declarations  class QLabel;  class QLineEdit;  class QPushButton; -class WebShortcutWidget : public QMenu + +class REKONQ_TESTS_EXPORT WebShortcutWidget : public QMenu  {      Q_OBJECT  public: diff --git a/src/webtab.cpp b/src/webtab.cpp index 1519d833..e2ffe0d5 100644 --- a/src/webtab.cpp +++ b/src/webtab.cpp @@ -330,7 +330,7 @@ void WebTab::showSearchEngine(const QPoint &pos)          connect(widget, SIGNAL(webShortcutSet(KUrl,QString,QString)),                  rApp->opensearchManager(), SLOT(addOpenSearchEngine(KUrl,QString,QString))); -        connect(rApp->opensearchManager(), SIGNAL(openSearchEngineAdded(QString,QString,QString)), +        connect(rApp->opensearchManager(), SIGNAL(openSearchEngineAdded(QString)),                  this, SLOT(openSearchEngineAdded()));          widget->show(extractOpensearchUrl(e), title, pos); diff --git a/src/webtab.h b/src/webtab.h index e9805846..6d5a79b4 100644 --- a/src/webtab.h +++ b/src/webtab.h @@ -33,21 +33,21 @@  #include "rekonq_defines.h"  // Local Includes -#include "webpage.h"  #include "webview.h"  // KDE Includes  #include <KParts/Part>  // Qt Includes -#include <QtGui/QWidget> +#include <QWidget>  // Forward Declarations -class UrlBar; -class PreviewSelectorBar; -class WalletBar;  class NotificationBar; +class PreviewSelectorBar;  class QPoint; +class UrlBar; +class WalletBar; +class WebPage;  class REKONQ_TESTS_EXPORT WebTab : public QWidget @@ -102,7 +102,7 @@ private Q_SLOTS:      void showRSSInfo(const QPoint &pos);      void showSearchEngine(const QPoint &pos);      void openSearchEngineAdded(); - +          void showMessageBar();      void loadFinished();  | 
