KMConvertSettingView.swift 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. //
  2. // KMConvertSettingView.swift
  3. // PDF Reader Pro
  4. //
  5. // Created by tangchao on 2023/5/9.
  6. //
  7. import KMComponentLibrary
  8. let kKMConvertLanugageSelectedIndex: String = "KMConvertLanugageSelectedIndex"
  9. typealias KMConvertSettingViewPageRangeDidChangeCallback = (_ pageRange: KMPageRange) -> Void
  10. typealias KMConvertSettingViewPageRangeDidInputFinishCallback = (_ pageRangeString: String) -> ()
  11. // 转档 设置视图 基类
  12. class KMConvertSettingView: KMConvertBaseView {
  13. private var _currentLanguage: String?
  14. var type: KMBatchConvertPDFType = .word
  15. var isBatch = false
  16. var currentLanguage: String? {
  17. get {
  18. return self._currentLanguage
  19. }
  20. set {
  21. self._currentLanguage = newValue
  22. if let indexString = UserDefaults.standard.string(forKey: kKMConvertLanugageSelectedIndex), let index = Int(indexString) {
  23. self.ocrLanuguageIndex = index
  24. return
  25. }
  26. }
  27. }
  28. var ocrLanuguageIndex: Int = 2 {
  29. didSet {
  30. self.ocrItemView?.languageIndex = self.ocrLanuguageIndex
  31. }
  32. }
  33. var pageRangeSelectedIndex: Int = 0
  34. var pageRangeDidChange: KMConvertSettingViewPageRangeDidChangeCallback?
  35. var pageRangeDidInputFinishCallback: KMConvertSettingViewPageRangeDidInputFinishCallback?
  36. var lanugageDidSelected: KMValueDidChangeBlock?
  37. private var _ocrItemView: KMConvertOCRSettingItemView?
  38. var ocrItemView: KMConvertOCRSettingItemView? {
  39. get {
  40. return self._ocrItemView
  41. }
  42. set {
  43. if (self._ocrItemView != newValue) {
  44. self._ocrItemView = newValue
  45. newValue?.lanugageDidSelected = { [weak self] value, change in
  46. guard let callback = self?.lanugageDidSelected else {
  47. return
  48. }
  49. callback(value, change)
  50. }
  51. }
  52. }
  53. }
  54. private var _pageRangeItemView: KMConvertPageRangeSettingItemView?
  55. var pageRangeItemView: KMConvertPageRangeSettingItemView? {
  56. get {
  57. return self._pageRangeItemView
  58. }
  59. set {
  60. if (self._pageRangeItemView != newValue) {
  61. self._pageRangeItemView = newValue
  62. newValue?.isTextDidEndCallback = true
  63. newValue?.itemClick = { [weak self] index, _ in
  64. self?.pageRangeSelectedIndex = index
  65. guard let callback = self?.pageRangeDidChange else {
  66. return
  67. }
  68. var value: KMPageRange = .all
  69. if index == 1 {
  70. value = .current
  71. } else if index == 2 {
  72. value = .odd
  73. } else if index == 3 {
  74. value = .even
  75. } else if index == 4 {
  76. value = .custom
  77. }
  78. callback(value)
  79. }
  80. newValue?.textDidEndEditingCallback = { [unowned self] textString in
  81. let pageRange = KMPageRange(rawValue: self.pageRangeSelectedIndex)
  82. if (pageRange != .custom) {
  83. return
  84. }
  85. guard let callback = self.pageRangeDidInputFinishCallback else {
  86. return
  87. }
  88. callback(textString)
  89. }
  90. }
  91. }
  92. }
  93. var tipView: KMConvertSettingLimitTipView?
  94. override func initSubViews() {
  95. super.initSubViews()
  96. }
  97. override func layout() {
  98. super.layout()
  99. }
  100. var pageCount = 0 {
  101. didSet {
  102. self.pageRangeItemView?.pageCount = self.pageCount
  103. }
  104. }
  105. var ocrEnabled: Bool {
  106. get {
  107. guard let state = self.ocrItemView?.checkView.properties.checkboxType else {
  108. return false
  109. }
  110. return state == .selected
  111. }
  112. }
  113. func getPageRangeString() -> String {
  114. if let view = self.pageRangeItemView {
  115. return view.pageRangeValue
  116. }
  117. return ""
  118. }
  119. override func updateViewColor() {
  120. super.updateViewColor()
  121. KMMainThreadExecute {
  122. self.ocrItemView?.titleLabel.textColor = ComponentLibrary.shared.getComponentColorFromKey("colorText/2")
  123. self.pageRangeItemView?.titleLabel.textColor = ComponentLibrary.shared.getComponentColorFromKey("colorText/2")
  124. }
  125. }
  126. }