~ubuntu-branches/ubuntu/trusty/blender/trusty-proposed

« back to all changes in this revision

Viewing changes to release/scripts/startup/bl_ui/space_image.py

  • Committer: Package Import Robot
  • Author(s): Matteo F. Vescovi
  • Date: 2013-08-14 10:43:49 UTC
  • mfrom: (14.2.19 sid)
  • Revision ID: package-import@ubuntu.com-20130814104349-t1d5mtwkphp12dyj
Tags: 2.68a-3
* Upload to unstable
* debian/: python3.3 Depends simplified
  - debian/control: python3.3 Depends dropped
    for blender-data package
  - 0001-blender_thumbnailer.patch refreshed
* debian/control: libavcodec b-dep versioning dropped

Show diffs side-by-side

added added

removed removed

Lines of Context:
19
19
# <pep8 compliant>
20
20
import bpy
21
21
from bpy.types import Header, Menu, Panel
22
 
from bl_ui.properties_paint_common import UnifiedPaintPanel, brush_texture_settings
 
22
from bl_ui.properties_paint_common import UnifiedPaintPanel, brush_texture_settings, brush_mask_texture_settings
23
23
from bpy.app.translations import pgettext_iface as iface_
24
24
 
25
25
 
50
50
        toolsettings = context.tool_settings
51
51
 
52
52
        show_uvedit = sima.show_uvedit
 
53
        show_render = sima.show_render
53
54
 
54
55
        layout.operator("image.properties", icon='MENU_PANEL')
55
56
        layout.operator("image.scopes", icon='MENU_PANEL')
83
84
 
84
85
        layout.separator()
85
86
 
 
87
        if show_render:
 
88
            layout.operator("image.cycle_render_slot", text="Render Slot Cycle Next")
 
89
            layout.operator("image.cycle_render_slot", text="Render Slot Cycle Previous").reverse = True
 
90
            layout.separator()
 
91
 
86
92
        layout.operator("screen.area_dupli")
87
93
        layout.operator("screen.screen_full_area")
88
94
 
100
106
 
101
107
        layout.operator("uv.select_all").action = 'TOGGLE'
102
108
        layout.operator("uv.select_all", text="Inverse").action = 'INVERT'
103
 
        layout.operator("uv.unlink_selected")
 
109
        layout.operator("uv.select_split")
104
110
 
105
111
        layout.separator()
106
112
 
109
115
 
110
116
        layout.separator()
111
117
 
 
118
        layout.operator("uv.select_less", text="Less")
 
119
        layout.operator("uv.select_more", text="More")
 
120
 
 
121
        layout.separator()
 
122
 
112
123
        layout.operator("uv.select_split")
113
124
 
114
125
 
372
383
 
373
384
            if show_uvedit:
374
385
                sub.menu("IMAGE_MT_select")
 
386
            if show_maskedit:
 
387
                sub.menu("MASK_MT_select")
375
388
 
376
389
            if ima and ima.is_dirty:
377
390
                sub.menu("IMAGE_MT_image", text="Image*")
380
393
 
381
394
            if show_uvedit:
382
395
                sub.menu("IMAGE_MT_uvs")
 
396
            if show_maskedit:
 
397
                sub.menu("MASK_MT_mask")
383
398
 
384
399
        layout.template_ID(sima, "image", new="image.new")
385
400
        if not show_render:
477
492
        split = layout.split()
478
493
 
479
494
        col = split.column()
480
 
 
481
495
        col.prop(ima, "use_animation")
482
496
        sub = col.column(align=True)
483
497
        sub.active = ima.use_animation
686
700
 
687
701
        if brush:
688
702
            col = layout.column()
689
 
            col.template_color_picker(brush, "color", value_slider=True)
690
 
            col.prop(brush, "color", text="")
 
703
 
 
704
            if brush.image_tool == 'DRAW' and brush.blend not in ('ERASE_ALPHA', 'ADD_ALPHA'):
 
705
                col.template_color_picker(brush, "color", value_slider=True)
 
