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
2021-10-21Cleanup: Use array as a parameter for event x/y functionsAaron Carlisle
This change simplifies the parameter list for these functions and reduces the chance of typos mixing up array indices. Missed in rB69102786047dccdcbaee0df6307a8c3364d28fe0
2021-10-21Cleanup: Use array as a parameter for event x/y functionsAaron Carlisle
This change simplifies the parameter list for these functions and reduces the chance of typos mixing up array indices. Reviewed By: campbellbarton Ref D12950
2021-10-20Cleanup: use an array for wmEvent cursor position variablesAaron Carlisle
Use arrays for wmEvent coordinates, this quiets warnings with GCC11. - `x, y` -> `xy`. - `prevx, prevy` -> `prev_xy`. - `prevclickx, prevclicky` -> `prev_click_xy`. There is still some cleanup such as using `copy_v2_v2_int()`, this can be done separately. Reviewed By: campbellbarton, Severin Ref D12901
2021-10-08UI: Add context menu support for tree-view itemsJulian Eisel
Tree-view items can now easily define their own context menu. This works by overriding the `ui::AbstractTreeViewItem::build_context_menu()` function. See the documentation: https://wiki.blender.org/wiki/Source/Interface/Views#Context_Menus Consistently with the Outliner and File Browser, the right-clicked item also gets activated. This makes sure the correct context is set for the operators and makes it clear to the user which item is operated on. An operator to rename the active item is also added, which is something you'd typically want to put in the context menu as well.
2021-09-30UI: Support easy dropping into/onto rows in new tree-view APIJulian Eisel
Adds an easy way to add drop support for tree-view rows. Most of the work is handled by the tree-view UI code. The tree items can simply override a few functions (`can_drop()`, `on_drop()`, `drop_tooltip()`) to implement their custom drop behavior. While dragging over a tree-view item that can be dropped into/onto, the item can show a custom and dynamic tooltip explaining what's gonna happen on drop. This isn't used yet, but will soon be for asset catalogs. See documentation here: https://wiki.blender.org/wiki/Source/Interface/Views#Further_Customizations
2021-09-23UI: Tree-View API for easy creation of tree UIsJulian Eisel
This follows three main targets: * Make creation of new tree UIs easy. * Groundwork to generalize tree UIs (so e.g. Outliner, animation channels, asset catalogs and spreadsheet data-sets don't have to re-implement basic tree UI code) or even other data-view UIs. * Better separate data and UI state. E.g. with this, tree-item selection or the open/collapsed state can be stored on the UI level, rather than in data. (Asset Catalogs need this, storing UI state info in them is not an option.) In addition, the design should be well testable and could even be exposed to Python. Note that things will likely change in master still. E.g. the actually resulting UI isn't very nice visually yet. The design is documented here: https://wiki.blender.org/wiki/Source/Interface/Views Differential Revision: https://developer.blender.org/D12573
2021-08-19UI: add function to access the buttons text without it's shortcutCampbell Barton
2021-07-15UI: Auto-scroll to keep active text buttons in viewJulian Eisel
If a text button is activated that is not in view (i.e. scrolled away), the scrolling will now be adjusted to have it in view (with some small additional margin). While entering text, the view may also be updated should the button move out of view, for whatever reason. For the most part, this feature shouldn't be needed and won't kick in, except when a clicked on text button is partially out of view or very close to the region edge. It's however quite important for the previously committed feature, that is, pressing Ctrl+F to start searching in a UI list. The end of the list where the scroll button appears may not be in view. Plus while filtering the number of visible items changes so the scrolling has to be updated to keep the search button visible. Note that I disabled the auto-scrolling for when the text button spawned an additional popup, like for search-box buttons. That is because current code assumes the button to have a fixed position while the popup is open. There is no code to update the popup position together with the button/scrolling. I also think that the logic added here could be used in more places, e.g. for the "ensure file in view" logic the File Browser does.
2021-07-15UI: Internal support for custom UI list item drag & activate operatorsJulian Eisel
For pose libraries, we need to be able to apply a pose whenever activating (clicking) an item in the Pose Library asset view and blend it by dragging (press & move). And since we want to allow Python scripts to define what happens at least when activating an asset (so they can define for example a custom "Apply" operator for preset assets), it makes sense to just let them pass an operator name to the asset view template. The template will be introduced in a following commit.
2021-07-03Cleanup: consistent use of tags: NOTE/TODO/FIXME/XXXCampbell Barton
Also use doxy style function reference `#` prefix chars when referencing identifiers.
2021-06-28Fix T89515: Clicking on Favorites in File Browser will rename themJulian Eisel
Likely uncovered by 6c97c7f767c9, the actual mistake would be from 6942dd9f4900. The hacks to display text buttons for renaming in UI-Lists used the emboss of the text button for handling logic. It relied on the emboss `NONE` but we also introduced `NONE_OR_STATUS` with 6942dd9f4900. Both values need to be treated equally for the logic of this hack to work. The change in `interface_layout.c` is actually not needed for this exact issue, but it's the correct thing to do. There may actually be more cases where `NONE` and `NONE_OR_STATUS` need to be treated equally. Something to be checked still.
2021-06-25Spreadsheet: Dataset region for spreadsheet editorFabian Schempp
This patch adds a left aligned sidebar to the spreadsheet editor. This Sidebar can be used to navigate the geometry component types and attribute domains. It also provides a quick overview of domain sizes. It replaces the two dropdowns in the regions header. Next step will be to add the domain cycling shortcut using the CTRL + mouse wheel. Reviewer: Dalai Felinto (dfelinto), Julian Eisel (Severin), Hans Goudey (HooglyBoogly). Differential Revision: https://developer.blender.org/D11046
2021-03-24Cleanup: Use const in region queriesJulian Eisel
2020-11-19Fix T82833: GreasePencil crash when changing to Vertex Color modeDalai Felinto
This is actually a user interface issue, introduced on 0688309988e5. but->tip is checked for NULL in other parts, and rightly so, since here it crashes Blender. On a side note I don't know how to reliably reproduce the original bug whose fix introduced this issue. That got on the way of seeing whether this is the correct fix, if it happens outside greasepencil operators. Maybe it is an operator that is missing a tooltip? Impossible to tell without more information from said commit. That said since this happened during the end of bcon3 and we are not in bcon4 I'm going ahead with this NULL check commit. Patch reviewed by Philipp Oeser and Sergey Sharybin.
2020-11-18Fix undo UI text containing shortcuts & newlinesCampbell Barton
- Shortcuts were being shown in the undo history. - Multi-line tool-tips now only use the first line.
2020-09-04UI Code Quality: Store curve-button gradient type in derived structJulian Eisel
We want to move away from using `uiBut.a1`/`a2`, which is a hard to reason about design. Part of T74432. Also correct comment.
2020-08-26Cleanup: use const variables in interface codeCampbell Barton
2020-08-19UI Code Quality: Use LISTBASE_FOREACH in interface directoryHans Goudey
I only skipped a few loops in the monstrous ui_handle_menu_event function. Also, I only changed variable names where necessary to prevent redeclarations. Differential Revision: https://developer.blender.org/D8586
2020-08-07UI Code Quality: Use derived structs for search buttons and decoratorsJulian Eisel
The current on-size-fits-all `uiBut` creates quite a mess, where it's hard to reason about which members are free for use, under which conditions they are used and how. `uiBut` also has members that aren't used at times, violating the "don't pay for what you don't use" principle. To address this, we want to move to typed buttons, where `uiBut` is just a base struct and each type extends it as needed. That structures data better and type specific data is only available if it's actually used by a button type. Two trade-offs: * Many casts to the derived type have to be done. * Sometimes we change the button type after it's created. So I had to add logic to reallocate the button for use with the new, possibly derived struct. Ideally that wouldn't be needed, but for now that's what we have. Part of T74432. Differential Revision: https://developer.blender.org/D7610 Reviewed by: Brecht Van Lommel, Campbell Barton
2020-07-29Cleanup: rename uiBut.dt, uiBlock.dt to 'emboss'Campbell Barton
Use 'emboss' instead of 'draw_type' as enum, layout & functions use the term emboss. This issue was noted by @Poulpator in D8414, as `dt` is also an abbreviation for delta-time.
2020-07-03Cleanup: Interface, Clang-Tidy else-after-return fixesSybren A. Stüvel
This addresses warnings from Clang-Tidy's `readability-else-after-return` rule in the `source/blender/editors/interface` module. No functional changes.
2020-04-14Fix showing check-boxes in menu-searchCampbell Barton
2020-04-03Code Quality: Replace for loops with LISTBASE_FOREACHDalai Felinto
Note this only changes cases where the variable was declared inside the for loop. To handle it outside as well is a different challenge. Differential Revision: https://developer.blender.org/D7320
2020-04-03Cleanup: Including "BLI_listbase.h" for LISTBASE_FOREACH macroDalai Felinto
These headers are not needed right away, but will be in the upcoming commit.
2020-03-19Cleanup: `make format` after SortedIncludes changeDalai Felinto
2020-03-12Fix T73212: Gizmo's are still interactive when behind nodesCampbell Barton
2020-03-06Cleanup: Rename ARegion variables from ar to regionJulian Eisel
The old convention was easy to confuse with ScrArea. Part of https://developer.blender.org/T74432. This is mostly a batch rename with some manual fixing. Only single word variable names are changed, no prefixed/suffixed names. Brecht van Lommel and Campbell Barton both gave me a green light for this convention change. Also ran clan clang format on affected files.
2019-11-21Bevel: Custom Profile and CurveProfile WidgetHans Goudey
Custom profiles in bevel allows the profile curve to be controlled by manually placed control points. Orientation is regularized along groups of edges, and the 'pipe case' is updated. This commit includes many updates to comments and changed variable names as well. A 'cutoff' vertex mesh method is added to bevel in addition to the existing grid fill option for replacing vertices. The UI of the bevel modifier and tool are updated and unified. Also, a 'CurveProfile' widget is added to BKE for defining the profile in the interface, which may be useful in other situations. Many thanks to Howard, my mentor for this GSoC project. Reviewers: howardt, campbellbarton Differential Revision: https://developer.blender.org/D5516
2019-09-30Fix T58683: Reload Scripts breaks toolbar button formattingCampbell Barton
Add a function which clears internal cached operator pointers, run before reloading scripts.
2019-09-30Revert "Fix T58683: Reload Scripts breaks toolbar button formatting."Campbell Barton
This reverts commit ba90d2efa58fe23a87f98e014bcc02ea951a6a49. This can be resolved without adding a boolean to all operator types to check if it's "WM_OT_tool_set_by_id".
2019-09-29Fix T58683: Reload Scripts breaks toolbar button formatting.Alexander Gavrilov
Assuming it's actually necessary to do this check very efficiently, replace the hack based on caching a pointer, with a different one that caches the string comparison result in the operator object.
2019-09-20Fix T69097: Empty context menu for dimensionsCampbell Barton
Adjust empty menu check to skip the menu title.
2019-09-04Expose button UTF8 check in UI_interface.hJulian Eisel
Used in following commit.
2019-07-31Revert "UI: remove checks for other popovers when switching menu"Sebastian Parborg
This reverts commit 77616571292ab1eeb9805797bfdd4525cc306923. This commit broke overlapping popovers. For example in the color management tab it would be impossible to select and of the popover alternatives as it would switch to the menu button under the cursor.
2019-07-31UI: remove checks for other popovers when switching menuCampbell Barton
I'm unable to redo the original report, Revert fix for T43247..
2019-07-31UI: simplify check for active menu buttonCampbell Barton
Dragging to select another popup now checks the menus active button.
2019-06-12Cleanup: spelling in commentsCampbell Barton
2019-04-30Fix T63912: don't collapse menu separators for pie menusHarley Acheson
Differential Revision: https://developer.blender.org/D4748
2019-04-25UI: hide redundant menu separators automaticallyHarley Acheson
Differential Revision: https://developer.blender.org/D4682
2019-04-23Cleanup: minor changes to scrollbar checksCampbell Barton
Remove some redundant comments & declare vars in for loops.
2019-04-23UI: ignore events in empty region overlap areasCampbell Barton
- Resizable areas use 2D view bounds. - Header uses the button bounds. - A margin is added to avoid clicking between buttons. - Region resize edges clamp to the 2D view bounds. Resovles T61554
2019-04-23UI: move auto_open clearing out of ui_region_contains_point_pxCampbell Barton
Prefer explicit call for menu buttons since it's confusing if only some queries clear auto open. Also queries shouldn't modify data.
2019-04-17ClangFormat: apply to source, most of internCampbell Barton
Apply clang format as proposed in T53211. For details on usage and instructions for migrating branches without conflicts, see: https://wiki.blender.org/wiki/Tools/ClangFormat
2019-03-27UI: support an 'active default' button for pop-upsCampbell Barton
Use this for the save confirmation dialog so it has a default action when pressing enter which draws with a highlight so it's clear what the default action is (the dialog was just closing before). Resolves T57686
2019-03-25Cleanup: use braces for interface codeCampbell Barton
2019-03-22Cleanup: minor UI code changesCampbell Barton
- Rename ui_but_find_active_in_region -> ui_region_find_active_but - Remove ui_but_is_active (use ui_region_find_active_but instead) - Re-order ui_but_* functions take the button as their first arg.
2019-03-22UI: refactor queries into interface_query.cCampbell Barton
interface_handlers.c is quite large (over 10k lines), move general button utility functions into a separate file.
2019-03-15Tool System: split UI label from tool identifiersCampbell Barton
Prepare for exposing tool registration to the Python API. - Generated tools can use their own prefix so naming collisions won't happen between hard coded & generated tools. - Add-on authors can use the add-on name as a prefix. Currently the names match, renaming will happen next.
2019-02-18doxygen: add newline after \fileCampbell Barton
While \file doesn't need an argument, it can't have another doxy command after it.
2019-02-06Cleanup: remove redundant doxygen \file argumentCampbell Barton
Move \ingroup onto same line to be more compact and make it clear the file is in the group.