[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