[Bf-blender-cvs] [ee8f69c96cb] master: UI: File Browser Design Overhaul

Julian Eisel noreply at git.blender.org
Tue Sep 3 16:11:25 CEST 2019


Commit: ee8f69c96cba62b083fb089432cddd0bce5d08e1
Author: Julian Eisel
Date:   Tue Sep 3 15:43:38 2019 +0200
Branches: master
https://developer.blender.org/rBee8f69c96cba62b083fb089432cddd0bce5d08e1

UI: File Browser Design Overhaul

This is a general redesign of the File Browser GUI and interaction
methods. For screenshots, check patch D5601.

Main changes in short:
* File Browser as floating window
* New layout of regions
* Popovers for view and filter options
* Vertical list view with interactive column header
* New and updated icons
* Keymap consistency fixes
* Many tweaks and fixes to the drawing of views

----

General:
* The file browser now opens as temporary floating window. It closes on
  Esc. The header is hidden then.
* When the file browser is opened as regular editor, the header remains
  visible.
* All file browser regions are now defined in Python (the button
  layout).
* Adjusted related operator UI names.

Keymap:
Keymap is now consistent with other list-based views in Blender, such as
the Outliner.
* Left click to select, double-click to open
* Right-click context menus
* Shift-click to fill selection
* Ctrl-click to extend selection

Operator options:
These previously overlapped with the source list, which caused numerous
issues with resizing and presenting many settings in a small panel area.
It was also generally inconsistent with Blender.
* Moved to new sidebar, which can easily be shown or hidden using a
  prominent Options toggle.
* IO operators have new layouts to match this new sidebar, using
  sub-panels. This will have to be committed separately (Add-on
  repository).
* If operators want to show the options by default, they have the option
  to do so (see `WM_FILESEL_SHOW_PROPS`, `hide_props_region`), otherwise
  they are hidden by default.

General Layout:
The layout has been changed to be simpler, more standard, and fits
better in with Blender 2.8.
* More conventional layout (file path at top, file name at the bottom,
  execute/cancel buttons in bottom right).
* Use of popovers to group controls, and allow for more descriptive
  naming.
* Search box is always live now, just like Outliner.

Views:
* Date Modified column combines both date and time, also uses user
  friendly strings for recent dates (i.e. "Yesterday", "Today").
* Details columns (file size, modification date/time) are now toggleable
  for all display types, they are not hardcoded per display type.
* File sizes now show as B, KB, MB, ... rather than B, KiB, MiB, … They
  are now also calculated using base 10 of course.
* Option to sort in inverse order.

Vertical List View:
* This view now used a much simpler single vertical list with columns
  for information.
* Users can click on the headers of these columns to order by that
  category, and click again to reverse the ordering.

Icons:
* Updated icons by Jendrzych, with better centering.
* Files and folders have new icons in Icon view.
* Both files and folders have reworked superimposed icons that show
  users the file/folder type.
* 3D file documents correctly use the 3d file icon, which was unused
  previously.
* Workspaces now show their icon on Link/Append - also when listed in
  the Outliner.

Minor Python-API breakage:
* `bpy.types.FileSelectParams.display_type`: `LIST_SHORT` and
  `LIST_LONG` are replaced by `LIST_VERTICAL` and `LIST_HORIZONTAL`.

Removes the feature where directories would automatically be created if
they are entered into the file path text button, but don't exist. We
were not sure if users use it enough to keep it. We can definitely bring
it back.

----

//Combined effort by @billreynish, @harley, @jendrzych, my university
colleague Brian Meisenheimer and myself.//

Differential Revision: https://developer.blender.org/D5601

Reviewers: Brecht, Bastien

===================================================================

