Explorar o código

macOS: removed ToolbarTabView

osy %!s(int64=4) %!d(string=hai) anos
pai
achega
b01b60422b

+ 0 - 155
Platform/macOS/ToolbarTabView.swift

@@ -1,155 +0,0 @@
-//
-// Copyright © 2020 osy. All rights reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-
-import SwiftUI
-
-// MARK: - View
-
-@available(macOS 11, *)
-public struct ToolbarTabView: View {
-    let tabs: [AnyView]
-
-    public init<Content: View>(@ViewBuilder content: () -> Content) {
-        let views = content()
-        self.tabs = [AnyView(views)]
-    }
-    
-    public init<C0: View, C1: View>(@ViewBuilder content: () -> TupleView<(C0, C1)>) {
-        let views = content().value
-        self.tabs = [AnyView(views.0), AnyView(views.1)]
-    }
-    
-    public init<C0: View, C1: View, C2: View>(@ViewBuilder content: () -> TupleView<(C0, C1, C2)>) {
-        let views = content().value
-        self.tabs = [AnyView(views.0), AnyView(views.1), AnyView(views.2)]
-    }
-    
-    public init<C0: View, C1: View, C2: View, C3: View>(@ViewBuilder content: () -> TupleView<(C0, C1, C2, C3)>) {
-        let views = content().value
-        self.tabs = [AnyView(views.0), AnyView(views.1), AnyView(views.2), AnyView(views.3)]
-    }
-    
-    public init<C0: View, C1: View, C2: View, C3: View, C4: View>(@ViewBuilder content: () -> TupleView<(C0, C1, C2, C3, C4)>) {
-        let views = content().value
-        self.tabs = [AnyView(views.0), AnyView(views.1), AnyView(views.2), AnyView(views.3), AnyView(views.4)]
-    }
-    
-    public init<C0: View, C1: View, C2: View, C3: View, C4: View, C5: View>(@ViewBuilder content: () -> TupleView<(C0, C1, C2, C3, C4, C5)>) {
-        let views = content().value
-        self.tabs = [AnyView(views.0), AnyView(views.1), AnyView(views.2), AnyView(views.3), AnyView(views.4), AnyView(views.5)]
-    }
-    
-    public init<C0: View, C1: View, C2: View, C3: View, C4: View, C5: View, C6: View>(@ViewBuilder content: () -> TupleView<(C0, C1, C2, C3, C4, C5, C6)>) {
-        let views = content().value
-        self.tabs = [AnyView(views.0), AnyView(views.1), AnyView(views.2), AnyView(views.3), AnyView(views.4), AnyView(views.5), AnyView(views.6)]
-    }
-    
-    public init<C0: View, C1: View, C2: View, C3: View, C4: View, C5: View, C6: View, C7: View>(@ViewBuilder content: () -> TupleView<(C0, C1, C2, C3, C4, C5, C6, C7)>) {
-        let views = content().value
-        self.tabs = [AnyView(views.0), AnyView(views.1), AnyView(views.2), AnyView(views.3), AnyView(views.4), AnyView(views.5), AnyView(views.6), AnyView(views.7)]
-    }
-    
-    public init<C0: View, C1: View, C2: View, C3: View, C4: View, C5: View, C6: View, C7: View, C8: View>(@ViewBuilder content: () -> TupleView<(C0, C1, C2, C3, C4, C5, C6, C7, C8)>) {
-        let views = content().value
-        self.tabs = [AnyView(views.0), AnyView(views.1), AnyView(views.2), AnyView(views.3), AnyView(views.4), AnyView(views.5), AnyView(views.6), AnyView(views.7), AnyView(views.8)]
-    }
-    
-    public init<C0: View, C1: View, C2: View, C3: View, C4: View, C5: View, C6: View, C7: View, C8: View, C9: View>(@ViewBuilder content: () -> TupleView<(C0, C1, C2, C3, C4, C5, C6, C7, C8, C9)>) {
-        let views = content().value
-        self.tabs = [AnyView(views.0), AnyView(views.1), AnyView(views.2), AnyView(views.3), AnyView(views.4), AnyView(views.5), AnyView(views.6), AnyView(views.7), AnyView(views.8), AnyView(views.9)]
-    }
-    
-    public var body: some View {
-        let nsTabs = tabs.map { (content) -> NSTabViewItem in
-            var tabViewItem: NSTabViewItem? = nil
-            let view = content.onPreferenceChange(ToolbarTabItemPreferenceKey.self) { (value: ToolbarTabItemPreference) in
-                guard let item = tabViewItem else {
-                    logger.error("Failed to update \(value.label.localizedString) since item is nil!")
-                    return
-                }
-                item.label = value.label.localizedString
-                if value.nsImage != nil {
-                    item.image = value.nsImage!
-                }
-                if value.tooltip != nil {
-                    item.toolTip = value.tooltip!.localizedString
-                }
-            }
-            tabViewItem = NSTabViewItem(viewController: NSHostingController(rootView: view))
-            tabViewItem!.label = "" // FIXME: bypass lazy loading of label
-            return tabViewItem!
-        }
-        return ToolbarTabViewController(tabViewItems: nsTabs)
-    }
-}
-
-// MARK: - Tab Item Preference
-
-@available(macOS 11, *)
-private struct ToolbarTabItemPreference : Equatable {
-    let label: LocalizedStringKey
-    let nsImage: NSImage?
-    let tooltip: LocalizedStringKey?
-    
-    static let none = ToolbarTabItemPreference(label: "", nsImage: nil, tooltip: nil)
-    
-    init(label: LocalizedStringKey, nsImage: NSImage?, tooltip: LocalizedStringKey?) {
-        self.label = label
-        self.nsImage = nsImage
-        self.tooltip = tooltip
-    }
-    
-    static func == (lhs: ToolbarTabItemPreference, rhs: ToolbarTabItemPreference) -> Bool {
-        lhs.label == rhs.label && lhs.nsImage == rhs.nsImage
-    }
-}
-
-private struct ToolbarTabItemPreferenceKey: PreferenceKey {
-    static var defaultValue: ToolbarTabItemPreference = .none
-
-    static func reduce(value: inout ToolbarTabItemPreference, nextValue: () -> ToolbarTabItemPreference) {
-        value = nextValue()
-    }
-}
-
-// MARK: - Toolbar item modifier
-
-@available(macOS 11, *)
-extension View {
-    func toolbarTabItem(_ label: LocalizedStringKey, nsImage: NSImage? = nil, tooltip: LocalizedStringKey? = nil) -> some View {
-        self.preference(key: ToolbarTabItemPreferenceKey.self, value: ToolbarTabItemPreference(label: label, nsImage: nsImage, tooltip: tooltip))
-    }
-    
-    func toolbarTabItem(_ label: LocalizedStringKey, systemImage: String, tooltip: LocalizedStringKey? = nil) -> some View {
-        self.preference(key: ToolbarTabItemPreferenceKey.self, value: ToolbarTabItemPreference(label: label, nsImage: NSImage(systemSymbolName: systemImage, accessibilityDescription: "\(tooltip ?? "")"), tooltip: tooltip))
-    }
-}
-
-// MARK: - Preview
-
-@available(macOS 11, *)
-struct ToolbarTabView_Previews: PreviewProvider {
-    static var previews: some View {
-        ToolbarTabView {
-            Text("The First Tab")
-                .toolbarTabItem("First", systemImage: "1.square.fill", tooltip: "First one")
-            Text("Another Tab")
-                .toolbarTabItem("Second", systemImage: "2.square.fill", tooltip: "Second one")
-            Text("The Last Tab")
-                .toolbarTabItem("Third", systemImage: "3.square.fill", tooltip: "Third one")
-        }
-    }
-}

