Skip to content

Commit 58fd3c7

Browse files
committed
Added an inactive state to activity viewer text. Width of activity viewer now has a max width of 40% of the window.
1 parent 51669a3 commit 58fd3c7

File tree

7 files changed

+58
-9
lines changed

7 files changed

+58
-9
lines changed

CodeEdit/Features/ActivityViewer/ActivityViewer.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ struct ActivityViewer: View {
4545
TaskNotificationView(taskNotificationHandler: taskNotificationHandler)
4646
.fixedSize()
4747
}
48+
.frame(minWidth: 0)
4849
.fixedSize(horizontal: false, vertical: false)
4950
.padding(.horizontal, 5)
5051
.padding(.vertical, 1.5)

CodeEdit/Features/ActivityViewer/Notifications/TaskNotificationView.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@
88
import SwiftUI
99

1010
struct TaskNotificationView: View {
11+
@Environment(\.controlActiveState)
12+
private var activeState
13+
1114
@ObservedObject var taskNotificationHandler: TaskNotificationHandler
1215
@State private var isPresented: Bool = false
1316
@State var notification: TaskNotificationModel?
@@ -46,6 +49,7 @@ struct TaskNotificationView: View {
4649
}
4750
}
4851
.transition(.opacity.combined(with: .move(edge: .trailing)))
52+
.opacity(activeState == .inactive ? 0.4 : 1.0)
4953
.padding(3)
5054
.padding(-3)
5155
.padding(.trailing, 3)

CodeEdit/Features/ActivityViewer/Tasks/SchemeDropDownView.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ struct SchemeDropDownView: View {
1111
@Environment(\.colorScheme)
1212
private var colorScheme
1313

14+
@Environment(\.controlActiveState)
15+
private var activeState
16+
1417
@State var isSchemePopOverPresented: Bool = false
1518
@State private var isHoveringScheme: Bool = false
1619

@@ -30,7 +33,9 @@ struct SchemeDropDownView: View {
3033
? (workspaceFileManager?.workspaceItem.fileName() ?? "No Project found")
3134
: workspaceName
3235
)
36+
.frame(minWidth: 0)
3337
}
38+
.opacity(activeState == .inactive ? 0.4 : 1.0)
3439
.font(.subheadline)
3540
.padding(.trailing, 11.5)
3641
.padding(.horizontal, 2.5)

CodeEdit/Features/ActivityViewer/Tasks/TaskDropDownView.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ struct TaskDropDownView: View {
1111
@Environment(\.colorScheme)
1212
private var colorScheme
1313

14+
@Environment(\.controlActiveState)
15+
private var activeState
16+
1417
@ObservedObject var taskManager: TaskManager
1518

1619
@State private var isTaskPopOverPresented: Bool = false
@@ -28,8 +31,10 @@ struct TaskDropDownView: View {
2831
}
2932
} else {
3033
Text("Create Tasks")
34+
.frame(minWidth: 0)
3135
}
3236
}
37+
.opacity(activeState == .inactive ? 0.4 : 1.0)
3338
.font(.subheadline)
3439
.padding(.trailing, 11.5)
3540
.padding(.horizontal, 2.5)

