Commit Graph

367 Commits

Author SHA1 Message Date
a02a4f0fc4 fix [#22007] Saving a read-only file on windows : no warning and temporary files left there
* small improvement to last commit: actually pass the error value from WM_write_file back to the operator and cancel the operator if not successful. This also preserves the indication that the file hasn't been saved in case of error.
2010-04-14 20:45:36 +00:00
72a73fc9fb fix [#22007] Saving a read-only file on windows : no warning and temporary files left there
* return OPERATOR_FINISHED from file save, so reports are not suppressed - this results in popup with the expected error in this case.
2010-04-14 20:27:45 +00:00
eb30a66aa6 Fix for crash using splash screen recent files.
Need to find a better method for menu refreshing..
2010-04-14 08:08:15 +00:00
486796ce31 * Interaction Presets
This adds a new presets menu in the splash screen and the Input section of
User Preferences to choose a preset interaction style, consisting of key configurations
and also other user preferences such as select mouse button, view rotation style, etc.
Currently, just 'Blender' and 'Maya' presets are included, hopefully we can have more
presets contributed (and maintained!) by the community.

It's best to keep these presets minimal to avoid too many key conflicts. In the Maya one
I changed the view manipulation key/mouse combos and also the transform 
manipulator keys, not much more than that.

To save an interaction preset, open the user preferences Input section, and press the 
[ + ] button next to the presets menu. It will save out a .py file containing any edited key 
maps and navigation preferences to the presets/interaction folder in your scripts folder.

---

Part of this commit changes the way that key maps are exported/displayed in 
preferences - now partial key configs are allowed. Previously it would export/import the 
entire key configuration, regardless of whether individual key maps were edited or not 
(which would make them more susceptible to conflicts in unexpected areas).

(note, in blender terminology, a key map is a category of key items, such as 
'Object Mode' or 'View 2d'.)

Now, the export and the UI display work in a similar way to how key maps are 
processed internally - Locally edited key maps (after pressing the 'Edit' button) are 
processed first, falling back to other key maps in the current key config, and then falling 
back to the default key config. So it's possible for a key config to only include a few 
key maps, and the rest just gets pulled from the default key config. The preferences 
UI display works like this too behind the scenes in deciding what to show users, 
however using it is just like it was before, the complexity is hidden.
2010-04-14 06:27:50 +00:00
23e6ada74f bugfix [#21929] linking in groups into a linked in scene is possible and those groups can't be deleted
- Disallow this and report a warning in the console when it happens.
 - File selector operators now report in the global report console.
 - Cleared some warnings.
2010-04-08 11:46:52 +00:00
93cc8eea45 Fix #21383: appending a group would also instance it by default, which
will give duplicate objects since the actual object are appended already,
so only enable this option by default for linking now.
2010-04-06 01:16:39 +00:00
4021db8af8 Added a new 'straight line' gesture type that can be used in any operator.
Use this for image editor Line Sample tool, rather than custom modal operator/
custom drawing.
2010-04-04 00:21:37 +00:00
7b98f6220b Bugfix #21853: Border zoom in the 2D-Views zooms out
* Fixed the way the operator was checking for what the user wanted when using the operator
* Added a few specific defines to a copy of the gesture border modal keymap (added one for zooming only) labelled 'In' and 'Out' which make this more useful than being hacked to use select and deselect
2010-04-02 03:52:44 +00:00
9a99b7d193 Fix [#21083] Collada exporter defaults to ".blend" extension...
Also added a filter category for COLLADA files to the file selector.
2010-03-29 08:33:35 +00:00
cb6d2685bd rna/py-api fix.
C functions and python used different argument order, this relied on mapping non-keyword arguments to 'REQUIRED' arguments but meant that you could not have an optional, non-keyword argument.

next commit will make order of arguments consistant (currently only changed order that rna wrapped).
(commit 27674 by Campbell from render25 branch)
2010-03-23 15:25:33 +00:00
1e9bf0cfdb spaces -> tabs, (4 spaces == 1 tab, only for white space preceding text) 2010-03-22 09:30:00 +00:00
74b3336107 rotate_m4 was using degrees rather then radians. 2010-03-22 00:14:56 +00:00
42ac4a3e7d Fix syntax for ID keyword. 2010-03-21 01:14:04 +00:00
66ccd94e3f patch #21680 from Richard Olsson
wm.invoke_props_dialog()

This is so python scripts can have popups which do not redo all the time.
2010-03-20 18:03:59 +00:00
3566400dc5 Removed the 'recover temp' option from the splash screen - the way the temp saving currently
works, it's mostly non-functional there (i.e. when you've just started the application).

It would be nice if blender could name the temp files in a special way so that it could actually
search through the temp folder and find the most recently saved temp file, but for now, I'll
just remove the option.
2010-03-18 07:05:20 +00:00
e3c746659e strip quites off buildinfo at startup (was doing this for splash screen and python api) 2010-03-14 17:18:36 +00:00
bd34be86bf Bugfix for [#21560] space bar in edit mode of bezier curves doesnt work
The wrong flag was used, OB_CURVE instead of OB_FONT.
2010-03-14 12:12:48 +00:00
1708ac0723 rename some functions to use easier to understand names.
'BLI_makestringcode' --> 'BLI_path_rel'
'BLI_convertstringcwd' --> 'BLI_path_cwd'
'BLI_convertstringframe' --> 'BLI_path_frame'
'BLI_convertstringframe_range' --> 'BLI_path_frame_range'
'BLI_make_cwdpath' --> 'BLI_path_cwd'
2010-03-09 17:36:23 +00:00
26272d4c58 added relative path option for image load and save, relative path option from the userprefs wasnt being used. 2010-03-09 16:57:24 +00:00
94d5b31b9d reproject operator, use to reproject edited renders back into textures.
- uses project paint options (UV bleed, normals, culling)
- bicubic interolation from the image
- multithraded

TODO.
project into multiple objects at once.
2010-03-05 18:19:32 +00:00
34857189bc fixes for auto script execution, changing the user preference also updates the global flag. 2010-02-27 12:34:49 +00:00
820570031e was using wrong global flag for python script disabling in recent commit. 2010-02-27 12:01:10 +00:00
15db857628 rename flag for auto script execution since scriptlinks are no more. 2010-02-27 01:47:46 +00:00
4e931482f4 option to set the blend file as from a 'Trusted Source' on load. 2010-02-27 01:27:22 +00:00
f696d57af7 Added a Recovery space in splash so new users don't panic when they
loose work (close by mistake or a crash)
2010-02-25 03:13:50 +00:00
55d0ae8ed9 - use search box for adding actions in the NLA
- use less complicated string conversion for saving keymaps
2010-02-23 19:32:32 +00:00
0e40d71fb0 [#21123] Refresh screen after applying click in WM_gesture_circle_modal()
patch from Sergey Sharybin (nazgul)
2010-02-12 15:33:32 +00:00
081c1205a3 correct fsf address 2010-02-12 13:34:04 +00:00
157a694607 - select active camera operator
- calling menu use exec rather then invoke
2010-02-11 21:17:05 +00:00
78faeb73b8 Operation Dot-Kill finished 2010-02-11 01:11:52 +00:00
148435b70a batch remove .'s used with RNA_def_struct_ui_text 2010-02-10 21:15:44 +00:00
bfdf6d139e Remove NO_CONTEXT flag from enum when copying operator properties to the operator itself. 2010-02-01 18:26:45 +00:00
aafe6e2d9c Renamed the FILE_OPEN option for the file browser to FILE_OPENFILE to cleanup compiler warnings about redefined definitions (mingw) 2010-01-31 23:07:32 +00:00
04991f0ab7 2.5: quick fix to make 10-timer menu appear again. It's a debug tool, is
allowed to show menus in end. But, report API doesn't have a type for this
yet... has been noted, and will be checked soon.
2010-01-31 18:06:50 +00:00
fb7878a2c2 PROP_ENUM_NO_CONTEXT flag for rna properties, forcing enum item functions to be passed a null context (to return non-contextual items).
This is set on keymap item operator properties and macro definition operator properties to make them non-contextual (since the context at definition time is most likely not the same then at execution time, it's better to have all options visible).

This removes some more errors in keymap export and import.

This commit also sanitize some enum item function, making sure they can cope with null context and have usable defaults in that case.
2010-01-27 21:19:39 +00:00
107f6cb269 - duplicate window crasheing when it was full screen
- keymap item was missing NULL check crash
- editmode object in inactive layer crash
2010-01-27 09:16:28 +00:00
904665f15b [#20728] "Export UV Layout" overwrites existing files (without feedback)
The 'save over' popup was only appearing based on a string comparison of the operator name ("Save"). Changed this to use a hidden operator property: "check_existing". Python operators must 
have this property for the file selector confirmation too.

This property can also be set to false, to prevent checking for existing files, useful in the File->Save menu item to prevent the dangerously missable confirmation popup.
2010-01-27 02:20:24 +00:00
b119ce5fcc Drag and drop 2.5 integration! Finally, slashdot regulars can use
Blender too now! :)

** Drag works as follows:

- drag-able items are defined by the standard interface ui toolkit
- each button can get this feature, via uiButSetDragXXX(but, ...).
  There are calls to define drag-able images, ID blocks, RNA paths, 
  file paths, and so on. By default you drag an icon, exceptionally 
  an ImBuf
- Drag items are registered centrally in the WM, it allows more drag 
  items simultaneous too, but not implemented

** Drop works as follows:

- On mouse release, and if drag items exist in the WM, it converts 
  the mouse event to an EVT_DROP type. This event then gets the full 
  drag info as customdata

- drop regions are defined with WM_dropbox_add(), similar to keymaps 
  you can make a "drop map" this way, which become 'drop map handlers' 
  in the queues.
- next to that the UI kit handles some common button types (like 
  accepting ID or names) to be catching a drop event too.

- Every "drop box" has two callbacks:
  - poll() = check if the event drag data is relevant for this box
  - copy() = fill in custom properties in the dropbox to initialize 
    an operator
- The dropbox handler then calls its standard Operator with its 
  dropbox properties.

** Currently implemented

Drag items:
- ID icons in browse buttons
- ID icons in context menu of properties region
- ID icons in outliner and rna viewer
- FileBrowser icons
- FileBrowser preview images

Drag-able icons are subtly visualized by making them brighter a bit 
on mouse-over. In case the icon is a button or UI element too (most 
cases), the drag-able feature will make the item react to 
mouse-release instead of mouse-press. 

Drop options:

- UI buttons: ID and text buttons (paste name)
- View3d: Object ID drop copies object
- View3d: Material ID drop assigns to object under cursor
- View3d: Image ID drop assigns to object UV texture under cursor
- Sequencer: Path drop will add either Image or Movie strip
- Image window: Path drop will open image


** Drag and drop Notes:

- Dropping into another Blender window (from same application) works 
too. I've added code that passes on mousemoves and clicks to other 
windows, without activating them though. This does make using multi-window
Blender a bit friendler.

- Dropping a file path to an image, is not the same as dropping an 
Image ID... keep this in mind. Sequencer for example wants paths to 
be dropped,  textures in 3d window wants an Image ID.

- Although drop boxes could be defined via Python, I suggest they're 
part of the UI and editor design (= how we want an editor to work), and 
not default offered configurable like keymaps. 

- At the moment only one item can be dragged at a time. This is for 
several reasons.... For one, Blender doesn't have a well defined 
uniform way to define "what is selected" (files, outliner items, etc). 
Secondly there's potential conflicts on what todo when you drop mixed 
drag sets on spots. All undefined stuff... nice for later.

- Example to bypass the above: a collection of images that form a strip, 
should be represented in filewindow as a single sequence anyway. 
This then will fit well and gets handled neatly by design.

- Another option to check is to allow multiple options per drop... it 
could show the operator as a sort of menu, allowing arrow or scrollwheel 
to choose. For time being I'd prefer to try to design a singular drop 
though, just offer only one drop action per data type on given spots.

- What does work already, but a tad slow, is to use a function that 
detects an object (type) under cursor, so a drag item's option can be 
further refined (like drop object on object = parent). (disabled)


** More notes

- Added saving for Region layouts (like split points for toolbar)

- Label buttons now handle mouse over

- File list: added full path entry for drop feature.

- Filesel bugfix: wm_operator_exec() got called there and fully handled, 
while WM event code tried same. Added new OPERATOR_HANDLED flag for this. 
Maybe python needs it too?

- Cocoa: added window move event, so multi-win setups work OK (didnt save).

- Interface_handlers.c: removed win->active

- Severe area copy bug: area handlers were not set to NULL

- Filesel bugfix: next/prev folder list was not copied on area copies

** Leftover todos

- Cocoa windows seem to hang on cases still... needs check
- Cocoa 'draw overlap' swap doesn't work
- Cocoa window loses focus permanently on using Spotlight
  (for these reasons, makefile building has Carbon as default atm)

- ListView templates in UI cannot become dragged yet, needs review... 
it consists of two overlapping UI elements, preventing handling icon clicks.

- There's already Ghost library code to handle dropping from OS 
into Blender window. I've noticed this code is unfinished for Macs, but 
seems to be complete for Windows. Needs test... currently, an external 
drop event will print in console when succesfully delivered to Blender's WM.
2010-01-26 18:18:21 +00:00
4efed23517 Use #include "BLI_math.h" instead of _USE_MATH_DEFINES to get M_PI defined. 2010-01-26 11:25:39 +00:00
e03bbf12c3 Assorted Bugfixes:
* Adding new Keying Set paths didn't initialise the id-type setting. Make this default to Object
* Fixed bad poll callbacks for Graph Editor operators working on keyframes, which were expecting F-Curves to be selected too to be eligible for editing. This was often too restrictive, resulting in nothing happening.
* Fixed error with default property for Debug Redraw-Timer Operator not being set. However, this operator is currently still no use, since the info popups are now disabled.
2010-01-26 10:29:10 +00:00
b400703403 Macro operator properties using property groups in groups (initial code by brecht).
Works correctly with menu, keymap definitions and keymap export/import.

Properties set in the macro definition overwrite those set by the user (there's no way to see that in the UI at this point).

MISSING: Python operator calling code to fill in the properties hierarchy.

Also contains some keymap export changes by Imran Syed (freakabcd on irc): the exported configuration will use the name of the file and the exported script will select the added configuration when ran.
2010-01-21 21:58:40 +00:00
5272991e8b generic operator menu was searching for "type" and using the first enum property if it wasnt found.
this is too arbitrary and could break if roperty order is changed.
store the property in the operator type that is to be used for menu and enum search func's.

python function for searching operator enums on invoke. (just need dynamic python enums now)
 wm.invoke_search_popup(self)
2010-01-15 22:40:33 +00:00
a4732eefa5 a new generic invoke function - WM_enum_search_invoke()
This can search operators enum property.

Make proxy menu could easily get too big. use the new search popup.
2010-01-15 17:23:16 +00:00
a3e461ce1b - player building again
- fix for compiler warnigns
- bpath reporting was incorrect
2010-01-11 10:48:41 +00:00
9d67c720d5 * Tweak for splash screen rev. info - dalai, does this look ok on your machine?
* Added very feint separator lines in menus
2010-01-11 01:26:16 +00:00
6a15ac70b6 [#20581] Lasso tool ends unexpectedly
Don't limit lasso to 1024 points, just realloc array with increased size when current limit is reached.

Also silence two stupid warnings.
2010-01-10 20:16:56 +00:00
d2b27d00ff Fix for clipped text in splash svn version string - I must have been working around an
extra space at the end of local revision version string.. weird!
2010-01-09 00:49:29 +00:00
1f1245a92a Remap Relative paths save option.
If you have a blend file and want to save in a new directory enabling this will save with the paths corrected relative to the new directory.
2010-01-08 17:50:55 +00:00
ceab17ee17 Fix for problems in previous commit when buildinfo wasn't enabled. 2010-01-08 06:05:42 +00:00
ce538a0694 Added the svn revision number to the splash screen (when buildinfo is
enabled). Also fixed cmake so buildinfo works.


Note to all:
** Please mention the revision number when making a bug report **
2010-01-08 05:51:51 +00:00