Krita Source Code Documentation
Loading...
Searching...
No Matches
KisImageAnimSettingCommand.cpp
Go to the documentation of this file.
1
/*
2
* SPDX-FileCopyrightText: 2025 Emmet O 'Neill <emmetoneill.pdx@gmail.com>
3
*
4
* SPDX-License-Identifier: GPL-2.0-or-later
5
*/
6
7
#include "
KisImageAnimSettingCommand.h
"
8
9
#include "
kis_command_ids.h
"
10
#include "
kis_time_span.h
"
11
12
KisImageAnimSettingCommand::KisImageAnimSettingCommand
(
KisImageAnimationInterface
*
const
p_animInterface,
Settings
p_after,
KUndo2Command
*parent)
13
:
KUndo2Command
(
kundo2_i18n
(
"Update Animation Settings"
), parent),
14
m_animInterface(p_animInterface),
15
m_after(p_after)
16
{
17
m_before
= {
18
p_animInterface->
framerate
(),
19
p_animInterface->
documentPlaybackRange
().
start
(),
20
p_animInterface->
documentPlaybackRange
().
end
()
21
};
22
}
23
24
void
KisImageAnimSettingCommand::redo
()
25
{
26
// SET image animation settings to after values..
27
KIS_ASSERT
(
m_animInterface
);
28
29
KUndo2Command::redo
();
30
31
m_animInterface
->
setFramerate
(
m_after
.
FPS
);
32
m_animInterface
->
setDocumentRange
(
KisTimeSpan::fromTimeToTime
(
m_after
.
startFrame
,
m_after
.
endFrame
));
33
}
34
35
void
KisImageAnimSettingCommand::undo
()
36
{
37
// RESET image animation settings back to before values..
38
KIS_ASSERT
(
m_animInterface
);
39
40
KUndo2Command::undo
();
41
42
m_animInterface
->
setFramerate
(
m_before
.
FPS
);
43
m_animInterface
->
setDocumentRange
(
KisTimeSpan::fromTimeToTime
(
m_before
.
startFrame
,
m_before
.
endFrame
));
44
}
45
46
int
KisImageAnimSettingCommand::id
()
const
47
{
48
return
KisCommandUtils::ImageAnimSettingCommandId
;
49
}
50
51
bool
KisImageAnimSettingCommand::canMergeWith
(
const
KUndo2Command
*p_other)
const
52
{
53
const
KisImageAnimSettingCommand
*other =
dynamic_cast<
const
KisImageAnimSettingCommand
*
>
(p_other);
54
55
return
other !=
nullptr
;
56
}
57
58
bool
KisImageAnimSettingCommand::mergeWith
(
const
KUndo2Command
*p_next)
59
{
60
const
KisImageAnimSettingCommand
*next =
dynamic_cast<
const
KisImageAnimSettingCommand
*
>
(p_next);
61
62
if
(!next)
return
false
;
63
64
m_after
= next->m_after;
65
66
return
true
;
67
}
KisImageAnimSettingCommand.h
KUndo2Command
Definition
kundo2stack.h:87
KUndo2Command::undo
virtual void undo()
Definition
kundo2stack.cpp:240
KUndo2Command::redo
virtual void redo()
Definition
kundo2stack.cpp:222
KisImageAnimSettingCommand
Definition
KisImageAnimSettingCommand.h:19
KisImageAnimSettingCommand::m_animInterface
KisImageAnimationInterface * m_animInterface
Definition
KisImageAnimSettingCommand.h:41
KisImageAnimSettingCommand::redo
void redo() override
Definition
KisImageAnimSettingCommand.cpp:24
KisImageAnimSettingCommand::m_after
Settings m_after
Definition
KisImageAnimSettingCommand.h:44
KisImageAnimSettingCommand::KisImageAnimSettingCommand
KisImageAnimSettingCommand()=delete
KisImageAnimSettingCommand::mergeWith
bool mergeWith(const KUndo2Command *p_next) override
Definition
KisImageAnimSettingCommand.cpp:58
KisImageAnimSettingCommand::m_before
Settings m_before
Definition
KisImageAnimSettingCommand.h:43
KisImageAnimSettingCommand::canMergeWith
bool canMergeWith(const KUndo2Command *command) const override
Definition
KisImageAnimSettingCommand.cpp:51
KisImageAnimSettingCommand::undo
void undo() override
Definition
KisImageAnimSettingCommand.cpp:35
KisImageAnimSettingCommand::id
int id() const override
Definition
KisImageAnimSettingCommand.cpp:46
KisImageAnimationInterface
Definition
kis_image_animation_interface.h:28
KisImageAnimationInterface::setDocumentRange
void setDocumentRange(const KisTimeSpan range)
Definition
kis_image_animation_interface.cpp:150
KisImageAnimationInterface::setFramerate
void setFramerate(int fps)
Definition
kis_image_animation_interface.cpp:226
KisImageAnimationInterface::documentPlaybackRange
const KisTimeSpan & documentPlaybackRange() const
documentPlaybackRange
Definition
kis_image_animation_interface.cpp:145
KisImageAnimationInterface::framerate
int framerate() const
Definition
kis_image_animation_interface.cpp:181
KisTimeSpan::start
int start() const
Definition
kis_time_span.h:35
KisTimeSpan::end
int end() const
Definition
kis_time_span.h:39
KisTimeSpan::fromTimeToTime
static KisTimeSpan fromTimeToTime(int start, int end)
Definition
kis_time_span.h:88
KIS_ASSERT
#define KIS_ASSERT(cond)
Definition
kis_assert.h:33
kis_command_ids.h
kis_time_span.h
kundo2_i18n
KUndo2MagicString kundo2_i18n(const char *text)
Definition
kundo2magicstring.h:180
KisCommandUtils::ImageAnimSettingCommandId
@ ImageAnimSettingCommandId
Definition
kis_command_ids.h:45
KisImageAnimSettingCommand::Settings
Definition
KisImageAnimSettingCommand.h:21
KisImageAnimSettingCommand::Settings::FPS
int FPS
Definition
KisImageAnimSettingCommand.h:22
KisImageAnimSettingCommand::Settings::endFrame
int endFrame
Definition
KisImageAnimSettingCommand.h:24
KisImageAnimSettingCommand::Settings::startFrame
int startFrame
Definition
KisImageAnimSettingCommand.h:23
libs
image
commands_new
KisImageAnimSettingCommand.cpp
Generated at
2025-11-04 02:30:02+01:00
from
Krita
branch
master
, commit
c9dde2e79561a8aea4a7e8d9ac99c98a7bac9e52