File indexing completed on 2024-04-28 04:39:03
0001 /* 0002 SPDX-FileCopyrightText: 2010 Friedrich W. H. Kossebau <kossebau@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0005 */ 0006 0007 #include "oktetawidget.h" 0008 0009 // plugin 0010 #include "oktetadocument.h" 0011 #include "oktetaplugin.h" 0012 // Okteta Kasten 0013 #include <Kasten/Okteta/ByteArrayView> 0014 // Okteta Kasten controllers 0015 #include <Kasten/Okteta/OverwriteModeControllerFactory> 0016 #include <Kasten/Okteta/GotoOffsetControllerFactory> 0017 #include <Kasten/Okteta/SelectRangeControllerFactory> 0018 #include <Kasten/Okteta/SearchControllerFactory> 0019 #include <Kasten/Okteta/ReplaceControllerFactory> 0020 #include <Kasten/Okteta/BookmarksControllerFactory> 0021 #include <Kasten/Okteta/PrintControllerFactory> 0022 #include <Kasten/Okteta/ViewConfigControllerFactory> 0023 #include <Kasten/Okteta/ViewModeControllerFactory> 0024 #include <Kasten/Okteta/ViewStatusControllerFactory> 0025 #include <Kasten/Okteta/ViewProfileControllerFactory> 0026 #include <Kasten/Okteta/ViewProfilesManageControllerFactory> 0027 // Kasten controllers 0028 #include <Kasten/ReadOnlyControllerFactory> 0029 #include <Kasten/ClipboardControllerFactory> 0030 #include <Kasten/InsertControllerFactory> 0031 #include <Kasten/CopyAsControllerFactory> 0032 #include <Kasten/ExportControllerFactory> 0033 #include <Kasten/VersionControllerFactory> 0034 #include <Kasten/ZoomControllerFactory> 0035 #include <Kasten/ZoomBarControllerFactory> 0036 #include <Kasten/SelectControllerFactory> 0037 // Kasten 0038 #include <Kasten/AbstractXmlGuiController> 0039 // KDevelop 0040 #include <sublime/view.h> 0041 // KF 0042 #include <KLocalizedString> 0043 #include <KStandardAction> 0044 #include <KActionCollection> 0045 // Qt 0046 #include <QVBoxLayout> 0047 #include <QAction> 0048 0049 0050 namespace KDevelop 0051 { 0052 0053 OktetaWidget::OktetaWidget( QWidget* parent, Kasten::ByteArrayView* byteArrayView, OktetaPlugin* plugin ) 0054 : QWidget( parent ), 0055 KXMLGUIClient(), 0056 mByteArrayView( byteArrayView ) 0057 { 0058 setComponentName( QStringLiteral("kdevokteta") , QStringLiteral("KDevelop Okteta")); 0059 setXMLFile( QStringLiteral("kdevokteta.rc") ); 0060 0061 setupActions(plugin); 0062 0063 auto* layout = new QVBoxLayout( this ); 0064 layout->setContentsMargins(0, 0, 0, 0); 0065 QWidget* widget = mByteArrayView->widget(); 0066 layout->addWidget( widget ); 0067 setFocusProxy( widget ); 0068 } 0069 0070 void OktetaWidget::setupActions(OktetaPlugin* plugin) 0071 { 0072 Kasten::ByteArrayViewProfileManager* viewProfileManager = plugin->viewProfileManager(); 0073 mControllers = { 0074 Kasten::VersionControllerFactory().create(this), 0075 Kasten::ReadOnlyControllerFactory().create(this), 0076 Kasten::ZoomControllerFactory().create(this), 0077 Kasten::SelectControllerFactory().create(this), 0078 Kasten::ClipboardControllerFactory().create(this), 0079 Kasten::OverwriteModeControllerFactory().create(this), 0080 Kasten::SearchControllerFactory(this).create(this), 0081 Kasten::ReplaceControllerFactory(this).create(this), 0082 Kasten::BookmarksControllerFactory().create(this), 0083 Kasten::PrintControllerFactory().create(this), 0084 Kasten::ViewConfigControllerFactory().create(this), 0085 Kasten::ViewModeControllerFactory().create(this), 0086 Kasten::ViewProfileControllerFactory(viewProfileManager, mByteArrayView->widget()).create(this), 0087 Kasten::ViewProfilesManageControllerFactory(viewProfileManager, mByteArrayView->widget()).create(this), 0088 }; 0089 // update the text of the viewprofiles_manage action, to make clear this is just for byte arrays 0090 QAction* viewprofilesManageAction = actionCollection()->action(QStringLiteral("settings_viewprofiles_manage")); 0091 viewprofilesManageAction->setText( i18nc("@action:inmenu", 0092 "Manage Byte Array View Profiles...") ); 0093 0094 for (Kasten::AbstractXmlGuiController* controller : qAsConst(mControllers)) { 0095 controller->setTargetModel( mByteArrayView ); 0096 } 0097 } 0098 0099 OktetaWidget::~OktetaWidget() 0100 { 0101 qDeleteAll( mControllers ); 0102 } 0103 0104 } 0105 0106 #include "moc_oktetawidget.cpp"