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
2017-07-18Fix bad loss of precision when manually editing values in numbuttons.Bastien Montagne
While drawing nice 'rounded' values is OK also for 'low precision' editing like dragging and such, it's quite an issue when you type in a precise value, validate, edit again the value, and find a rounded version of it instead of what you typed in! So now, *only when entering textedit of num buttons*, we always get the highest reasonable precision for floats (and use exponential notation when values are too low or too high, to avoid tremendous amounts of zero's).
2017-05-05Revert "Add red alert in UI controls for datablock pointer properties"Julian Eisel
This reverts commit f5bc8ad4ce87165fc0648f1cd8c0ae1fb5f07281. We agreed there needs to be a better solution for this, see comments in rBf5bc8ad4ce87165.
2017-04-13Add red alert in UI controls for datablock pointer propertiesAlexander Romanov
2017-03-30Redraw parent popup when the child popup is closedraa
2016-11-28UI: Add 'x' icon to text buttons to clear contentJulian Eisel
This is useful e.g. for search buttons to quickly clear the filter string. We might want to make this optional for python scripts.
2016-09-21UI: Make button driver and keying set shortcuts configurableJulian Eisel
2016-09-19Various cleanups related to button lockingJulian Eisel
* Rename uiBut.lockstr to disabled_info * Remove unreachable code * Replace duplicated check with assert * Replace overly ambitious check with assert * Add comments
2016-09-19Cleanup: Completely replace/remove uiBut.lockJulian Eisel
Old leftover from pre 2.5 days. Now handled through UI_BUT_DISABLED button flag.
2016-07-28Fix T48951: Crash refreshing some popupsCampbell Barton
Fix for T48874 caused popups to be tagged to be refreshed, that didnt support it. Tag popups that can't be refreshed.
2016-03-26Driver Setup Workflow Improvement: Property EyedropperJoshua Leung
This commit brings some long requested improvements to the workflow for setting up drivers, which should make it easier and faster to set up new drivers in a more interactive fashion. The new workflow is as follows: 1) Hover over the property (e.g. "Lamp Energy" or "Y Location") or properties ("Rotation") you wish to add drivers to. We'll refer to this as the "destination" 2) Ctrl-D to active the new "Add Drivers" eyedropper 3) Click on the property you want to use as the source/target. The property under the mouse will be used to drive the property you invoked Ctrl-D on. For example, to drive the X, Y, and Z location of the Cube using the Y Location of the Lamp, hover over any of the X/Y/Z location buttons, hit Ctrl-D, then click on the Y-Location button of the Lamp object. Drivers will be added to the X, Y, and Z Location properties of the Cube; each driver will have a single variable, which uses the Y-Location Transform Channel of the Lamp. Tips: - Transform properties will automatically create "Transform Channel" driver variables. Everything else will use "Single Property" ones - Due to the way that Blender's UI Context works, you'll need two Properties Panel instances open (and to have pinned one of the two to show the properties for the unselected object). It's slightly clunky, but necessary for implementing a workflow like this, as the UI cannot be manipulated while using eyedroppers to pick data. - The eyedropper operator implemented here actually has three modes of operation. 1) The "1-N" (one to many) mode is the default used for Ctrl-D, and "Add Driver to All" in the RMB Menu. This is the behaviour described above. 2) There's also a "1-1" (one to one) mode that is used for the "Add Single Driver" in the RMB Menu. 3) Finally, there's the "N-N" mode (many to many), which isn't currently exposed. The point of this is to allow mapping XYZ to XYZ elementwise (i.e. direct copying) which is useful for things like locations, rotations, scaling, and colours. Implementation Notes: - The bulk of the driver adding logic is in editors/animation/drivers.c, where most of the Driver UI operators and tools are defined - The property eyedropper code is in interface_eyedropper.c along with all the other eyedroppers (even though they don't share much actual code in common). However, this turns out to be necessary, as we can't get access to many of the low-level buttons API's otherwise. Todo: - It may be necessary to restore a way to access the old behaviour (i.e. "manual setup") in case it is not practical to immediately pick a property. - Other things to investigate here include extra hotkeys (e.g. Ctrl-Shift-D for Add Single?), and to expose the N-N mode. - Other things we could try include interactively applying scaling factors, picking multiple targets (e.g. for location difference and rotation difference drivers), and/or other ways of using these property picking methods.
2016-03-22Fix T47830: Multi-edit w/ ui-list wont highlightCampbell Barton
Regression from 4d6b892.
2016-03-02UI: Show categories in operator search popupCampbell Barton
Gives better context especially when operators have generic names.
2016-03-02UI: Add search-create callbackCampbell Barton
Needed to support alternate search UI's, no functional changes.
2016-02-29User customizable keymap for eyedropper (modal operator)Julian Eisel
2016-02-23Fix button display clamping valuesCampbell Barton
Displaying a button would clamp the value if the button was outside the range. This could be OK in some cases, however it's problematic with object dimensions which would re-scale objects on showing the panel. Add `ui_but_update_edited` when its OK to modify the value.
2016-02-16Fix items in mode pie changing position by supporting more than 8 items in ↵Julian Eisel
operator-enum pies Now a 'More' item is added to the pie when there are too many items. It opens a sub-pie that contains the remaining items. Note that this only touches operator-enum pies (like the object mode pie is), it is not a complete support for pies with more than 8 items. For this further design and code work would be needed, but this is too urgent to wait for that. This is a better fix for T46973, should definitely be applied for 2.77 release. Patch D1800 by myself with some edits by @campbellbarton, thanks!
2016-02-02Fix T47256: Progress bar doesn't update w/ mouse-overCampbell Barton
2015-11-15UI: support cycling callback for non RNA menusCampbell Barton
2015-11-10Cleanup: move ui-selextend defines into headerCampbell Barton
2015-11-10UI: support editing >400 length text buttonsCampbell Barton
RNA could define strings as dynamically sized, but the interface ignored this and clamped them to UI_MAX_DRAW_STR. Fixes T46734, also fixes possible pasting non-utf8 text into utf8 buttons.
2015-11-07Cleanup: ui align headerCampbell Barton
2015-11-07Cleanup: spelling, headersCampbell Barton
2015-11-06New uialign code, based on 2D positions of widgets.Bastien Montagne
This new code fixes a tons of issues with previous one, which basically was epic-failing in many non-basic cases (especially mixed columns and rows with column-dominant layout). It basically no more relies over order of buttons declaration in the uiBlock, instead it finds and stores spatial neighbors and uses that data to compute needed stitching. See code comments for details. New code seems to be roughly ten times slower than old one (for complex grouped layouts), that is, about a few microsecconds per alignment group - this remains reasonable. Also, ui-align code becomming rather big in itself, it was separated in own new `interface_align.c` file. Reviewers: campbellbarton, severin Reviewed By: campbellbarton, severin Differential Revision: https://developer.blender.org/D1573
2015-10-16UI: expose UI_POPUP_MENU_TOP for use elsewhere.Campbell Barton
2015-09-15Fix T46113: Color picker erratic outside 0-1 rangeCampbell Barton
2015-09-05Fix T45944: Ctrl+Wheel to cycle values failes in toolshelfJulian Eisel
Now, ctrl+wheel for cycling tabs is passed to hovered button if it supports cycling values (RNA menus, color/row/number/slider buttons, list boxes) This might feel a bit glitchy if ctrl+wheel is used to cycle tabs and in newly opened tab, a button with cycling support is under the mouse, which will get mouse input from this point on instead of region. Think this is still better than old behavior.
2015-08-18UI: avoid subtracting shadow from winrctCampbell Barton
For popup interactions we need to know if events are in the region or not, however subtracting the shadow isn't so reliable, since its not always added to all sides of a popup. Instead, get the winrct value from a popup using the block rect, otherwise the winrct as-is.
2015-08-10UI drag&drop: make code able to free dragpoin if needed.Bastien Montagne
Only for image and strings for now. Needed for incomming filebrowser work.
2015-08-02parenthisize macro args to avoid errorsCampbell Barton
2015-05-11Expose PreviewImage & custom icons to py API.Bastien Montagne
This commit mainly: * Exposes PreviewImage struct in RNA, including ways for user to set images data. * Adds a new kind of PreviewImage, using a file path and IMB_thumb to get image. * Adds a new kind of custom icon using PreviewImage, unrelated to ID previews system. * Adds a python API (utils.previews) to allow python scripts to access those custom previews/icons. Note that loading image from files' thumbnails is done when needed (deferred loading), not when defining the custom preview/icon. WARNING: for release addons who would want to use this, please keep it to a strict minimum, really needed level. We do not want our UI to explode under hundreds of different flashy icons! For more info, see also the release notes of Blender 2.75 (http://wiki.blender.org/index.php/Dev:Ref/Release_Notes/2.75/Addons) and the example/templates featured with Blender. Patch by Campbell (ideasman42), Inês (brita) and Bastien (mont29). Differential Revision: https://developer.blender.org/D1255
2015-05-04Cleanup: wrapped function indentationCampbell Barton
2015-04-21Add eyedropper for selecting object & obdataJulian Eisel
In addition to the unlink icon to clear a value, When cleared, show an eyedropper to select objects or object-data (was already available via the EKey).
2015-03-28Cleanup: redundant struct declarationsCampbell Barton
2015-03-26IME: Minor API cleanupSeverin
2015-02-11UI: add optional tip callback to uiBut, and use it for per-item tooltips in ↵Bastien Montagne
UIList. When defined, uiBut->tip_func is called when button's tip is generated. This allows for advanced, dynamic generation of tooltips. For now, only used by UIList, which can now optionaly use a given string property of each item for its tooltip. Thanks to Campbell for the reviews!
2015-01-21UI: support alt+wheel for expanded enumsCampbell Barton
2015-01-14UI: Eyedropper for view-depthCampbell Barton
Currently this is mainly useful for picking camera DOF depth. - EKey over a distance field prompts you to pick a depth from the camera. - WKey (Specials menu) to pick from the 3D view (when the active camera's selected).
2015-01-01cleanup: redundant casts & const cast correctnessCampbell 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-11-11UI: Cleanup, replace enum with functionCampbell Barton
2014-11-11UI Refactor T41640Campbell Barton
Make the UI API more consistent and reduce confusion with some naming. mainly: - API function calls - enum values some internal static functions have been left for now
2014-11-10Fix T42221: 'Shadow Width' influences tooltip sizeCampbell Barton
Positioning of popups was using shadow width for placement, could give some quite odd results.
2014-11-06Fix T42208 color pickers are coupled.Antony Riakiotakis
Decouple color picker hsv data from the whole block. Basically, each color picker now takes care of creating its own color picker role. For this bug report it can be seen that probably HSV is not the best space for gamma/lift/gain workflow because it is bounded at 1.0 but this is a separate issue.
2014-10-14Pie menus:Antony Riakiotakis
* Only use last key for pies if it hasn't been released already * Confirm threshold is now measured as distance after regular threshold. zero disables. * Only display the confirm threshold if there's a valid direction (mouse is after threshold). * Calculate confirm threshold taking recentering into account
2014-10-13Pie menus: Confirm thresholdAntony Riakiotakis
This commit adds a confirm threshold property to pie menus. Basically, this will confirm the pie menu automatically when the distance from the center of the pie exceeds that threshold without a need to release the pie button. The confirm threshold will only work if it is larger than the pie threshold. The confirmation actually occur when the mouse stops moving, to allow multiple pie menus to be better linked together, (see below) This functionality also facilitates the ability for chained pie menus by dragging. Basically, a pie menu item can be a call_menu_pie operator and the new pie menu will still use the original pie menu release event for confirmation. This should allow for quick, gesture based navigation in pie menu hierarchies (going back in the hierarchy is still not supported though) There will be a demonstration pie in the official add-on soon
2014-09-18Fix T41708, active palette indicator not refreshing when clickingAntony Riakiotakis
Issue, after a lot of blood sweat and tears, was found in ui_but_update_from_old_block, where we restore a button to its old values when possible. The problem here is that a1 and a2 are not really meant to store temporary variables, because they tend to get overriden and palette selection is one of those temporary states. Instead, we now store the position of each button in the palette in a2 and pointer to the palette in the customdata pointer of each button and use that to test if it's active. The positions won't change when clicking so we are guaranteed that the old button won't override the new one with garbage. It's still hacky but it is better than testing button types when copying old values.
2014-08-14Pie menus:Antony Riakiotakis
If user drags away from initial position, menu changes to drag style and returning to that position won't remake the menu click-style. Allows to use the threshold indicator to cancel the pie.
2014-08-14Deactivate last active button for pie menu popups.Antony Riakiotakis
2014-08-13Maybe slightly controversial pie commit:Antony Riakiotakis
Make pie menu item placement touch the radius from the internal side of the buttons rather than placing on the center on the cirtcle. This allows us to get rid of the separate visual angle property, also allows for tighter placement of pies with a smaller radius without easily overlapping. Also pie menu title now always appears above the threshold indicator.
2014-08-11Pie Menus C code backend.Antony Riakiotakis
This commit merges the code in the pie-menu branch. As per decisions taken the last few days, there are no pie menus included and there will be an official add-on including overrides of some keys with pie menus. However, people will now be able to use the new code in python. Full Documentation is in http://wiki.blender.org/index.php/Dev:Ref/ Thanks: Campbell Barton, Dalai Felinto and Ton Roosendaal for the code review and design comments Jonathan Williamson, Pawel Lyczkowski, Pablo Vazquez among others for suggestions during the development. Special Thanks to Sean Olson, for his support, suggestions, testing and merciless bugging so that I would finish the pie menu code. Without him we wouldn't be here. Also to the rest of the developers of the original python add-on, Patrick Moore and Dan Eicher and finally to Matt Ebb, who did the research and first implementation and whose code I used to get started.