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
AgeCommit message (Collapse)Author
2015-09-25Bunch of minor cleanupJulian Eisel
2015-09-25Initial support for custom keymaps per widget groupJulian Eisel
This adds widget-group level, configurable keymaps. This means, for each widget group (e.g. Manipulator Widgets, Camera Widgets, etc), 6 keymap entries are added: * Widget Activate (action-mouse down) * Widget Activate (actually deactivate - action-mouse up) * Widget Tweak (mouse move) * Widget Tweak Cancel (RMB) * Widget Tweak Cancel (esc) * Widget Select (only for selectable widgets - select-mouse) This might be useful e.g. to set certain widgets to activate on tweak event only to resove conflicts (see manipulator vs. selection with LMB-select conflict), and for things like setting a widget values using shortcuts (not yet possible, but easy to add now). Further, this greatly improves the IMHO current ugliest part of the widget backend, the event system part/hack :P \o/ One remaining issue is that the keymap items only appear using search, they are not displayed in the keymap editor list by default (didn't investigate yet). Old functionality was ported over to new system, everything should work fine still.
2015-09-22Support selecting widgets and use for facemap widgetsJulian Eisel
This means widgets flagged as selectable - like facemap widgets - can be selected using RMB (currently hard-coded). This means they stay visible until they are deselected by pressing RMB again, or by selecting a different facemap.
2015-08-24Fix wrongly allocated memory, cleanupJulian Eisel
Renamed 'draw' callback to 'create' callback as it doesn't draw anything, instead it initializes and sets up data.
2015-08-20Merge branch 'master' into wiggly-widgetsJulian Eisel
2015-08-19Final 'FileBrowser First Stage' merge.Bastien Montagne
It basically rewrites most of filelist.c, with some more limited changes in other areas of filebrowser. From user perspective, it: * Removes some info in 'long' drawing mode (owner, permissions) - OS-specific data that do not really matter in Blender! * Makes short/long display 'fixed' size (among four choices, like thumbnails mode). * Allows to list several layers of dirtree at once, in a flat way (inside .blend files and/or real directories). * Consequently, adds datablocks types filtering. * Uses way less RAM when listing big directories, especially in thumbnail mode (we are talking of several hundred of MiB spared). * Generates thumbnails way faster. From code perspective, it: * Is ready for asset engine needs (on data structure level in filebrowser's listing). * Simplifies and makes 'generic' file listing much lighter. * Separates file listing in three different aspects: ** 'generic' filelisting (in BLI), which becomes a shallow wrapper around stat struct. ** 'filebrowser drawing' filelisting, which only contains current visible subset of the whole list (sliding window), with extra drawing data (strings for size, date/time, preview, etc.). ** 'asset-ready' filelisting, which is used for operations common to 'basic' filehandling and future asset-related one. * Uses uuid's to handle file selection/state in the browser, instead of using flags in filelisting items. * Uses much lighter BLI_task handling for previews, instead of heavy 'job' system (using the new 'notifier' timer to handle UI refresh, in similar way to jobs). * Moves .blend datablocks preview handling to IMB_thumbnail (necessary to avoid storing all datablock previews at once, and gives better consistency and performances too). Revision: https://developer.blender.org/D1316 Thanks to Campbell & Sergey for the reviews. :)
2015-08-16Register each widget with a unique id-nameJulian Eisel
Needed so we can reliably compare widgets after freeing (for next commit).
2015-05-09Merge branch 'master' into wiggly-widgetsJulian Eisel
Conflicts: source/blender/blenloader/intern/versioning_270.c source/blender/editors/space_sequencer/sequencer_draw.c source/blender/editors/space_view3d/view3d_edit.c
2015-04-27Cleanup: rename GRAB_POINTER -> GRAB_CURSORCampbell Barton
Term pointer is overloaded already.
2015-04-19Merge branch 'master' into wiggly-widgetsJulian Eisel
2015-04-15Cleanup: use const for event->tablet_dataCampbell Barton
2015-04-07Merge branch 'master' into wiggly-widgetsJulian Eisel
2015-04-07Revert Sticky Keys (and everything related to that)Julian Eisel
Our current keymap doesn't give us enough room to make such changes in the event system. To fix small issues caused by this, we would need to do drastic changes in Blender's keymaps and internal handling. It was worth a try, but it didn't work. I can write down a more descriptive statement in a few days, but for now I need a break of this stuff.
2015-04-03Merge branch 'master' into wiggly-widgetsJulian Eisel
2015-04-03Sticky Keys backendJulian Eisel
Design task: T42339 Differential Revision: D840 Initial implementation proposal: T41867 Short description: With this we can distinguish between holding and tabbing a key. Useful is this if we want to assign to operators to a single shortcut. If two operators are assigned to one shortcut, we call this a sticky key. More info is accessible through the design task and the diff. A few people that were involved with this: * Sean Olson for stressing me with this burden ;) - It is his enthusiasm that pushed me forward to get this done * Campbell and Antony for the code and design review * Ton for the design review * All the other people that gave feedback on the patch and helped to make this possible A big "Thank You" for you all!
2015-03-30Merge branch 'master' into wiggly-widgetsDalai Felinto
Conflicts: source/blender/editors/include/ED_transform.h source/blender/gpu/intern/gpu_buffers.c
2015-03-28Cleanup: redundant struct declarationsCampbell Barton
2015-03-09Merge branch 'master' into wiggly-widgetsAntony Riakiotakis
Conflicts: source/blender/blenloader/intern/versioning_270.c source/blender/editors/include/ED_view3d.h source/blender/editors/space_sequencer/sequencer_draw.c source/blender/editors/space_view3d/view3d_draw.c source/blender/makesdna/DNA_view3d_types.h
2015-02-14cleanup: doxy commentsCampbell Barton
2015-02-05Merge branch 'master' into wiggly-widgetsAntony Riakiotakis
Conflicts: source/blender/blenloader/intern/versioning_270.c source/blender/editors/object/object_intern.h source/blender/editors/object/object_ops.c source/blender/editors/space_sequencer/sequencer_draw.c source/blender/editors/space_view3d/view3d_draw.c source/blender/makesdna/DNA_customdata_types.h source/blender/makesrna/intern/rna_object.c
2015-01-19WM: add a notifier for camera/viewport optionsCampbell Barton
Added so viewport options only used in a camera view wont cause all 3d-views to redraw.
2015-01-06Event System Cleanup: Modifier Key Assignment Switchjulianeisel
Was quite messy previously, think this is much more readable and easier to follow.
2014-12-11Merge branch 'master' into wiggly-widgetsAntony Riakiotakis
Conflicts: source/blender/makesrna/intern/rna_space.c source/blender/windowmanager/WM_api.h source/blender/windowmanager/intern/wm_event_system.c
2014-12-10Yet more refactoring:Antony Riakiotakis
Areas support more than one widgetmap - will be useful to partition area in different transform regions like data, pixel, 3D (will be done in a separate refactor). Also get rid of the context widget hack in favour of adding the widgetmap handler to the operator handler itself, so handling will be unified when the widget controls a property or spawns an operator
2014-12-10Add back idnames to the widgetmaps, we could well need to define bothAntony Riakiotakis
for different transform areas.
2014-12-09Big refactor commit.Antony Riakiotakis
* Minor cleanup - propname does not need to be stored anymore. * Code to support modal widgetmap registration for operators - still untested, but will be tested soon on sequencer cage widget * Widgets take parameters to initialize property slots that are used for feedback or control. Cage now uses this to feed offset/scale to different properties. * Initialize common properties during widget registration.
2014-12-08Cleanup: remove unused operator-type memberCampbell Barton
2014-12-07Input Method Editor (IME) support for text buttonsSeverin
Original patch by @random (D765) with some minor work done by @campbell and me. At this place, I'd like call out a number of people who were involved and deserve a big "Thank you!": * At the first place @randon who developed and submitted the patch * The Blendercn community which helped a lot with testing - espacially * @yuzukyo, @leon_cheung and @kjym3 * @campbellbarton, @mont29 and @sergey for their help and advises during * review * @ton who realized the importance of this early on and asked me for * reviewing We are still not finished, as this is only the first part of the implementaion, but there's more to come!
2014-12-06Initial Python API for WidgetsCampbell Barton
Note this is only the initial Python API structure & isn't usable in its current state. Work by Psy-fi & myself.
2014-12-06Widget API: remove unused identifier memberCampbell Barton
also comment some of the code.
2014-12-03Merge branch 'master' into wiggly-widgetsAntony Riakiotakis
Conflicts: source/blender/blenkernel/BKE_context.h source/blender/editors/include/ED_transform.h source/blender/editors/transform/transform_ops.c
2014-11-30Grease Pencil - Storyboarding Features (merge from GPencil_EditStrokes branch)Joshua Leung
This merge-commit brings in a number of new features and workflow/UI improvements for working with Grease Pencil. While these were originally targetted at improving the workflow for creating 3D storyboards in Blender using the Grease Pencil, many of these changes should also prove useful in other workflows too. The main highlights here are: 1) It is now possible to edit Grease Pencil strokes - Use D Tab, or toggle the "Enable Editing" toggles in the Toolbar/Properties regions to enter "Stroke Edit Mode". In this mode, many common editing tools will operate on Grease Pencil stroke points instead. - Tools implemented include Select, Select All/Border/Circle/Linked/More/Less, Grab, Rotate, Scale, Bend, Shear, To Sphere, Mirror, Duplicate, Delete. - Proportional Editing works when using the transform tools 2) Grease Pencil stroke settings can now be animated NOTE: Currently drivers don't work, but if time allows, this may still be added before the release. 3) Strokes can be drawn with "filled" interiors, using a separate set of colour/opacity settings to the ones used for the lines themselves. This makes use of OpenGL filled polys, which has the limitation of only being able to fill convex shapes. Some artifacts may be visible on concave shapes (e.g. pacman's mouth will be overdrawn) 4) "Volumetric Strokes" - An alternative drawing technique for stroke drawing has been added which draws strokes as a series of screen-aligned discs. While this was originally a partial experimental technique at getting better quality 3D lines, the effects possible using this technique were interesting enough to warrant making this a dedicated feature. Best results when partial opacity and large stroke widths are used. 5) Improved Onion Skinning Support - Different colours can be selected for the before/after ghosts. To do so, enable the "colour wheel" toggle beside the Onion Skinning toggle, and set the colours accordingly. - Different numbers of ghosts can be shown before/after the current frame 6) Grease Pencil datablocks are now attached to the scene by default instead of the active object. - For a long time, the object-attachment has proved to be quite problematic for users to keep track of. Now that this is done at scene level, it is easier for most users to use. - An exception for old files (and for any addons which may benefit from object attachment instead), is that if the active object has a Grease Pencil datablock, that will be used instead. - It is not currently possible to choose object-attachment from the UI, but it is simple to do this from the console instead, by doing: context.active_object.grease_pencil = bpy.data.grease_pencil["blah"] 7) Various UI Cleanups - The layers UI has been cleaned up to use a list instead of the nested-panels design. Apart from saving space, this is also much nicer to look at now. - The UI code is now all defined in Python. To support this, it has been necessary to add some new context properties to make it easier to access these settings. e.g. "gpencil_data" for the datablock "active_gpencil_layer" and "active_gpencil_frame" for active data, "editable_gpencil_strokes" for the strokes that can be edited - The "stroke placement/alignment" settings (previously "Drawing Settings" at the bottom of the Grease Pencil panel in the Properties Region) is now located in the toolbar. These were more toolsettings than properties for how GPencil got drawn. - "Use Sketching Sessions" has been renamed "Continuous Drawing", as per a suggestion for an earlier discussion on developer.blender.org - By default, the painting operator will wait for a mouse button to be pressed before it starts creating the stroke. This is to make it easier to include this operator in various toolbars/menus/etc. To get it immediately starting (as when you hold down DKEy to draw), set "wait_for_input" to False. - GPencil Layers can be rearranged in the "Grease Pencil" mode of the Action Editor - Toolbar panels have been added to all the other editors which support these. 8) Pie menus for quick-access to tools A set of experimental pie menus has been included for quick access to many tools and settings. It is not necessary to use these to get things done, but they have been designed to help make certain common tasks easier. - Ctrl-D = The main pie menu. Reveals tools in a context sensitive and spatially stable manner. - D Q = "Quick Settings" pie. This allows quick access to the active layer's settings. Notably, colours, thickness, and turning onion skinning on/off.
2014-10-15More API reorganizationAntony Riakiotakis
2014-10-15WIP commit, basically introducing a few things here:Antony Riakiotakis
* highlighted vs active widget. Active widget takes all input and basically highjacks drawing of all other widgets in the widgetmap. * operator names for widgets. Now widgets will spawn operators based on names that are passed on them. They will also modify a named property of the operator and pass it on, after which operator can process it.
2014-10-13Implement non-3D drawing per widget.Antony Riakiotakis
Basically, 3D widgets stay the same size whatever the zoom is in 3D view. Ported over from manipulator code.
2014-10-08ManipulatorGroup customdata.Antony Riakiotakis
Make WidgetGroup data private.
2014-10-07WIP redesign of the system. Nothing functional (not even manipulator).Antony Riakiotakis
There is first code for display of an arrow widget. The manipulator will use those when they are ready. Basically the manipulator is now a WidgetGroup. WidgetGroups are a new entity and they manage a group of related widgets. They should be responsible for state update, drawing and polling of their widgets and can be bound to specific rules. There is a big design plan on a whiteboard beside me, it will take a few big commits still to take shape though. One thing at a time, I am first making reusable arrow widgets that will allow us replace the translate widgets properly. There are a few reusable widgets planned, more to come later.
2014-10-03Lamp widget:Antony Riakiotakis
* Make a lamp widget design for the active lamp. * Fix some handler errors for widgets + autoupdate for different widget handles.
2014-10-01Highlighting for manipulator widget.Antony Riakiotakis
This should use an "active" system, similar to buttons to detect if last widget has changed and act accordingly. Currently, when the active widget changes, there is no change in highlights.
2014-10-01Widget API:Antony Riakiotakis
Code that handles 3D object intersection via GPU selection. We might want to use raycasting here, but leaving that for when we have it. Manipulator code now uses this API to do intersection testing
2014-10-01Refactoring of manipulator code to use selection evaluation and codesAntony Riakiotakis
that can be shared with other widgets.
2014-09-30WIP code reshuffling for widgetsAntony Riakiotakis
2014-09-29Move manipulator handler to the widget system.Antony Riakiotakis
2014-09-19Widgets API.Antony Riakiotakis
This commit has first WIP code for widgets API. Generally widgets should be registered similar to dropboxes, that is, any code can query for a widgetmap for a certain space and area type and the window manager will take care of initializing the handlers automatically. The owner will be able remove and readd widgets to a certain widgetmap dynamically. Generally owners should cleanup their widgets though initial code cleans up leftover widgets automatically. All this is the theory still, some parts are in that commit, more to come later, but it's a solid base to build from for an initial commit.
2014-09-16Fix T41818: Missing refresh on Undo for nodes (mask example)Sergey Sharybin
Added a special notifier now NC_WM|ND_UNDO in order to deal with such cases and now compositor/image will refresh when undo happens. There are much more ways to fail compo to update the resul, like undoing while it's not visible and so, but as mont29 said -- let's at least fix obvious crap in the workflow.
2014-08-26CommentsCampbell Barton
2014-07-21GSOC 2013 paintAntony Riakiotakis
Yep, at last it's here! There are a few minor issues remaining but development can go on in master after discussion at blender institute. For full list of features see: http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.72/Painting Thanks to Sergey and Campbell for the extensive review and to the countless artists that have given their input and reported issues during development.
2014-06-03Code cleanup: use typedefs for ui handler functionsCampbell Barton
2014-04-01Code cleanup: remove TRUE/FALSE & WITH_BOOL_COMPAT defineCampbell Barton
2014-02-18NDOF: Fix for fly/walk mode ignoring axis invert optionsCampbell Barton