Warning, file /utilities/okteta/kasten/controllers/view/overwritemode/overwritemodecontroller.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: 2008-2009 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 "overwritemodecontroller.hpp" 0010 0011 // Okteta Kasten gui 0012 #include <Kasten/Okteta/ByteArrayView> 0013 // KF 0014 #include <KXMLGUIClient> 0015 #include <KLocalizedString> 0016 #include <KActionCollection> 0017 #include <KToggleAction> 0018 0019 namespace Kasten { 0020 0021 OverwriteModeController::OverwriteModeController(KXMLGUIClient* guiClient) 0022 { 0023 KActionCollection* actionCollection = guiClient->actionCollection(); 0024 0025 mSetOverWriteAction = new KToggleAction(i18nc("@option:check set the view into overwrite mode", 0026 "Overwr&ite Mode"), this); 0027 mSetOverWriteAction->setWhatsThis( 0028 i18nc("@info:whatsthis", 0029 "Choose whether you want the input to be inserted or to overwrite existing data.")); 0030 // TODO: or should we catch the signal from the view (needs to be added) 0031 actionCollection->setDefaultShortcut(mSetOverWriteAction, QKeySequence(Qt::Key_Insert)); 0032 connect(mSetOverWriteAction, &KToggleAction::triggered, this, &OverwriteModeController::setOverWrite); 0033 0034 actionCollection->addAction(QStringLiteral("set_overwrite"), mSetOverWriteAction); 0035 0036 setTargetModel(nullptr); 0037 } 0038 0039 void OverwriteModeController::setTargetModel(AbstractModel* model) 0040 { 0041 if (mByteArrayView) { 0042 mByteArrayView->disconnect(mSetOverWriteAction); 0043 } 0044 0045 mByteArrayView = model ? model->findBaseModel<ByteArrayView*>() : nullptr; 0046 0047 if (mByteArrayView) { 0048 mSetOverWriteAction->setChecked(mByteArrayView->isOverwriteMode()); 0049 0050 connect(mByteArrayView, &ByteArrayView::overwriteModeChanged, 0051 mSetOverWriteAction, &KToggleAction::setChecked); 0052 // TODO: catch if isOverwriteOnly changes 0053 } 0054 0055 const bool canInsert = mByteArrayView && !mByteArrayView->isOverwriteOnly(); 0056 mSetOverWriteAction->setEnabled(canInsert); 0057 } 0058 0059 void OverwriteModeController::setOverWrite(bool isOverWrite) 0060 { 0061 mByteArrayView->setOverwriteMode(isOverWrite); 0062 } 0063 0064 } 0065 0066 #include "moc_overwritemodecontroller.cpp"