[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [56203] trunk/blender: Footage information panel
Sergey Sharybin
sergey.vfx at gmail.com
Mon Apr 22 13:19:16 CEST 2013
Revision: 56203
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56203
Author: nazgul
Date: 2013-04-22 11:19:12 +0000 (Mon, 22 Apr 2013)
Log Message:
-----------
Footage information panel
Displays such information as current frame dimension,
frame number within image sequence/movie and in case
of image sequence input displays current file name of
a frame.
Not entirely happy with such approach, but was requested
a lot by artists.
Modified Paths:
--------------
trunk/blender/release/scripts/startup/bl_ui/space_clip.py
trunk/blender/source/blender/editors/include/UI_interface.h
trunk/blender/source/blender/editors/space_clip/clip_buttons.c
trunk/blender/source/blender/makesrna/intern/rna_ui_api.c
Modified: trunk/blender/release/scripts/startup/bl_ui/space_clip.py
===================================================================
--- trunk/blender/release/scripts/startup/bl_ui/space_clip.py 2013-04-22 10:46:01 UTC (rev 56202)
+++ trunk/blender/release/scripts/startup/bl_ui/space_clip.py 2013-04-22 11:19:12 UTC (rev 56203)
@@ -875,6 +875,22 @@
col.prop(clip, "frame_offset")
+class CLIP_PT_footage_info(CLIP_PT_clip_view_panel, Panel):
+ bl_space_type = 'CLIP_EDITOR'
+ bl_region_type = 'UI'
+ bl_label = "Footage Information"
+ bl_options = {'DEFAULT_CLOSED'}
+
+ def draw(self, context):
+ layout = self.layout
+
+ sc = context.space_data
+ clip = sc.clip
+
+ col = layout.column()
+ col.template_movieclip_information(sc, "clip", sc.clip_user)
+
+
class CLIP_PT_tools_clip(CLIP_PT_clip_view_panel, Panel):
bl_space_type = 'CLIP_EDITOR'
bl_region_type = 'TOOLS'
Modified: trunk/blender/source/blender/editors/include/UI_interface.h
===================================================================
--- trunk/blender/source/blender/editors/include/UI_interface.h 2013-04-22 10:46:01 UTC (rev 56202)
+++ trunk/blender/source/blender/editors/include/UI_interface.h 2013-04-22 11:19:12 UTC (rev 56203)
@@ -855,6 +855,7 @@
void uiTemplateMovieClip(struct uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, const char *propname, int compact);
void uiTemplateTrack(struct uiLayout *layout, struct PointerRNA *ptr, const char *propname);
void uiTemplateMarker(struct uiLayout *layout, struct PointerRNA *ptr, const char *propname, PointerRNA *userptr, PointerRNA *trackptr, int cmpact);
+void uiTemplateMovieclipInformation(struct uiLayout *layout, struct PointerRNA *ptr, const char *propname,struct PointerRNA *userptr);
void uiTemplateColorspaceSettings(struct uiLayout *layout, struct PointerRNA *ptr, const char *propname);
void uiTemplateColormanagedViewSettings(struct uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, const char *propname);
Modified: trunk/blender/source/blender/editors/space_clip/clip_buttons.c
===================================================================
--- trunk/blender/source/blender/editors/space_clip/clip_buttons.c 2013-04-22 10:46:01 UTC (rev 56202)
+++ trunk/blender/source/blender/editors/space_clip/clip_buttons.c 2013-04-22 11:19:12 UTC (rev 56203)
@@ -41,7 +41,9 @@
#include "BLI_math.h"
#include "BLI_utildefines.h"
#include "BLI_listbase.h"
+#include "BLI_path_util.h"
#include "BLI_rect.h"
+#include "BLI_string.h"
#include "BLF_translation.h"
@@ -482,3 +484,60 @@
uiBlockEndAlign(block);
}
}
+
+/********************* Footage Information Template ************************/
+
+void uiTemplateMovieclipInformation(uiLayout *layout, PointerRNA *ptr, const char *propname, PointerRNA *userptr)
+{
+ PropertyRNA *prop;
+ PointerRNA clipptr;
+ MovieClip *clip;
+ MovieClipUser *user;
+ uiLayout *col;
+ char str[1024];
+ int width, height, framenr;
+
+ if (!ptr->data)
+ return;
+
+ prop = RNA_struct_find_property(ptr, propname);
+ if (!prop) {
+ printf("%s: property not found: %s.%s\n",
+ __func__, RNA_struct_identifier(ptr->type), propname);
+ return;
+ }
+
+ if (RNA_property_type(prop) != PROP_POINTER) {
+ printf("%s: expected pointer property for %s.%s\n",
+ __func__, RNA_struct_identifier(ptr->type), propname);
+ return;
+ }
+
+ clipptr = RNA_property_pointer_get(ptr, prop);
+ clip = (MovieClip *)clipptr.data;
+ user = userptr->data;
+
+ col = uiLayoutColumn(layout, FALSE);
+
+ /* Display frame dimensions. */
+ BKE_movieclip_get_size(clip, user, &width, &height);
+ BLI_snprintf(str, sizeof(str), IFACE_("Size: %dx%d"), width, height);
+ uiItemL(col, str, ICON_NONE);
+
+ /* Display current frame number. */
+ framenr = BKE_movieclip_remap_scene_to_clip_frame(clip, user->framenr) + clip->frame_offset;
+ BLI_snprintf(str, sizeof(str), IFACE_("Frame: %d"), framenr);
+ uiItemL(col, str, ICON_NONE);
+
+ /* Display current file name if it's a sequence clip. */
+ if (clip->source == MCLIP_SRC_SEQUENCE) {
+ char filepath[FILE_MAX];
+ const char *file;
+
+ BKE_movieclip_filename_for_frame(clip, user, filepath);
+ file = BLI_last_slash(filepath);
+
+ BLI_snprintf(str, sizeof(str), IFACE_("File: %s"), file);
+ uiItemL(col, str, ICON_NONE);
+ }
+}
Modified: trunk/blender/source/blender/makesrna/intern/rna_ui_api.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_ui_api.c 2013-04-22 10:46:01 UTC (rev 56202)
+++ trunk/blender/source/blender/makesrna/intern/rna_ui_api.c 2013-04-22 11:19:12 UTC (rev 56203)
@@ -767,6 +767,12 @@
RNA_def_property_flag(parm, PROP_REQUIRED | PROP_RNAPTR | PROP_NEVER_NULL);
RNA_def_boolean(func, "compact", 0, "", "Use more compact layout");
+ func = RNA_def_function(srna, "template_movieclip_information", "uiTemplateMovieclipInformation");
+ RNA_def_function_ui_description(func, "Item. Movie clip information data.");
+ api_ui_item_rna_common(func);
+ parm = RNA_def_pointer(func, "clip_user", "MovieClipUser", "", "");
+ RNA_def_property_flag(parm, PROP_REQUIRED | PROP_RNAPTR | PROP_NEVER_NULL);
+
func = RNA_def_function(srna, "template_list", "uiTemplateList");
RNA_def_function_ui_description(func, "Item. A list widget to display data, e.g. vertexgroups.");
RNA_def_function_flag(func, FUNC_USE_CONTEXT);
More information about the Bf-blender-cvs
mailing list