Skip to content

Commit 2ecf5f1

Browse files
committed
Fix bugs.
1 parent 7d2478b commit 2ecf5f1

13 files changed

+166
-99
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Changelog
22

3+
## [1.0.4] - 2023-08-18
4+
5+
- Fix bugs.
6+
37
## [1.0.3] - 2023-08-10
48

59
- Fix bugs.

Editor/Scripts/Window/Content/ProjectPinBoardWindowDragAndDrop.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,12 +107,13 @@ private void InitDropArea()
107107
text = "Drop to Pin",
108108
style =
109109
{
110-
paddingLeft = 0,
111-
paddingRight = 0,
110+
paddingLeft = 10,
111+
paddingRight = 10,
112112
fontSize = 40,
113113
color = dropTipTextColor,
114114
unityFontStyleAndWeight = FontStyle.Bold,
115115
unityTextAlign = TextAnchor.MiddleCenter,
116+
whiteSpace = WhiteSpace.Normal,
116117
#if UNITY_2021_1_OR_NEWER
117118
unityTextOutlineColor = new Color(0f, 0f, 0f, 1f),
118119
unityTextOutlineWidth = 1,

Editor/Scripts/Window/ProjectPinBoardWindowContent.cs

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,8 @@ private void InitContent()
7272
}
7373
});
7474
}
75+
// 监听元素尺寸变化
76+
m_Content.RegisterCallback<GeometryChangedEvent>(OnContentGeometryChangedEventChanged);
7577

7678
// 内容分栏
7779
m_ContentSplitView = new TwoPaneSplitView()
@@ -87,17 +89,6 @@ private void InitContent()
8789
};
8890
m_Content.Add(m_ContentSplitView);
8991

90-
// 元素就绪后恢复预览区域状态
91-
{
92-
void Callback(GeometryChangedEvent evt)
93-
{
94-
TogglePreview(ProjectPinBoardSettings.enablePreview);
95-
m_ContentSplitView.UnregisterCallback<GeometryChangedEvent>(Callback);
96-
}
97-
98-
m_ContentSplitView.RegisterCallback<GeometryChangedEvent>(Callback);
99-
}
100-
10192
// 拖拽线
10293
{
10394
m_ContentDragLine = m_ContentSplitView.Q<VisualElement>("unity-dragline-anchor");
@@ -128,6 +119,17 @@ void Callback(GeometryChangedEvent evt)
128119
InitContentPreview();
129120
}
130121

122+
/// <summary>
123+
/// 元素尺寸变化回调
124+
/// </summary>
125+
/// <param name="evt"></param>
126+
private void OnContentGeometryChangedEventChanged(GeometryChangedEvent evt)
127+
{
128+
// 窄视图时隐藏预览区域
129+
bool isNarrow = (m_Toolbar.localBound.width <= 250);
130+
TogglePreview(!isNarrow && ProjectPinBoardSettings.enablePreview);
131+
}
132+
131133
/// <summary>
132134
/// 内容是否初始化
133135
/// </summary>

Editor/Scripts/Window/ProjectPinBoardWindowHotkeys.cs

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
using System.Linq;
2+
using UnityEditor;
13
using UnityEngine;
24
using UnityEngine.UIElements;
35

@@ -41,7 +43,22 @@ private void RegisterHotkeys()
4143
// F5
4244
else if (evt.keyCode == KeyCode.F5)
4345
{
44-
RefreshData();
46+
Menu_Reload();
47+
}
48+
// Delete / Backspace
49+
else if (evt.keyCode == KeyCode.Delete || evt.keyCode == KeyCode.Backspace)
50+
{
51+
string[] names = GetSelectedItemInfos().Select(v => $"- {v.Name}").ToArray();
52+
bool isOk = EditorUtility.DisplayDialog(
53+
"[Project Pin Board] Unpin assets",
54+
$"Are you sure to unpin the following assets?\n{string.Join("\n", names)}",
55+
"Confirm!",
56+
"Cancel"
57+
);
58+
if (isOk)
59+
{
60+
ProjectPinBoardManager.Unpin(GetSelectedItemGuids());
61+
}
4562
}
4663
// 不响应
4764
else

Editor/Scripts/Window/ProjectPinBoardWindowToolbar.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ private void InitToolbar()
2727
m_Toolbar.style.flexShrink = 0;
2828
m_Toolbar.style.flexDirection = FlexDirection.Row;
2929
}
30+
// 监听元素尺寸变化
31+
m_Toolbar.RegisterCallback<GeometryChangedEvent>(OnToolbarGeometryChangedEventChanged);
3032

3133
// 分割线
3234
VisualElement separator = rootVisualElement.Q<VisualElement>("Separator");
@@ -59,6 +61,17 @@ private void InitToolbar()
5961
}
6062
}
6163

