Warning, file /office/calligra/gemini/ToolManager.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /*
0002     SPDX-FileCopyrightText: 2012 Dan Leinir Turthra Jensen <admin@leinir.dk>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 
0008 #include "ToolManager.h"
0009 #include <KoToolRegistry.h>
0010 #include <KoToolManager.h>
0011 #include <KoToolBase.h>
0012 #include <KoCanvasController.h>
0013 #include <QPointer>
0014 
0015 class ToolManager::Private
0016 {
0017 public:
0018     Private()
0019     {
0020         toolManager = KoToolManager::instance();
0021     };
0022 
0023     QPointer<KoToolManager> toolManager;
0024     QPointer<KoToolBase> currentTool;
0025 };
0026 
0027 ToolManager::ToolManager(QQuickItem* parent)
0028     : QQuickItem(parent)
0029     , d(new Private)
0030 {
0031     connect(KoToolManager::instance(), &KoToolManager::changedTool,
0032             this, &ToolManager::slotToolChanged);
0033 }
0034 
0035 ToolManager::~ToolManager()
0036 {
0037     delete d;
0038 }
0039 
0040 void ToolManager::requestToolChange(QString toolID)
0041 {
0042     d->toolManager->switchToolRequested(toolID);
0043 }
0044 
0045 QObject* ToolManager::currentTool() const
0046 {
0047     return d->currentTool;
0048 }
0049 
0050 void ToolManager::slotToolChanged(KoCanvasController* canvas, int toolId)
0051 {
0052     Q_UNUSED(canvas);
0053     Q_UNUSED(toolId);
0054 
0055     if(!d->toolManager)
0056         return;
0057 
0058     QString id = KoToolManager::instance()->activeToolId();
0059     d->currentTool = qobject_cast<KoToolBase*>(KoToolManager::instance()->toolById(canvas->canvas(), id));
0060     emit currentToolChanged();
0061 }