mirror of
https://github.com/nextcloud/desktop.git
synced 2024-10-23 12:55:44 +03:00
Use suggestions window controller in share options view
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
This commit is contained in:
parent
07b6391688
commit
db20e44850
3 changed files with 25 additions and 6 deletions
|
@ -35,6 +35,22 @@ class ShareOptionsView: NSView {
|
|||
@IBOutlet private weak var circleShare: NSMenuItem!
|
||||
@IBOutlet private weak var talkConversationShare: NSMenuItem!
|
||||
|
||||
var kit: NextcloudKit? {
|
||||
didSet {
|
||||
Logger.shareOptionsView.info("Setting up the kit.")
|
||||
guard let kit = kit else {
|
||||
Logger.shareOptionsView.error("Could not configure suggestions data source.")
|
||||
return
|
||||
}
|
||||
suggestionsWindowController.dataSource = ShareeSuggestionsDataSource(kit: kit)
|
||||
suggestionsWindowController.parentTextField = shareRecipientTextField
|
||||
|
||||
suggestionsTextFieldDelegate.suggestionsWindowController = suggestionsWindowController
|
||||
shareRecipientTextField.delegate = suggestionsTextFieldDelegate
|
||||
|
||||
suggestionsWindowController.begin(for: shareRecipientTextField)
|
||||
}
|
||||
}
|
||||
var dataSource: ShareTableViewDataSource?
|
||||
var controller: ShareController? {
|
||||
didSet {
|
||||
|
@ -72,6 +88,8 @@ class ShareOptionsView: NSView {
|
|||
}
|
||||
}
|
||||
private var cancellable: AnyCancellable?
|
||||
private var suggestionsWindowController = SuggestionsWindowController()
|
||||
private var suggestionsTextFieldDelegate = SuggestionsTextFieldDelegate()
|
||||
|
||||
private func update() {
|
||||
guard let share = controller?.share else {
|
||||
|
@ -161,7 +179,7 @@ class ShareOptionsView: NSView {
|
|||
expirationDatePicker.isHidden = expirationDateCheckbox.state == .off
|
||||
}
|
||||
|
||||
func setAllFields(enabled: Bool) {
|
||||
private func setAllFields(enabled: Bool) {
|
||||
shareTypePicker.isEnabled = enabled
|
||||
shareRecipientTextField.isEnabled = enabled
|
||||
labelTextField.isEnabled = enabled
|
||||
|
@ -235,12 +253,12 @@ class ShareOptionsView: NSView {
|
|||
Logger.shareOptionsView.info("Creating new share!")
|
||||
|
||||
guard let dataSource = dataSource,
|
||||
let kit = dataSource.kit,
|
||||
let kit = kit,
|
||||
let itemServerRelativePath = dataSource.itemServerRelativePath
|
||||
else {
|
||||
Logger.shareOptionsView.error("Cannot create new share due to missing data.")
|
||||
Logger.shareOptionsView.error("dataSource: \(self.dataSource)")
|
||||
Logger.shareOptionsView.error("kit: \(self.dataSource?.kit)")
|
||||
Logger.shareOptionsView.error("kit: \(self.kit)")
|
||||
Logger.shareOptionsView.error(
|
||||
"path: \(self.dataSource?.itemServerRelativePath ?? "")"
|
||||
)
|
||||
|
|
|
@ -111,6 +111,8 @@ class ShareViewController: NSViewController, ShareViewDataSourceUIDelegate {
|
|||
}
|
||||
|
||||
@IBAction func createShare(_ sender: Any) {
|
||||
guard let kit = shareDataSource.kit else { return }
|
||||
optionsView.kit = kit
|
||||
optionsView.createMode = true
|
||||
tableView.deselectAll(self)
|
||||
if !splitView.arrangedSubviews.contains(optionsView) {
|
||||
|
@ -137,11 +139,11 @@ class ShareViewController: NSViewController, ShareViewDataSourceUIDelegate {
|
|||
}
|
||||
splitView.removeArrangedSubview(optionsView)
|
||||
optionsView.isHidden = true
|
||||
|
||||
}
|
||||
|
||||
func showOptions(share: NKShare) {
|
||||
guard let kit = shareDataSource.kit else { return }
|
||||
optionsView.kit = kit
|
||||
optionsView.controller = ShareController(share: share, kit: kit)
|
||||
if !splitView.arrangedSubviews.contains(optionsView) {
|
||||
splitView.addArrangedSubview(optionsView)
|
||||
|
|
|
@ -8,11 +8,10 @@
|
|||
import Foundation
|
||||
import NextcloudKit
|
||||
import OSLog
|
||||
import SuggestionsTextFieldKit
|
||||
|
||||
class ShareeSuggestionsDataSource: SuggestionsDataSource {
|
||||
let kit: NextcloudKit
|
||||
var suggestions: [SuggestionsTextFieldKit.Suggestion] = []
|
||||
var suggestions: [Suggestion] = []
|
||||
var inputString: String = "" {
|
||||
didSet { Task { await updateSuggestions() } }
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue