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
2010-02-11More tooltip editingDaniel Salazar
2010-02-07Fix #21008: text editor scrollbar overlapping text, code here was notBrecht Van Lommel
fully updated when the scrollbar was moved from left the right.
2010-02-01Fix #20891: opengl animation render could mess up the view.Brecht Van Lommel
The problem was that wmPushMatrix/wmOrtho/.. and similar functions did not work well for offscreen rendering. It would have been possible to make a fake subwindow for this, but I decided to just remove this extra layer as it does not seem to have much purpose and has been quite confusing when trying to fix other bugs. The relevant matrices are already stored in RegionView3D so there will be no increase in calls to glGetFloat, which may have been a performance reason to use this system in the past.
2010-01-26Drag and drop 2.5 integration! Finally, slashdot regulars can useTon Roosendaal
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-22Cleaned up some printfs in editors/ - converted some to reports, hid others ↵Matt Ebb
behind G_DEBUG.
2010-01-21Added a new notifyer, NC_SPACE_CHANGED, to signal an editor thatJoseph Eagar
replaces another so it can do updates (e.g. dopesheet editor can sync channel selection). Also coded a simple optimization for allocating small objects, based on mempools. It's #ifdef'd out, you can enabled it by defining OPTIMIZE_SMALL_BLOCKS (e.g. adding -DDOPTIMIZE_SMALL_BLOCKS to your compiler flags). We suffer from a great deal of performance loss from the system allocator (vgroups, ghash, edgehash, the singly-linked list implementation in blenlib, editmesh, and likely a great many areas I'm forgetting), and this is the common solution for handling the many-small-objects problem. It's not really production-ready yet (it's long-term memory consequencers need to be profiled first, and the implementation tweaked as necassary), but for people on systems with slow system allocators it's worth trying. Note that since this creates a guardedalloc<->blenlib link, the build systems need to be updated accordingly (I've already done this for scons, though I'm not sure if the player builds).
2010-01-19Finished some work from the weekend to keep local tree clean..Matt Ebb
* Added a generic 'histogram' ui control, currently available in new image editor 'scopes' region (shortcut P). Shows the histogram of the currently viewed image. It's a baby step in unifying the functionality and code from the sequence editor, so eventually we can migrate the sequence preview to the image editor too, like compositor. Still a couple of rough edges to tweak, regarding when it updates. Also would be very nice to have this region as a partially transparent overlapping region...
2010-01-17resizing any area/region would redraw all views in every window.Campbell Barton
This means a large scene will make blender resize the border between the timeline and the graph editor slow since it redraws the 3d view for each update. edited the operators to only redraw whats needed. since tons away IFDEF'd this incse it needs to be reverted.
2010-01-13Fix [#20649] when header is on top of 3D View and all regions are collapsed, ↵Matt Ebb
expansion icons overlap
2010-01-05Fix for some confusing terminology: Window type -> Editor typeMatt Ebb
Correct hierarchy of terminology should be: * Window (OS level window with borders) * Area (top level subdivision in Blender UI), containing an * Editor (actual UI functionality such as 3D View, Properties) * Region (subdivision of an area, i.e. a header, a properties panel or toolbar)
2009-12-08Various changes to screen-related code, aiming to fix a few problems and ↵Matt Ebb
usability issues with 'temp' screen layouts. Now, temp screens are hidden from being accessed directly, with a new 'Back to Previous' button appearing in place of the screen menu when (for example) fullscreen render image areas are present. Window type menus also get disabled here too, to prevent things from getting too mixed up.
2009-12-07Fix for [#19541] Buttons etc that are too close to the window edge don't ↵Matt Ebb
react to input
2009-11-27Added RMB-menu to Headers:Joshua Leung
This contains two entries - one which calls the region flip operator, and one which calls the maxmize area operator. Unfortunately, there seem to be some context issues which are causing the wrong region to get activated for use by the region flipping, meaning that nothing happens. Also, fixed own typo in 3d-view header/menu code...
2009-11-23Various bugfixes:Joshua Leung
* Tweaked the code for operator buttons so that only those operator buttons in the toolbar have their text left-aligned. This is done at layout-block level * Silenced "file_init" print when opening the file browser * Disabled animateability of the "active_shape_key_index" for Objects, since this property behaves in a very unpredictable manner, leading to problems with users trying to keyframe shapekey values and ending up keying the list. * Remove some unnecessary RNA wrapping code
2009-11-10Math LibBrecht Van Lommel
* Convert all code to use new functions. * Branch maintainers may want to skip this commit, and run this conversion script instead, if they use a lot of math functions in new code: http://www.pasteall.org/9052/python
2009-11-04Fix for [#19460] (+) widgets to expand UI elements overlap other windowsMatt Ebb
2009-10-12Fix some mem leaksDamien Plisson
2009-10-08Key ConfigurationBrecht Van Lommel
Keymaps are now saveable and configurable from the user preferences, note that editing one item in a keymap means the whole keymap is now defined by the user and will not be updated by Blender, an option for syncing might be added later. The outliner interface is still there, but I will probably remove it. There's actually 3 levels now: * Default builtin key configuration. * Key configuration loaded from .py file, for configs like Blender 2.4x or other 3D applications. * Keymaps edited by the user and saved in .B.blend. These can be saved to .py files as well to make creating distributable configurations easier. Also, user preferences sections were reorganized a bit, now there is: Interface, Editing, Input, Files and System. Implementation notes: * wmKeyConfig was added which represents a key configuration containing keymaps. * wmKeymapItem was renamed to wmKeyMapItem for consistency with wmKeyMap. * Modal maps are not wrapped yet. * User preferences DNA file reading did not support newdataadr() yet, added this now for reading keymaps. * Key configuration related settings are now RNA wrapped. * is_property_set and is_property_hidden python methods were added.
2009-10-02Fix #19311: adding/opening datablocks did not always make the rightBrecht Van Lommel
one active. Now there's a function to get the pointer + property from the UI, just like for the animation operators. Also two fixes for fileselect events, regions are now preserved so that context is restored to the old region, and the cancel callback is called when the operator is cancelled.
2009-09-18Keymaps now have a poll() function, rather than adding/removingBrecht Van Lommel
their handlers based on notifiers, which is simpler and more reliable. This fixes for example editmode or uv edit keymaps not working when creating a new 3dview or image space.
2009-09-16UIBrecht Van Lommel
* Fix problem with curve mapping / color ramps not updating things like previews propertly. Now it uses the RNA update of the pointer from the material/texture/.. so each of those can define their own update, but still share the RNA struct. * Code for these templates is now in interface_templates.c * Fix exception for "axis" property, now it always shows normal widget with the PROP_DIRECTION subtype. * Remove context from uiBlockLayoutResolve, no longer needed.
2009-09-142.5 BugfixesBrecht Van Lommel
#19345: can't get out of grayed out pointer field. #19342: item_pointerR fields can't be cleared with one item. #19341: fix hanging tooltips when manipulating regions. #19339: context panel still allowed tabbing, but it has no header. #19334: editing SSS settings crashed previewrender. #19330: object mode could not be switched on from the header menu.
2009-09-13* Gave the region icons a bit more padding for the clickable areaMatt Ebb
2009-09-13* Removed the grey overlapping 'region manipulation' triangles.Matt Ebb
- They were causing unnecessary visual noise, breaking up the lines of the region edges - Now you can just drag anywhere on a region edge to resize it, like existing area edges - To minimise a region, click once on the region edge, or resize it down to nothing. For minimised regions, a (+) icon will appear, which you can click to restore it to the size it was before it was minimised.
2009-09-122.5, Fix for bug #19296:Brecht Van Lommel
render window escape incorrectly opens file browser.
2009-09-042.5 - Patches + CleanupsJoshua Leung
* Some of the patches in patch #19034 - by Wolfgang W. (bender) - outliner.patch - a small fix to make the outliner draw the last line of the list, if the list is bigger than the window. - scroll.patch - enables vertical scrolling in the buttons window in horizontal mode. Necessary if a panel is opened that is higher than the buttons window. * Also, fixed some messy comments in drivers code
2009-08-30Grease Pencil: Basic Support for Image Editor AgainJoshua Leung
* Grease Pencil works again from Image Editor now. For now, the GPencil datablock is linked to the Image Editor space, but this can be changed if need be. * Made Grease Pencil hotkeys into a separate Grease Pencil keymap, which can get included automagically like for frames/ui/v2d/etc. by supplying ED_KEYMAP_GPENCIL as part of st->keymapflag * Temporarily restored the nasty hack to make View2D-aligned sketches in Image Editor to use OpenGL lines only. I still dunno why this doesn't work normally. (Probably related is that strokes are not visible when there's no image visible atm).
2009-08-212.5: Modifiers & MenusBrecht Van Lommel
* Popup menus now remember the last clicked item again. * Modifier and File Format menus are now organized in multiple columns with categories. * Hook, explode, uv project modifiers have all their buttons again with the relevant operators implemented. * Modifiers that can't be added by the user, or don't work on curves for example, are not in the menu anymore. * Fix search menu overlapping buttons when near the bottom of the screen. * Fix uv layers search menu not working in some modifiers. * Cleanup popup menu code a bit, layout engine is used in more cases now instead of ugly position calculation code.
2009-08-202.5 Paint:Nicholas Bishop
* Evil backbuf drawing strikes again. In paint modes, it was causing the tool panel to flash black, bad glScissor.
2009-08-182.5:Brecht Van Lommel
* Split Info and User preferences into two separate spaces. * Renamed Buttons Window to Properties also in RNA identifiers.
2009-08-18Renamed Buttons Window to Properties, for these reasons: William Reynish
1) This fits with our splitting the old Buttons Window into Tools and Properties 2) The name Buttons Window doesn't communicate what it is for, only that it includes buttons. Of course, most other editors include a fair amount of 'buttons' too. 3) A 'button' is not usually what you'd associate with a slider, number field, checkbox or menu. Really there are hardly any true buttons in this window space. Also added some notifiers to sequencer RNA, though there seems to be some refresh errors in the image preview area.
2009-08-162.5Ton Roosendaal
Small fix: region-zones (currently triangles) overlapped when closed in cases. Happened for 3d window toolbar for example.
2009-08-162.5Ton Roosendaal
Flaw in python UI for headers: code missing to correctly set the total width of header, plus obsolete call in view3d header template to set width. Now MMB scroll of view3d header works again.
2009-07-302.5: Buttons ViewBrecht Van Lommel
* When resizing the window, the top position is now preserved, instead of the center position. * Fix zoom level not being preserved in various cases, when changing both with and height. This replaces some earlier code which did this at screen level but wasn't very reliable. * Different tabs now each preserve their own scroll. * When switching between tabs, it now scrolls to show as many buttons as possible, instead of possibly showing empty space. There is a trade-off here between doing that keeping the buttons in the same place, no ideal solution exists I think. * Change zooming in/out to be symmetric, for example doing numpad + then - did not give the original zoom level back. * Added some calls to avoid hanging tooltips when manipulating the view. Internals: * Added V2D_KEEPOFS_X and V2D_KEEPOFS_Y to keep the top/bottom rather than the center. * Renamed V2D_KEEPZOOM to V2D_LIMITZOOM (seems more appropriate), and make V2D_KEEPZOOM preserve the zoom level.
2009-07-282.5: various one-liner fixesBrecht Van Lommel
* Image window only show game properties in game mode. * Fix image window render info drawing wrong with alpha enabled. * Win32 editmode cursor now uses a different one than the system cursor, that one is barely visible, especially in the new theme colors. * Center text in operator header print. * Fix sequencer unlock shortcut key. * Fix uv layer / vertex color active render button now graying out. * Workaround to get default zoom level 1:1 again for new buttons (will try to fix properly later, is due to scrollbars).
2009-07-242.5: UIBrecht Van Lommel
* Fix issue where it would automatically scroll when collapsing panels. * Fix panel dragging not taking zoom level into account. * Fix enum menu having too small default width in headers. * Fix tooltips not showing shortcuts etc. if there was not tooltip defined for the button. * Fix some refresh issues with color ramps. * Add a bit more space between columns in the layout engine. * Make scrollers darker so they are less distracting, and highlight instead of reverse shading when dragging.
2009-07-242.5: VariousBrecht Van Lommel
* Buttons header: made tab buttons bigger, remove view menu, replaced by RMB menu in main region. * Timeline header: tweak button placement and alignment, added a play reverse icon. * Window type chooser menu: removed audio and scripts windows, change console and logic icons. * Node space: disable the channel region until it is used.
2009-07-22remove scriptlinks,Campbell Barton
they were not working and we have plans for better script integration in 2.5
2009-07-192.5Ton Roosendaal
Small fix: Triple Buffer mode didn't clip custom paint cursors correctly for overlapping regions (example, view3d paint circle drawing into toolbar)
2009-07-162.5 - View2D fixes for User PrefsJoshua Leung
Added NULL check for View2D code for invalid style pointer (this underlying problem should get addressed at some point), and reinstated the reinitialisation hack for panel regions.
2009-07-16* Temporarily commented out a couple of lines from Brecht's User Prefs commitMatt Ebb
Brecht: This makes Blender crash on startup for a few of us, so I'm just disabling it for now until you have have a look at it
2009-07-16Console Space TypeCampbell Barton
* interactive console python console. * display reports and filter types. defaults to operator display so you can see the python commands for tools as you use them, eventually it should be possible to select commands and make macto/tools from them. Example use of autocomp. b<tab>, bpy.<tab>, bpy.<tab>, bpy.data.<tab> etc. basic instructions are printed when opening the console. Details... * Console exec and autocomp are done with operators written in python. * added CTX_wm_reports() to get the global report list. * The window manager had a report ListBase but reports have their own struct, switched to allocate and assign when initializing the WM since the type is not available in DNA. * changed report types flags for easier display filtering. * added report type RPT_OPERATOR * logging operators also adds a python-syntax report into CTX_wm_reports() so they can be displayed in the console as well as calling a notifier for console to redraw. * RnaAPI context.area.tag_redraw() to redraw the current area from a python operator. Todo... * better interactions with the console, scrolling, copy/paste. * the text displayed doesnt load back. * colors need to be themed. * scroll limit needs to be a user pref. * only tested with cmake and scons.
2009-07-152.5: User PreferencesBrecht Van Lommel
* Added basic infrastructure to layout user preferences. The intention is that you open a user preferences space in place of the buttons space, and have panels there. * The existing sections don't have to be followed, it's easy to create different ones, just change the user_pref_sections enum in RNA. * This will get separated from the info header later.
2009-07-142.5 - Scrollbars are now shown when a list of panels can't fit in viewJoshua Leung
Notes: - These may be taking up a bit too much room in some situations. Perhaps an option to turn these on/off is needed? - I've added a quick hack in area.c -> ED_region_panels_init() to set the flags to make scrollbars show up in regions whose View2D data has already been initialised. This is primarily aimed at the Buttons Window in the 2.5 defaults file, which seems to have been saved in 2.5 or so - The expand icons on either end of the scrollers don't really seem to be necessary? (or not working yet)
2009-07-092.5: Buttons WindowBrecht Van Lommel
* Fix poll() callback changes in recent commit, note that these have to work with pinned context too. * Hide header for context panels in py layout. * Don't jump back when collapsing a panel, allow the view to be over some empty space until you scroll back. * Fix follow context icon, order had to be reversed in icon file. * ID template now has icon as part of browse button instead of outside the buttons.
2009-07-082.5: Various FixesBrecht Van Lommel
* Context panel now draws without header, with arrows, no scene name. * Softbody vertex group search popup. * Improve names for autogenerated shortcut keys in menus. * Make most Select menus in the 3D view header work. * Fix armature border select selection syncing. * Add POSE_OT_select_constraint_target, MESH_OT_select_by_number_vertices, MESH_OT_select_vertex_path. * Merge mesh select similar into one operator. * Don't give MESH_OT_select_random Space hotkey. * Add DAG_object_flush_update to many mesh edit tools, not calling this will crash with modifiers. * RNA_def_enum_funcs for dynamic enums in operators, but not very useful without context yet. * Fix refresh issue with image window header + editmode. * Fix drawing of shadow mesh for image painting. * Remove deprecated uiDefMenuButO and uiDefMenuSep functions. * Remove keyval.c, code is in wm_keymap.c already. * Rename WM_operator_redo to WM_operator_props_popup.
2009-07-022.5Ton Roosendaal
More toolbar functionality for workflow review. - Split the region in two parts, bottom has the Tool Properties, the top part shows 2 panels, one for python defined tools, other for a "tool shelf" which (later) will get saved in files. - Added a full context driven framework for this toolbar, showing the tools depending on 3D window 'mode'. Both python defined tools as the shelf respect this. So - for example - you will see different tools in editmode mesh, as in vertex paint mode, etc. - First template for the python tools will be committed after this commit; it has placeholder tools to just show/test functioning. NOTE: if you had saved a layout that shows tools region, open/close it once to get the new region created for properties. TODO: - Moving paint properties to tool settings - Test a layout with horizontal toolbar (without properties) - Bring back floating panels, and put tool-properties here. (as option)
2009-06-262.5Ton Roosendaal
Makes toolbar region in 3d editor work correctly overlapping, also when area is subdivided in 4-split, and/or with properties region.
2009-06-162.5Ton Roosendaal
Added SpaceLogic, to restore the old logic buttons into. In future it can be used for a more advanced logic editor, with states, behaviour, whatever. We'll see! This commit only adds the backend for new space. Committed this now as reference for when we need another space type. It's still not well plugin-able (dynamic space types), but my idea is to just have a new SpacePlugIn for this, with a neat small API to define all relevant callbacks. Also note the icon for the spacetype is wrong still.
2009-06-16UIBrecht Van Lommel
* Added option for panel to be closed by default. * Added support for RNA property and enum icons in buttons. * Remove some deprecated RNA menu code. * Fix issue with newly created panels not being inserted in the right place. * Fix issue with 3-split layout not being divided correctly. * FIx issue with menu items not drawing correct using python UI.