+ 0 - 37
Platform/macOS/ToolbarTabViewController.swift

@@ -1,37 +0,0 @@
-//
-// Copyright © 2020 osy. All rights reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-//     http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-
-import SwiftUI
-
-@available(macOS 11, *)
-public struct ToolbarTabViewController: NSViewControllerRepresentable {
-    let tabViewItems: [NSTabViewItem]
-    
-    public init(tabViewItems: [NSTabViewItem]) {
-        self.tabViewItems = tabViewItems
-    }
-    
-    public func makeNSViewController(context: Context) -> UTMTabViewController {
-        let tab = UTMTabViewController()
-        tab.tabStyle = .toolbar
-        tab.tabViewItems = tabViewItems
-        return tab
-    }
-    
-    public func updateNSViewController(_ controller: UTMTabViewController, context: Context) {
-        
-    }
-}

+ 0 - 8
UTM.xcodeproj/project.pbxproj

@@ -672,8 +672,6 @@
 		CE900BAF25FC3E65007533FD /* CSUSBDevice.m in Sources */ = {isa = PBXBuildFile; fileRef = CE900BAE25FC3E65007533FD /* CSUSBDevice.m */; };
 		CE900BAF25FC3E65007533FD /* CSUSBDevice.m in Sources */ = {isa = PBXBuildFile; fileRef = CE900BAE25FC3E65007533FD /* CSUSBDevice.m */; };
 		CE900BB025FC3E65007533FD /* CSUSBDevice.m in Sources */ = {isa = PBXBuildFile; fileRef = CE900BAE25FC3E65007533FD /* CSUSBDevice.m */; };
 		CE900BB025FC3E65007533FD /* CSUSBDevice.m in Sources */ = {isa = PBXBuildFile; fileRef = CE900BAE25FC3E65007533FD /* CSUSBDevice.m */; };
 		CE93758924B930270074066F /* BusyOverlay.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE7D972B24B2B17D0080CB69 /* BusyOverlay.swift */; };
 		CE93758924B930270074066F /* BusyOverlay.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE7D972B24B2B17D0080CB69 /* BusyOverlay.swift */; };
