File indexing completed on 2024-09-22 05:16:07
0001 /* 0002 This file is part of the Kasten Framework, made within the KDE community. 0003 0004 SPDX-FileCopyrightText: 2006-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 "closecontroller.hpp" 0010 0011 // Kasten gui 0012 #include <Kasten/ViewManager> 0013 // KF 0014 #include <KActionCollection> 0015 #include <KStandardAction> 0016 #include <KXMLGUIClient> 0017 // Qt 0018 #include <QAction> 0019 0020 namespace Kasten { 0021 0022 CloseController::CloseController(ViewManager* viewManager, KXMLGUIClient* guiClient) 0023 : mViewManager(viewManager) 0024 { 0025 mCloseAction = KStandardAction::close(this, &CloseController::close, this); 0026 0027 guiClient->actionCollection()->addAction(mCloseAction->objectName(), mCloseAction); 0028 0029 setTargetModel(0); 0030 } 0031 0032 void CloseController::setTargetModel(AbstractModel* model) 0033 { 0034 mView = model ? model->findBaseModel<AbstractView*>() : 0; 0035 0036 const bool hasView = (mView != 0); 0037 0038 mCloseAction->setEnabled(hasView); 0039 } 0040 0041 void CloseController::close() 0042 { 0043 mViewManager->closeView(mView); 0044 } 0045 0046 } 0047 0048 #include "moc_closecontroller.cpp"