64+
/// <summary>
65+
/// 元素尺寸变化回调
66+
/// </summary>
67+
/// <param name="evt"></param>
68+
private void OnToolbarGeometryChangedEventChanged(GeometryChangedEvent evt)
69+
{
70+
// 窄视图时隐藏部分按钮
71+
m_ToolbarPreviewToggle.style.display = ((m_Toolbar.localBound.width <= 250) ? DisplayStyle.None : DisplayStyle.Flex);
72+
m_ToolbarSyncSelectionToggle.style.display = ((m_Toolbar.localBound.width <= 200) ? DisplayStyle.None : DisplayStyle.Flex);
73+
}
74+
6275
}
6376

6477
}

Editor/Scripts/Window/Toolbar/ProjectPinBoardWindowToolbarFilter.cs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,20 +17,20 @@ public partial class ProjectPinBoardWindow
1717
/// <summary>
1818
/// 类型过滤按钮
1919
/// </summary>
20-
private ToolbarButton m_TypeFilterButton = null;
20+
private ToolbarButton m_ToolbarTypeFilterButton = null;
2121

2222
/// <summary>
2323
/// 标签过滤按钮
2424
/// </summary>
25-
private ToolbarButton m_TagFilterButton = null;
25+
private ToolbarButton m_ToolbarTagFilterButton = null;
2626

2727
/// <summary>
2828
/// 初始化
2929
/// </summary>
3030
private void InitToolbarFilterButton()
3131
{
3232
// 类型过滤
33-
m_TypeFilterButton = new ToolbarButton()
33+
m_ToolbarTypeFilterButton = new ToolbarButton()
3434
{
3535
name = "TypeFilterButton",
3636
tooltip = "Filter by Type",
@@ -50,9 +50,9 @@ private void InitToolbarFilterButton()
5050
justifyContent = Justify.Center,
5151
}
5252
};
53-
m_Toolbar.Add(m_TypeFilterButton);
53+
m_Toolbar.Add(m_ToolbarTypeFilterButton);
5454
// 图标
55-
m_TypeFilterButton.Add(new Image()
55+
m_ToolbarTypeFilterButton.Add(new Image()
5656
{
5757
image = PipiUtility.GetIcon("FilterByType"),
5858
scaleMode = ScaleMode.ScaleToFit,
@@ -62,10 +62,10 @@ private void InitToolbarFilterButton()
6262
}
6363
});
6464
// 回调
65-
m_TypeFilterButton.clicked += OnTypeFilterButtonClicked;
65+
m_ToolbarTypeFilterButton.clicked += OnTypeFilterButtonClicked;
6666

6767
// 标签过滤
68-
m_TagFilterButton = new ToolbarButton()
68+
m_ToolbarTagFilterButton = new ToolbarButton()
6969
{
7070
name = "TagFilterButton",
7171
tooltip = "Filter by Tag",
@@ -85,9 +85,9 @@ private void InitToolbarFilterButton()
8585
justifyContent = Justify.Center,
8686
}
8787
};
88-
m_Toolbar.Add(m_TagFilterButton);
88+
m_Toolbar.Add(m_ToolbarTagFilterButton);
8989
// 图标
90-
m_TagFilterButton.Add(new Image()
90+
m_ToolbarTagFilterButton.Add(new Image()
9191
{
9292
image = PipiUtility.GetIcon("FilterByLabel"),
9393
scaleMode = ScaleMode.ScaleToFit,
@@ -97,20 +97,20 @@ private void InitToolbarFilterButton()
9797
}
9898
});
9999
// 回调
100-
m_TagFilterButton.clicked += OnTagFilterButtonClicked;
100+
m_ToolbarTagFilterButton.clicked += OnTagFilterButtonClicked;
101101
}
102102

103103
private void OnTypeFilterButtonClicked()
104104
{
105105
const string popupTitle = "Filter by Type";
106-
Vector2 popupPos = new Vector2(m_TypeFilterButton.worldBound.x, m_TypeFilterButton.worldBound.y + 4);
106+
Vector2 popupPos = new Vector2(m_ToolbarTypeFilterButton.worldBound.x, m_ToolbarTypeFilterButton.worldBound.y + 4);
107107
ShowTogglePopup(popupTitle, popupPos, m_ItemTypeList, m_FilteringType, (v) => { SetTypeFilter(m_FilteringType.Equals(v, StringComparison.OrdinalIgnoreCase) ? string.Empty : v); });
108108
}
109109

110110
private void OnTagFilterButtonClicked()
111111
{
112112
const string popupTitle = "Filter by Tag";
113-
Vector2 popupPos = new Vector2(m_TagFilterButton.worldBound.x, m_TagFilterButton.worldBound.y + 4);
113+
Vector2 popupPos = new Vector2(m_ToolbarTagFilterButton.worldBound.x, m_ToolbarTagFilterButton.worldBound.y + 4);
114114
ShowTogglePopup(popupTitle, popupPos, m_ItemTagList, m_FilteringTag, (v) => { SetTagFilter(m_FilteringTag.Equals(v, StringComparison.OrdinalIgnoreCase) ? string.Empty : v); });
115115
}
116116

