diff options
| -rw-r--r-- | src/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | src/application.cpp | 2 | ||||
| -rw-r--r-- | src/data/CMakeLists.txt | 5 | ||||
| -rw-r--r-- | src/data/bot.gif | bin | 644 -> 0 bytes | |||
| -rw-r--r-- | src/data/closed.png | bin | 118 -> 0 bytes | |||
| -rw-r--r-- | src/data/kget-icon.png | bin | 0 -> 743 bytes | |||
| -rw-r--r-- | src/data/open.png | bin | 120 -> 0 bytes | |||
| -rw-r--r-- | src/data/rss-icon.png | bin | 0 -> 794 bytes | |||
| -rw-r--r-- | src/data/ssl-icon.png | bin | 0 -> 780 bytes | |||
| -rw-r--r-- | src/data/top.png | bin | 786 -> 0 bytes | |||
| -rw-r--r-- | src/data/webkit-icon.png | bin | 25694 -> 8121 bytes | |||
| -rw-r--r-- | src/mainview.cpp | 56 | ||||
| -rw-r--r-- | src/mainview.h | 7 | ||||
| -rw-r--r-- | src/mainwindow.cpp | 3 | ||||
| -rw-r--r-- | src/protocolhandler.cpp | 16 | ||||
| -rw-r--r-- | src/urlbar/iconbutton.cpp | 76 | ||||
| -rw-r--r-- | src/urlbar/iconbutton.h | 51 | ||||
| -rw-r--r-- | src/urlbar/lineedit.cpp | 97 | ||||
| -rw-r--r-- | src/urlbar/lineedit.h | 36 | ||||
| -rw-r--r-- | src/urlbar/urlbar.cpp | 104 | ||||
| -rw-r--r-- | src/urlbar/urlbar.h | 2 | ||||
| -rw-r--r-- | src/webpage.cpp | 3 | ||||
| -rw-r--r-- | src/webpage.h | 3 | ||||
| -rw-r--r-- | src/webtab.cpp | 34 | ||||
| -rw-r--r-- | src/webtab.h | 7 | 
25 files changed, 248 insertions, 255 deletions
| diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 73eda88c..102935a6 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -50,7 +50,6 @@ SET( rekonq_KDEINIT_SRCS      #----------------------------------------      urlbar/urlbar.cpp      urlbar/lineedit.cpp -    urlbar/iconbutton.cpp      urlbar/completionwidget.cpp      urlbar/urlresolver.cpp      urlbar/listitem.cpp diff --git a/src/application.cpp b/src/application.cpp index b8d6f52f..3405a1b2 100644 --- a/src/application.cpp +++ b/src/application.cpp @@ -398,5 +398,5 @@ void Application::loadResolvedUrl(ThreadWeaver::Job *job)  void Application::newWindow()  {      loadUrl( KUrl("about:home"), Rekonq::NewWindow ); -    mainWindow()->mainView()->urlBar()->setFocus(); +    mainWindow()->mainView()->urlBarWidget()->setFocus();  } diff --git a/src/data/CMakeLists.txt b/src/data/CMakeLists.txt index 0af92f5e..481f8cda 100644 --- a/src/data/CMakeLists.txt +++ b/src/data/CMakeLists.txt @@ -1,5 +1,8 @@  INSTALL(  -    FILES bg2.png bg.png bot.gif busywidget.gif closed.png loading.mng open.png tile.gif top.png webkit-icon.png category.png button.png +    FILES  +    bg2.png bg.png tile.gif category.png button.png +    busywidget.gif loading.mng   +    webkit-icon.png rss-icon.png kget-icon.png ssl-icon.png      DESTINATION ${DATA_INSTALL_DIR}/rekonq/pics  ) diff --git a/src/data/bot.gif b/src/data/bot.gifBinary files differ deleted file mode 100644 index 2f9abde4..00000000 --- a/src/data/bot.gif +++ /dev/null diff --git a/src/data/closed.png b/src/data/closed.pngBinary files differ deleted file mode 100644 index 2b1bf01e..00000000 --- a/src/data/closed.png +++ /dev/null diff --git a/src/data/kget-icon.png b/src/data/kget-icon.pngBinary files differ new file mode 100644 index 00000000..367d2bca --- /dev/null +++ b/src/data/kget-icon.png diff --git a/src/data/open.png b/src/data/open.pngBinary files differ deleted file mode 100644 index fee6f3fb..00000000 --- a/src/data/open.png +++ /dev/null diff --git a/src/data/rss-icon.png b/src/data/rss-icon.pngBinary files differ new file mode 100644 index 00000000..46fe641b --- /dev/null +++ b/src/data/rss-icon.png diff --git a/src/data/ssl-icon.png b/src/data/ssl-icon.pngBinary files differ new file mode 100644 index 00000000..2c71397b --- /dev/null +++ b/src/data/ssl-icon.png diff --git a/src/data/top.png b/src/data/top.pngBinary files differ deleted file mode 100644 index 9ebf0234..00000000 --- a/src/data/top.png +++ /dev/null diff --git a/src/data/webkit-icon.png b/src/data/webkit-icon.pngBinary files differ index b3ec677a..780b0b16 100644 --- a/src/data/webkit-icon.png +++ b/src/data/webkit-icon.png diff --git a/src/mainview.cpp b/src/mainview.cpp index b5829806..d5c552f2 100644 --- a/src/mainview.cpp +++ b/src/mainview.cpp @@ -64,7 +64,7 @@  MainView::MainView(MainWindow *parent)      : KTabWidget(parent) -    , m_urlBar(new UrlBar(this)) +    , _bars(new QStackedWidget(this))      , m_addTabButton(0)      , m_currentTabIndex(0)      , m_parentWindow(parent) @@ -92,6 +92,7 @@ MainView::MainView(MainWindow *parent)      connect(tabBar, SIGNAL(detachTab(int)),         this,   SLOT(detachTab(int))    );      connect(tabBar, SIGNAL(tabCloseRequested(int)), this,   SLOT(closeTab(int)) ); +    connect(tabBar, SIGNAL(tabMoved(int, int)),     this,   SLOT(movedTab(int, int)) );      // current page index changing      connect(this, SIGNAL(currentChanged(int)), this, SLOT(currentChanged(int))); @@ -119,8 +120,6 @@ void MainView::postLaunch()  void MainView::updateTabButtonPosition()  { -    kDebug() << "updating new tab button position.."; -          static bool ButtonInCorner = false;      int tabWidgetWidth = frameSize().width(); @@ -151,7 +150,6 @@ void MainView::updateTabButtonPosition()          // Y position is fixed          // Here I noticed with some emphiric valutations ( :D )          // that 2 look better than 0, just that.. -          m_addTabButton->move(newPosX, 2);      }  } @@ -170,9 +168,15 @@ TabBar *MainView::tabBar() const  } -UrlBar *MainView::urlBar() const  +UrlBar *MainView::urlBar() const +{ +    return qobject_cast<UrlBar *>(_bars->widget(m_currentTabIndex)); +} + + +QWidget *MainView::urlBarWidget() const   {  -    return m_urlBar;  +    return _bars;   } @@ -238,16 +242,6 @@ void MainView::webStop()  } -void MainView::clear() -{ -    // FIXME (the programmer, not the code) -    // What exactly do we need to clear here? -     m_urlBar->clear(); - -    m_recentlyClosedTabs.clear(); -} - -  // When index is -1 index chooses the current tab  void MainView::reloadTab(int index)  { @@ -289,7 +283,7 @@ void MainView::currentChanged(int index)              this, SIGNAL(linkHovered(const QString&)));      emit currentTitle(tab->view()->title()); -    urlBar()->setCurrentTab(tab); +    _bars->setCurrentIndex(index);      // clean up "status bar"      emit showStatusBarMessage( QString() ); @@ -326,7 +320,8 @@ WebTab *MainView::webTab(int index) const  WebTab *MainView::newWebTab(bool focused, bool nearParent)  {      WebTab* tab = new WebTab(this); - +    UrlBar *bar = new UrlBar(tab); +          // connecting webview with mainview      connect(tab->view(), SIGNAL(loadStarted()), this, SLOT(webViewLoadStarted()));      connect(tab->view(), SIGNAL(loadFinished(bool)), this, SLOT(webViewLoadFinished(bool))); @@ -339,10 +334,15 @@ WebTab *MainView::newWebTab(bool focused, bool nearParent)      connect(tab->view()->page(), SIGNAL(printRequested(QWebFrame *)), this, SIGNAL(printRequested(QWebFrame *)));      if (nearParent) +    {          insertTab(currentIndex() + 1, tab, i18n("(Untitled)")); +        _bars->insertWidget(currentIndex() + 1, bar); +    }      else +    {          addTab(tab, i18n("(Untitled)")); - +        _bars->addWidget(bar); +    }      updateTabBar();      if (focused) @@ -374,7 +374,7 @@ void MainView::newTab()      default:          break;      } -    urlBar()->setFocus(); +    urlBarWidget()->setFocus();  } @@ -452,8 +452,6 @@ void MainView::cloneTab(int index)  // When index is -1 index chooses the current tab  void MainView::closeTab(int index)  { -    urlBar()->clear(); -          // open default homePage if just one tab is opened      if (count() == 1)      { @@ -463,7 +461,7 @@ void MainView::closeTab(int index)          case 0: // new tab page          case 1: // blank page              w->load( KUrl("about:home") ); -            urlBar()->setFocus(); +            urlBarWidget()->setFocus();              break;          case 2: // homepage              w->load( KUrl(ReKonfig::homePage()) ); @@ -507,6 +505,10 @@ void MainView::closeTab(int index)      removeTab(index);      updateTabBar();        // UI operation: do it ASAP!!      tab->deleteLater();    // tab is scheduled for deletion. + +    QWidget *urlbar = _bars->widget(index); +    _bars->removeWidget(urlbar); +    urlbar->deleteLater();      emit tabsChanged();  } @@ -679,3 +681,11 @@ void MainView::detachTab(int index)      Application::instance()->loadUrl(url, Rekonq::NewWindow);  } + + +void MainView::movedTab(int from,int to) +{ +    QWidget *bar = _bars->widget(from); +    _bars->removeWidget(bar); +    _bars->insertWidget(to, bar); +} diff --git a/src/mainview.h b/src/mainview.h index fc10c2d9..272cf82e 100644 --- a/src/mainview.h +++ b/src/mainview.h @@ -44,6 +44,7 @@  // Qt Includes  #include <QtGui/QToolButton> +#include <QStackedWidget>  // Forward Declarations  class QUrl; @@ -69,6 +70,7 @@ public:      MainView(MainWindow *parent);      ~MainView(); +    QWidget *urlBarWidget() const;      UrlBar *urlBar() const;      WebTab *webTab(int index) const; @@ -85,7 +87,6 @@ public:      void setTabBarHidden(bool hide);      QToolButton *addTabButton() const; -    void clear();      /**       * This function creates a new empty tab @@ -146,7 +147,7 @@ private slots:      void windowCloseRequested();      void postLaunch(); - +    void movedTab(int,int);  protected:      virtual void resizeEvent(QResizeEvent *event); @@ -169,7 +170,7 @@ private:  // -------------------------------------------------------------------------- -    UrlBar *m_urlBar; +    QStackedWidget *_bars;      QString m_loadingGitPath; diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 13adab3d..c49f8e7c 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -177,7 +177,7 @@ void MainWindow::setupToolbars()      // location bar      KAction *urlBarAction = new KAction(this); -    urlBarAction->setDefaultWidget(m_view->urlBar()); +    urlBarAction->setDefaultWidget(m_view->urlBarWidget());      m_mainBar->addAction( urlBarAction );      m_mainBar->addAction( actionByName("bookmarksActionMenu") ); @@ -760,7 +760,6 @@ void MainWindow::privateBrowsing(bool enable)          m_view->urlBar()->setPrivateMode(false);          m_lastSearch.clear(); -        m_view->clear();          m_view->reloadAllTabs();      }  } diff --git a/src/protocolhandler.cpp b/src/protocolhandler.cpp index f6867e81..1458bdf5 100644 --- a/src/protocolhandler.cpp +++ b/src/protocolhandler.cpp @@ -85,16 +85,14 @@ bool ProtocolHandler::preHandling(const QNetworkRequest &request, QWebFrame *fra      _url = request.url();      _frame = frame; -    kDebug() << "URL PROTOCOL: " << _url; -     -    // relative urls -    if(_url.isRelative()) -        return false; -          // "http(s)" (fast) handling      if( _url.protocol() == QL1S("http") || _url.protocol() == QL1S("https") )          return false; -     + +    // relative urls +    if(_url.isRelative()) +        return false; +              // javascript handling      if( _url.protocol() == QL1S("javascript") )      { @@ -148,7 +146,9 @@ bool ProtocolHandler::preHandling(const QNetworkRequest &request, QWebFrame *fra                  break;              }          } -         +     +        Application::instance()->mainWindow()->mainView()->urlBar()->clearRightIcons(); +          NewTabPage p(frame);          p.generate(_url);          return true; diff --git a/src/urlbar/iconbutton.cpp b/src/urlbar/iconbutton.cpp deleted file mode 100644 index 60008993..00000000 --- a/src/urlbar/iconbutton.cpp +++ /dev/null @@ -1,76 +0,0 @@ -/* ============================================================ -* -* This file is a part of the rekonq project -* -* Copyright (C) 2010 by Andrea Diamantini <adjam7 at gmail dot com> -* -* -* This program is free software; you can redistribute it and/or -* modify it under the terms of the GNU General Public License as -* published by the Free Software Foundation; either version 2 of -* the License or (at your option) version 3 or any later version -* accepted by the membership of KDE e.V. (or its successor approved -* by the membership of KDE e.V.), which shall act as a proxy  -* defined in Section 14 of version 3 of the license. -*  -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program.  If not, see <http://www.gnu.org/licenses/>. -* -* ============================================================ */ - - -// Self Includes -#include "iconbutton.h" -#include "iconbutton.moc" - -// Local Includes -#include "application.h" - -// KDE Includes -#include <KDebug> - - -IconButton::IconButton(QWidget *parent) -    : QToolButton(parent) -{ -    QPalette p = palette(); -    p.setColor( QPalette::Button, Qt::transparent ); -    setPalette(p); - -    setCursor(Qt::ArrowCursor); -    setStyleSheet("IconButton { border: none; padding: 0px}"); -} - - -void IconButton::setIconUrl(const KUrl &url, bool trusted) -{ -    setToolButtonStyle(Qt::ToolButtonTextBesideIcon); -    setIcon( Application::icon(url) ); -    setText( url.host() ); -     -    if(trusted) -    { -        setStyleSheet("IconButton { background-color:#0F0; padding: 2px }"); -    } -    else -    { -        setStyleSheet("IconButton { background-color:#F00; padding: 2px}"); -    } -     -    adjustSize(); -} - - -void IconButton::updateIcon(KIcon icon) -{ -    setToolButtonStyle(Qt::ToolButtonIconOnly); -    setIcon( icon ); - -    setStyleSheet("IconButton { background-color:transparent; border: none; padding: 0px}"); -    adjustSize(); -} diff --git a/src/urlbar/iconbutton.h b/src/urlbar/iconbutton.h deleted file mode 100644 index b66e212b..00000000 --- a/src/urlbar/iconbutton.h +++ /dev/null @@ -1,51 +0,0 @@ -/* ============================================================ -* -* This file is a part of the rekonq project -* -* Copyright (C) 2010 by Andrea Diamantini <adjam7 at gmail dot com> -* -* -* This program is free software; you can redistribute it and/or -* modify it under the terms of the GNU General Public License as -* published by the Free Software Foundation; either version 2 of -* the License or (at your option) version 3 or any later version -* accepted by the membership of KDE e.V. (or its successor approved -* by the membership of KDE e.V.), which shall act as a proxy  -* defined in Section 14 of version 3 of the license. -*  -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program.  If not, see <http://www.gnu.org/licenses/>. -* -* ============================================================ */ - - - -#ifndef ICON_BUTTON_H -#define ICON_BUTTON_H - - -// KDE Includes -#include <KUrl> -#include <KIcon> - -// Qt Includes -#include <QToolButton> - - -class IconButton : public QToolButton -{ -    Q_OBJECT - -public: -    IconButton(QWidget *parent = 0); - -    void setIconUrl(const KUrl &url, bool trusted); -    void updateIcon(KIcon icon); -}; - -#endif // ICON_BUTTON_H diff --git a/src/urlbar/lineedit.cpp b/src/urlbar/lineedit.cpp index f7af1f61..8e689a46 100644 --- a/src/urlbar/lineedit.cpp +++ b/src/urlbar/lineedit.cpp @@ -33,6 +33,8 @@  // KDE Includes  #include <klocalizedstring.h>  #include <KDebug> +#include <KStandardDirs> +#include <KIconLoader>  // Qt Includes  #include <QtGui/QContextMenuEvent> @@ -42,6 +44,18 @@  #include <QPainter> +IconButton::IconButton(QWidget *parent) +    : QToolButton(parent) +{ +    setToolButtonStyle(Qt::ToolButtonIconOnly); +    setStyleSheet("IconButton { background-color:transparent; border: none; padding: 0px}"); +    setCursor(Qt::ArrowCursor); +} + + +// ----------------------------------------------------------------------------------------------------------- + +  LineEdit::LineEdit(QWidget* parent)      : KLineEdit(parent)      , _icon( new IconButton(this) ) @@ -49,8 +63,11 @@ LineEdit::LineEdit(QWidget* parent)      // cosmetic      setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);      setMinimumWidth(200); -    setMinimumHeight(26); -    updateStyles(); +    setMinimumHeight(20); + +    // initial style +    _icon->move(4,6); +    setStyleSheet( QString("LineEdit { padding: 0 0 0 %1px;} ").arg(_icon->sizeHint().width()) );      // doesn't show the clear button      setClearButtonShown(false); @@ -75,22 +92,6 @@ LineEdit::~LineEdit()  } -void LineEdit::updateStyles() -{ -    adjustSize(); -    _icon->adjustSize(); -    if(_icon->toolButtonStyle() == Qt::ToolButtonIconOnly) -        _icon->move( 4, 3); -    else -        _icon->move( 2, 1); -     -    int frameWidth = style()->pixelMetric(QStyle::PM_DefaultFrameWidth); -    setStyleSheet(QString("LineEdit { padding-left: %1px; } ").arg(_icon->sizeHint().width() + frameWidth + 1)); - -    update(); -} - -  void LineEdit::keyPressEvent(QKeyEvent *event)  {      if (event->key() == Qt::Key_Escape) @@ -117,18 +118,70 @@ IconButton *LineEdit::iconButton() const  void LineEdit::paintEvent(QPaintEvent *event)  { +    // you need this before our code to draw inside the line edit..      KLineEdit::paintEvent(event); -    if (text().isEmpty() && !hasFocus())  -    { +    if (text().isEmpty())  +    {                 QStyleOptionFrame option;          initStyleOption(&option);          QRect textRect = style()->subElementRect(QStyle::SE_LineEditContents, &option, this);          QPainter painter(this);          painter.setPen(Qt::gray);          painter.drawText( textRect,  -                          Qt::AlignLeft | Qt::AlignVCenter,  -                          i18n("Search Bookmarks, History, Google.. and the Kitchen Sink!") +                          Qt::AlignCenter,  +                          i18n("Search Bookmarks, History, Google.. just start typing here!")                          );      }  } + + +IconButton *LineEdit::addRightIcon(LineEdit::icon ic) +{ +    IconButton *rightIcon = new IconButton(this); +     +    switch(ic) +    { +    case LineEdit::KGet: +        rightIcon->setIcon( QIcon(KStandardDirs::locate("data", "rekonq/pics/kget-icon.png")) ); +        break; +    case LineEdit::RSS: +        rightIcon->setIcon( QIcon(KStandardDirs::locate("data", "rekonq/pics/rss-icon.png")) ); +        break; +    case LineEdit::SSL: +        rightIcon->setIcon( QIcon(KStandardDirs::locate("data", "rekonq/pics/ssl-icon.png")) ); +        break; +    default: +        kDebug() << "ERROR.. default non extant case!!"; +        break; +    } +     +    _rightIconsList << rightIcon; +    int iconsCount = _rightIconsList.count(); +    rightIcon->move( width() - 23*iconsCount, 6); +    rightIcon->show(); +     +    return rightIcon; +} + + +void LineEdit::clearRightIcons() +{ +    qDeleteAll(_rightIconsList); +    _rightIconsList.clear(); +} + + +void LineEdit::resizeEvent(QResizeEvent *event) +{ +    KLineEdit::resizeEvent(event); +     +    int iconsCount = _rightIconsList.count(); +    int w = width(); +     +    for(int i = 0; i < iconsCount; ++i) +    { +        IconButton *bt = _rightIconsList.at(i); +        bt->move( w - 23*(i+1), 6); +    } +} diff --git a/src/urlbar/lineedit.h b/src/urlbar/lineedit.h index 96f25918..5b8ff2a3 100644 --- a/src/urlbar/lineedit.h +++ b/src/urlbar/lineedit.h @@ -30,13 +30,11 @@  #define LINEEDIT_H -// Local Includes -#include "iconbutton.h" -  // KDE Includes  #include <KLineEdit>  #include <KIcon> +// Qt Includes  #include <QToolButton>  // Forward Declarations @@ -46,25 +44,53 @@ class QKeyEvent;  class QStyleOptionFrameV2; +class IconButton : public QToolButton +{ +    Q_OBJECT + +public: +    IconButton(QWidget *parent = 0); +}; + + +// ------------------------------------------------------------------------------------ + + +// Definitions +typedef QList<IconButton *> IconButtonPointerList; + +  class LineEdit : public KLineEdit  {      Q_OBJECT  public: +     +    enum icon +    {  +        KGet    = 0x00000001, +        RSS     = 0x00000010, +        SSL     = 0x00000100, +    };    +      explicit LineEdit(QWidget *parent = 0);      virtual ~LineEdit();      IconButton *iconButton() const; -    void updateStyles(); +    void clearRightIcons();  protected:      virtual void keyPressEvent(QKeyEvent *);      virtual void mouseDoubleClickEvent(QMouseEvent *);      virtual void paintEvent(QPaintEvent *); +    virtual void resizeEvent(QResizeEvent *); +    IconButton *addRightIcon(LineEdit::icon ); +  private:     -    IconButton *_icon;     +    IconButton *_icon; +    IconButtonPointerList _rightIconsList;  };  #endif // LINEEDIT_H diff --git a/src/urlbar/urlbar.cpp b/src/urlbar/urlbar.cpp index 35934bf4..c5201a1c 100644 --- a/src/urlbar/urlbar.cpp +++ b/src/urlbar/urlbar.cpp @@ -31,6 +31,9 @@  #include "urlbar.h"  #include "urlbar.moc" +// Auto Includes +#include "rekonq.h" +  // Local Includes  #include "application.h"  #include "lineedit.h" @@ -60,6 +63,11 @@ UrlBar::UrlBar(QWidget *parent)      , _tab(0)      , _privateMode(false)  { +    _tab = qobject_cast<WebTab *>(parent); +     +    connect(_tab->view(), SIGNAL(urlChanged(const QUrl &)), this, SLOT(setQUrl(const QUrl &))); +    connect(_tab->view(), SIGNAL(loadFinished(bool)), this, SLOT(loadFinished())); +          // load urls on activated urlbar signal      connect(this, SIGNAL(returnPressed(const QString&)), this, SLOT(activated(const QString&))); @@ -77,19 +85,21 @@ UrlBar::~UrlBar()  void UrlBar::setQUrl(const QUrl& url)  { +    // find a better place? Ideally a loadStarted connected slot.. +    clearRightIcons(); +          if(url.scheme() == QL1S("about") )      { -        iconButton()->updateIcon( KIcon("arrow-right") ); +        iconButton()->setIcon( KIcon("arrow-right") ); +        clear();          setFocus();      }      else      {          LineEdit::setUrl(url);          setCursorPosition(0); -        iconButton()->updateIcon( Application::icon(url) ); +        iconButton()->setIcon( Application::icon(url) );      } - -    updateStyles();  } @@ -111,7 +121,7 @@ void UrlBar::paintEvent(QPaintEvent *event)      QColor backgroundColor;      if( _privateMode )      { -        backgroundColor = QColor(192, 192, 192);  // gray +        backgroundColor = QColor(220, 220, 220);  // light gray      }      else      { @@ -124,21 +134,16 @@ void UrlBar::paintEvent(QPaintEvent *event)      int progr = _tab->progress();      if (progr == 0)       { +        if( _tab->url().scheme() == QL1S("https") ) +        { +            backgroundColor = QColor(255, 255, 171);  // light yellow +        }          p.setBrush(QPalette::Base, backgroundColor);      }       else       { -        QColor loadingColor; -        if ( _tab->url().scheme() == QLatin1String("https")) -        { -            loadingColor = QColor(248, 248, 100); -        } -        else -        { -            loadingColor = QColor(116, 192, 250); -        } -     -     +        QColor loadingColor = QColor(116, 192, 250); +                  QLinearGradient gradient(0, 0, width(), 0);          gradient.setColorAt(0, loadingColor);          gradient.setColorAt(((double)progr)/100, backgroundColor); @@ -225,54 +230,47 @@ void UrlBar::focusInEvent(QFocusEvent *event)  } -void UrlBar::setCurrentTab(WebTab *tab) +void UrlBar::setPrivateMode(bool on)  { -    if(_tab) -    { -        disconnect(_tab->view(), SIGNAL(urlChanged(const QUrl &)), this, SLOT(setQUrl(const QUrl &))); -        disconnect(_tab->view(), SIGNAL(loadFinished(bool)), this, SLOT(loadFinished())); -        disconnect(_tab->page(), SIGNAL(validSSLInfo(bool)), this, SLOT(setTrustedHost(bool))); -        disconnect(iconButton(), SIGNAL(clicked()), _tab->page(), SLOT(showSSLInfo())); -    } -    _tab = tab; -    connect(_tab->view(), SIGNAL(urlChanged(const QUrl &)), this, SLOT(setQUrl(const QUrl &))); -    connect(_tab->view(), SIGNAL(loadFinished(bool)), this, SLOT(loadFinished())); -    connect(_tab->page(), SIGNAL(validSSLInfo(bool)), this, SLOT(setTrustedHost(bool))); -    connect(iconButton(), SIGNAL(clicked()), _tab->page(), SLOT(showSSLInfo())); -             -    // update it now (the first time) -    updateStyles(); -    _tab->view()->setFocus(); -    setQUrl( _tab->url() ); +    _privateMode = on;  } -void UrlBar::setPrivateMode(bool on) +void UrlBar::dropEvent(QDropEvent *event)  { -    _privateMode = on; +    LineEdit::dropEvent(event); +    activated(text());  }  void UrlBar::loadFinished()  { -    // show RSS +    if(_tab->progress() != 0) +        return; +     +    if(_tab->url().scheme() == QL1S("about") ) +        return;      // show KGet downloads?? +    if(ReKonfig::kgetList()) +    { +        IconButton *bt = addRightIcon(LineEdit::KGet); +        connect(bt, SIGNAL(clicked()), _tab->page(), SLOT(downloadAllContentsWithKGet())); +    } -    // last, but not least -    updateStyles(); -} - - -void UrlBar::setTrustedHost(bool on) -{ -    kDebug() << "SET TRUSTED HOST.."; -    iconButton()->setIconUrl( _tab->url() , on ); -} - - -void UrlBar::dropEvent(QDropEvent *event) -{ -    LineEdit::dropEvent(event); -    activated(text()); +    // show RSS +    if(_tab->hasRSSInfo()) +    { +        IconButton *bt = addRightIcon(LineEdit::RSS); +        connect(bt, SIGNAL(clicked()), _tab, SLOT(showRSSInfo())); +    } +     +    // show SSL +    if(_tab->url().scheme() == QL1S("https") ) +    { +        IconButton *bt = addRightIcon(LineEdit::SSL); +        connect(bt, SIGNAL(clicked()), _tab->page(), SLOT(showSSLInfo())); +    } +     +    update();  } diff --git a/src/urlbar/urlbar.h b/src/urlbar/urlbar.h index 3b28fb3a..2536c27b 100644 --- a/src/urlbar/urlbar.h +++ b/src/urlbar/urlbar.h @@ -57,7 +57,6 @@ public:      UrlBar(QWidget *parent = 0);      ~UrlBar(); -    void setCurrentTab(WebTab *);      void setPrivateMode(bool on);  private slots: @@ -66,7 +65,6 @@ private slots:      void setQUrl(const QUrl &url);      void loadFinished(); -    void setTrustedHost(bool on);  protected:      virtual void paintEvent(QPaintEvent *event); diff --git a/src/webpage.cpp b/src/webpage.cpp index 8dc0ef96..628b0136 100644 --- a/src/webpage.cpp +++ b/src/webpage.cpp @@ -304,9 +304,6 @@ void WebPage::loadFinished(bool)      {          wallet()->fillFormData(mainFrame());      } - -    if( mainFrame()->url().scheme() == QL1S("https") ) -        emit validSSLInfo( _sslInfo.isValid() );  } diff --git a/src/webpage.h b/src/webpage.h index 479d0cd3..9583cc22 100644 --- a/src/webpage.h +++ b/src/webpage.h @@ -76,9 +76,6 @@ private slots:      void manageNetworkErrors(QNetworkReply *reply);      void loadFinished(bool);      void showSSLInfo(); - -signals: -    void validSSLInfo(bool);  private:      QString errorPage(QNetworkReply *); diff --git a/src/webtab.cpp b/src/webtab.cpp index b4e59d84..fd44cc10 100644 --- a/src/webtab.cpp +++ b/src/webtab.cpp @@ -49,6 +49,7 @@  #include <KActionMenu>  #include <KWebView>  #include <kwebwallet.h> +#include <KDE/KMessageBox>  // Qt Includes  #include <QContextMenuEvent> @@ -59,6 +60,9 @@  #include <QAction>  #include <QVBoxLayout> +// Defines +#define QL1S(x)  QLatin1String(x) +  WebTab::WebTab(QWidget *parent)      : QWidget(parent) @@ -171,3 +175,33 @@ void WebTab::createPreviewSelectorBar(int index)      connect(page(), SIGNAL(loadFinished(bool)), bar, SLOT(loadFinished()));      connect(page()->mainFrame(), SIGNAL(urlChanged(QUrl)), bar, SLOT(verifyUrl()));  } + + +bool WebTab::hasRSSInfo() +{ +    _rssList.clear(); +    QWebElementCollection col = page()->mainFrame()->findAllElements("link"); +    foreach(QWebElement el, col) +    { +        if( el.attribute("type") == QL1S("application/rss+xml") || el.attribute("type") == QL1S("application/rss+xml") ) +            _rssList << KUrl( el.attribute("href") ); +    } +     +    return !_rssList.isEmpty(); +} + + +void WebTab::showRSSInfo() +{ +    QString urlList = QString("Here are the rss link found: <br /><br />"); +    foreach(const KUrl &url, _rssList) +    { +        urlList += QString("<a href=\"") + url.url() + QString("\">") + url.url() + QString("</a><br />"); +    } +    urlList += QString("<br />Enough for now.. waiting for some cool akonadi based feeds management :)"); +     +    KMessageBox::information( view(),  +                              urlList, +                              "RSS Management" +                            ); +} diff --git a/src/webtab.h b/src/webtab.h index 9837cd63..9054a7c1 100644 --- a/src/webtab.h +++ b/src/webtab.h @@ -57,15 +57,20 @@ public:      int progress();      void createPreviewSelectorBar(int index); + +    bool hasRSSInfo();  private slots:      void updateProgress(int progress);      void loadFinished(bool);      void createWalletBar(const QString &, const QUrl &); - +    void showRSSInfo(); +      private:      int m_progress; +     +    KUrl::List _rssList;  };  #endif | 
