Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2012-10-20 20:48:48 +0400
committerTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2012-10-20 20:48:48 +0400
commit55015daa43f0ab45341e316abcf11f23c87b5ebe (patch)
tree3156892b6d807d9ba513d444adb870b0ae358e7a /source/blender/windowmanager
parent1fe70c07a008185c4e5925aff2c214c93ff396b7 (diff)
parenta9e2e2279780ec2fb58e6820b9cad95ba03f4cad (diff)
Merged changes in the trunk up to revision 51448.
Conflicts resolved: source/blender/blenkernel/CMakeLists.txt source/blender/blenloader/intern/readfile.c source/blender/editors/mesh/editmesh_tools.c source/blender/makesrna/intern/rna_main_api.c
Diffstat (limited to 'source/blender/windowmanager')
-rw-r--r--source/blender/windowmanager/CMakeLists.txt2
-rw-r--r--source/blender/windowmanager/WM_types.h12
-rw-r--r--source/blender/windowmanager/intern/wm_event_system.c15
-rw-r--r--source/blender/windowmanager/intern/wm_files.c24
-rw-r--r--source/blender/windowmanager/intern/wm_init_exit.c2
-rw-r--r--source/blender/windowmanager/intern/wm_operators.c24
-rw-r--r--source/blender/windowmanager/intern/wm_playanim.c47
-rw-r--r--source/blender/windowmanager/intern/wm_window.c6
8 files changed, 74 insertions, 58 deletions
diff --git a/source/blender/windowmanager/CMakeLists.txt b/source/blender/windowmanager/CMakeLists.txt
index dae0e9193c2..ffeb7aff6fa 100644
--- a/source/blender/windowmanager/CMakeLists.txt
+++ b/source/blender/windowmanager/CMakeLists.txt
@@ -29,6 +29,7 @@ set(INC
../blenkernel
../blenlib
../blenloader
+ ../compositor
../editors/include
../editors/io
../gpu
@@ -37,7 +38,6 @@ set(INC
../makesdna
../makesrna
../nodes
- ../compositor
../render/extern/include
../../gameengine/BlenderRoutines
../../../intern/elbeem/extern
diff --git a/source/blender/windowmanager/WM_types.h b/source/blender/windowmanager/WM_types.h
index 82bd37eb6cc..99d1c14059a 100644
--- a/source/blender/windowmanager/WM_types.h
+++ b/source/blender/windowmanager/WM_types.h
@@ -540,7 +540,11 @@ typedef struct wmOperatorType {
/* verify if the operator can be executed in the current context, note
* that the operator might still fail to execute even if this return true */
- int (*poll)(struct bContext *);
+ int (*poll)(struct bContext *)
+#ifdef __GNUC__
+ __attribute__((warn_unused_result))
+#endif
+ ;
/* optional panel for redo and repeat, autogenerated if not set */
void (*ui)(struct bContext *, struct wmOperator *);
@@ -564,7 +568,11 @@ typedef struct wmOperatorType {
/* only used for operators defined with python
* use to store pointers to python functions */
void *pyop_data;
- int (*pyop_poll)(struct bContext *, struct wmOperatorType *ot);
+ int (*pyop_poll)(struct bContext *, struct wmOperatorType *ot)
+#ifdef __GNUC__
+ __attribute__((warn_unused_result))
+#endif
+ ;
/* RNA integration */
ExtensionRNA ext;
diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c
index 2f238cd22e7..73950bdfa19 100644
--- a/source/blender/windowmanager/intern/wm_event_system.c
+++ b/source/blender/windowmanager/intern/wm_event_system.c
@@ -255,8 +255,12 @@ void wm_event_do_notifiers(bContext *C)
for (win = wm->windows.first; win; win = win->next) {
/* filter out notifiers */
- if (note->category == NC_SCREEN && note->reference && note->reference != win->screen) ;
- else if (note->category == NC_SCENE && note->reference && note->reference != win->screen->scene) ;
+ if (note->category == NC_SCREEN && note->reference && note->reference != win->screen) {
+ /* pass */
+ }
+ else if (note->category == NC_SCENE && note->reference && note->reference != win->screen->scene) {
+ /* pass */
+ }
else {
ScrArea *sa;
ARegion *ar;
@@ -883,8 +887,9 @@ static int wm_operator_invoke(bContext *C, wmOperatorType *ot, wmEvent *event,
wm_operator_reports(C, op, retval, (reports != NULL));
}
- if (retval & OPERATOR_HANDLED)
- ; /* do nothing, wm_operator_exec() has been called somewhere */
+ if (retval & OPERATOR_HANDLED) {
+ /* do nothing, wm_operator_exec() has been called somewhere */
+ }
else if (retval & OPERATOR_FINISHED) {
if (!is_nested_call) { /* not called by py script */
WM_operator_last_properties_store(op);
@@ -2919,7 +2924,7 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int U
event.keymodifier = 0;
/* if test_break set, it catches this. XXX Keep global for now? */
- if (event.type == ESCKEY)
+ if (event.type == ESCKEY && event.val == KM_PRESS)
G.is_break = TRUE;
wm_event_add(win, &event);
diff --git a/source/blender/windowmanager/intern/wm_files.c b/source/blender/windowmanager/intern/wm_files.c
index aab20e5849b..433c447bfd4 100644
--- a/source/blender/windowmanager/intern/wm_files.c
+++ b/source/blender/windowmanager/intern/wm_files.c
@@ -192,9 +192,12 @@ static void wm_window_match_do(bContext *C, ListBase *oldwmlist)
/* cases 1 and 2 */
if (oldwmlist->first == NULL) {
- if (G.main->wm.first) ; /* nothing todo */
- else
+ if (G.main->wm.first) {
+ /* nothing todo */
+ }
+ else {
wm_add_default(C);
+ }
}
else {
/* cases 3 and 4 */
@@ -450,9 +453,8 @@ void WM_file_read(bContext *C, const char *filepath, ReportList *reports)
if (sce->r.engine[0] &&
BLI_findstring(&R_engines, sce->r.engine, offsetof(RenderEngineType, idname)) == NULL)
{
- BKE_reportf(reports, RPT_WARNING,
- "Engine not available: '%s' for scene: %s, "
- "an addon may need to be installed or enabled",
+ BKE_reportf(reports, RPT_ERROR, "Engine '%s' not available for scene '%s' "
+ "(an addon may need to be installed or enabled)",
sce->r.engine, sce->id.name + 2);
}
}
@@ -465,17 +467,17 @@ void WM_file_read(bContext *C, const char *filepath, ReportList *reports)
else if (retval == BKE_READ_EXOTIC_OK_OTHER)
BKE_write_undo(C, "Import file");
else if (retval == BKE_READ_EXOTIC_FAIL_OPEN) {
- BKE_reportf(reports, RPT_ERROR, IFACE_("Can't read file: \"%s\", %s."), filepath,
- errno ? strerror(errno) : IFACE_("Unable to open the file"));
+ BKE_reportf(reports, RPT_ERROR, "Cannot read file '%s': %s", filepath,
+ errno ? strerror(errno) : TIP_("unable to open the file"));
}
else if (retval == BKE_READ_EXOTIC_FAIL_FORMAT) {
- BKE_reportf(reports, RPT_ERROR, IFACE_("File format is not supported in file: \"%s\"."), filepath);
+ BKE_reportf(reports, RPT_ERROR, "File format is not supported in file '%s'", filepath);
}
else if (retval == BKE_READ_EXOTIC_FAIL_PATH) {
- BKE_reportf(reports, RPT_ERROR, IFACE_("File path invalid: \"%s\"."), filepath);
+ BKE_reportf(reports, RPT_ERROR, "File path '%s' invalid", filepath);
}
else {
- BKE_reportf(reports, RPT_ERROR, IFACE_("Unknown error loading: \"%s\"."), filepath);
+ BKE_reportf(reports, RPT_ERROR, "Unknown error loading '%s'", filepath);
BLI_assert(!"invalid 'retval'");
}
@@ -791,7 +793,7 @@ int WM_file_write(bContext *C, const char *target, int fileflags, ReportList *re
/* send the OnSave event */
for (li = G.main->library.first; li; li = li->id.next) {
if (BLI_path_cmp(li->filepath, filepath) == 0) {
- BKE_reportf(reports, RPT_ERROR, "Can't overwrite used library '%.240s'", filepath);
+ BKE_reportf(reports, RPT_ERROR, "Cannot overwrite used library '%.240s'", filepath);
return -1;
}
}
diff --git a/source/blender/windowmanager/intern/wm_init_exit.c b/source/blender/windowmanager/intern/wm_init_exit.c
index 9bb3b2a0e69..658a13a8918 100644
--- a/source/blender/windowmanager/intern/wm_init_exit.c
+++ b/source/blender/windowmanager/intern/wm_init_exit.c
@@ -302,7 +302,7 @@ int WM_init_game(bContext *C)
else {
ReportTimerInfo *rti;
- BKE_report(&wm->reports, RPT_ERROR, "No valid 3D View found. Game auto start is not possible.");
+ BKE_report(&wm->reports, RPT_ERROR, "No valid 3D View found, game auto start is not possible");
/* After adding the report to the global list, reset the report timer. */
WM_event_remove_timer(wm, NULL, wm->reports.reporttimer);
diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c
index e4d6b3dd465..8c9d4861a9e 100644
--- a/source/blender/windowmanager/intern/wm_operators.c
+++ b/source/blender/windowmanager/intern/wm_operators.c
@@ -79,6 +79,7 @@
#include "BIF_glutil.h" /* for paint cursor */
#include "BLF_api.h"
+#include "IMB_colormanagement.h"
#include "IMB_imbuf_types.h"
#include "IMB_imbuf.h"
@@ -1161,7 +1162,7 @@ int WM_operator_props_popup(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
if ((op->type->flag & OPTYPE_REGISTER) == 0) {
BKE_reportf(op->reports, RPT_ERROR,
- "Operator '%s' does not have register enabled, incorrect invoke function.", op->type->idname);
+ "Operator '%s' does not have register enabled, incorrect invoke function", op->type->idname);
return OPERATOR_CANCELLED;
}
@@ -1192,11 +1193,12 @@ int WM_operator_redo_popup(bContext *C, wmOperator *op)
{
/* CTX_wm_reports(C) because operator is on stack, not active in event system */
if ((op->type->flag & OPTYPE_REGISTER) == 0) {
- BKE_reportf(CTX_wm_reports(C), RPT_ERROR, "Operator redo '%s' does not have register enabled, incorrect invoke function.", op->type->idname);
+ BKE_reportf(CTX_wm_reports(C), RPT_ERROR,
+ "Operator redo '%s' does not have register enabled, incorrect invoke function", op->type->idname);
return OPERATOR_CANCELLED;
}
if (op->type->poll && op->type->poll(C) == 0) {
- BKE_reportf(CTX_wm_reports(C), RPT_ERROR, "Operator redo '%s': wrong context.", op->type->idname);
+ BKE_reportf(CTX_wm_reports(C), RPT_ERROR, "Operator redo '%s': wrong context", op->type->idname);
return OPERATOR_CANCELLED;
}
@@ -1232,7 +1234,7 @@ static void WM_OT_debug_menu(wmOperatorType *ot)
ot->exec = wm_debug_menu_exec;
ot->poll = WM_operator_winactive;
- RNA_def_int(ot->srna, "debug_value", 0, -10000, 10000, "Debug Value", "", INT_MIN, INT_MAX);
+ RNA_def_int(ot->srna, "debug_value", 0, SHRT_MIN, SHRT_MAX, "Debug Value", "", -10000, 10000);
}
@@ -1838,6 +1840,7 @@ static int wm_link_append_exec(bContext *C, wmOperator *op)
/* mark all library linked objects to be updated */
recalc_all_library_objects(bmain);
+ IMB_colormanagement_check_file_config(bmain);
/* append, rather than linking */
if ((flag & FILE_LINK) == 0) {
@@ -3127,7 +3130,7 @@ static int radial_control_get_path(PointerRNA *ctx_ptr, wmOperator *op,
/* check flags */
if ((flags & RC_PROP_REQUIRE_BOOL) && (flags & RC_PROP_REQUIRE_FLOAT)) {
- BKE_reportf(op->reports, RPT_ERROR, "Property can't be both boolean and float");
+ BKE_report(op->reports, RPT_ERROR, "Property cannot be both boolean and float");
return 0;
}
@@ -3150,7 +3153,7 @@ static int radial_control_get_path(PointerRNA *ctx_ptr, wmOperator *op,
if (flags & RC_PROP_ALLOW_MISSING)
return 1;
else {
- BKE_reportf(op->reports, RPT_ERROR, "Couldn't resolve path %s", name);
+ BKE_reportf(op->reports, RPT_ERROR, "Could not resolve path '%s'", name);
return 0;
}
}
@@ -3163,8 +3166,7 @@ static int radial_control_get_path(PointerRNA *ctx_ptr, wmOperator *op,
((flags & RC_PROP_REQUIRE_FLOAT) && prop_type != PROP_FLOAT))
{
MEM_freeN(str);
- BKE_reportf(op->reports, RPT_ERROR,
- "Property from path %s is not a float", name);
+ BKE_reportf(op->reports, RPT_ERROR, "Property from path '%s' is not a float", name);
return 0;
}
}
@@ -3172,8 +3174,7 @@ static int radial_control_get_path(PointerRNA *ctx_ptr, wmOperator *op,
/* check property's array length */
if (*r_prop && (len = RNA_property_array_length(r_ptr, *r_prop)) != req_length) {
MEM_freeN(str);
- BKE_reportf(op->reports, RPT_ERROR,
- "Property from path %s has length %d instead of %d",
+ BKE_reportf(op->reports, RPT_ERROR, "Property from path '%s' has length %d instead of %d",
name, len, req_length);
return 0;
}
@@ -3241,8 +3242,7 @@ static int radial_control_get_properties(bContext *C, wmOperator *op)
else if (rc->image_id_ptr.data) {
/* extra check, pointer must be to an ID */
if (!RNA_struct_is_ID(rc->image_id_ptr.type)) {
- BKE_report(op->reports, RPT_ERROR,
- "Pointer from path image_id is not an ID");
+ BKE_report(op->reports, RPT_ERROR, "Pointer from path image_id is not an ID");
return 0;
}
}
diff --git a/source/blender/windowmanager/intern/wm_playanim.c b/source/blender/windowmanager/intern/wm_playanim.c
index 35cc1545c40..cf5bce568d5 100644
--- a/source/blender/windowmanager/intern/wm_playanim.c
+++ b/source/blender/windowmanager/intern/wm_playanim.c
@@ -89,6 +89,8 @@ typedef struct PlayState {
short stopped;
short go;
+ int fstep;
+
/* current picture */
struct PlayAnimPict *picture;
@@ -213,7 +215,6 @@ typedef struct PlayAnimPict {
static struct ListBase picsbase = {NULL, NULL};
static int fromdisk = FALSE;
-static int fstep = 1;
static float zoomx = 1.0, zoomy = 1.0;
static double ptottime = 0.0, swaptime = 0.04;
@@ -229,7 +230,7 @@ static int pupdate_time(void)
return (ptottime < 0);
}
-static void playanim_toscreen(PlayAnimPict *picture, struct ImBuf *ibuf, int fontid)
+static void playanim_toscreen(PlayAnimPict *picture, struct ImBuf *ibuf, int fontid, int fstep)
{
if (ibuf == NULL) {
@@ -287,7 +288,7 @@ static void build_pict_list(char *first, int totframes, int fstep, int fontid)
int pic;
ibuf = IMB_anim_absolute(anim, 0, IMB_TC_NONE, IMB_PROXY_NONE);
if (ibuf) {
- playanim_toscreen(NULL, ibuf, fontid);
+ playanim_toscreen(NULL, ibuf, fontid, fstep);
IMB_freeImBuf(ibuf);
}
@@ -390,7 +391,7 @@ static void build_pict_list(char *first, int totframes, int fstep, int fontid)
ibuf = IMB_loadiffname(picture->name, picture->IB_flags, NULL);
}
if (ibuf) {
- playanim_toscreen(picture, ibuf, fontid);
+ playanim_toscreen(picture, ibuf, fontid, fstep);
IMB_freeImBuf(ibuf);
}
pupdate_time();
@@ -446,34 +447,34 @@ static int ghost_event_proc(GHOST_EventHandle evt, GHOST_TUserDataPtr ps_void)
if (val) ps->pingpong = !ps->pingpong;
break;
case GHOST_kKeyNumpad1:
- if (val) swaptime = fstep / 60.0;
+ if (val) swaptime = ps->fstep / 60.0;
break;
case GHOST_kKeyNumpad2:
- if (val) swaptime = fstep / 50.0;
+ if (val) swaptime = ps->fstep / 50.0;
break;
case GHOST_kKeyNumpad3:
- if (val) swaptime = fstep / 30.0;
+ if (val) swaptime = ps->fstep / 30.0;
break;
case GHOST_kKeyNumpad4:
if (g_WS.qual & WS_QUAL_SHIFT)
- swaptime = fstep / 24.0;
+ swaptime = ps->fstep / 24.0;
else
- swaptime = fstep / 25.0;
+ swaptime = ps->fstep / 25.0;
break;
case GHOST_kKeyNumpad5:
- if (val) swaptime = fstep / 20.0;
+ if (val) swaptime = ps->fstep / 20.0;
break;
case GHOST_kKeyNumpad6:
- if (val) swaptime = fstep / 15.0;
+ if (val) swaptime = ps->fstep / 15.0;
break;
case GHOST_kKeyNumpad7:
- if (val) swaptime = fstep / 12.0;
+ if (val) swaptime = ps->fstep / 12.0;
break;
case GHOST_kKeyNumpad8:
- if (val) swaptime = fstep / 10.0;
+ if (val) swaptime = ps->fstep / 10.0;
break;
case GHOST_kKeyNumpad9:
- if (val) swaptime = fstep / 6.0;
+ if (val) swaptime = ps->fstep / 6.0;
break;
case GHOST_kKeyLeftArrow:
if (val) {
@@ -531,10 +532,10 @@ static int ghost_event_proc(GHOST_EventHandle evt, GHOST_TUserDataPtr ps_void)
if (val) {
if (g_WS.qual & WS_QUAL_SHIFT) {
if (ps->curframe_ibuf)
- printf(" Name: %s | Speed: %.2f frames/s\n", ps->curframe_ibuf->name, fstep / swaptime);
+ printf(" Name: %s | Speed: %.2f frames/s\n", ps->curframe_ibuf->name, ps->fstep / swaptime);
}
else {
- swaptime = fstep / 5.0;
+ swaptime = ps->fstep / 5.0;
}
}
break;
@@ -675,7 +676,7 @@ static int ghost_event_proc(GHOST_EventHandle evt, GHOST_TUserDataPtr ps_void)
glPixelZoom(zoomx, zoomy);
glEnable(GL_DITHER);
ptottime = 0.0;
- playanim_toscreen(ps->picture, ps->curframe_ibuf, ps->fontid);
+ playanim_toscreen(ps->picture, ps->curframe_ibuf, ps->fontid, ps->fstep);
break;
}
@@ -747,6 +748,8 @@ void WM_main_playanim(int argc, const char **argv)
ps.picture = NULL;
/* resetmap = FALSE */
+ ps.fstep = 1;
+
ps.fontid = -1;
while (argc > 1) {
@@ -794,8 +797,8 @@ void WM_main_playanim(int argc, const char **argv)
argv++;
break;
case 'j':
- fstep = MIN2(MAXFRAME, MAX2(1, atoi(argv[2])));
- swaptime *= fstep;
+ ps.fstep = MIN2(MAXFRAME, MAX2(1, atoi(argv[2])));
+ swaptime *= ps.fstep;
argc--;
argv++;
break;
@@ -894,11 +897,11 @@ void WM_main_playanim(int argc, const char **argv)
efra = MAXFRAME;
}
- build_pict_list(filepath, (efra - sfra) + 1, fstep, ps.fontid);
+ build_pict_list(filepath, (efra - sfra) + 1, ps.fstep, ps.fontid);
for (i = 2; i < argc; i++) {
BLI_strncpy(filepath, argv[i], sizeof(filepath));
- build_pict_list(filepath, (efra - sfra) + 1, fstep, ps.fontid);
+ build_pict_list(filepath, (efra - sfra) + 1, ps.fstep, ps.fontid);
}
IMB_freeImBuf(ibuf);
@@ -970,7 +973,7 @@ void WM_main_playanim(int argc, const char **argv)
while (pupdate_time()) PIL_sleep_ms(1);
ptottime -= swaptime;
- playanim_toscreen(ps.picture, ibuf, ps.fontid);
+ playanim_toscreen(ps.picture, ibuf, ps.fontid, ps.fstep);
} /* else deleten */
else {
printf("error: can't play this image type\n");
diff --git a/source/blender/windowmanager/intern/wm_window.c b/source/blender/windowmanager/intern/wm_window.c
index d0bed4e5965..44827302d7d 100644
--- a/source/blender/windowmanager/intern/wm_window.c
+++ b/source/blender/windowmanager/intern/wm_window.c
@@ -300,11 +300,9 @@ void wm_window_close(bContext *C, wmWindowManager *wm, wmWindow *win)
void wm_window_title(wmWindowManager *wm, wmWindow *win)
{
- /* handle the 'temp' window, only set title when not set before */
if (win->screen && win->screen->temp) {
- char *title = GHOST_GetTitle(win->ghostwin);
- if (title == NULL || title[0] == 0)
- GHOST_SetTitle(win->ghostwin, "Blender");
+ /* nothing to do for 'temp' windows,
+ * because WM_window_open_temp always sets window title */
}
else {