-		CE93759024BA74510074066F /* ToolbarTabViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE93758F24BA74510074066F /* ToolbarTabViewController.swift */; };
-		CE93759224BA775C0074066F /* ToolbarTabView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE93759124BA775C0074066F /* ToolbarTabView.swift */; };
 		CE93759624BB7EA00074066F /* UTMTabViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE93759524BB7E9F0074066F /* UTMTabViewController.swift */; };
 		CE93759624BB7EA00074066F /* UTMTabViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE93759524BB7E9F0074066F /* UTMTabViewController.swift */; };
 		CE93759924BB821F0074066F /* IQKeyboardManagerSwift in Frameworks */ = {isa = PBXBuildFile; productRef = CE93759824BB821F0074066F /* IQKeyboardManagerSwift */; };
 		CE93759924BB821F0074066F /* IQKeyboardManagerSwift in Frameworks */ = {isa = PBXBuildFile; productRef = CE93759824BB821F0074066F /* IQKeyboardManagerSwift */; };
 		CE9375A124BBDDD10074066F /* VMConfigDriveDetailsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE9375A024BBDDD10074066F /* VMConfigDriveDetailsView.swift */; };
 		CE9375A124BBDDD10074066F /* VMConfigDriveDetailsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE9375A024BBDDD10074066F /* VMConfigDriveDetailsView.swift */; };
@@ -1910,8 +1908,6 @@
 		CE900BA225FC31E4007533FD /* CSUSBManagerDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CSUSBManagerDelegate.h; sourceTree = "<group>"; };
 		CE900BA225FC31E4007533FD /* CSUSBManagerDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CSUSBManagerDelegate.h; sourceTree = "<group>"; };
 		CE900BAD25FC3E65007533FD /* CSUSBDevice.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CSUSBDevice.h; sourceTree = "<group>"; };
 		CE900BAD25FC3E65007533FD /* CSUSBDevice.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CSUSBDevice.h; sourceTree = "<group>"; };
 		CE900BAE25FC3E65007533FD /* CSUSBDevice.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CSUSBDevice.m; sourceTree = "<group>"; };
 		CE900BAE25FC3E65007533FD /* CSUSBDevice.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CSUSBDevice.m; sourceTree = "<group>"; };
-		CE93758F24BA74510074066F /* ToolbarTabViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToolbarTabViewController.swift; sourceTree = "<group>"; };
-		CE93759124BA775C0074066F /* ToolbarTabView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToolbarTabView.swift; sourceTree = "<group>"; };
 		CE93759524BB7E9F0074066F /* UTMTabViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UTMTabViewController.swift; sourceTree = "<group>"; };
 		CE93759524BB7E9F0074066F /* UTMTabViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UTMTabViewController.swift; sourceTree = "<group>"; };
 		CE9375A024BBDDD10074066F /* VMConfigDriveDetailsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VMConfigDriveDetailsView.swift; sourceTree = "<group>"; };
 		CE9375A024BBDDD10074066F /* VMConfigDriveDetailsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VMConfigDriveDetailsView.swift; sourceTree = "<group>"; };
 		CE9A352D26533A51005077CF /* JailbreakInterposer.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = JailbreakInterposer.framework; sourceTree = BUILT_PRODUCTS_DIR; };
 		CE9A352D26533A51005077CF /* JailbreakInterposer.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = JailbreakInterposer.framework; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -2405,8 +2401,6 @@
 				CEECE13B25E47D9500A2AAB8 /* AppDelegate.swift */,
 				CEECE13B25E47D9500A2AAB8 /* AppDelegate.swift */,
 				CEEC811A24E48EC600ACB0B3 /* SettingsView.swift */,
 				CEEC811A24E48EC600ACB0B3 /* SettingsView.swift */,
 				CE8813D724CD2A8B00532628 /* SharingServicePicker.swift */,
 				CE8813D724CD2A8B00532628 /* SharingServicePicker.swift */,
