diff options
| author | Andrea Diamantini <adjam7@gmail.com> | 2010-03-30 11:26:07 +0200 | 
|---|---|---|
| committer | Andrea Diamantini <adjam7@gmail.com> | 2010-03-30 11:26:07 +0200 | 
| commit | 80b37fa28d6c4e148ac0c69e91e07c1679866c54 (patch) | |
| tree | 53f3ba9d14e2da053fd01c2dfa4dd7fc54aa5c31 | |
| parent | fixing crash on manual rules saving (diff) | |
| download | rekonq-80b37fa28d6c4e148ac0c69e91e07c1679866c54.tar.xz | |
Cleaning urlbar API and improving animation
WARNING:
This is the best animation I could provide with the KComboBox class.
In the KLineEdit derived it works perfectly. In the Combos there are some
shadows on top :(
Squashed commit of the following:
commit 01e72a1996161028f8dbdc4e355daf00f954eace
commit 8bc032d98a4987d3b01566ac520f5e8a1a095dd0
commit bc5cfd9f7d1b34f5af06dd7af6de8d3b2edb277b
commit 73b4deac84d91fece407b9c700dcc61e36a34327
commit c55b753913b2619607c6aa11cabbf77ca3c84e3e
commit b901fbe71b7539f65260c4fa9bbfb22f4ea997b9
commit 1de363d9614c1309ac1ac4a8eea7e70be7f2f3ed
commit 76d6373f8b6c41f5c27b8404db2074f9bfc309c9
commit d741aa7109db016abc292d49fb45d15bb09e6c01
| -rw-r--r-- | src/mainview.cpp | 28 | ||||
| -rw-r--r-- | src/mainview.h | 2 | ||||
| -rw-r--r-- | src/mainwindow.cpp | 8 | ||||
| -rw-r--r-- | src/urlbar/lineedit.cpp | 2 | ||||
| -rw-r--r-- | src/urlbar/urlbar.cpp | 109 | ||||
| -rw-r--r-- | src/urlbar/urlbar.h | 17 | 
6 files changed, 64 insertions, 102 deletions
| diff --git a/src/mainview.cpp b/src/mainview.cpp index 6643becb..a00325fb 100644 --- a/src/mainview.cpp +++ b/src/mainview.cpp @@ -275,41 +275,31 @@ void MainView::currentChanged(int index)      m_currentTabIndex = index;      if (oldTab) -    {         -        // disconnecting webview from urlbar -        disconnect(oldTab->view(), SIGNAL(loadProgress(int)), urlBar(), SLOT(updateProgress(int))); -        disconnect(oldTab->view(), SIGNAL(loadFinished(bool)), urlBar(), SLOT(loadFinished(bool))); -        disconnect(oldTab->view(), SIGNAL(urlChanged(const QUrl &)), urlBar(), SLOT(setUrl(const QUrl &))); -     +    {                     // disconnecting webpage from mainview          disconnect(oldTab->page(), SIGNAL(statusBarMessage(const QString&)),                     this, SIGNAL(showStatusBarMessage(const QString&)));          disconnect(oldTab->page(), SIGNAL(linkHovered(const QString&, const QString&, const QString&)),                     this, SIGNAL(linkHovered(const QString&)));      } - -    // connecting webview with urlbar -    connect(tab->view(), SIGNAL(loadProgress(int)), urlBar(), SLOT(updateProgress(int))); -    connect(tab->view(), SIGNAL(loadFinished(bool)), urlBar(), SLOT(loadFinished(bool))); -    connect(tab->view(), SIGNAL(urlChanged(const QUrl &)), urlBar(), SLOT(setUrl(const QUrl &)));      connect(tab->page(), SIGNAL(statusBarMessage(const QString&)),               this, SIGNAL(showStatusBarMessage(const QString&)));      connect(tab->page(), SIGNAL(linkHovered(const QString&, const QString&, const QString&)),               this, SIGNAL(linkHovered(const QString&))); -    emit setCurrentTitle(tab->view()->title()); -    urlBar()->setUrl(tab->view()->url()); -    urlBar()->setProgress(tab->progress()); - +    emit currentTitle(tab->view()->title()); +    urlBar()->setCurrentTab(tab); +          // clean up "status bar"      emit showStatusBarMessage( QString() );      // notify UI to eventually switch stop/reload button -    if(urlBar()->isLoading()) -        emit browserTabLoading(true); -    else +    int progr = tab->progress(); +    if(progr == 0)          emit browserTabLoading(false); +    else +        emit browserTabLoading(true);      // update zoom slider      if(!Application::instance()->mainWindowList().isEmpty()) @@ -613,7 +603,7 @@ void MainView::webViewTitleChanged(const QString &title)      }      if (currentIndex() == index)      { -        emit setCurrentTitle(tabTitle); +        emit currentTitle(tabTitle);      }      Application::historyManager()->updateHistoryEntry(view->url(), tabTitle);  } diff --git a/src/mainview.h b/src/mainview.h index 061ad1aa..fc10c2d9 100644 --- a/src/mainview.h +++ b/src/mainview.h @@ -105,7 +105,7 @@ signals:      void lastTabClosed();      // current tab signals -    void setCurrentTitle(const QString &url); +    void currentTitle(const QString &url);      void showStatusBarMessage(const QString &message, Rekonq::Notify status = Rekonq::Info);      void linkHovered(const QString &link);      void browserTabLoading(bool); diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 6efd58ed..6701ea2e 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -215,7 +215,7 @@ void MainWindow::postLaunch()      connect(m_view, SIGNAL(linkHovered(const QString&)), this, SLOT(notifyMessage(const QString&)));      // --------- connect signals and slots -    connect(m_view, SIGNAL(setCurrentTitle(const QString &)), this, SLOT(updateWindowTitle(const QString &))); +    connect(m_view, SIGNAL(currentTitle(const QString &)), this, SLOT(updateWindowTitle(const QString &)));      connect(m_view, SIGNAL(printRequested(QWebFrame *)), this, SLOT(printRequested(QWebFrame *)));      // (shift +) ctrl + tab switching @@ -751,7 +751,7 @@ void MainWindow::privateBrowsing(bool enable)          if (button == KMessageBox::Continue)          {              settings->setAttribute(QWebSettings::PrivateBrowsingEnabled, true); -            m_view->urlBar()->setBackgroundColor(Qt::lightGray); // palette().color(QPalette::Active, QPalette::Background)); +            m_view->urlBar()->setPrivateMode(true);          }          else          { @@ -761,8 +761,8 @@ void MainWindow::privateBrowsing(bool enable)      else      {          settings->setAttribute(QWebSettings::PrivateBrowsingEnabled, false); -        m_view->urlBar()->setBackgroundColor(palette().color(QPalette::Active, QPalette::Base)); - +        m_view->urlBar()->setPrivateMode(false); +                  m_lastSearch.clear();          m_view->clear();          m_view->reloadAllTabs(); diff --git a/src/urlbar/lineedit.cpp b/src/urlbar/lineedit.cpp index f3c93e8e..ac92b858 100644 --- a/src/urlbar/lineedit.cpp +++ b/src/urlbar/lineedit.cpp @@ -42,7 +42,7 @@ LineEdit::LineEdit(QWidget* parent)      setMinimumWidth(200);      setFocusPolicy(Qt::WheelFocus);      setHandleSignals(true); -    setClearButtonShown(true); +    setClearButtonShown(false);  } diff --git a/src/urlbar/urlbar.cpp b/src/urlbar/urlbar.cpp index 57108d29..a04d6534 100644 --- a/src/urlbar/urlbar.cpp +++ b/src/urlbar/urlbar.cpp @@ -50,14 +50,13 @@  #include <QTimer>  #include <QVBoxLayout> -QColor UrlBar::s_defaultBaseColor; -  UrlBar::UrlBar(QWidget *parent)      : KComboBox(true, parent)      , m_lineEdit(new LineEdit) -    , m_progress(0)      , m_box(new CompletionWidget(this)) +    , _tab(0) +    , _privateMode(false)  {      //cosmetic      setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); @@ -72,11 +71,6 @@ UrlBar::UrlBar(QWidget *parent)      p.setColor(QPalette::Base, Qt::transparent);      m_lineEdit->setPalette(p); -    if (!s_defaultBaseColor.isValid()) -    { -        s_defaultBaseColor = palette().color(QPalette::Base); -    } -      setLineEdit(m_lineEdit);      // clear the URL bar @@ -123,13 +117,6 @@ void UrlBar::setUrl(const QUrl& url)  } -void UrlBar::setProgress(int progress) -{ -    m_progress = progress; -    update(); -} - -  void UrlBar::updateUrl()  {      // Don't change my typed url... @@ -184,26 +171,21 @@ void UrlBar::activated(const QString& urlString, Rekonq::OpenType type)  } -void UrlBar::loadFinished(bool) -{ -    // reset progress bar after small delay -    m_progress = 0; -    QTimer::singleShot(200, this, SLOT(update())); -} - - -void UrlBar::updateProgress(int progress) -{ -    m_progress = progress; -    update(); -} - -  void UrlBar::paintEvent(QPaintEvent *event)  { +    QColor backgroundColor; +    if( _privateMode ) +    { +        backgroundColor = QColor(192, 192, 192);  // gray +    } +    else +    { +        backgroundColor = Application::palette().color(QPalette::Base); +    } +          // set background color of UrlBar      QPalette p = palette(); -    p.setColor(QPalette::Base, s_defaultBaseColor); +    p.setColor(QPalette::Base, backgroundColor);      setPalette(p);      KComboBox::paintEvent(event); @@ -221,11 +203,20 @@ void UrlBar::paintEvent(QPaintEvent *event)          {              loadingColor = QColor(116, 192, 250);          } -        painter.setBrush(generateGradient(loadingColor, height())); +        int progr = _tab->progress(); +         +        backgroundColor.setAlpha(0); +        backgroundColor.setAlpha(200); +        QLinearGradient gradient(0, 0, width(), height() ); +        gradient.setColorAt(0, loadingColor); +        gradient.setColorAt(((double)progr)/100, backgroundColor); +         +        painter.setBrush( gradient );          painter.setPen(Qt::transparent); +          QRect backgroundRect = m_lineEdit->frameGeometry(); -        int mid = backgroundRect.width() * m_progress / 100; +        int mid = backgroundRect.width() * progr / 100;          QRect progressRect(backgroundRect.x(), backgroundRect.y(), mid, backgroundRect.height());          painter.drawRect(progressRect);          painter.end(); @@ -239,41 +230,8 @@ QSize UrlBar::sizeHint() const  } -QLinearGradient UrlBar::generateGradient(const QColor &color, int height) -{ -    QColor base = s_defaultBaseColor; -    base.setAlpha(0); -    QColor barColor = color; -    barColor.setAlpha(200); -    QLinearGradient gradient(0, 0, 0, height); -    gradient.setColorAt(0, base); -    gradient.setColorAt(0.25, barColor.lighter(120)); -    gradient.setColorAt(0.5, barColor); -    gradient.setColorAt(0.75, barColor.lighter(120)); -    gradient.setColorAt(1, base); -    return gradient; -} - - -void UrlBar::setBackgroundColor(QColor c) -{ -    s_defaultBaseColor = c; -    update(); -} - - -bool UrlBar::isLoading() -{ -    if(m_progress == 0) -    { -        return false; -    } -    return true; -} -  void UrlBar::keyPressEvent(QKeyEvent *event)  { -      // this handles the Modifiers + Return key combinations      QString currentText = m_lineEdit->text().trimmed();      if ((event->key() == Qt::Key_Enter || event->key() == Qt::Key_Return) @@ -338,3 +296,22 @@ void UrlBar::focusInEvent(QFocusEvent *event)      KComboBox::focusInEvent(event);  } + + +void UrlBar::setCurrentTab(WebTab *tab) +{ +    if(_tab) +        disconnect(_tab->view(), SIGNAL(urlChanged(const QUrl &)), this, SLOT(setUrl(const QUrl &))); +    _tab = tab; +    connect(_tab->view(), SIGNAL(urlChanged(const QUrl &)), this, SLOT(setUrl(const QUrl &))); + +    // update it now (the first time) +    setUrl( _tab->url() ); +    update(); +} + + +void UrlBar::setPrivateMode(bool on) +{ +    _privateMode = on; +} diff --git a/src/urlbar/urlbar.h b/src/urlbar/urlbar.h index 552d1ee0..991b9038 100644 --- a/src/urlbar/urlbar.h +++ b/src/urlbar/urlbar.h @@ -34,6 +34,7 @@  // Local Includes  #include "lineedit.h"  #include "completionwidget.h" +#include "webtab.h"  // KDE Includes  #include <KUrl> @@ -59,18 +60,16 @@ public:      void selectAll() const;      KUrl url() const;      QSize sizeHint() const; -    void setBackgroundColor(QColor); -    bool isLoading(); -    void setProgress(int progress); +    void setCurrentTab(WebTab *); +    void setPrivateMode(bool on); +      public slots:      void setUrl(const QUrl &url); -    void updateProgress(int progress);      void updateUrl();  private slots:      void activated(const QString& url, Rekonq::OpenType = Rekonq::CurrentTab); -    void loadFinished(bool);      void suggestUrls(const QString &editedText);  protected: @@ -79,17 +78,13 @@ protected:      virtual void focusInEvent(QFocusEvent *event);  private: -    static QLinearGradient generateGradient(const QColor &color, int height); - -    static QColor s_defaultBaseColor; -      LineEdit *m_lineEdit;      KUrl m_currentUrl; -    int m_progress;      CompletionWidget *m_box; -    KUrl m_suggestedUrl; +    WebTab *_tab; +    bool _privateMode;  };  #endif | 
