Amaranth Addon
[blender-addons-contrib.git] / amaranth / prefs.py
1 #  This program is free software; you can redistribute it and/or
2 #  modify it under the terms of the GNU General Public License
3 #  as published by the Free Software Foundation; either version 2
4 #  of the License, or (at your option) any later version.
5 #
6 #  This program is distributed in the hope that it will be useful,
7 #  but WITHOUT ANY WARRANTY; without even the implied warranty of
8 #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
9 #  GNU General Public License for more details.
10 #
11 #  You should have received a copy of the GNU General Public License
12 #  along with this program; if not, write to the Free Software Foundation,
13 #  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
14
15 import bpy
16
17
18 class AmaranthToolsetPreferences(bpy.types.AddonPreferences):
19     bl_idname = "amaranth"
20     use_frame_current = bpy.props.BoolProperty(
21         name="Current Frame Slider",
22         description="Set the current frame from the Specials menu in the 3D View",
23         default=True,
24     )
25     use_file_save_reload = bpy.props.BoolProperty(
26         name="Save & Reload File",
27         description="File menu > Save & Reload, or Ctrl + Shift + W",
28         default=True,
29     )
30
31     use_scene_refresh = bpy.props.BoolProperty(
32         name="Refresh Scene",
33         description="Specials Menu [W], or hit F5",
34         default=True,
35     )
36     use_timeline_extra_info = bpy.props.BoolProperty(
37         name="Timeline Extra Info",
38         description="Timeline Header",
39         default=True,
40     )
41     use_image_node_display = bpy.props.BoolProperty(
42         name="Active Image Node in Editor",
43         description="Display active node image in image editor",
44         default=True,
45     )
46     use_scene_stats = bpy.props.BoolProperty(
47         name="Extra Scene Statistics",
48         description="Display extra scene statistics in Info header (may be slow in heavy scenes)",
49         default=False,
50     )
51
52     frames_jump = bpy.props.IntProperty(
53         name="Frames",
54         description="Number of frames to jump forward/backward",
55         default=10,
56         min=1)
57
58     use_framerate = bpy.props.BoolProperty(
59         name="Framerate Jump",
60         description="Jump the amount of frames forward/backward that you have set as your framerate",
61         default=False,
62     )
63
64     use_layers_for_render = bpy.props.BoolProperty(
65         name="Current Layers for Render",
66         description="Save the layers that should be enabled for render",
67         default=True,
68     )
69
70     def draw(self, context):
71         layout = self.layout
72
73         layout.label(
74             text="Here you can enable or disable specific tools, "
75                  "in case they interfere with others or are just plain annoying")
76
77         split = layout.split(percentage=0.25)
78
79         col = split.column()
80         sub = col.column(align=True)
81         sub.label(text="3D View", icon="VIEW3D")
82         sub.prop(self, "use_frame_current")
83         sub.prop(self, "use_scene_refresh")
84
85         sub.separator()
86
87         sub.label(text="General", icon="SCENE_DATA")
88         sub.prop(self, "use_file_save_reload")
89         sub.prop(self, "use_timeline_extra_info")
90         sub.prop(self, "use_scene_stats")
91         sub.prop(self, "use_layers_for_render")
92         sub.prop(self, "use_framerate")
93
94         sub.separator()
95
96         sub.label(text="Nodes Editor", icon="NODETREE")
97         sub.prop(self, "use_image_node_display")
98
99         col = split.column()
100         sub = col.column(align=True)
101         sub.label(text="")
102         sub.label(
103             text="Set the current frame from the Specials menu in the 3D View [W]")
104         sub.label(
105             text="Refresh the current Scene. Hotkey: F5 or in Specials menu [W]")
106
107         sub.separator()
108         sub.label(text="")  # General icon
109         sub.label(
110             text="Quickly save and reload the current file (no warning!). "
111                  "File menu or Ctrl+Shift+W")
112         sub.label(
113             text="SMPTE Timecode and frames left/ahead on Timeline's header")
114         sub.label(
115             text="Display extra stats for Scenes, Cameras, Meshlights (Cycles). Can be slow in heavy scenes")
116         sub.label(
117             text="Save the set of layers that should be activated for a final render")
118         sub.label(
119             text="Jump the amount of frames forward/backward that you've set as your framerate")
120
121         sub.separator()
122         sub.label(text="")  # Nodes
123         sub.label(
124             text="When double-clicking an Image node, display it on the Image editor "
125                  "(if any)")
126
127
128 def register():
129     bpy.utils.register_class(AmaranthToolsetPreferences)
130
131
132 def unregister():
133     bpy.utils.unregister_class(AmaranthToolsetPreferences)