706
                col.prop(brush, "color", text="")
691
707
 
692
708
            row = col.row(align=True)
693
709
            self.prop_unified_size(row, context, brush, "size", slider=True, text="Radius")
698
714
            self.prop_unified_strength(row, context, brush, "use_pressure_strength")
699
715
 
700
716
            row = col.row(align=True)
701
 
            row.prop(brush, "jitter", slider=True)
702
 
            row.prop(brush, "use_pressure_jitter", toggle=True, text="")
703
717
 
704
718
            col.prop(brush, "blend", text="Blend")
705
719
 
718
732
 
719
733
        toolsettings = context.tool_settings.image_paint
720
734
        brush = toolsettings.brush
 
735
        tex_slot = brush.texture_slot
721
736
 
722
737
        col = layout.column()
723
738
        col.template_ID_preview(brush, "texture", new="texture.new", rows=3, cols=8)
724
 
        
 
739
 
725
740
        brush_texture_settings(col, brush, 0)
726
741
 
 
742
        # use_texture_overlay and texture_overlay_alpha
 
743
        col = layout.column(align=True)
 
744
        col.active = brush.brush_capabilities.has_overlay
 
745
        col.label(text="Overlay:")
 
746
 
 
747
        row = col.row()
 
748
        if tex_slot.map_mode != 'STENCIL':
 
749
            if brush.use_primary_overlay:
 
750
                row.prop(brush, "use_primary_overlay", toggle=True, text="", icon='RESTRICT_VIEW_OFF')
 
751
            else:
 
752
                row.prop(brush, "use_primary_overlay", toggle=True, text="", icon='RESTRICT_VIEW_ON')
 
753
 
 
754
        sub = row.row()
 
755
        sub.prop(brush, "texture_overlay_alpha", text="Alpha")
 
756
        sub.prop(brush, "use_primary_overlay_override", toggle=True, text="", icon='BRUSH_DATA')
 
757
 
 
758
 
 
759
class IMAGE_PT_tools_mask_texture(BrushButtonsPanel, Panel):
 
760
    bl_label = "Texture Mask"
 
761
    bl_options = {'DEFAULT_CLOSED'}
 
762
 
 
763
    def draw(self, context):
 
764
        layout = self.layout
 
765
 
 
766
        brush = context.tool_settings.image_paint.brush
 
767
        tex_slot_alpha = brush.mask_texture_slot
 
768
 
 
769
        col = layout.column()
 
770
 
 
771
        col.template_ID_preview(brush, "mask_texture", new="texture.new", rows=3, cols=8)
 
772
 
 
773
        brush_mask_texture_settings(col, brush)
 
774
 
 
775
        col = layout.column(align=True)
 
776
        col.active = brush.brush_capabilities.has_overlay
 
777
        col.label(text="Overlay:")
 
778
 
 
779
        row = col.row()
 
780
        if tex_slot_alpha.map_mode != 'STENCIL':
 
781
            if brush.use_secondary_overlay:
 
782
                row.prop(brush, "use_secondary_overlay", toggle=True, text="", icon='RESTRICT_VIEW_OFF')
 
783
            else:
 
784
                row.prop(brush, "use_secondary_overlay", toggle=True, text="", icon='RESTRICT_VIEW_ON')
 
785
 
 
786
        sub = row.row()
 
787
        sub.prop(brush, "mask_overlay_alpha", text="Alpha")
 
788
        sub.prop(brush, "use_secondary_overlay_override", toggle=True, text="", icon='BRUSH_DATA')
 
789
 
727
790
 
728
791
class IMAGE_PT_tools_brush_tool(BrushButtonsPanel, Panel):
729
792
    bl_label = "Tool"
753
816
        toolsettings = context.tool_settings.image_paint
754
817
        brush = toolsettings.brush
755
818
 
756
 
        layout.prop(brush, "use_airbrush")
757
 
        row = layout.row()
758
 
        row.active = brush.use_airbrush
