Add option to disable transforming multiple cels when we have only layers/frames selected on the Timeline

This commit is contained in:
David Capello 2019-09-11 14:01:50 -03:00
parent 492576de3c
commit 138cd2970c
5 changed files with 23 additions and 2 deletions

View File

@ -247,6 +247,7 @@
<option id="modify_selection_brush" type="BrushType" default="BrushType::CIRCLE" />
<option id="doubleclick_select_tile" type="bool" default="true" />
<option id="force_rotsprite" type="bool" default="false" />
<option id="multicel_when_layers_or_frames" type="bool" default="true" />
</section>
<section id="quantization">
<option id="with_alpha" type="bool" default="true" />

View File

@ -1055,6 +1055,14 @@ the selection when the mouse is inside it.
END
select_tile_with_double_click = Select a grid tile with double-click
force_rotsprite = Force RotSprite even for right/straight angles
multicel_when_layers_or_frames = Transform cels in selected layers or frames on timeline
multicel_when_layers_or_frames_tooltip = <<<END
When you transform the selection, all selected cels in the timeline
will be transformed. With this option if you select multiple layers or
frames, the transformation will be applied to all cels of the selected
layers/frames. Without this option, multiple cels will be transformed
only if you select multiple cels explicitly in the timeline.
END
autotimeline = Show timeline automatically
autotimeline_tooltip = <<<END
Show the timeline automatically

View File

@ -224,6 +224,9 @@
pref="selection.doubleclick_select_tile" />
<check text="@.force_rotsprite" id="force_rotsprite"
pref="selection.force_rotsprite"/>
<check text="@.multicel_when_layers_or_frames" id="multicel_when_layers_or_frames"
tooltip="@.multicel_when_layers_or_frames_tooltip"
pref="selection.multicel_when_layers_or_frames"/>
</vbox>
<!-- Timeline -->

View File

@ -172,6 +172,14 @@ PixelsMovement::PixelsMovement(
}
}
bool PixelsMovement::editMultipleCels() const
{
return
(m_site.range().enabled() &&
(Preferences::instance().selection.multicelWhenLayersOrFrames() ||
m_site.range().type() == DocRange::kCels));
}
void PixelsMovement::setFastMode(const bool fastMode)
{
bool redraw = (m_fastMode && !fastMode);
@ -977,7 +985,7 @@ CelList PixelsMovement::getEditableCels()
{
CelList cels;
if (m_site.range().enabled()) {
if (editMultipleCels()) {
cels = get_unlocked_unique_cels(
m_site.sprite(), m_site.range());
}
@ -1004,7 +1012,7 @@ CelList PixelsMovement::getEditableCels()
bool PixelsMovement::gotoFrame(const doc::frame_t deltaFrame)
{
if (m_site.range().enabled()) {
if (editMultipleCels()) {
Layer* layer = m_site.layer();
ASSERT(layer);

View File

@ -120,6 +120,7 @@ namespace app {
const Transformation& getTransformation() const { return m_currentData; }
private:
bool editMultipleCels() const;
void stampImage(bool finalStamp);
void stampExtraCelImage();
void onPivotChange();