CodeEdit/Features/ActivityViewer/Tasks/TaskView.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ struct TaskView: View {
1818
HStack(spacing: 5) {
1919
Image(systemName: "gearshape")
2020
Text(task.name)
21+
.frame(minWidth: 0)
2122
Spacer(minLength: 0)
2223
}
2324
.padding(.trailing, 7.5)

CodeEdit/Features/Documents/Controllers/CodeEditWindowController+Toolbar.swift

Lines changed: 41 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ extension CodeEditWindowController {
3232
.flexibleSpace,
3333
.activityViewer,
3434
.flexibleSpace,
35+
// .showLibrary,
3536
.itemListTrackingSeparator,
3637
.flexibleSpace,
3738
.toggleLastSidebarItem
@@ -48,7 +49,8 @@ extension CodeEditWindowController {
4849
.branchPicker,
4950
.activityViewer,
5051
.startTaskSidebarItem,
51-
.stopTaskSidebarItem
52+
.stopTaskSidebarItem,
53+
.showLibrary
5254
]
5355
}
5456

@@ -110,6 +112,20 @@ extension CodeEditWindowController {
110112
accessibilityDescription: nil
111113
)?.withSymbolConfiguration(.init(scale: .large))
112114

115+
return toolbarItem
116+
case .showLibrary:
117+
let toolbarItem = NSToolbarItem(itemIdentifier: NSToolbarItem.Identifier.showLibrary)
118+
toolbarItem.label = "Test"
119+
toolbarItem.paletteLabel = "Test"
120+
toolbarItem.toolTip = "Test"
121+
toolbarItem.isBordered = true
122+
toolbarItem.target = self
123+
toolbarItem.action = #selector(self.toggleLastPanel)
124+
toolbarItem.image = NSImage(
125+
systemSymbolName: "plus",
126+
accessibilityDescription: nil
127+
)
128+
113129
return toolbarItem
114130
case .stopTaskSidebarItem:
115131
let toolbarItem = NSToolbarItem(itemIdentifier: NSToolbarItem.Identifier.stopTaskSidebarItem)
@@ -138,20 +154,25 @@ extension CodeEditWindowController {
138154
return toolbarItem
139155
case .branchPicker:
140156
let toolbarItem = NSToolbarItem(itemIdentifier: .branchPicker)
157+
141158
let view = NSHostingView(
142159
rootView: ToolbarBranchPicker(
143160
workspaceFileManager: workspace?.workspaceFileManager
144161
)
145162
)
163+
146164
toolbarItem.view = view
165+
toolbarItem.visibilityPriority = .high
147166

148167
return toolbarItem
149168
case .activityViewer:
150169
let toolbarItem = NSToolbarItem(itemIdentifier: NSToolbarItem.Identifier.activityViewer)
151-
toolbarItem.visibilityPriority = .user
170+
toolbarItem.visibilityPriority = .low
171+
152172
guard let workspaceSettingsManager = workspace?.workspaceSettingsManager,
153173
let taskNotificationHandler = workspace?.taskNotificationHandler,
154-
let taskManager = workspace?.taskManager
174+
let taskManager = workspace?.taskManager,
175+
let window = self.window
155176
else { return nil }
156177

157178
let view = NSHostingView(
@@ -163,17 +184,28 @@ extension CodeEditWindowController {
163184
)
164185
)
165186

166-
let weakWidth = view.widthAnchor.constraint(equalToConstant: 650)
167-
weakWidth.priority = .defaultLow
168-
let strongWidth = view.widthAnchor.constraint(greaterThanOrEqualToConstant: 200)
169-
strongWidth.priority = .defaultHigh
187+
let dynamicWidthConstraint = view.widthAnchor.constraint(equalToConstant: window.frame.width * 0.4)
188+
dynamicWidthConstraint.priority = .defaultLow
189+
dynamicWidthConstraint.isActive = true
190+
191+
let minWidthConstraint = view.widthAnchor.constraint(greaterThanOrEqualToConstant: 0)
170192

171193
NSLayoutConstraint.activate([
172-
weakWidth,
173-
strongWidth
194+
dynamicWidthConstraint,
195+
minWidthConstraint,
174196
])
175197

198+
NotificationCenter.default.addObserver(
199+
forName: NSWindow.didResizeNotification,
200+
object: window,
201+
queue: .main
202+
) { [weak view] _ in
203+
guard let window = view?.window else { return }
204+
dynamicWidthConstraint.constant = window.frame.width * 0.4
205+
}
206+
176207
toolbarItem.view = view
208+
177209
return toolbarItem
178210
default:
179211
return NSToolbarItem(itemIdentifier: itemIdentifier)

CodeEdit/Features/Documents/Controllers/CodeEditWindowControllerExtensions.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,4 +139,5 @@ extension NSToolbarItem.Identifier {
139139
static let itemListTrackingSeparator = NSToolbarItem.Identifier("ItemListTrackingSeparator")
140140
static let branchPicker: NSToolbarItem.Identifier = NSToolbarItem.Identifier("BranchPicker")
141141
static let activityViewer: NSToolbarItem.Identifier = NSToolbarItem.Identifier("ActivityViewer")
142+
static let showLibrary: NSToolbarItem.Identifier = NSToolbarItem.Identifier("ShowLibrary")
142143
}

0 commit comments

Comments
 (0)