M	release/datafiles/prvicons.png
M	release/datafiles/prvicons.svg
M	release/datafiles/prvicons_update.py
M	release/datafiles/userdef/userdef_default_theme.c
M	release/scripts/presets/keyconfig/keymap_data/blender_default.py
M	release/scripts/presets/keyconfig/keymap_data/industry_compatible_data.py
M	release/scripts/startup/bl_ui/space_filebrowser.py
M	source/blender/blenlib/BLI_fileops.h
M	source/blender/blenlib/intern/BLI_filelist.c
M	source/blender/blenloader/intern/versioning_280.c
M	source/blender/blenloader/intern/versioning_userdef.c
M	source/blender/editors/include/ED_fileselect.h
M	source/blender/editors/interface/interface_icons.c
M	source/blender/editors/screen/area.c
M	source/blender/editors/screen/screen_ops.c
M	source/blender/editors/sound/sound_ops.c
M	source/blender/editors/space_file/file_draw.c
M	source/blender/editors/space_file/file_intern.h
M	source/blender/editors/space_file/file_ops.c
M	source/blender/editors/space_file/file_panels.c
M	source/blender/editors/space_file/filelist.c
M	source/blender/editors/space_file/filelist.h
M	source/blender/editors/space_file/filesel.c
M	source/blender/editors/space_file/space_file.c
M	source/blender/editors/space_graph/graph_edit.c
M	source/blender/makesdna/DNA_space_types.h
M	source/blender/makesrna/intern/rna_space.c
M	source/blender/windowmanager/WM_api.h
M	source/blender/windowmanager/intern/wm_event_system.c
M	source/blender/windowmanager/intern/wm_files.c
M	source/blender/windowmanager/intern/wm_files_link.c
M	source/blender/windowmanager/intern/wm_operator_props.c
M	source/blender/windowmanager/intern/wm_window.c

===================================================================

diff --git a/release/datafiles/prvicons.png b/release/datafiles/prvicons.png
index edbffae420b..dbc0f11124e 100644
Binary files a/release/datafiles/prvicons.png and b/release/datafiles/prvicons.png differ
diff --git a/release/datafiles/prvicons.svg b/release/datafiles/prvicons.svg
index 63cd8dc1954..80929124251 100644
--- a/release/datafiles/prvicons.svg
+++ b/release/datafiles/prvicons.svg
@@ -10,20 +10,20 @@
    xmlns:xlink="http://www.w3.org/1999/xlink"
    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="192"
-   height="192"
+   width="1536"
+   height="256"
    id="svg2"
    sodipodi:version="0.32"
-   inkscape:version="0.92.2 2405546, 2018-03-11"
+   inkscape:version="0.92.3 (2405546, 2018-03-11)"
    version="1.0"
    sodipodi:docname="prvicons.svg"
    inkscape:output_extension="org.inkscape.output.svg.inkscape"
    style="display:inline;enable-background:new"
-   inkscape:export-filename="blender_icons.png"
-   inkscape:export-xdpi="90"
-   inkscape:export-ydpi="90">
+   inkscape:export-filename="prvicons.png"
+   inkscape:export-xdpi="96"
+   inkscape:export-ydpi="96">
   <metadata
-     id="metadata2373">
+     id="metadata2699">
     <rdf:RDF>
       <cc:Work
          rdf:about="">
@@ -35,7 +35,7 @@
     </rdf:RDF>
   </metadata>
   <sodipodi:namedview
-     pagecolor="#ffffff"
+     pagecolor="#5b5b5b"
      bordercolor="#666666"
      borderopacity="1"
      objecttolerance="10"
@@ -43,17 +43,93 @@
      guidetolerance="10"
      inkscape:pageopacity="0"
      inkscape:pageshadow="2"
