mirror of
https://github.com/aseprite/aseprite.git
synced 2025-03-10 01:13:49 +00:00
Replace document.site.layer preference with a layer_t
Now we save the previously selected layer of each document on its preferences using the browsable set of layers.
This commit is contained in:
parent
b4c63a82e1
commit
13e8840014
@ -228,7 +228,7 @@
|
||||
<document>
|
||||
<section id="site">
|
||||
<option id="frame" type="doc::frame_t" default="doc::frame_t(0)" />
|
||||
<option id="layer" type="doc::LayerIndex" />
|
||||
<option id="layer" type="doc::layer_t" default="doc::layer_t(0)" />
|
||||
</section>
|
||||
<section id="tiled">
|
||||
<option id="mode" type="filters::TiledMode" default="filters::TiledMode::NONE" migrate="Tools.Tiled" />
|
||||
|
@ -21,7 +21,7 @@
|
||||
#include "doc/brush_pattern.h"
|
||||
#include "doc/documents_observer.h"
|
||||
#include "doc/frame.h"
|
||||
#include "doc/layer_index.h"
|
||||
#include "doc/layer_list.h"
|
||||
#include "filters/tiled_mode.h"
|
||||
#include "gfx/rect.h"
|
||||
#include "render/onionskin_position.h"
|
||||
|
@ -186,12 +186,16 @@ Editor::Editor(Document* document, EditorFlags flags)
|
||||
base::Bind<void>(&Editor::onContextBarBrushChange, this));
|
||||
|
||||
// Restore last site in preferences
|
||||
frame_t preferredFrame = m_docPref.site.frame();
|
||||
Layer* preferredLayer = m_sprite->indexToLayer(m_docPref.site.layer());
|
||||
if (preferredFrame >= 0 && preferredFrame <= m_sprite->lastFrame())
|
||||
setFrame(preferredFrame);
|
||||
if (preferredLayer)
|
||||
setLayer(preferredLayer);
|
||||
{
|
||||
frame_t preferredFrame = m_docPref.site.frame();
|
||||
if (preferredFrame >= 0 && preferredFrame <= m_sprite->lastFrame())
|
||||
setFrame(preferredFrame);
|
||||
|
||||
LayerList layers = m_sprite->allBrowsableLayers();
|
||||
layer_t layerIndex = m_docPref.site.layer();
|
||||
if (layerIndex >= 0 && layerIndex <= int(layers.size()))
|
||||
setLayer(layers[layerIndex]);
|
||||
}
|
||||
|
||||
m_tiledConn = m_docPref.tiled.AfterChange.connect(base::Bind<void>(&Editor::invalidate, this));
|
||||
m_gridConn = m_docPref.grid.AfterChange.connect(base::Bind<void>(&Editor::invalidate, this));
|
||||
@ -211,8 +215,11 @@ Editor::Editor(Document* document, EditorFlags flags)
|
||||
Editor::~Editor()
|
||||
{
|
||||
if (m_document && m_sprite) {
|
||||
LayerList layers = m_sprite->allBrowsableLayers();
|
||||
layer_t layerIndex = doc::find_layer_index(layers, layer());
|
||||
|
||||
m_docPref.site.frame(frame());
|
||||
m_docPref.site.layer(m_sprite->layerToIndex(layer()));
|
||||
m_docPref.site.layer(layerIndex);
|
||||
}
|
||||
|
||||
m_observers.notifyDestroyEditor(this);
|
||||
|
Loading…
x
Reference in New Issue
Block a user