-				CE93759124BA775C0074066F /* ToolbarTabView.swift */,
-				CE93758F24BA74510074066F /* ToolbarTabViewController.swift */,
 				CEBBF1A624B5730F00C15049 /* UTMDataExtension.swift */,
 				CEBBF1A624B5730F00C15049 /* UTMDataExtension.swift */,
 				CE93759524BB7E9F0074066F /* UTMTabViewController.swift */,
 				CE93759524BB7E9F0074066F /* UTMTabViewController.swift */,
 				84A381A9268CB30C0048EE4D /* VMConfigDrivesButtons.swift */,
 				84A381A9268CB30C0048EE4D /* VMConfigDrivesButtons.swift */,
@@ -3760,7 +3754,6 @@
 				CE0B6CF324AD568400FE012D /* UTMConfiguration.m in Sources */,
 				CE0B6CF324AD568400FE012D /* UTMConfiguration.m in Sources */,
 				CE0B6D3D24AD584C00FE012D /* qapi-visit-block-core.c in Sources */,
 				CE0B6D3D24AD584C00FE012D /* qapi-visit-block-core.c in Sources */,
 				CE0B6D5C24AD584D00FE012D /* qapi-events-net.c in Sources */,
 				CE0B6D5C24AD584D00FE012D /* qapi-events-net.c in Sources */,
-				CE93759024BA74510074066F /* ToolbarTabViewController.swift in Sources */,
 				CE900B9F25FC2869007533FD /* CSUSBManager.m in Sources */,
 				CE900B9F25FC2869007533FD /* CSUSBManager.m in Sources */,
 				CE0B6D0324AD56AE00FE012D /* UTMTerminal.m in Sources */,
 				CE0B6D0324AD56AE00FE012D /* UTMTerminal.m in Sources */,
 				CE0B6CFC24AD568400FE012D /* UTMConfigurationPortForward.m in Sources */,
 				CE0B6CFC24AD568400FE012D /* UTMConfigurationPortForward.m in Sources */,
@@ -3849,7 +3842,6 @@
 				CE0B6D8224AD584D00FE012D /* qapi-types-block-core.c in Sources */,
 				CE0B6D8224AD584D00FE012D /* qapi-types-block-core.c in Sources */,
 				2CE8EAFF2572E14D000E2EBB /* qapi-types-block-export.c in Sources */,
 				2CE8EAFF2572E14D000E2EBB /* qapi-types-block-export.c in Sources */,
 				CE0B6D8724AD5ADE00FE012D /* UTMScreenshot.m in Sources */,
 				CE0B6D8724AD5ADE00FE012D /* UTMScreenshot.m in Sources */,
-				CE93759224BA775C0074066F /* ToolbarTabView.swift in Sources */,
 				CEDF83FA258AE24E0030E4AC /* UTMPasteboard.swift in Sources */,
 				CEDF83FA258AE24E0030E4AC /* UTMPasteboard.swift in Sources */,
 				CE0B6D1124AD57C700FE012D /* qapi-builtin-visit.c in Sources */,
 				CE0B6D1124AD57C700FE012D /* qapi-builtin-visit.c in Sources */,
 				CE0B6D3F24AD584C00FE012D /* qapi-visit-qom.c in Sources */,
 				CE0B6D3F24AD584C00FE012D /* qapi-visit-qom.c in Sources */,