Editor/Scripts/Window/Toolbar/ProjectPinBoardWindowToolbarSearch.cs

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public partial class ProjectPinBoardWindow
1313
{
1414

1515
/// <summary>
16-
/// 工具栏搜索栏
16+
/// 搜索栏
1717
/// </summary>
1818
private ToolbarSearchField m_ToolbarSearchField = null;
1919

@@ -24,8 +24,9 @@ private void InitToolbarSearchField()
2424
{
2525
m_ToolbarSearchField = new ToolbarSearchField()
2626
{
27-
name = "SearchField",
27+
name = "Search",
2828
value = m_SearchText,
29+
tooltip = "Search [Ctrl+F]",
2930
style =
3031
{
3132
width = StyleKeyword.Auto,
@@ -55,10 +56,9 @@ private void InitToolbarSearchField()
5556
private void OnSearchFieldValueChanged(ChangeEvent<string> evt)
5657
{
5758
SetSearchText(evt.newValue);
58-
UpdateContent();
5959
}
6060

61-
#region Searching
61+
#region SearchField
6262

6363
/// <summary>
6464
/// 搜索文本
@@ -71,9 +71,23 @@ private void OnSearchFieldValueChanged(ChangeEvent<string> evt)
7171
/// <param name="value"></param>
7272
private void SetSearchText(string value)
7373
{
74-
m_ToolbarSearchField.value = (m_SearchText = value);
74+
m_SearchText = value;
75+
m_ToolbarSearchField.SetValueWithoutNotify(value);
76+
UpdateContent();
7577
}
7678

79+
/// <summary>
80+
/// 聚焦到搜索框
81+
/// </summary>
82+
private void FocusToSearchField()
83+
{
84+
m_ToolbarSearchField.Focus();
85+
}
86+
87+
#endregion
88+
89+
#region Searching
90+
7791
/// <summary>
7892
/// 获取不包含过滤器的实际搜索内容
7993
/// </summary>
@@ -93,14 +107,6 @@ private string GetSearchContent()
93107
return text;
94108
}
95109

96-
/// <summary>
97-
/// 聚焦到搜索框
98-
/// </summary>
99-
private void FocusToSearchField()
100-
{
101-
m_ToolbarSearchField.Focus();
102-
}
103-
104110
#endregion
105111

106112
}

Editor/Scripts/Window/Toolbar/ProjectPinBoardWindowToolbarSort.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@ public partial class ProjectPinBoardWindow
1616
/// <summary>
1717
/// 排序菜单
1818
/// </summary>
19-
private ToolbarMenu m_SortingMenu = null;
19+
private ToolbarMenu m_ToolbarSortingMenu = null;
2020

2121
/// <summary>
2222
/// 初始化
2323
/// </summary>
2424
private void InitToolbarSortingMenu()
2525
{
26-
m_SortingMenu = new ToolbarMenu()
26+
m_ToolbarSortingMenu = new ToolbarMenu()
2727
{
2828
name = "SortingMenu",
2929
tooltip = "Asset list sorting",
@@ -44,16 +44,16 @@ private void InitToolbarSortingMenu()
4444
justifyContent = Justify.SpaceBetween,
4545
}
4646
};
47-
m_Toolbar.Add(m_SortingMenu);
47+
m_Toolbar.Add(m_ToolbarSortingMenu);
4848
// 图标
49-
m_SortingMenu.Insert(0, new Image()
49+
m_ToolbarSortingMenu.Insert(0, new Image()
5050
{
5151
image = PipiUtility.GetIcon("AlphabeticalSorting"),
5252
scaleMode = ScaleMode.ScaleToFit,
5353
});
5454
// 隐藏文本元素
5555
{
56-
TextElement text = m_SortingMenu.Q<TextElement>("", "unity-text-element");
56+
TextElement text = m_ToolbarSortingMenu.Q<TextElement>("", "unity-text-element");
5757
text.style.display = new StyleEnum<DisplayStyle>(DisplayStyle.None);
5858
}
5959

@@ -84,7 +84,7 @@ private void InitToolbarSortingMenu()
8484
/// </summary>
8585
private void BuildSortingMenuItems()
8686
{
87-
DropdownMenu menu = m_SortingMenu.menu;
87+
DropdownMenu menu = m_ToolbarSortingMenu.menu;
8888
foreach (var item in s_SortingMenuMap)
8989
{
9090
menu.AppendAction(item.Key, OnSortingMenuAction, GetSortingMenuActionStatus);

0 commit comments

Comments
 (0)