diff options
| author | Andrea Diamantini <adjam7@gmail.com> | 2010-04-19 16:30:48 +0200 | 
|---|---|---|
| committer | Andrea Diamantini <adjam7@gmail.com> | 2010-04-19 16:30:48 +0200 | 
| commit | 380b6fec3b11a562888f335cca2bcb412a120a22 (patch) | |
| tree | f5ad26a416b9a82270e836be3ee230b51302aa0c /src/urlbar | |
| parent | Fix urlbar string as suggested by Johannes Zellner (diff) | |
| parent | Suggestions activation on demand (diff) | |
| download | rekonq-380b6fec3b11a562888f335cca2bcb412a120a22.tar.xz | |
Merge branch 'DefaultEngine'
Diffstat (limited to 'src/urlbar')
| -rw-r--r-- | src/urlbar/listitem.cpp | 45 | ||||
| -rw-r--r-- | src/urlbar/listitem.h | 1 | ||||
| -rw-r--r-- | src/urlbar/urlbar.cpp | 37 | ||||
| -rw-r--r-- | src/urlbar/urlbar.h | 7 | 
4 files changed, 71 insertions, 19 deletions
| diff --git a/src/urlbar/listitem.cpp b/src/urlbar/listitem.cpp index 4b9831b2..d35da547 100644 --- a/src/urlbar/listitem.cpp +++ b/src/urlbar/listitem.cpp @@ -28,6 +28,9 @@  #include "listitem.h"     #include "listitem.moc"    +// Auto Includes +#include "rekonq.h" +  // Local Includes  #include "urlresolver.h"  #include "application.h" @@ -52,6 +55,9 @@  #include <QWebSettings>  #include <QFile> +// Defines +#define QL1S(x)  QLatin1String(x) +  ListItem::ListItem(const UrlSearchItem &item, QWidget *parent)      : QWidget(parent) @@ -260,7 +266,8 @@ SearchListItem::SearchListItem(const UrlSearchItem &item, const QString &text, Q      : ListItem(item, parent)      , m_text(text)  { -    if (m_currentEngine == "") m_currentEngine = EngineBar::defaultEngine(); +    if (m_currentEngine == "")  +        m_currentEngine = EngineBar::defaultEngine();      m_iconLabel = new ItemIcon("edit-find", this); //TODO: get the default engine icon      m_titleLabel = new ItemText(searchItemTitle(m_currentEngine, text)); @@ -315,10 +322,10 @@ EngineBar::EngineBar(const QString &text, const QString &selectedEngine, QWidget      QStringList favoriteEngines;      favoriteEngines << "wikipedia" << "google"; //defaults      favoriteEngines = cg.readEntry("FavoriteSearchEngines", favoriteEngines); -    QString defaultEngine = cg.readEntry("DefaultSearchEngine", "google"); -    KService::Ptr service; -    service = KService::serviceByDesktopPath(QString("searchproviders/%1.desktop").arg(defaultEngine)); +    // default engine +    QString defaultEngine = EngineBar::defaultEngine(); +    KService::Ptr service = KService::serviceByDesktopPath(QString("searchproviders/%1.desktop").arg(defaultEngine));      m_engineGroup->addAction(newEngineAction(service, selectedEngine));      // set url; @@ -344,11 +351,31 @@ EngineBar::EngineBar(const QString &text, const QString &selectedEngine, QWidget  QString EngineBar::defaultEngine()  {     -    KConfig config("kuriikwsfilterrc"); //Share with konqueror -    KConfigGroup cg = config.group("General"); -    QString d = cg.readEntry("DefaultSearchEngine", "google"); -    KService::Ptr service = KService::serviceByDesktopPath(QString("searchproviders/%1.desktop").arg(d)); -    return service->name(); +    int n = ReKonfig::searchEngine(); +    QString engine; +    switch(n) +    { +    case 0: +        engine = QL1S("google"); +        break; +    case 1: +        engine = QL1S("altavista"); +        break; +    case 2: +        engine = QL1S("lycos"); +        break; +    case 3: +        engine = QL1S("wikipedia"); +        break; +    case 4: +        engine = QL1S("wolfram"); +        break; +    default: +        engine = QL1S("google"); +        break; +    } + +    return engine;  } diff --git a/src/urlbar/listitem.h b/src/urlbar/listitem.h index 8a6f520f..a9dc8213 100644 --- a/src/urlbar/listitem.h +++ b/src/urlbar/listitem.h @@ -127,6 +127,7 @@ class EngineBar : public KToolBar  public:      EngineBar(const QString &text, const QString &selectedEngine, QWidget *parent = 0); +          static QString defaultEngine();      void selectNextEngine();      KUrl url() { return m_url; }; diff --git a/src/urlbar/urlbar.cpp b/src/urlbar/urlbar.cpp index 8c6c0749..6d1b19c9 100644 --- a/src/urlbar/urlbar.cpp +++ b/src/urlbar/urlbar.cpp @@ -60,7 +60,6 @@  UrlBar::UrlBar(QWidget *parent)      : LineEdit(parent) -    , _box(new CompletionWidget(this))      , _tab(0)      , _privateMode(false)  { @@ -69,19 +68,18 @@ UrlBar::UrlBar(QWidget *parent)      connect(_tab->view(), SIGNAL(urlChanged(const QUrl &)), this, SLOT(setQUrl(const QUrl &)));      connect(_tab->view(), SIGNAL(loadFinished(bool)), this, SLOT(loadFinished()));      connect(_tab->view(), SIGNAL(loadStarted()), this, SLOT(clearRightIcons())); -         -    // suggestions -    installEventFilter(_box); -    connect(_box, SIGNAL(chosenUrl(const KUrl &, Rekonq::OpenType)), this, SLOT(activated(const KUrl &, Rekonq::OpenType)));      // load typed urls      connect(this, SIGNAL(returnPressed(const QString &)), this, SLOT(loadTyped(const QString &))); + +    activateSuggestions(true);  }  UrlBar::~UrlBar()  { -    delete _box; +    activateSuggestions(false); +    _box.clear();  } @@ -105,7 +103,7 @@ void UrlBar::setQUrl(const QUrl& url)  void UrlBar::activated(const KUrl& url, Rekonq::OpenType type)  { -    disconnect(this, SIGNAL(textChanged(const QString &)), _box, SLOT(suggestUrls(const QString &))); +    activateSuggestions(false);      clearFocus();      setUrl(url); @@ -189,8 +187,7 @@ void UrlBar::keyPressEvent(QKeyEvent *event)  void UrlBar::focusInEvent(QFocusEvent *event)  { -    // activate suggestions on edit text -    connect(this, SIGNAL(textChanged(const QString &)), _box, SLOT(suggestUrls(const QString &))); +    activateSuggestions(true);      LineEdit::focusInEvent(event);  } @@ -249,3 +246,25 @@ void UrlBar::loadTyped(const QString &text)  {      activated(KUrl(text));  } + + +void UrlBar::activateSuggestions(bool b) +{ +    if(b) +    { +        if(_box.isNull()) +        { +            _box = new CompletionWidget(this); +            installEventFilter(_box.data()); +            connect(_box.data(), SIGNAL(chosenUrl(const KUrl &, Rekonq::OpenType)), this, SLOT(activated(const KUrl &, Rekonq::OpenType))); + +            // activate suggestions on edit text +            connect(this, SIGNAL(textChanged(const QString &)), _box.data(), SLOT(suggestUrls(const QString &))); +        } +    } +    else +    { +        removeEventFilter(_box.data()); +        _box.data()->deleteLater(); +    } +} diff --git a/src/urlbar/urlbar.h b/src/urlbar/urlbar.h index 3ecd914e..9adc35a3 100644 --- a/src/urlbar/urlbar.h +++ b/src/urlbar/urlbar.h @@ -38,6 +38,9 @@  // KDE Includes  #include <KUrl> +// Qt Includes +#include <QWeakPointer> +  // Forward Declarations  class QLinearGradient;  class QWidget; @@ -69,7 +72,9 @@ protected:      virtual void dropEvent(QDropEvent *event);  private: -    CompletionWidget *_box; +    void activateSuggestions(bool); +     +    QWeakPointer<CompletionWidget> _box;      WebTab *_tab;      bool _privateMode;  }; | 
