File indexing completed on 2024-04-28 17:05:52

0001 /*
0002     SPDX-FileCopyrightText: 2002 Shie Erlich <erlich@users.sourceforge.net>
0003     SPDX-FileCopyrightText: 2002 Rafi Yanai <yanai@users.sourceforge.net>
0004     SPDX-FileCopyrightText: 2004-2022 Krusader Krew <https://krusader.org>
0005 
0006     SPDX-License-Identifier: GPL-2.0-or-later
0007 */
0008 
0009 #include "krbookmarkbutton.h"
0010 #include "../compat.h"
0011 #include "../icon.h"
0012 #include "../krglobal.h"
0013 #include "krbookmarkhandler.h"
0014 
0015 // QtGui
0016 #include <QPixmap>
0017 // QtWidgets
0018 #include <QAction>
0019 #include <QMenu>
0020 
0021 #include <KI18n/KLocalizedString>
0022 
0023 KrBookmarkButton::KrBookmarkButton(QWidget *parent)
0024     : QToolButton(parent)
0025 {
0026     setAutoRaise(true);
0027     setIcon(Icon("bookmarks"));
0028     setText(i18n("BookMan II"));
0029     setToolTip(i18n("BookMan II"));
0030     setPopupMode(QToolButton::InstantPopup);
0031     setAcceptDrops(false);
0032 
0033     acmBookmarks = new KActionMenu(Icon("bookmarks"), i18n("Bookmarks"), this);
0034     acmBookmarks->KACTIONMENU_SETDELAYED;
0035 
0036     setMenu(acmBookmarks->menu());
0037     connect(acmBookmarks->menu(), &QMenu::aboutToShow, this, &KrBookmarkButton::populate);
0038     connect(acmBookmarks->menu(), &QMenu::aboutToShow, this, &KrBookmarkButton::aboutToShow);
0039 }
0040 
0041 void KrBookmarkButton::populate()
0042 {
0043     krBookMan->populate(static_cast<QMenu *>(menu()));
0044 }
0045 
0046 void KrBookmarkButton::showMenu()
0047 {
0048     populate();
0049     menu()->exec(mapToGlobal(QPoint(0, height())));
0050 }