#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);
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);
connect(m_bookmarksMenu, SIGNAL(activated(int)),
this, SLOT(slotBookmarkActivated(int)));
- setPopup(m_bookmarksMenu);
+ setMenu(m_bookmarksMenu);
}
BookmarkSelector::~BookmarkSelector()
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;
}
}
}
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"));
}
}
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);
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)