[aseprite] 118/134: Add shortcut to toggle the visibility of active layer (fix #587)
Tobias Hansen
thansen at moszumanska.debian.org
Sat Mar 14 17:10:16 UTC 2015
This is an automated email from the git hooks/post-receive script.
thansen pushed a commit to branch master
in repository aseprite.
commit ce6dc3f790fdc28f860b5147bdb5f1f235a890e8
Author: David Capello <davidcapello at gmail.com>
Date: Thu Jan 29 10:32:19 2015 -0300
Add shortcut to toggle the visibility of active layer (fix #587)
---
data/gui.xml | 2 +
src/app/CMakeLists.txt | 1 +
src/app/commands/cmd_layer_visibility.cpp | 85 +++++++++++++++++++++++++++++++
src/app/commands/commands_list.h | 1 +
4 files changed, 89 insertions(+)
diff --git a/data/gui.xml b/data/gui.xml
index d1eeb06..e28ffb1 100644
--- a/data/gui.xml
+++ b/data/gui.xml
@@ -57,6 +57,7 @@
<key command="SpriteProperties" shortcut="Ctrl+P" mac="Cmd+P" />
<!-- Layer -->
<key command="LayerProperties" shortcut="Shift+P" />
+ <key command="LayerVisibility" shortcut="Shift+X" />
<key command="NewLayer" shortcut="Shift+N" />
<key command="GotoPreviousLayer" shortcut="Down" context="Normal" />
<key command="GotoNextLayer" shortcut="Up" context="Normal" />
@@ -496,6 +497,7 @@
</menu>
<menu text="&Layer">
<item command="LayerProperties" text="&Properties..." />
+ <item command="LayerVisibility" text="&Visible" />
<separator />
<item command="NewLayer" text="&New Layer" />
<item command="RemoveLayer" text="&Remove Layer" />
diff --git a/src/app/CMakeLists.txt b/src/app/CMakeLists.txt
index 9e7d050..a1e5a25 100644
--- a/src/app/CMakeLists.txt
+++ b/src/app/CMakeLists.txt
@@ -73,6 +73,7 @@ add_library(app-lib
commands/cmd_launch.cpp
commands/cmd_layer_from_background.cpp
commands/cmd_layer_properties.cpp
+ commands/cmd_layer_visibility.cpp
commands/cmd_load_mask.cpp
commands/cmd_load_palette.cpp
commands/cmd_mask_all.cpp
diff --git a/src/app/commands/cmd_layer_visibility.cpp b/src/app/commands/cmd_layer_visibility.cpp
new file mode 100644
index 0000000..1ac1657
--- /dev/null
+++ b/src/app/commands/cmd_layer_visibility.cpp
@@ -0,0 +1,85 @@
+/* Aseprite
+ * Copyright (C) 2001-2015 David Capello
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "base/bind.h"
+#include "ui/ui.h"
+
+#include "app/app.h"
+#include "app/commands/command.h"
+#include "app/context_access.h"
+#include "app/modules/gui.h"
+#include "raster/image.h"
+#include "raster/layer.h"
+
+#include "generated_layer_properties.h"
+
+namespace app {
+
+using namespace ui;
+
+class LayerVisibilityCommand : public Command {
+public:
+ LayerVisibilityCommand();
+ Command* clone() const override { return new LayerVisibilityCommand(*this); }
+
+protected:
+ bool onEnabled(Context* context) override;
+ bool onChecked(Context* context) override;
+ void onExecute(Context* context) override;
+};
+
+LayerVisibilityCommand::LayerVisibilityCommand()
+ : Command("LayerVisibility",
+ "Layer Visibility",
+ CmdRecordableFlag)
+{
+}
+
+bool LayerVisibilityCommand::onEnabled(Context* context)
+{
+ return context->checkFlags(ContextFlags::ActiveDocumentIsWritable |
+ ContextFlags::HasActiveLayer);
+}
+
+bool LayerVisibilityCommand::onChecked(Context* context)
+{
+ const ContextReader reader(context);
+ const Layer* layer = reader.layer();
+ return (layer && layer->isReadable());
+}
+
+void LayerVisibilityCommand::onExecute(Context* context)
+{
+ ContextWriter writer(context);
+ Layer* layer = writer.layer();
+
+ layer->setReadable(!layer->isReadable());
+
+ update_screen_for_document(writer.document());
+}
+
+Command* CommandFactory::createLayerVisibilityCommand()
+{
+ return new LayerVisibilityCommand;
+}
+
+} // namespace app
diff --git a/src/app/commands/commands_list.h b/src/app/commands/commands_list.h
index 0239692..cf62b3b 100644
--- a/src/app/commands/commands_list.h
+++ b/src/app/commands/commands_list.h
@@ -65,6 +65,7 @@ FOR_EACH_COMMAND(KeyboardShortcuts)
FOR_EACH_COMMAND(Launch)
FOR_EACH_COMMAND(LayerFromBackground)
FOR_EACH_COMMAND(LayerProperties)
+FOR_EACH_COMMAND(LayerVisibility)
FOR_EACH_COMMAND(LoadMask)
FOR_EACH_COMMAND(LoadPalette)
FOR_EACH_COMMAND(MakeUniqueEditor)
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/aseprite.git
More information about the Pkg-games-commits
mailing list