Commit Graph

1913 Commits

Author SHA1 Message Date
Bastien Montagne
284e59d608 Add the possibility to define the translation context for py rna classes (operators, panels and menus).
Thanks to Campell and Brecht for the reviews!
2013-03-15 14:32:29 +00:00
Campbell Barton
ffc8ecc587 use BLI_strncpy_rlen() rather then BLI_snprintf() when no formatting is needed.
also replace sprintf with strcpy when no formatting is done.
2013-03-14 10:39:18 +00:00
Brecht Van Lommel
a4c19c62bf WM: remove "No (valid) startup.blend found" message printed on startup, can be useful for debugging but hide it for normal usage. 2013-03-13 20:00:39 +00:00
Campbell Barton
aaa8a13c49 code cleanup: use const events for modal and invoke operators. 2013-03-13 09:03:46 +00:00
Campbell Barton
f6025018f5 change defaults for window state on X11 (yet again), after further discussion.
instead use a fixed size as a default, clamp by the desktop size and add some padding (to account for title bar and panel).
2013-03-12 14:55:52 +00:00
Irie Shinsuke
5792e77239 Patch [#34373] Use i18n monospace font in Text editor and Python console
This patch allows Blender to display i18n monospace font in the text
editor and the Python interactive console. Wide characters that occupy
multiple columns such as CJK characters can be displayed correctly.
Furthermore, wrapping, selection, suggestion, cursor drawing, and
syntax highlighting should work.

Also fixes a bug [#34543]: In Text Editor false color in comment on cyrillic

To estimate how many columns each character occupies, this patch uses
wcwidth.c written by Markus Kuhn and distributed under MIT-style license:

  http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c

wcwidth.c is stored in extern/wcwidth and used as a static library.

This patch adds new API to blenfont, blenlib and blenkernel:

BLF_get_unifont_mono()
BLF_free_unifont_mono()
BLF_draw_mono()
BLI_wcwidth()
BLI_wcswidth()
BLI_str_utf8_char_width()
BLI_str_utf8_char_width_safe()
txt_utf8_offset_to_column()
txt_utf8_column_to_offset()
2013-03-12 07:25:53 +00:00
Campbell Barton
f9f7070336 add STREQ macro (commonly used macro like CLAMP, MAX2, STRINGIFY). Use for some areas of the python api, bmesh. 2013-03-10 06:18:03 +00:00
Campbell Barton
7d585ed475 patch [#34103] check_for_dupid.patch
from Lawrence D'Oliveiro (ldo)

- more comments
- more uses of bool type
- define symbol for length of in_use array in check_for_dupid
2013-03-10 05:46:24 +00:00
Ton Roosendaal
85f15bb0ed Blender Anim player fixes:
- RGBA images (without alpha) now don't draw with alpha blending enabled
- Checkerboard backdrop for alpha images now shows on size of image
- Window always clears now, in very dark grey (so you can see black)
- On resizing window, the aspect of image is being kept, keeping the
  image always visible within the window frame
- Image now centers OK. 
- On pause, playback now halts (it was drawing same image all the time)
2013-03-09 14:57:06 +00:00
Campbell Barton
ddddb7bab1 code cleanup: favor braces when blocks have mixed brace use. 2013-03-09 03:46:30 +00:00
Ton Roosendaal
616a00950e Feature request:
Blender's anim player (blender -a) now allows drop of image or movie file.
It then restarts itself completely (close window, open new).
2013-03-08 13:03:04 +00:00
Sergey Sharybin
557b893dfd Border for compositor viewer node feature
This adds border option to compositor, which affects on
a backdrop and viewer nodes, which is useful for faster
previews and tweaks.

Final compositing still happens for the whole frame, but
if it'll be needed it's not so difficult to support it
as well.

To use border there's Ctrl-B shortcut in the compositor
editor, which i used to define region you want to restrict
compositing to. There's also "Viewer Border" option in
the N-panel in case you'll want to disable border
compositing.

Some areas could be cleaned a bit, like ideally it shall
not be viewer image clearing in viewer_border_update RNA
callback, but currently it's not so much clear how to
make it the same fast as simple memset and glue it
somehow to compositor. Will think of nicer solution a
bit later.
2013-03-07 17:47:30 +00:00
Campbell Barton
dfa8540cdf use bool for rna funcs. 2013-03-07 02:44:55 +00:00
Antony Riakiotakis
53b7bc8f1f Change !BLI_ghashIterator_isDone to BLI_ghashIterator_notDone. It is
always used in that context so we can at least avoid reverting it twice
:p.
2013-03-06 20:55:04 +00:00
Campbell Barton
e39f05e5fa patch [#34103] fileops_1.patch
from Lawrence D'Oliveiro (ldo) 

Add comments and use of bool type in fileops.c
2013-03-05 03:53:22 +00:00
Campbell Barton
f44b54d2a7 patch [#34103]
from Lawrence D'Oliveiro (ldo)

More use of bool type, necessitating adding inclusion of BLI_utildefines.h, or moving it up in the inclusion order if it was already included, in various places
- storage.c: make some variables only used in bli_builddir local to that
- storage.c: BLI_file_descriptor_size should allow 0 as a valid file descriptor
- path_util.c: make pointers to non-reentrant storage returned from folder routines const, necessitating making variables holding these returned pointers const elsewhere as well
- path_util.c: BLI_string_to_utf8 closes iconv context in case of conversion error
-  blf_lang.c: fill_locales routine now has its own "languages" local variable to construct paths (was stealing internal storage belonging to BLI_get_folder before)
2013-03-05 03:17:46 +00:00
Campbell Barton
0d5b028d43 patch [#34103] use boolean in path functions and add comments.
path_util_1.patch from Lawrence D'Oliveiro (ldo)
2013-03-04 19:27:51 +00:00
Ton Roosendaal
d1d01ed522 Bugfix
For 2.66a

Allow trackpad and magic mouse swipes to control brush size for circle select.
(Similar to mousewheel).
2013-03-04 17:06:16 +00:00
Campbell Barton
a02c8c4177 move toggle drag into a UI handler (was modal operator) 2013-03-03 03:29:57 +00:00
Bastien Montagne
1039135965 More UI messages fixes... 2013-02-28 15:31:20 +00:00
Sergey Sharybin
bad03bcfb1 Draw a checker board as a background for animation player
This makes it easier and useful to investigate alpha channels,
without this straight colors are displayed on the screen which
are completely useless in case of player.
2013-02-28 14:25:18 +00:00
Campbell Barton
4f982bf05a only apply workaround for [#33223] when using intel cards on windows. 2013-02-25 12:19:38 +00:00
Brecht Van Lommel
20220d47e3 Dependency Graph: some refactoring which should have no user visible impact
besides performance in some cases.

* DAG_scene_sort is now removed and replaced by DAG_relations_tag_update in
  most cases. This will clear the dependency graph, and only rebuild it right
  before it's needed again when the scene is re-evaluated.

  This is done because DAG_scene_sort is slow when called many times from
  python operators. Further the scene argument is not needed because most
  operations can potentially affect more than the current scene.

* DAG_scene_relations_update will now rebuild the dependency graph if it's not
  there yet, and DAG_scene_relations_rebuild will force a rebuild for the rare
  cases that need it.

* Remove various places where ob->recalc was set manually. This should go
  through DAG_id_tag_update() in nearly all cases instead since this is now
  a fast operation. Also removed DAG_ids_flush_update that goes along with
  such manual tagging of ob->recalc.
2013-02-21 19:33:04 +00:00
Sergey Sharybin
ba375ae699 Small correction to make strict compiler setup be happy 2013-02-19 13:41:58 +00:00
Brecht Van Lommel
e3b2df5806 Fix #34315: memory leak cancelling move to layer operator, after change to make
it not execute immediately when opening the popup.
2013-02-19 13:37:48 +00:00
Campbell Barton
0528162eb6 patch [#34320] Cross compiling with mingw-w64 on ubuntu
from Martijn Berger (juicyfruit)

applying since this is only corrects header case which is ignored on windows anyway.
2013-02-19 12:05:38 +00:00
Brecht Van Lommel
0aabcaca28 Fix #34285: sculpt/paint radial control F key operators did not adjust brush size
to retina pixel size correctly.
2013-02-17 14:53:29 +00:00
Bastien Montagne
c524b47912 Another huge bunch of UI translation fixes, mostly reported by Leon Cheung, Sv.Lockal, Gabriel Gazzán and Satoshi Yamasaki, thanks! 2013-02-17 13:56:49 +00:00
Campbell Barton
b948c31258 revert own commit r54450, this works on X11 but not in Windows and caused bug [#34255] (which may be a bug in windows ghost?, not getting key release for modifiers).
Cross platform modifier keys on activating window better be handled at ghost level anyway.
2013-02-15 13:30:30 +00:00
Campbell Barton
9449866bdc fix (for one case of...) [#33949] T_ALT_TRANSFORM conflicts with "emulate 3 button mouse"
ShrinkFatten operator now uses scale key to toggle 'Even thickness' option.
With the default keymap this is Alt+S,S.

Added functionality so the header print can get the key used for the modal keymap, some other operators should make use of this too.
2013-02-14 14:01:02 +00:00
Campbell Barton
9bd1e46b4a add missing NULL checks - could cause crashes in rare cases. 2013-02-14 01:01:08 +00:00
Ton Roosendaal
e672e7a070 Small tweak in event debug printing:
- missing print for case event gets handled AND passed on (selecting)
2013-02-12 19:08:04 +00:00
Brecht Van Lommel
e1419a5bea Fix #34126: report list memory leak when calling operator from python and the
operator context poll failing.
2013-02-12 16:04:58 +00:00
Campbell Barton
ddf1d987e5 fix for own commit r54482, PROP_DISTANCE was being checked for by radial control operator. now allow PROP_NONE and treat it as a distance. 2013-02-12 10:33:04 +00:00
Campbell Barton
c1ca09b8c8 replace MEM_callocN with MEM_mallocN for events since their overwritten right after. 2013-02-11 10:01:32 +00:00
Campbell Barton
7687109c59 fix for weight gradient crashing on redo (wasn't possible to redo this initially). 2013-02-11 06:58:38 +00:00
Campbell Barton
48f905d806 fix for modifier keys held before a window was activated being ignored. 2013-02-11 05:55:11 +00:00
Campbell Barton
2005f7c6c0 style cleanup: also some typos 2013-02-11 00:49:00 +00:00
Brecht Van Lommel
14a0ff90bc Fix a few DPI / retina draw issues:
* Color picker cursor was too small, and color cirle was not smooth enough.
* Border select gesture cross before first click did not reach to the border
  of the window.
* Buttons were not drawing emboss properly (also for non-retina actually).
  Note it doesn't draw entirely right for aligned buttons, but this was also
  the case before it got broken.
2013-02-10 18:03:01 +00:00
Campbell Barton
fd145b4df1 omit warning about startup.blend being missing when loading with '--factory-startup' 2013-02-09 13:58:37 +00:00
Campbell Barton
3a31e1ef27 start blender maximized on X11 - finding screen limits taking window borders, title bar, panels & multi-monitor is quite involved - without this size if often wrong.
For sizes outside the screen bounds many window managers will ignore the requested size.

Also opening maximized was default with 2.49.
2013-02-07 14:41:08 +00:00
Campbell Barton
518bfbb1c9 style cleanup 2013-02-02 04:58:03 +00:00
Campbell Barton
6341919354 code cleanup: make wmEvent's 'const' in interface code (reduces manual checking that they are not modified). 2013-02-01 01:01:20 +00:00
Campbell Barton
dbf54dacf7 Add Xinerama support for GHOST_GetMainDisplayDimensions() so X11 works as it should (previously would include all monitors).
Now the active monitor size is used on startup. 
Currently the cursor position is checked for intersection with the monitor bounds to find the active screen.
2013-01-31 11:05:09 +00:00
Campbell Barton
73f301c3a8 add ghost function getAllDisplayDimensions, GHOST_GetAllDisplayDimensions
This returns the desktop size, not just the size of the active monitor, useful since this constrains the mouse and we dont have to detect the active monitor (which isn't so straightforward with xlib).

carbon/cocoa are TODO, they still use getMainDisplayDimensions().
2013-01-31 10:42:26 +00:00
Campbell Barton
4d2efa877e start window non-maximized since this is more the default state for windows. (linux/win only) 2013-01-31 09:53:34 +00:00
Campbell Barton
29456505f3 fix/workaround [#34026] Blender starts with too large window
Minimal change to stop blender window opening across all monitors.

Workaround the problem by starting maximized, and using sane defaults for non maximized window.

I checked on a few different solutions to this, Using Xinerama works OK, but with different size monitors
and not knowing which one the window-manager will pick in advance - this can be wrong too.

Now instead of opening with the screen size, just start maximized and use a default size for the non-maximized window (clamped by the screen size).

This isn't perfect since you could have 2x monitors at 1024x768, open blender, un-maximize - and blender window would cross over into the second monitor.
2013-01-31 05:37:52 +00:00
Campbell Barton
54223ed05b Add active region for operator execution.
This means you can for example, uv unwrap in quad-view and change settings in the toolbar without defaulting back to the first quad-view region available. 

This may be displayed to the user later, for now this is set on executing registrable operators.
2013-01-30 12:22:02 +00:00
Dalai Felinto
236bc27484 Operators name "cleanup"
The operator names all show up in the Search button. As such is nicer if they
can all have the main words capitalized.

e.g. "Snap strips" should be "Snap Strips"
     "Copy to clipboard" should be "Copy to Clipboard"

This was done with a mix of bash tools, regex, and manual work because I'm too rushed into regex :)

+ fix bge stereo eye separation tooltip
2013-01-27 07:23:58 +00:00
Ton Roosendaal
13a4ad1a62 Bugfix #33989
Transparent region drawing and blend broke by commit 53919 5 days ago.
This commit reverts the change.

The claim in previous commit "edited code for readability" is quite
disputable :) The error is hard to notice even.

I also like to emphasize that people should check with owners for code
before committing changes! Cleaning code is first a job for maintainers.
2013-01-25 10:17:06 +00:00