-     inkscape:window-width="1074"
-     inkscape:window-height="1896"
-     id="namedview2371"
-     showgrid="false"
-     inkscape:zoom="1.2291667"
-     inkscape:cx="60.20339"
-     inkscape:cy="13.830508"
-     inkscape:window-x="1080"
-     inkscape:window-y="0"
-     inkscape:window-maximized="0"
-     inkscape:current-layer="layer1" />
+     inkscape:window-width="1920"
+     inkscape:window-height="1017"
+     id="namedview2697"
+     showgrid="true"
+     inkscape:snap-bbox="true"
+     inkscape:bbox-paths="true"
+     inkscape:bbox-nodes="true"
+     inkscape:snap-bbox-edge-midpoints="true"
+     inkscape:snap-bbox-midpoints="true"
+     inkscape:zoom="0.70710678"
+     inkscape:cx="752.76338"
+     inkscape:cy="111.39186"
+     inkscape:window-x="1912"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="layer1"
+     inkscape:snap-page="true"
+     inkscape:object-paths="true"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     inkscape:snap-grids="true"
+     inkscape:snap-intersection-paths="true"
+     inkscape:snap-smooth-nodes="true"
+     inkscape:snap-nodes="true"
+     inkscape:snap-global="true"
+     showborder="true"
+     inkscape:showpageshadow="true"
+     inkscape:pagecheckerboard="true">
+    <inkscape:grid
+       type="xygrid"
+       id="grid6640"
+       color="#d3d3d3"
+       opacity="0.1254902"
+       empcolor="#ffffff"
+       empopacity="0.25098039"
+       spacingx="0.5"
+       spacingy="0.5"
+       empspacing="2"
+       originx="116"
+       originy="-514"
+       visible="true"
+       enabled="true" />
+    <inkscape:grid
+       type="xygrid"
+       id="grid5463"
+       enabled="false"
+       empspacing="0"
+       spacingx="256"
+       spacingy="256" />
+    <sodipodi:guide
+       position="256,68"
+       orientation="1,0"
+       id="guide5465"
+       inkscape:locked="false" />
+    <sodipodi:guide
+       position="512,77"
+       orientation="1,0"
+       id="guide5467"
+       inkscape:locked="false" />
+    <sodipodi:guide
+       position="768,27"
+       orientation="1,0"
+       id="guide5469"
+       inkscape:locked="false" />
+    <sodipodi:guide
+       position="1024,5.75"
+       orientation="1,0"
+       id="guide5471"
+       inkscape:locked="false" />
+    <sodipodi:guide
+       position="1280,-2.5"
+       orientation="1,0"
+       id="guide5473"
+       inkscape:locked="false" />
+    <inkscape:grid
+       type="xygrid"
+       id="grid5475"
+       spacingx="32"
+       spacingy="32"
+       enabled="false" />
+    <inkscape:grid
+       type="xygrid"
+       id="grid5500"
+       spacingx="8"
+       spacingy="8"
+       enabled="false" />
+  </sodipodi:namedview>
   <defs
      id="defs4">
     <linearGradient
@@ -703,7 +779,7 @@
        x2="24.25"
        y1="245"
        x1="22.75"
-       gradientTransform="translate(-61,0)"
+       gradientTransform="translate(-61)"
        gradientUnits="userSpaceOnUse"
        id="linearGradient23201"
        xlink:href="#linearGradient1610"
@@ -713,7 +789,7 @@
        x2="24.5"
        y1="245"
        x1="22.75"
-       gradientTransform="translate(-1,0)"
+       gradientTransform="translate(-1)"
        gradientUnits="userSpaceOnUse"
        id="linearGradient23199"
        xlink:href="#linearGradient1610"
@@ -957,7 +1033,7 @@
        x2="424.75217"
        y1="77.44017"
        x1="441.98615"
-       gradientTransform="translate(0.01387,0)"
+       gradientTransform="translate(0.01387)"
        gradientUnits="userSpaceOnUse"
        id="linearGradient22896"
        xlink:href="#linearGradient319"
@@ -967,7 +1043,7 @@
        x2="424.75217"
        y1="78"
        x1="438.61115"
-       gradientTransform="translate(0.01387,0)"
+       gradientTransform="translate(0.01387)"
        gradientUnits="userSpaceOnUse"
        id="linearGradient22846"
        xlink:href="#linearGradient319"
@@ -977,7 +1053,7 @@
        x2="424.75217"
        y1="77"
        x1="437.98615"
-       gradientTransform="translate(0.01387,0)"
+       gradientTransform="translate(0.01387)"
        gradientUnits="userSpaceOnUse"
        id="linearGradient22844"
        xlink:href="#linearGradient319"
@@ -2342,7 +2418,7 @@
        x2="336.72485"
        y1="143.70836"
        x1="349.04059"
-       gradientTransform="matrix(0.707107,-0.707107,0.707107,0.707107,-241.7085,428.4841)"
+       gradientTransform="rotate(-45,396.37194,506.00979)"
        gradientUnits="userSpaceOnUse"
        id="linearGradient15748"
        xlink:href="#linearGradient37542"
@@ -3952,7 +4028,7 @@
        x2="54.8125"
        y1="500"
        x1="108"
-       gradientTransform="translate(42,0)"
+       gradientTransform="translate(42)"
        gradientUnits="userSpaceOnUse"
        id="linearGradient16638"
        xlink:href="#linearGradient1610"
@@ -3962,7 +4038,7 @@
        x2="26.561054"
        y1="501.74075"
        x1="85.874489"
