File indexing completed on 2024-05-26 05:56:50
0001 /* 0002 This file is part of the Okteta Kasten module, made within the KDE community. 0003 0004 SPDX-FileCopyrightText: 2008 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 "viewmodecontroller.hpp" 0010 0011 // Okteta Kasten gui 0012 #include <Kasten/Okteta/ByteArrayView> 0013 // KF 0014 #include <kwidgetsaddons_version.h> 0015 #include <KXMLGUIClient> 0016 #include <KLocalizedString> 0017 #include <KActionCollection> 0018 #include <KSelectAction> 0019 0020 namespace Kasten { 0021 0022 ViewModeController::ViewModeController(KXMLGUIClient* guiClient) 0023 { 0024 // view style 0025 mViewModeAction = new KSelectAction(i18nc("@title:menu", "&View Mode"), this); 0026 mViewModeAction->setItems(QStringList { 0027 i18nc("@item:inmenu", "&Columns"), 0028 i18nc("@item:inmenu", "&Rows"), 0029 }); 0030 connect(mViewModeAction, &KSelectAction::indexTriggered, 0031 this, &ViewModeController::setViewMode); 0032 0033 guiClient->actionCollection()->addAction(QStringLiteral("viewmode"), mViewModeAction); 0034 0035 setTargetModel(nullptr); 0036 } 0037 0038 void ViewModeController::setTargetModel(AbstractModel* model) 0039 { 0040 if (mByteArrayView) { 0041 mByteArrayView->disconnect(this); 0042 } 0043 0044 mByteArrayView = model ? model->findBaseModel<ByteArrayView*>() : nullptr; 0045 0046 const bool hasView = (mByteArrayView != nullptr); 0047 if (hasView) { 0048 onViewModusChanged((int)mByteArrayView->viewModus()); 0049 connect(mByteArrayView, &ByteArrayView::viewModusChanged, 0050 this, &ViewModeController::onViewModusChanged); 0051 0052 } 0053 mViewModeAction->setEnabled(hasView); 0054 } 0055 0056 void ViewModeController::setViewMode(int viewMode) 0057 { 0058 mByteArrayView->setViewModus(viewMode); 0059 } 0060 0061 void ViewModeController::onViewModusChanged(int viewModus) 0062 { 0063 mViewModeAction->setCurrentItem(viewModus); 0064 } 0065 0066 } 0067 0068 #include "moc_viewmodecontroller.cpp"