diff options
| -rw-r--r-- | src/application.cpp | 4 | ||||
| -rw-r--r-- | src/mainwindow.cpp | 13 | ||||
| -rw-r--r-- | src/mainwindow.h | 6 | ||||
| -rw-r--r-- | src/rekonq.kcfg | 3 | ||||
| -rw-r--r-- | src/settings/settings_appearance.ui | 9 | ||||
| -rw-r--r-- | src/webview.cpp | 15 | ||||
| -rw-r--r-- | src/webview.h | 1 | 
7 files changed, 47 insertions, 4 deletions
| diff --git a/src/application.cpp b/src/application.cpp index 6f8cd8b2..5dd2909c 100644 --- a/src/application.cpp +++ b/src/application.cpp @@ -527,6 +527,10 @@ void Application::updateConfiguration()      // ====== load Settings on main classes      Application::historyManager()->loadSettings();      Application::adblockManager()->loadSettings(); +    if(!ReKonfig::useFavicon()) +        mainWindow()->setWindowIcon(KIcon("rekonq")); +    else +        mainWindow()->changeWindowIcon(mainWindow()->mainView()->currentIndex());      // hovering unfocused tabs options      switch(ReKonfig::hoveringTabOption()) diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 943f877d..3d76d35f 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -321,6 +321,9 @@ void MainWindow::postLaunch()      connect(m_view, SIGNAL(tabsChanged()), this, SLOT(updateActions()));      connect(m_view, SIGNAL(currentChanged(int)), this, SLOT(updateActions())); +    //Change window icon according to tab icon +    connect(m_view, SIGNAL(currentChanged(int)), this, SLOT(changeWindowIcon(int))); +      // launch it manually. Just the first time...      updateActions(); @@ -350,6 +353,15 @@ QSize MainWindow::sizeHint() const      return size;  } +void MainWindow::changeWindowIcon(int index) +{ +    if (ReKonfig::useFavicon()) +    { +        KUrl url = mainView()->webTab(index)->url(); +        QIcon icon = Application::iconManager()->iconForUrl(url).pixmap(QSize(32,32)); +        setWindowIcon(icon); +    } +}  void MainWindow::setupActions()  { @@ -631,7 +643,6 @@ void MainWindow::setupPanels()      m_analyzerPanel->hide();  } -  void MainWindow::openLocation()  {      if(isFullScreen()) diff --git a/src/mainwindow.h b/src/mainwindow.h index 598d66e3..565843f2 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -109,14 +109,16 @@ public Q_SLOTS:      void updateHighlight();      void findSelectedText(); +    void changeWindowIcon(int index); +  Q_SIGNALS:      // switching tabs      void ctrlTabPressed();      void shiftCtrlTabPressed(); -     +      void triggerPartPrint();      void triggerPartFind(); -     +  protected Q_SLOTS:      void saveNewToolbarConfig(); diff --git a/src/rekonq.kcfg b/src/rekonq.kcfg index d7d496f0..704d54b6 100644 --- a/src/rekonq.kcfg +++ b/src/rekonq.kcfg @@ -123,6 +123,9 @@      <entry name="closeTabSelectPrevious" type="Bool">          <default>false</default>      </entry> +    <entry name="useFavicon" type="Bool"> +        <default>false</default> +    </entry>  </group> diff --git a/src/settings/settings_appearance.ui b/src/settings/settings_appearance.ui index f7dd4747..b25af436 100644 --- a/src/settings/settings_appearance.ui +++ b/src/settings/settings_appearance.ui @@ -253,7 +253,14 @@           <bool>true</bool>          </property>         </widget> -      </item> +      </item>       +    <item> +    <widget class="QCheckBox" name="kcfg_useFavicon"> +    <property name="text"> +    <string>Use favicon of the open website</string> +    </property> +    </widget> +    </item>       </layout>      </widget>     </item> diff --git a/src/webview.cpp b/src/webview.cpp index d3eb2f49..b41f1bd3 100644 --- a/src/webview.cpp +++ b/src/webview.cpp @@ -43,6 +43,7 @@  #include "urlbar.h"  #include "webpage.h"  #include "websnap.h" +#include "webtab.h"  // KDE Includes  #include <KAction> @@ -111,6 +112,8 @@ WebView::WebView(QWidget* parent)      // Smooth scroll timer      connect(m_smoothScrollTimer, SIGNAL(timeout()), this, SLOT(scrollTick()));      m_smoothScrollTimer->setInterval(16); + +    connect(this, SIGNAL(iconChanged()), this, SLOT(changeWindowIcon()));  } @@ -127,6 +130,18 @@ WebView::~WebView()      preview.save(path);  } +void WebView::changeWindowIcon() +{ +    if (ReKonfig::useFavicon()) +    { +        MainWindow *const mainWindow = Application::instance()->mainWindow(); +        if (url() == mainWindow->currentTab()->url()) +        { +            const int index = mainWindow->mainView()->currentIndex(); +            mainWindow->changeWindowIcon(index); +        } +    } +}  WebPage *WebView::page()  { diff --git a/src/webview.h b/src/webview.h index a06a2cb2..669705fa 100644 --- a/src/webview.h +++ b/src/webview.h @@ -81,6 +81,7 @@ private slots:      void setupSmoothScrolling(int posY);      void stopScrolling(); +    void changeWindowIcon();  signals:      void loadUrl(const KUrl &, const Rekonq::OpenType &); | 
