/***************************************************************************
- * Copyright (C) 2006 by Peter Penz *
- * peter.penz@gmx.at *
+ * Copyright (C) 2006 by Peter Penz (peter.penz@gmx.at) *
* *
* 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 *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *
***************************************************************************/
+#include "bookmarkselector.h"
+
+#include "dolphinsettings.h"
+#include "urlnavigator.h"
#include <assert.h>
-#include <q3popupmenu.h>
-#include <qpainter.h>
-#include <qpixmap.h>
#include <kiconloader.h>
#include <kglobalsettings.h>
#include <kbookmarkmanager.h>
+#include <kmenu.h>
+#include <kdebug.h>
-#include "bookmarkselector.h"
-#include "dolphinsettings.h"
-#include "dolphinview.h"
-#include "dolphin.h"
-#include "urlnavigator.h"
+#include <QPainter>
+#include <QPixmap>
BookmarkSelector::BookmarkSelector(UrlNavigator* parent) :
UrlButton(parent),
- m_selectedIndex(0)
+ m_selectedIndex(0),
+ m_urlNavigator(parent)
{
setFocusPolicy(Qt::NoFocus);
- m_bookmarksMenu = new Q3PopupMenu(this);
+ m_bookmarksMenu = new KMenu(this);
KBookmarkGroup root = DolphinSettings::instance().bookmarkManager()->root();
KBookmark bookmark = root.first();
int i = 0;
while (!bookmark.isNull()) {
- m_bookmarksMenu->insertItem(MainBarIcon(bookmark.icon()),
- bookmark.text(),
- i);
+ QAction* action = new QAction(MainBarIcon(bookmark.icon()),
+ bookmark.text(),
+ this);
+ action->setData(i);
+ m_bookmarksMenu->addAction(action);
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);
++i;
}
- connect(m_bookmarksMenu, SIGNAL(activated(int)),
- this, SLOT(slotBookmarkActivated(int)));
+ connect(m_bookmarksMenu, SIGNAL(triggered(QAction*)),
+ this, SLOT(activateBookmark(QAction*)));
- setPopup(m_bookmarksMenu);
+ setMenu(m_bookmarksMenu);
}
BookmarkSelector::~BookmarkSelector()
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
// a generic folder icon as pixmap for indication:
- setPixmap(SmallIcon("folder"));
+ setIcon(SmallIcon("folder"));
}
}
return QSize(height, height);
}
-void BookmarkSelector::paintEvent(QPaintEvent* event)
+void BookmarkSelector::paintEvent(QPaintEvent* /*event*/)
{
QPainter painter(this);
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 bool isActive = (dolphin.activeView() == parentView);
+ const bool isActive = m_urlNavigator->isActive();
if (!isActive) {
- QColor dimmColor(colorGroup().background());
+ QColor dimmColor(palette().brush(QPalette::Background).color());
foregroundColor = mixColors(foregroundColor, dimmColor);
if (isHighlighted) {
backgroundColor = mixColors(backgroundColor, dimmColor);
painter.drawPixmap(x, y, pixmap);
}
-void BookmarkSelector::slotBookmarkActivated(int index)
+void BookmarkSelector::activateBookmark(QAction* action)
{
- m_selectedIndex = index;
+ assert(action != 0);
+ m_selectedIndex = action->data().toInt();
- KBookmark bookmark = selectedBookmark();
+ const KBookmark bookmark = selectedBookmark();
setPixmap(SmallIcon(bookmark.icon()));
-
- emit bookmarkActivated(index);
+ emit bookmarkActivated(bookmark.url());
}
#include "bookmarkselector.moc"