|
@@ -88,8 +88,7 @@ class KMNWatermarkPropertyController: NSViewController {
|
|
|
public var editSubType: KMPDFEditSubModeType = .add
|
|
|
|
|
|
var originalDataDict: Dictionary<String, Any>?
|
|
|
- var isEditModeChanged: Bool = false //修改水印时,记录是否有做过调整
|
|
|
-
|
|
|
+
|
|
|
weak open var delegate: KMNWatermarkPropertyControllerDelegate?
|
|
|
|
|
|
//MARK: - func
|
|
@@ -145,6 +144,7 @@ class KMNWatermarkPropertyController: NSViewController {
|
|
|
state: .normal,
|
|
|
creatable: true,
|
|
|
text: "12 pt",
|
|
|
+ textUnit: " pt",
|
|
|
regexString: "0123456789 pt")
|
|
|
var sizeItemArr: [ComponentMenuitemProperty] = []
|
|
|
for string in ["6","8","10","12","14",
|
|
@@ -197,6 +197,7 @@ class KMNWatermarkPropertyController: NSViewController {
|
|
|
state: .normal,
|
|
|
creatable: true,
|
|
|
text: "0°",
|
|
|
+ textUnit: "°",
|
|
|
regexString: "0123456789°-")
|
|
|
var rotateItems: [ComponentMenuitemProperty] = []
|
|
|
for string in ["0°", "45°", "-45°", "90°", "-90°"] {
|
|
@@ -210,6 +211,7 @@ class KMNWatermarkPropertyController: NSViewController {
|
|
|
state: .normal,
|
|
|
creatable: true,
|
|
|
text: "100%",
|
|
|
+ textUnit: "%",
|
|
|
regexString: "0123456789%")
|
|
|
var opacityItems: [ComponentMenuitemProperty] = []
|
|
|
for string in ["25%", "50%", "75%", "100%"] {
|
|
@@ -226,6 +228,7 @@ class KMNWatermarkPropertyController: NSViewController {
|
|
|
state: .normal,
|
|
|
creatable: true,
|
|
|
text: "100%",
|
|
|
+ textUnit: "%",
|
|
|
regexString: "0123456789%")
|
|
|
var appearanceScaleItems: [ComponentMenuitemProperty] = []
|
|
|
for string in ["25%", "50%", "75%", "100%", "125%", "150%","200%"] {
|
|
@@ -287,7 +290,7 @@ class KMNWatermarkPropertyController: NSViewController {
|
|
|
saveTemplateBGView.layer?.backgroundColor = ComponentLibrary.shared.getComponentColorFromKey("colorBg/layout-middle").cgColor
|
|
|
saveButton.properties = ComponentButtonProperty(type: .default_tertiary, size: .m, showLeftIcon: true, buttonText: KMLocalizedString("Save as Template"), icon: NSImage(named: "icon_wm_template_save"), keepPressState: false)
|
|
|
saveButton.setTarget(self, action: #selector(saveButtonClicked(_:)))
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
|
|
|
func reloadData() {
|
|
@@ -352,6 +355,8 @@ class KMNWatermarkPropertyController: NSViewController {
|
|
|
fontStyleSelect.reloadData()
|
|
|
}
|
|
|
|
|
|
+ positionTileCheckbox.properties.isDisabled = false
|
|
|
+
|
|
|
let fontSizeStr = String(format: "%.0f", watermarkData.fontSize)
|
|
|
if let index = KMWatermarkManager.getFontSize().firstIndex(of: fontSizeStr) {
|
|
|
fontSizeSelect.selectItemAtIndex(index)
|
|
@@ -360,6 +365,8 @@ class KMNWatermarkPropertyController: NSViewController {
|
|
|
fontSizeSelect.properties.isDisabled = false
|
|
|
if watermarkData.isScale {
|
|
|
fontSizeSelect.properties.isDisabled = true
|
|
|
+ positionTileCheckbox.properties.isDisabled = true
|
|
|
+ watermarkData.isTilePage = false
|
|
|
}
|
|
|
fontSizeSelect.reloadData()
|
|
|
|
|
@@ -410,7 +417,6 @@ class KMNWatermarkPropertyController: NSViewController {
|
|
|
|
|
|
positionTileHoriInput.properties.isDisabled = false
|
|
|
positionTileVertInput.properties.isDisabled = false
|
|
|
-
|
|
|
} else {
|
|
|
positionTileHorImage.image = NSImage(named: "tile_spacing_horiz_dis")
|
|
|
positionTileVertImage.image = NSImage(named: "tile_spacing_vert_dis")
|
|
@@ -423,7 +429,20 @@ class KMNWatermarkPropertyController: NSViewController {
|
|
|
|
|
|
positionTileCheckbox.properties.checkboxType = watermarkData.isTilePage ? .selected : .normal
|
|
|
positionTileCheckbox.reloadData()
|
|
|
-
|
|
|
+
|
|
|
+ saveButton.properties.isDisabled = true
|
|
|
+ if watermarkData.watermarkType == .text {
|
|
|
+ if watermarkData.text?.count == 0 {
|
|
|
+ saveButton.properties.isDisabled = false
|
|
|
+ }
|
|
|
+ } else if watermarkData.watermarkType == .image {
|
|
|
+ if let path = watermarkData.imagePath {
|
|
|
+
|
|
|
+ } else {
|
|
|
+ saveButton.properties.isDisabled = false
|
|
|
+ }
|
|
|
+ }
|
|
|
+ saveButton.reloadData()
|
|
|
}
|
|
|
|
|
|
func clearData() {
|
|
@@ -435,7 +454,11 @@ class KMNWatermarkPropertyController: NSViewController {
|
|
|
//MARK: - Action
|
|
|
@objc func leftTopButtonClicked(_ sender: ComponentButton) {
|
|
|
if sender == leftTopButton {
|
|
|
- if isEditModeChanged == true {
|
|
|
+ var isChanged = false
|
|
|
+ if let dict = self.originalDataDict {
|
|
|
+ isChanged = KMWatermarkManager.compareIsChangedModel(watermarkData, withDict: dict as NSDictionary)
|
|
|
+ }
|
|
|
+ if isChanged == true {
|
|
|
let alert = NSAlert()
|
|
|
alert.alertStyle = .critical
|
|
|
alert.messageText = KMLocalizedString("Save template changes?")
|
|
@@ -451,14 +474,12 @@ class KMNWatermarkPropertyController: NSViewController {
|
|
|
let _ = KMWatermarkManager.defaultManager.updateWatermark(watermark: self.watermarkData)
|
|
|
}
|
|
|
self.delegate?.watermarkPropertyControllerCancelTemplateEdit?(self)
|
|
|
-
|
|
|
- self.isEditModeChanged = false
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
} else {
|
|
|
delegate?.watermarkPropertyControllerCancelTemplateEdit?(self)
|
|
|
-
|
|
|
- isEditModeChanged = false
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -471,7 +492,6 @@ class KMNWatermarkPropertyController: NSViewController {
|
|
|
} else {
|
|
|
delegate?.watermarkPropertyControllerDidChangetoTemplate?(self)
|
|
|
}
|
|
|
- isEditModeChanged = false
|
|
|
}
|
|
|
|
|
|
@objc func checkBoxClicked(_ sender: ComponentCheckBox) {
|
|
@@ -481,8 +501,7 @@ class KMNWatermarkPropertyController: NSViewController {
|
|
|
watermarkData.isTilePage = positionTileCheckbox.properties.checkboxType == .selected ? true : false
|
|
|
}
|
|
|
reloadData()
|
|
|
-
|
|
|
- isEditModeChanged = true
|
|
|
+
|
|
|
delegate?.watermarkPropertyControllerDidUpdate?(self)
|
|
|
}
|
|
|
|
|
@@ -494,8 +513,7 @@ class KMNWatermarkPropertyController: NSViewController {
|
|
|
}
|
|
|
|
|
|
reloadData()
|
|
|
-
|
|
|
- isEditModeChanged = true
|
|
|
+
|
|
|
delegate?.watermarkPropertyControllerDidUpdate?(self)
|
|
|
}
|
|
|
|
|
@@ -548,7 +566,6 @@ class KMNWatermarkPropertyController: NSViewController {
|
|
|
if FileManager.default.fileExists(atPath: outFolderPath) {
|
|
|
self.watermarkData.imagePath = outFolderPath
|
|
|
}
|
|
|
- self.isEditModeChanged = true
|
|
|
self.delegate?.watermarkPropertyControllerDidUpdate?(self)
|
|
|
|
|
|
self.reloadData()
|
|
@@ -574,7 +591,6 @@ class KMNWatermarkPropertyController: NSViewController {
|
|
|
self.watermarkData.imagePath = resultPath
|
|
|
}
|
|
|
|
|
|
- self.isEditModeChanged = true
|
|
|
self.delegate?.watermarkPropertyControllerDidUpdate?(self)
|
|
|
|
|
|
self.reloadData()
|
|
@@ -616,6 +632,13 @@ class KMNWatermarkPropertyController: NSViewController {
|
|
|
return nil
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ //MARK: - Mouse
|
|
|
+ override func mouseDown(with event: NSEvent) {
|
|
|
+ super.mouseDown(with: event)
|
|
|
+
|
|
|
+ view.window?.makeFirstResponder(nil)
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
//MARK: - ComponentTabsDelegate
|
|
@@ -628,7 +651,6 @@ extension KMNWatermarkPropertyController: ComponentTabsDelegate {
|
|
|
}
|
|
|
reloadData()
|
|
|
|
|
|
- isEditModeChanged = true
|
|
|
delegate?.watermarkPropertyControllerDidUpdate?(self)
|
|
|
}
|
|
|
}
|
|
@@ -638,7 +660,6 @@ extension KMNWatermarkPropertyController: ComponentTextareaDelegate {
|
|
|
func componentTextareaTextDidChange(_ view: ComponentTextarea) {
|
|
|
watermarkData.text = view.properties.text
|
|
|
|
|
|
- isEditModeChanged = true
|
|
|
delegate?.watermarkPropertyControllerDidUpdate?(self)
|
|
|
|
|
|
}
|
|
@@ -646,7 +667,6 @@ extension KMNWatermarkPropertyController: ComponentTextareaDelegate {
|
|
|
func componentTextareaTextDidEndEditing(_ view: ComponentTextarea) {
|
|
|
watermarkData.text = view.properties.text
|
|
|
|
|
|
- isEditModeChanged = true
|
|
|
delegate?.watermarkPropertyControllerDidUpdate?(self)
|
|
|
|
|
|
}
|
|
@@ -660,7 +680,6 @@ extension KMNWatermarkPropertyController: ComponentCColorDelegate {
|
|
|
}
|
|
|
reloadData()
|
|
|
|
|
|
- isEditModeChanged = true
|
|
|
delegate?.watermarkPropertyControllerDidUpdate?(self)
|
|
|
}
|
|
|
}
|
|
@@ -697,7 +716,6 @@ extension KMNWatermarkPropertyController: ComponentSelectDelegate {
|
|
|
|
|
|
reloadData()
|
|
|
|
|
|
- isEditModeChanged = true
|
|
|
delegate?.watermarkPropertyControllerDidUpdate?(self)
|
|
|
}
|
|
|
|
|
@@ -707,7 +725,6 @@ extension KMNWatermarkPropertyController: ComponentSelectDelegate {
|
|
|
let size = string.stringToCGFloat()
|
|
|
watermarkData.fontSize = size
|
|
|
|
|
|
- isEditModeChanged = true
|
|
|
delegate?.watermarkPropertyControllerDidUpdate?(self)
|
|
|
}
|
|
|
}
|
|
@@ -740,7 +757,6 @@ extension KMNWatermarkPropertyController: ComponentSelectDelegate {
|
|
|
}
|
|
|
reloadData()
|
|
|
|
|
|
- isEditModeChanged = true
|
|
|
delegate?.watermarkPropertyControllerDidUpdate?(self)
|
|
|
|
|
|
}
|
|
@@ -771,7 +787,6 @@ extension KMNWatermarkPropertyController: ComponentCPositionDelegate {
|
|
|
}
|
|
|
reloadData()
|
|
|
|
|
|
- isEditModeChanged = true
|
|
|
delegate?.watermarkPropertyControllerDidUpdate?(self)
|
|
|
}
|
|
|
}
|
|
@@ -798,7 +813,6 @@ extension KMNWatermarkPropertyController: ComponentInputNumberDelegate {
|
|
|
}
|
|
|
reloadData()
|
|
|
|
|
|
- isEditModeChanged = true
|
|
|
delegate?.watermarkPropertyControllerDidUpdate?(self)
|
|
|
}
|
|
|
}
|