File indexing completed on 2024-06-23 05:49:16

0001 /*
0002     This file is part of the Kasten Framework, made within the KDE community.
0003 
0004     SPDX-FileCopyrightText: 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 "documentstool.hpp"
0010 
0011 // Kasten core
0012 #include <Kasten/DocumentManager>
0013 #include <Kasten/AbstractDocument>
0014 // KF
0015 #include <KLocalizedString>
0016 
0017 namespace Kasten {
0018 
0019 DocumentsTool::DocumentsTool(DocumentManager* documentManager)
0020     : mDocumentManager(documentManager)
0021 {
0022     setObjectName(QStringLiteral("Documents"));
0023 
0024     connect(mDocumentManager, &DocumentManager::added,
0025             this, &DocumentsTool::documentsAdded);
0026     connect(mDocumentManager, &DocumentManager::closing,
0027             this, &DocumentsTool::documentsClosing);
0028 }
0029 
0030 DocumentsTool::~DocumentsTool() = default;
0031 
0032 QVector<AbstractDocument*> DocumentsTool::documents() const { return mDocumentManager->documents(); }
0033 
0034 QString DocumentsTool::title() const { return i18nc("@title:window", "Documents"); }
0035 
0036 // TODO: this is an abuse of setTargetModel. Find other way to get focused model
0037 void DocumentsTool::setTargetModel(AbstractModel* model)
0038 {
0039     mFocussedDocument = model ? model->findBaseModel<AbstractDocument*>() : nullptr;
0040     Q_EMIT focussedDocumentChanged(mFocussedDocument);
0041 }
0042 
0043 void DocumentsTool::setFocussedDocument(AbstractDocument* document)
0044 {
0045     mDocumentManager->requestFocus(document);
0046 }
0047 
0048 }
0049 
0050 #include "moc_documentstool.cpp"