GPencil D+W Pie: Don't show editing operators when not in editmode
authorJoshua Leung <aligorith@gmail.com>
Wed, 21 Sep 2016 03:06:39 +0000 (15:06 +1200)
committerSergey Sharybin <sergey.vfx@gmail.com>
Thu, 22 Sep 2016 09:07:37 +0000 (11:07 +0200)
These operators only operate on the selected strokes, but when not in editmode,
stroke vertices are not shown.

Safe for 2.78

release/scripts/startup/bl_ui/properties_grease_pencil_common.py

index e42f726..318ba64 100644 (file)
@@ -473,11 +473,13 @@ class GPENCIL_PIE_settings_palette(Menu):
         layout = self.layout
 
         pie = layout.menu_pie()
-        gpd = context.gpencil_data
+        gpd = context.gpencil_data
         gpl = context.active_gpencil_layer
         palcolor = context.active_gpencil_palettecolor
         brush = context.active_gpencil_brush
 
+        is_editmode = bool(gpd and gpd.use_stroke_edit_mode and context.editable_gpencil_strokes)
+
         # W - Stroke draw settings
         col = pie.column(align=True)
         if palcolor is not None:
@@ -510,32 +512,33 @@ class GPENCIL_PIE_settings_palette(Menu):
         row.prop(gpl, "hide")
         col.prop(gpl, "use_onion_skinning")
 
-        # NW - Move stroke Down
-        col = pie.column(align=True)
-        col.label("Arrange Strokes")
-        col.operator("gpencil.stroke_arrange", text="Send to Back").direction = 'BOTTOM'
-        col.operator("gpencil.stroke_arrange", text="Send Backward").direction = 'DOWN'
-
-        # NE - Move stroke Up
-        col = pie.column(align=True)
-        col.label("Arrange Strokes")
-        col.operator("gpencil.stroke_arrange", text="Bring to Front").direction = 'TOP'
-        col.operator("gpencil.stroke_arrange", text="Bring Forward").direction = 'UP'
-
-        # SW - Move stroke to color
-        col = pie.column(align=True)
-        col.operator("gpencil.stroke_change_color", text="Move to Color")
+        # NW/NE/SW/SE - These operators are only available in editmode
+        # as they require strokes to be selected to work
+        if is_editmode:
+            # NW - Move stroke Down
+            col = pie.column(align=True)
+            col.label("Arrange Strokes")
+            col.operator("gpencil.stroke_arrange", text="Send to Back").direction = 'BOTTOM'
+            col.operator("gpencil.stroke_arrange", text="Send Backward").direction = 'DOWN'
+
+            # NE - Move stroke Up
+            col = pie.column(align=True)
+            col.label("Arrange Strokes")
+            col.operator("gpencil.stroke_arrange", text="Bring to Front").direction = 'TOP'
+            col.operator("gpencil.stroke_arrange", text="Bring Forward").direction = 'UP'
+
+            # SW - Move stroke to color
+            col = pie.column(align=True)
+            col.operator("gpencil.stroke_change_color", text="Move to Color")
+
+            # SE - Join strokes
+            col = pie.column(align=True)
+            col.label("Join Strokes")
+            row = col.row()
+            row.operator("gpencil.stroke_join", text="Join").type = 'JOIN'
+            row.operator("gpencil.stroke_join", text="Join & Copy").type = 'JOINCOPY'
+            col.operator("gpencil.stroke_flip", text="Flip direction")
 
-        # SE - Join strokes
-        col = pie.column(align=True)
-        col.label("Join Strokes")
-        row = col.row()
-        row.operator("gpencil.stroke_join", text="Join").type = 'JOIN'
-        row.operator("gpencil.stroke_join", text="Join & Copy").type = 'JOINCOPY'
-        col.operator("gpencil.stroke_flip", text="Flip direction")
-
-        gpd = context.gpencil_data
-        if gpd:
             col.prop(gpd, "show_stroke_direction", text="Show drawing direction")