@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 {
}
}
private var cancellable: AnyCancellable?
+ private var suggestionsWindowController = SuggestionsWindowController()
+ private var suggestionsTextFieldDelegate = SuggestionsTextFieldDelegate()
private func update() {
guard let share = controller?.share else {
expirationDatePicker.isHidden = expirationDateCheckbox.state == .off
}
- func setAllFields(enabled: Bool) {
+ private func setAllFields(enabled: Bool) {
shareTypePicker.isEnabled = enabled
shareRecipientTextField.isEnabled = enabled
labelTextField.isEnabled = enabled
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 ?? "")"
)
}
@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) {
}
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)