-       gradientTransform="translate(42,0)"
+       gradientTransform="translate(42)"
        gradientUnits="userSpaceOnUse"
        id="linearGradient16640"
        xlink:href="#linearGradient15809"
@@ -4088,7 +4164,7 @@
        x2="415.94211"
        y1="-34"
        x1="416.00461"
-       gradientTransform="translate(-0.004608,0)"
+       gradientTransform="translate(-0.004608)"
        gradientUnits="userSpaceOnUse"
        id="linearGradient30243"
        xlink:href="#linearGradient24081"
@@ -4098,7 +4174,7 @@
        x2="416.5"
        y1="-29.933779"
        x1="416.5"
-       gradientTransform="translate(-0.004608,0)"
+       gradientTransform="translate(-0.004608)"
        gradientUnits="userSpaceOnUse"
        id="linearGradient30245"
        xlink:href="#linearGradient16500"
@@ -4108,7 +4184,7 @@
        x2="416.46497"
        y1="-34.342831"
        x1="416.41162"
-       gradientTransform="translate(-1,0)"
+       gradientTransform="translate(-1)"
        gradientUnits="userSpaceOnUse"
        id="linearGradient30247"
        xlink:href="#linearGradient20324"
@@ -4190,7 +4266,7 @@
        x2="415.45193"
        y1="-31.506163"
        x1="415.41223"
-       gradientTransform="translate(-0.004608,0)"
+       gradientTransform="translate(-0.004608)"
        gradientUnits="userSpaceOnUse"
        id="linearGradient30340"
        xlink:href="#linearGradient1610"
@@ -4200,7 +4276,7 @@
        x2="416.5"
        y1="-29.933779"
        x1="416.5"
-       gradientTransform="translate(-0.004608,0)"
+       gradientTransform="translate(-0.004608)"
        gradientUnits="userSpaceOnUse"
        id="linearGradient30342"
        xlink:href="#linearGradient16500"
@@ -4210,7 +4286,7 @@
        x2="416.46497"
        y1="-33.8125"
        x1="416.5"
-       gradientTransform="translate(-1,0)"
+       gradientTransform="translate(-1)"
        gradientUnits="userSpaceOnUse"
        id="linearGradient30344"
        xlink:href="#linearGradient16500"
@@ -4301,7 +4377,7 @@
        x2="415.45193"
        y1="-31.506163"
        x1="415.41223"
-       gradientTransform="translate(-0.004608,0)"
+       gradientTransform="translate(-0.004608)"
        gradientUnits="userSpaceOnUse"
        id="linearGradient30408"
        xlink:href="#linearGradient1610"
@@ -4311,7 +4387,7 @@
        x2="416.5"
        y1="-29.933779"
        x1="416.5"
-       gradientTransform="translate(-0.004608,0)"
+       gradientTransform="translate(-0.004608)"
        gradientUnits="userSpaceOnUse"
        id="linearGradient30410"
        xlink:href="#linearGradient16500"
@@ -4321,7 +4397,7 @@
        x2="416.46497"
        y1="-33.8125"
        x1="416.5"
-       gradientTransform="translate(-1,0)"
+       gradientTransform="translate(-1)"
        gradientUnits="userSpaceOnUse"
        id="linearGradient30412"
        xlink:href="#linearGradient16500"
@@ -4558,7 +4634,7 @@
        x2="-42.377892"
        y1="442.6875"
        x1="-51.6875"
-       gradientTransform="translate(18,0)"
+       gradientTransform="translate(18)"
        gradientUnits="userSpaceOnUse"
        id="linearGradient17135"
        xlink:href="#linearGradient1610"
@@ -4883,7 +4959,7 @@
        inkscape:collect="always" />
     <linearGradient
        y2="-32.351803"
-       x2="4.8398785e-16"
+       x2="4.8398785e-016"
        y1="-29.678047"
        x1="4.9341426"
        gradientUnits="userSpaceOnUse"
@@ -5632,7 +5708,7 @@
        x2="476.76578"
        y1="163.08553"
        x1="480.09564"
-       gradientTransform="translate(-6,0)"
+       gradientTransform="translate(-6)"
        gradientUnits="userSpaceOnUse"
        id="linearGradient23241"
        xlink:href="#linearGr

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list