Warning, file /utilities/okteta/kasten/controllers/view/viewcontextmenu/viewcontextmenucontroller.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 This file is part of the Okteta Kasten module, made within the KDE community. 0003 0004 SPDX-FileCopyrightText: 2019 Friedrich W. H. Kossebau <kossebau@kde.org> 0005 0006 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0007 */ 0008 0009 #include "viewcontextmenucontroller.hpp" 0010 0011 // Okteta Kasten gui 0012 #include <Kasten/Okteta/ByteArrayView> 0013 // KF 0014 #include <KXMLGUIClient> 0015 #include <KXMLGUIFactory> 0016 #include <KLocalizedString> 0017 // Qt 0018 #include <QMenu> 0019 0020 namespace Kasten { 0021 0022 ViewContextMenuController::ViewContextMenuController(KXMLGUIClient* guiClient) 0023 : mGuiClient(guiClient) 0024 { 0025 setTargetModel(nullptr); 0026 } 0027 0028 void ViewContextMenuController::setTargetModel(AbstractModel* model) 0029 { 0030 if (mByteArrayView) { 0031 mByteArrayView->disconnect(this); 0032 } 0033 0034 mByteArrayView = model ? model->findBaseModel<ByteArrayView*>() : nullptr; 0035 0036 if (mByteArrayView) { 0037 connect(mByteArrayView, &ByteArrayView::viewContextMenuRequested, 0038 this, &ViewContextMenuController::showContextMenu); 0039 } 0040 } 0041 0042 void ViewContextMenuController::showContextMenu(QPoint pos) 0043 { 0044 QWidget* w = mGuiClient->factory()->container(QStringLiteral("viewContextMenu"), mGuiClient); 0045 auto* popup = static_cast<QMenu*>(w); 0046 0047 const auto popupPoint = mByteArrayView->widget()->mapToGlobal(pos); 0048 0049 popup->popup(popupPoint); 0050 } 0051 0052 } 0053 0054 #include "moc_viewcontextmenucontroller.cpp"