Make share property central to display update of share table item view

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
This commit is contained in:
Claudio Cambra 2024-02-28 16:01:01 +08:00
parent 46e2ca5887
commit 18de0d0b3f
2 changed files with 18 additions and 5 deletions

View file

@ -6,12 +6,25 @@
// //
import AppKit import AppKit
import NextcloudKit
class ShareTableItemView: NSTableCellView { class ShareTableItemView: NSTableCellView {
@IBOutlet weak var typeImageView: NSImageView! @IBOutlet private weak var typeImageView: NSImageView!
@IBOutlet weak var label: NSTextField! @IBOutlet private weak var label: NSTextField!
@IBOutlet weak var copyLinkButton: NSButton! @IBOutlet private weak var copyLinkButton: NSButton!
@IBOutlet weak var optionsButton: NSButton! @IBOutlet private weak var optionsButton: NSButton!
var share: NKShare? {
didSet {
guard let share = share else {
prepareForReuse()
return
}
typeImageView.image = share.typeImage
label.stringValue = share.displayString
copyLinkButton.isHidden = share.shareType != NKShare.ShareType.publicLink.rawValue
}
}
override func prepareForReuse() { override func prepareForReuse() {
typeImageView.image = nil typeImageView.image = nil

View file

@ -146,7 +146,7 @@ class ShareTableViewDataSource: NSObject, NSTableViewDataSource, NSTableViewDele
Logger.sharesDataSource.error("Acquired item view from table is not a Share item view!") Logger.sharesDataSource.error("Acquired item view from table is not a Share item view!")
return nil return nil
} }
view.label.stringValue = share.label view.share = share
return view return view
} }
} }