File indexing completed on 2024-05-12 15:58:51

0001 /*
0002  *  SPDX-FileCopyrightText: 2018 Dmitry Kazakov <dimula73@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 
0007 #include "KisImageSignals.h"
0008 
0009 #include "kis_node.h"
0010 
0011 /*******************************************************************************/
0012 /*                       ComplexSizeChangedSignal                              */
0013 /*******************************************************************************/
0014 
0015 ComplexSizeChangedSignal::ComplexSizeChangedSignal() {}
0016 
0017 ComplexSizeChangedSignal::ComplexSizeChangedSignal(QPointF _oldStillPoint, QPointF _newStillPoint)
0018     : oldStillPoint(_oldStillPoint),
0019       newStillPoint(_newStillPoint)
0020 {
0021 }
0022 
0023 ComplexSizeChangedSignal::ComplexSizeChangedSignal(const QRect &portionOfOldImage, const QSize &transformedIntoImageOfSize)
0024 {
0025     oldStillPoint = QRectF(portionOfOldImage).center();
0026     newStillPoint = QRectF(QPointF(), QSizeF(transformedIntoImageOfSize)).center();
0027 }
0028 
0029 ComplexSizeChangedSignal ComplexSizeChangedSignal::inverted() const {
0030     return ComplexSizeChangedSignal(newStillPoint, oldStillPoint);
0031 }
0032 
0033 
0034 /*******************************************************************************/
0035 /*                       ComplexNodeReselectionSignal                          */
0036 /*******************************************************************************/
0037 
0038 ComplexNodeReselectionSignal::ComplexNodeReselectionSignal() {}
0039 
0040 ComplexNodeReselectionSignal::ComplexNodeReselectionSignal(KisNodeSP _newActiveNode, KisNodeList _newSelectedNodes, KisNodeSP _oldActiveNode, KisNodeList _oldSelectedNodes)
0041     : newActiveNode(_newActiveNode),
0042       newSelectedNodes(_newSelectedNodes),
0043       oldActiveNode(_oldActiveNode),
0044       oldSelectedNodes(_oldSelectedNodes)
0045 {
0046 }
0047 
0048 ComplexNodeReselectionSignal ComplexNodeReselectionSignal::inverted() const {
0049     return ComplexNodeReselectionSignal(oldActiveNode, oldSelectedNodes, newActiveNode, newSelectedNodes);
0050 }
0051 
0052 
0053 /*******************************************************************************/
0054 /*                       KisImageSignalType                                    */
0055 /*******************************************************************************/
0056 
0057 KisImageSignalType::KisImageSignalType() {}
0058 
0059 KisImageSignalType::KisImageSignalType(KisImageSignalTypeEnum _id)
0060     : id(_id)
0061 {
0062 }
0063 
0064 KisImageSignalType::KisImageSignalType(ComplexSizeChangedSignal signal)
0065     : id(SizeChangedSignal),
0066       sizeChangedSignal(signal)
0067 {
0068 }
0069 
0070 KisImageSignalType::KisImageSignalType(ComplexNodeReselectionSignal signal)
0071     : id(NodeReselectionRequestSignal),
0072       nodeReselectionSignal(signal)
0073 {
0074 }
0075 
0076 KisImageSignalType KisImageSignalType::inverted() const {
0077     KisImageSignalType t;
0078     t.id = id;
0079     t.sizeChangedSignal = sizeChangedSignal.inverted();
0080     t.nodeReselectionSignal = nodeReselectionSignal.inverted();
0081     return t;
0082 }