Le samedi 21 novembre 2009 11:31:36, Panagiotis Papadopoulos a écrit :
> Imho this should be an option (even if a "hidden" one). Have a look at this
>  wish for Konqueror:
> 

Add --nofavicon-taskbar cmd line option.

Cédric
diff --git a/src/application.cpp b/src/application.cpp
index 66a7d3e..5f58f68 100644
--- a/src/application.cpp
+++ b/src/application.cpp
@@ -64,6 +64,7 @@ QPointer<HistoryManager> Application::s_historyManager;
 QPointer<NetworkAccessManager> Application::s_networkAccessManager;
 QPointer<BookmarkProvider> Application::s_bookmarkProvider;
 QPointer<SessionManager> Application::s_sessionManager;
+bool Application::s_faviconAsTaskbarIcon;
 
 
 
@@ -90,7 +91,8 @@ int Application::newInstance()
     // we share one process for several mainwindows,
     // so initialize only once
     static bool first = true;
-    
+    s_faviconAsTaskbarIcon = args->isSet("favicon-taskbar");
+
     if(args->count() == 0)
     {
         if(first)   // we are starting rekonq, for the first time with no args: use startup behaviour
@@ -256,6 +258,10 @@ SessionManager *Application::sessionManager()
     return s_sessionManager;
 }
 
+bool Application::faviconAsTaskbarIcon()
+{
+    return s_faviconAsTaskbarIcon;
+}
 
 KIcon Application::icon(const KUrl &url)
 {
@@ -283,7 +289,6 @@ KIcon Application::icon(const KUrl &url)
     return icon;
 }
 
-
 KUrl Application::guessUrlFromString(const QString &string)
 {
     QString urlStr = string.trimmed();
diff --git a/src/application.h b/src/application.h
index 0f256a4..68851cc 100644
--- a/src/application.h
+++ b/src/application.h
@@ -103,6 +103,7 @@ public:
     MainWindowList mainWindowList();
     
     static KIcon icon(const KUrl &url);
+    static bool faviconAsTaskbarIcon();
 
     static HistoryManager *historyManager();
     static CookieJar *cookieJar();
@@ -144,7 +145,7 @@ private:
     static QPointer<NetworkAccessManager> s_networkAccessManager;
     static QPointer<BookmarkProvider> s_bookmarkProvider;
     static QPointer<SessionManager> s_sessionManager;
-    
+    static bool s_faviconAsTaskbarIcon; 
     MainWindowList m_mainWindows;
 };
 
diff --git a/src/main.cpp b/src/main.cpp
index c0e4b70..e8bd1a4 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -140,6 +140,9 @@ extern "C" KDE_EXPORT int kdemain( int argc, char **argv )
     // adding URL option
     options.add("+[URL]" , ki18n("Location to open"));
 
+    // adding no favicons as taskbar icon option
+    options.add("nofavicon-taskbar" , ki18n("Don't use favicon as taskbar icon"));
+
     // Register the supported options
     KCmdLineArgs::addCmdLineOptions(options);
 
diff --git a/src/mainview.cpp b/src/mainview.cpp
index ebcad08..7c4fc85 100644
--- a/src/mainview.cpp
+++ b/src/mainview.cpp
@@ -267,6 +266,13 @@ void MainView::currentChanged(int index)
     if (!webView)
         return;
 
+    // set tab icon
+    if (Application::faviconAsTaskbarIcon())
+    {
+        QIcon icon = Application::icon(webView->url());
+        m_parentWindow->setWindowIcon(icon);
+    }
+
     // retrieve the old webview (that where we move from)
     WebView *oldWebView = this->webView(m_currentTabIndex);
     
@@ -370,6 +376,8 @@ void MainView::newTab()
             break;
     case 1: // blank page
         urlBar()->setUrl(KUrl(""));
+	if (Application::faviconAsTaskbarIcon())
+            m_parentWindow->setWindowIcon(KIcon("rekonq"));
         break;
     case 2: // homepage
         w->load( QUrl(ReKonfig::homePage()) );
@@ -573,6 +581,8 @@ void MainView::webViewIconChanged()
         label->setPixmap(icon.pixmap(16, 16));
 
         urlBar()->updateUrl();
+        if (Application::faviconAsTaskbarIcon())
+            m_parentWindow->setWindowIcon(icon);
     }
 }
 
@@ -594,6 +604,8 @@ void MainView::webViewTitleChanged(const QString &title)
     {
         emit setCurrentTitle(tabTitle);
     }
+    if (Application::faviconAsTaskbarIcon())
+        m_parentWindow->setWindowIcon(KIcon("text-html"));
     Application::historyManager()->updateHistoryEntry(webView->url(), tabTitle);
 }
 
_______________________________________________
rekonq mailing list
[email protected]
https://mail.kde.org/mailman/listinfo/rekonq

Reply via email to