]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/bookmarkselector.cpp
Use a KIO Job for applying the view properties recursively to sub directories.
[dolphin.git] / src / bookmarkselector.cpp
index 4c091d33b5f3834d575acff7cb55e5c661d9ac2b..a22eeb17a62bf7dd84ad6ae63b30ad5ecc886747 100644 (file)
 #include "bookmarkselector.h"
 #include "dolphinsettings.h"
 #include "dolphinview.h"
-#include "dolphin.h"
+#include "dolphinmainwindow.h"
 #include "urlnavigator.h"
 
-BookmarkSelector::BookmarkSelector(URLNavigator* parent) :
-    URLButton(parent),
+BookmarkSelector::BookmarkSelector(UrlNavigator* parent) :
+    UrlButton(parent),
     m_selectedIndex(0)
 {
-    setFocusPolicy(QWidget::NoFocus);
+    setFocusPolicy(Qt::NoFocus);
 
     m_bookmarksMenu = new Q3PopupMenu(this);
 
@@ -51,7 +51,8 @@ BookmarkSelector::BookmarkSelector(URLNavigator* parent) :
                                     i);
         if (i == m_selectedIndex) {
             QPixmap pixmap = SmallIcon(bookmark.icon());
-            setPixmap(pixmap);
+            setIcon(QIcon(pixmap));
+            setIconSize(pixmap.size());
             setMinimumWidth(pixmap.width() + 2);
         }
         bookmark = root.next(bookmark);
@@ -61,7 +62,7 @@ BookmarkSelector::BookmarkSelector(URLNavigator* parent) :
     connect(m_bookmarksMenu, SIGNAL(activated(int)),
             this, SLOT(slotBookmarkActivated(int)));
 
-    setPopup(m_bookmarksMenu);
+    setMenu(m_bookmarksMenu);
 }
 
 BookmarkSelector::~BookmarkSelector()
@@ -76,17 +77,17 @@ void BookmarkSelector::updateSelection(const KUrl& url)
     int maxLength = 0;
     m_selectedIndex = -1;
 
-    // Search the bookmark which is equal to the URL or at least is a parent URL.
-    // If there are more than one possible parent URL candidates, choose the bookmark
-    // which covers the bigger range of the URL.
+    // Search the bookmark which is equal to the Url or at least is a parent Url.
+    // If there are more than one possible parent Url candidates, choose the bookmark
+    // which covers the bigger range of the Url.
     int i = 0;
     while (!bookmark.isNull()) {
-        const KUrl bookmarkURL = bookmark.url();
-        if (bookmarkURL.isParentOf(url)) {
-            const int length = bookmarkURL.prettyURL().length();
+        const KUrl bookmarkUrl = bookmark.url();
+        if (bookmarkUrl.isParentOf(url)) {
+            const int length = bookmarkUrl.prettyUrl().length();
             if (length > maxLength) {
                 m_selectedIndex = i;
-                setPixmap(SmallIcon(bookmark.icon()));
+                setIcon(SmallIcon(bookmark.icon()));
                 maxLength = length;
             }
         }
@@ -95,9 +96,9 @@ void BookmarkSelector::updateSelection(const KUrl& url)
     }
 
     if (m_selectedIndex < 0) {
-        // No bookmark has been found which matches to the given URL. Show
+        // No bookmark has been found which matches to the given Url. Show
         // a generic folder icon as pixmap for indication:
-        setPixmap(SmallIcon("folder"));
+        setIcon(SmallIcon("folder"));
     }
 }
 
@@ -106,31 +107,39 @@ KBookmark BookmarkSelector::selectedBookmark() const
     return DolphinSettings::instance().bookmark(m_selectedIndex);
 }
 
-void BookmarkSelector::drawButton(QPainter* painter)
+QSize BookmarkSelector::sizeHint() const
 {
+    const int height = UrlButton::sizeHint().height();
+    return QSize(height, height);
+}
+
+void BookmarkSelector::paintEvent(QPaintEvent* event)
+{
+    QPainter painter(this);
+
     const int buttonWidth  = width();
     const int buttonHeight = height();
 
     QColor backgroundColor;
     QColor foregroundColor;
     const bool isHighlighted = isDisplayHintEnabled(EnteredHint) ||
-        isDisplayHintEnabled(DraggedHint);
+                               isDisplayHintEnabled(DraggedHint);
     if (isHighlighted) {
         backgroundColor = KGlobalSettings::highlightColor();
         foregroundColor = KGlobalSettings::highlightedTextColor();
     }
     else {
-        backgroundColor = colorGroup().background();
+        backgroundColor = palette().brush(QPalette::Background).color();
         foregroundColor = KGlobalSettings::buttonTextColor();
     }
 
     // dimm the colors if the parent view does not have the focus
     const DolphinView* parentView = urlNavigator()->dolphinView();
-    const Dolphin& dolphin = Dolphin::mainWin();
+    const DolphinMainWindow* dolphin = parentView->mainWindow();
 
-    const bool isActive = (dolphin.activeView() == parentView);
+    const bool isActive = (dolphin->activeView() == parentView);
     if (!isActive) {
-        QColor dimmColor(colorGroup().background());
+        QColor dimmColor(palette().brush(QPalette::Background).color());
         foregroundColor = mixColors(foregroundColor, dimmColor);
         if (isHighlighted) {
             backgroundColor = mixColors(backgroundColor, dimmColor);
@@ -140,21 +149,19 @@ void BookmarkSelector::drawButton(QPainter* painter)
     if (!(isDisplayHintEnabled(ActivatedHint) && isActive) && !isHighlighted) {
         // dimm the foreground color by mixing it with the background
         foregroundColor = mixColors(foregroundColor, backgroundColor);
-        painter->setPen(foregroundColor);
+        painter.setPen(foregroundColor);
     }
 
     // draw button backround
-    painter->setPen(NoPen);
-    painter->setBrush(backgroundColor);
-    painter->drawRect(0, 0, buttonWidth, buttonHeight);
+    painter.setPen(Qt::NoPen);
+    painter.setBrush(backgroundColor);
+    painter.drawRect(0, 0, buttonWidth, buttonHeight);
 
     // draw icon
-    const QPixmap* icon = pixmap();
-    if (icon != 0) {
-        const int x = (buttonWidth - icon->width()) / 2;
-        const int y = (buttonHeight - icon->height()) / 2;
-        painter->drawPixmap(x, y, *icon);
-    }
+    const QPixmap pixmap = icon().pixmap();
+    const int x = (buttonWidth -  pixmap.width()) / 2;
+    const int y = (buttonHeight - pixmap.height()) / 2;
+    painter.drawPixmap(x, y, pixmap);
 }
 
 void BookmarkSelector::slotBookmarkActivated(int index)