759
 
        row.prop(brush, "rate", slider=True)
760
 
 
761
 
        layout.prop(brush, "use_space")
762
 
        row = layout.row(align=True)
763
 
        row.active = brush.use_space
764
 
        row.prop(brush, "spacing", text="Distance", slider=True)
765
 
        row.prop(brush, "use_pressure_spacing", toggle=True, text="")
766
 
 
767
 
        layout.prop(brush, "use_wrap")
 
819
        col = layout.column()
 
820
        col.prop(toolsettings, "input_samples")
 
821
 
 
822
        col = layout.column()
 
823
 
 
824
        col.label(text="Stroke Method:")
 
825
 
 
826
        col.prop(brush, "stroke_method", text="")
 
827
 
 
828
        if brush.use_anchor:
 
829
            col.separator()
 
830
            col.prop(brush, "use_edge_to_edge", "Edge To Edge")
 
831
 
 
832
        if brush.use_airbrush:
 
833
            col.separator()
 
834
            col.prop(brush, "rate", text="Rate", slider=True)
 
835
 
 
836
        if brush.use_space:
 
837
            col.separator()
 
838
            row = col.row(align=True)
 
839
            row.active = brush.use_space
 
840
            row.prop(brush, "spacing", text="Spacing")
 
841
            row.prop(brush, "use_pressure_spacing", toggle=True, text="")
 
842
 
 
843
        col = layout.column()
 
844
        col.separator()
 
845
 
 
846
        col.prop(brush, "use_smooth_stroke")
 
847
 
 
848
        sub = col.column()
 
849
        sub.active = brush.use_smooth_stroke
 
850
        sub.prop(brush, "smooth_stroke_radius", text="Radius", slider=True)
 
851
        sub.prop(brush, "smooth_stroke_factor", text="Factor", slider=True)
 
852
 
 
853
        col.separator()
 
854
 
 
855
        row = col.row(align=True)
 
856
        if brush.use_relative_jitter:
 
857
            row.prop(brush, "use_relative_jitter", text="", icon='LOCKED')
 
858
            row.prop(brush, "jitter", slider=True)
 
859
        else:
 
860
            row.prop(brush, "use_relative_jitter", text="", icon='UNLOCKED')
 
861
            row.prop(brush, "jitter_absolute")
 
862
        row.prop(brush, "use_pressure_jitter", toggle=True, text="")
 
863
 
 
864
        col.prop(brush, "use_wrap")
768
865
 
769
866
 
770
867
class IMAGE_PT_paint_curve(BrushButtonsPanel, Panel):
788
885
        row.operator("brush.curve_preset", icon='NOCURVE', text="").shape = 'MAX'
789
886
 
790
887
 
 
888
class IMAGE_PT_tools_brush_appearance(BrushButtonsPanel, Panel):
 
889
    bl_label = "Appearance"
 
890
    bl_options = {'DEFAULT_CLOSED'}
 
891
 
 
892
    def draw(self, context):
 
893
        layout = self.layout
 
894
 
 
895
        toolsettings = context.tool_settings.image_paint
 
896
        brush = toolsettings.brush
 
897
 
 
898
        if brush is None:  # unlikely but can happen
 
899
            layout.label(text="Brush Unset")
 
900
            return
 
901
 
 
902
        col = layout.column()
 
903
        col.prop(toolsettings, "show_brush")
 
904
 
 
905
        col = col.column()
 
906
        col.prop(brush, "cursor_color_add", text="")
 
907
        col.active = toolsettings.show_brush
 
908
 
 
909
        layout.separator()
 
910
 
 
911
        col = layout.column(align=True)
 
912
        col.prop(brush, "use_custom_icon")
 
913
        if brush.use_custom_icon:
 
914
            col.prop(brush, "icon_filepath", text="")
 
915
 
 
916
 
791
917
class IMAGE_UV_sculpt_curve(Panel):
792
918
    bl_space_type = 'IMAGE_EDITOR'
793
919
    bl_region_type = 'UI'