Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/*
* Copyright (c) 2015 Tricoire Sebastien 3dsman@free.fr
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
* arising from the use of this software.
*
* Permission is granted to anyone to use this software for any purpose,
* including commercial applications, and to alter it and redistribute it
* freely, subject to the following restrictions:
*
* 1. The origin of this software must not be misrepresented; you must not
* claim that you wrote the original software. If you use this software
* in a product, an acknowledgment in the product documentation would be
* appreciated but is not required.
* 2. Altered source versions must be plainly marked as such, and must not be
* misrepresented as being the original software.
* 3. This notice may not be removed or altered from any source distribution.
*
*/
#include "actions/OE_actionsStitchs.h"
#include "stitchs/OE_linkstitch.h"
#include "OE_document.h"
///////// actionNewStitch ///////////////
OE_actionNewStitch::OE_actionNewStitch(OE_stitchs* stitch)
{
if (document)
{
if (document->stitchs.size() > 0)
{
OE_stitchs* tmpstitch = document->stitchs.back();
linkStitch = new OE_linkstitch(tmpstitch, stitch);
document->addStitch( linkStitch);
}
actionStitch = stitch;
document->addStitch( actionStitch);
}
}
OE_actionNewStitch::~OE_actionNewStitch()
{
if (!active)
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
{
if (linkStitch) delete linkStitch;
}
}
void OE_actionNewStitch::undo()
{
if (active)
{
if (linkStitch) document->removeStitch(linkStitch);
if (actionStitch) document->removeStitch(actionStitch);
active = false;
}
}
void OE_actionNewStitch::redo()
{
if (!active)
{
if (linkStitch) document->addStitch(linkStitch);
if (actionStitch) document->addStitch(actionStitch);
active = true;
}
}
///////// actionDelStitch ///////////////
/// \brief OE_actionDelStitch::OE_actionDelStitch
/// \param stitch
///
OE_actionDelStitch::OE_actionDelStitch(OE_stitchs* stitch)
{
if (document)
{
actionStitch = stitch;
document->removeStitch( actionStitch);
}
}
OE_actionDelStitch::~OE_actionDelStitch()
{
}
void OE_actionDelStitch::undo()
{
if (actionStitch && active) document->addStitch( actionStitch);
active = false;
}
void OE_actionDelStitch::redo()
{
if (actionStitch && !active) document->removeStitch( actionStitch);
active = true;
}
///////// OE_actionSetStitchMaxLen ///////////////
/// \brief OE_actionSetStitchMaxLen::OE_actionSetStitchMaxLen
/// \param stitch
/// \param maxLen
OE_actionSetStitchMaxLen::OE_actionSetStitchMaxLen(OE_stitchs* stitch, float maxLen)
if (document&&stitch)
{
actionStitch = stitch;
oldMaxLen = actionStitch->getMaxLen();
actionStitch->setMaxLen(maxLen);
}
OE_actionSetStitchMaxLen::~OE_actionSetStitchMaxLen()
void OE_actionSetStitchMaxLen::undo()
if (active)
{
float tmpMaxLen = actionStitch->getMaxLen();
actionStitch->setMaxLen(oldMaxLen);
oldMaxLen = tmpMaxLen;
active = false;
}
void OE_actionSetStitchMaxLen::redo()
if (!active)
{
float tmpMaxLen = actionStitch->getMaxLen();
actionStitch->setMaxLen(oldMaxLen);
oldMaxLen = tmpMaxLen;
active = true;
}
///////// actionSetStitchThread ///////////////
OE_actionSetStitchThread::OE_actionSetStitchThread(OE_stitchs* stitch, OE_thread * thread)
if (document&&stitch)
{
actionStitch = stitch;
oldThread = actionStitch->getThread();
actionStitch->setThread(thread);
}
OE_actionSetStitchThread::~OE_actionSetStitchThread()
void OE_actionSetStitchThread::undo()
if (active)
{
OE_thread * tmpThread = actionStitch->getThread();
actionStitch->setThread(oldThread);
oldThread = tmpThread;
active = false;
}
void OE_actionSetStitchThread::redo()
if (!active)
{
OE_thread * tmpThread = actionStitch->getThread();
actionStitch->setThread(oldThread);
oldThread = tmpThread;
active = true;
}