Browse Source

Demo - 转换操作 UI 优化

zhudongyong 2 years ago
parent
commit
3f3bfdfcb9

BIN
KdanAutoTest/KdanAuto.xcodeproj/project.xcworkspace/xcuserdata/zhudongyong.xcuserdatad/UserInterfaceState.xcuserstate


+ 47 - 15
KdanAutoTest/KdanAuto.xcodeproj/xcuserdata/zhudongyong.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@@ -14,8 +14,8 @@
             filePath = "KdanAuto/Class/AutoTestCase/AutoTest.swift"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "149"
-            endingLineNumber = "149"
+            startingLineNumber = "158"
+            endingLineNumber = "158"
             landmarkName = "stringToImage(_:)"
             landmarkType = "7">
          </BreakpointContent>
@@ -30,8 +30,8 @@
             filePath = "KdanAuto/Class/AutoTestCase/TextColorAutoTest.swift"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "39"
-            endingLineNumber = "39"
+            startingLineNumber = "41"
+            endingLineNumber = "41"
             landmarkName = "autoTest()"
             landmarkType = "7">
          </BreakpointContent>
@@ -46,8 +46,8 @@
             filePath = "KdanAuto/Class/AutoTestCase/TextColorAutoTest.swift"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "185"
-            endingLineNumber = "185"
+            startingLineNumber = "187"
+            endingLineNumber = "187"
             landmarkName = "autoTest()"
             landmarkType = "7">
          </BreakpointContent>
@@ -62,8 +62,8 @@
             filePath = "KdanAuto/Class/AutoTestCase/TextColorAutoTest.swift"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "197"
-            endingLineNumber = "197"
+            startingLineNumber = "199"
+            endingLineNumber = "199"
             landmarkName = "autoTest()"
             landmarkType = "7">
          </BreakpointContent>
@@ -78,8 +78,8 @@
             filePath = "KdanAuto/Class/AutoTestCase/ChineseStringAutoTest.swift"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "47"
-            endingLineNumber = "47"
+            startingLineNumber = "49"
+            endingLineNumber = "49"
             landmarkName = "autoTest()"
             landmarkType = "7">
          </BreakpointContent>
@@ -94,8 +94,8 @@
             filePath = "KdanAuto/Class/AutoTestCase/ChineseStringAutoTest.swift"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "34"
-            endingLineNumber = "34"
+            startingLineNumber = "36"
+            endingLineNumber = "36"
             landmarkName = "autoTest()"
             landmarkType = "7">
          </BreakpointContent>
@@ -110,9 +110,41 @@
             filePath = "KdanAuto/ViewController.swift"
             startingColumnNumber = "9223372036854775807"
             endingColumnNumber = "9223372036854775807"
-            startingLineNumber = "135"
-            endingLineNumber = "135"
-            landmarkName = "tableView(_:shouldSelectRow:)"
+            startingLineNumber = "149"
+            endingLineNumber = "149"
+            landmarkName = "tableView(_:mouseDownInHeaderOf:)"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "E9C25D88-92BC-47CF-BC4D-59A9993A9D60"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "KdanAuto/Class/Norrmal/ActivityView/ActivityView.swift"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "178"
+            endingLineNumber = "178"
+            landmarkName = "updateStatus()"
+            landmarkType = "7">
+         </BreakpointContent>
+      </BreakpointProxy>
+      <BreakpointProxy
+         BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
+         <BreakpointContent
+            uuid = "E8826860-4436-49CB-AF21-CBEE62A4F2B3"
+            shouldBeEnabled = "Yes"
+            ignoreCount = "0"
+            continueAfterRunningActions = "No"
+            filePath = "KdanAuto/Class/Norrmal/ActivityView/ActivityView.swift"
+            startingColumnNumber = "9223372036854775807"
+            endingColumnNumber = "9223372036854775807"
+            startingLineNumber = "110"
+            endingLineNumber = "110"
+            landmarkName = "reloadSubviews()"
             landmarkType = "7">
          </BreakpointContent>
       </BreakpointProxy>

+ 2 - 2
KdanAutoTest/KdanAuto.xcodeproj/xcuserdata/zhudongyong.xcuserdatad/xcschemes/xcschememanagement.plist

@@ -7,12 +7,12 @@
 		<key>KdanAuto.xcscheme_^#shared#^_</key>
 		<dict>
 			<key>orderHint</key>
-			<integer>1</integer>
+			<integer>0</integer>
 		</dict>
 		<key>ProcessCheckFile.xcscheme_^#shared#^_</key>
 		<dict>
 			<key>orderHint</key>
-			<integer>0</integer>
+			<integer>1</integer>
 		</dict>
 	</dict>
 </dict>

+ 9 - 0
KdanAutoTest/KdanAuto/Class/AutoTestCase/AutoTest.swift

@@ -19,6 +19,8 @@ let testCaseNames = [
 class AutoTest : NSObject, AutoTestProtocal {
     var reportString : NSMutableAttributedString? = nil
     
+    public var _status :  AutoTestStatus = .Normal
+    
     class func autoTestForType(_ type:NSString) -> AutoTest? {
         
         if type.isEqual(to: "PDFConvert_Font_Auto_Test") {
@@ -75,6 +77,13 @@ class AutoTest : NSObject, AutoTestProtocal {
         userDefaults.synchronize()
     }
     
+    func status() -> AutoTestStatus {
+        return _status
+    }
+    
+    func setStatus(_ status:AutoTestStatus) {
+        _status = status
+    }
     
     // Auto Test
     func autoTest() {

+ 2 - 0
KdanAutoTest/KdanAuto/Class/AutoTestCase/AutoTestProtocal.swift

@@ -33,4 +33,6 @@ protocol AutoTestProtocal : NSObjectProtocol {
     func autoCheck()
     
     func testReport() -> NSAttributedString?
+    
+    func status() -> AutoTestStatus
 }

+ 9 - 11
KdanAutoTest/KdanAuto/Class/AutoTestCase/ChineseStringAutoTest.swift

@@ -30,6 +30,8 @@ class ChineseStringAutoTest : AutoTest {
     
     // Auto Test refrence Check File
     override func autoTest() {
+        _status = .Process
+        
         let checkString = self.selectedKeys().contains("字符对比")
         let needCompare = self.selectedKeys().contains("前一版对比")
         
@@ -205,6 +207,9 @@ class ChineseStringAutoTest : AutoTest {
         }
         
         NSLog("\(reportString)")
+        
+        
+        _status = .Finished
     }
     
     func appendErrorInfo(_ skipString:NSString, failString: NSString) {
@@ -238,24 +243,17 @@ class ChineseStringAutoTest : AutoTest {
                 resultString = resultString.appending(String(item)) as NSString
             }
         }
-//        while (resultString.contains("\\u")) {
-//            let range = resultString.range(of: "\\u")
-//            let preString = resultString.substring(to: range.location) as NSString
-//            var nextString = resultString.substring(from: Int(range.location + range.length)) as NSString
-//            let unicodeValue = nextString.intValue
-//
-//            let skipRange = nextString.range(of: "?")
-//            nextString = nextString.substring(from: Int(skipRange.location + skipRange.length)) as NSString
-//
-//            resultString = NSString.init(format: "\(preString)\\u%04h\(nextString)" as NSString, unicodeValue) as NSString
-//        }
         
         return resultString
     }
     
     // Auto Test refrence Latest Status
     override func autoCheck() {
+        _status = .Process
+        
+        
         
+        _status = .Finished
     }
     
 }

+ 5 - 0
KdanAutoTest/KdanAuto/Class/AutoTestCase/FontAutoTest.swift

@@ -29,11 +29,16 @@ class FontAutoTest : AutoTest {
     
     // Auto Test refrence Check File
     override func autoTest() {
+        _status = .Process
         
+        
+        _status = .Finished
     }
     
     // Auto Test refrence Latest Status
     override func autoCheck() {
+        _status = .Process
         
+        _status = .Finished
     }
 }

+ 7 - 0
KdanAutoTest/KdanAuto/Class/AutoTestCase/TextColorAutoTest.swift

@@ -30,6 +30,8 @@ class TextColorAutoTest : AutoTest {
     
     // Auto Test refrence Check File
     override func autoTest() {
+        _status = .Process
+        
         let originPath = self.originFilePath()
         
         // ...
@@ -233,6 +235,8 @@ class TextColorAutoTest : AutoTest {
         }
         
         NSLog("\(reportString)")
+        
+        _status = .Finished
     }
     
     // Change String(Red, Green, Blue) to Color
@@ -291,7 +295,10 @@ class TextColorAutoTest : AutoTest {
     
     // Auto Test refrence Latest Status
     override func autoCheck() {
+        _status = .Process
+        
         
+        _status = .Finished
     }
     
     //

+ 71 - 25
KdanAutoTest/KdanAuto/Class/Norrmal/ActivityView/ActivityView.swift

@@ -29,9 +29,10 @@ class ActivityView : NSView {
     var _titleLbl : NSTextField = NSTextField()
     let kActivityTitleHeight = 25.0
     
-    var _activityView : NSView = NSView()
-    var _angle : CGFloat = 0
-    var _shapeLayer : CAShapeLayer = CAShapeLayer()
+    var _activityView : NSProgressIndicator =  NSProgressIndicator()
+//    var _activityView : NSView = NSView()
+//    var _angle : CGFloat = 0
+//    var _shapeLayer : CAShapeLayer = CAShapeLayer()
     
     
     public override init(frame frameRect: NSRect) {
@@ -96,30 +97,50 @@ class ActivityView : NSView {
         _titleLbl.layer?.borderColor = NSColor.lightGray.cgColor
         
         if nil == _activityView {
-            _activityView = NSView.init(frame: self.frame)
+            _activityView = NSProgressIndicator.init(frame: self.bounds)
         }
+        _activityView.controlSize = .small
+        _activityView.style = .spinning
         if nil == _activityView.superview {
             self.addSubview(_activityView)
         }
-        let activitySize = min(width, height)
+        _activityView.startAnimation(self)
+        let activitySize = kActivityTitleHeight
+//        min(_activityView.frame.width, _activityView.frame.height)
         _activityView.frame = NSMakeRect((width - activitySize)/2.0,
                                          (height - activitySize)/2.0,
                                          activitySize,
                                          activitySize)
-        
-        if nil == _shapeLayer {
-            _shapeLayer = CAShapeLayer()
-        }
-        _shapeLayer.frame = _activityView.bounds
-        _activityView.wantsLayer = true;
-        _activityView.layer?.addSublayer(_shapeLayer)
-        
-        var mulPath = CGMutablePath()
-        mulPath.addArc(center: CGPoint(x: activitySize/2.0, y: activitySize/2.0),
-                       radius: activitySize/2.0,
-                       startAngle:  _angle+Double.pi/3.0,
-                       endAngle: _angle, clockwise: true)
-        _shapeLayer.path = mulPath
+//
+//        if nil == _shapeLayer {
+//            _shapeLayer = CAShapeLayer()
+//        }
+//        _shapeLayer.frame = _activityView.bounds
+//        _activityView.wantsLayer = true;
+//        _activityView.layer?.addSublayer(_shapeLayer)
+//
+//        var mulPath = CGMutablePath()
+//        let inRadius = activitySize/2 - 3
+//        let outRadius = activitySize/2
+//        let endRage = _angle - Double.pi / 3.0
+//        mulPath.move(to: CGPointMake(activitySize/2.0 + inRadius*sin(_angle),
+//                                     activitySize/2.0 + inRadius * cos(_angle)))
+//        mulPath.addLine(to: CGPointMake(activitySize/2.0 + outRadius*sin(_angle),
+//                                        activitySize/2.0 + outRadius * cos(_angle)))
+//        mulPath.addArc(center: CGPoint(x: activitySize/2.0, y: activitySize/2.0),
+//                       radius: outRadius,
+//                       startAngle: _angle, endAngle: endRage, clockwise: true)
+//        mulPath.addLine(to: CGPointMake(activitySize/2 + inRadius*sin(endRage),
+//                                        activitySize/2 + inRadius * cos(endRage)))
+//        mulPath.addArc(center: CGPoint(x: activitySize/2.0, y: activitySize/2.0),
+//                       radius: inRadius,
+//                       startAngle: endRage, endAngle: _angle, clockwise: false)
+//        _shapeLayer.path = mulPath
+////        _shapeLayer.lineWidth = 5;
+////        _shapeLayer.lineJoin = .bevel
+////        _shapeLayer.lineCap = .square
+////        _shapeLayer.fillRule = .nonZero
+//        _shapeLayer.fillColor = NSColor.blue.cgColor
     }
     
     /// Update Status
@@ -139,12 +160,10 @@ class ActivityView : NSView {
             _timer = Timer()
         }
         case .Process: do {
-            
-            _timer = Timer.init(timeInterval: 1.0/30.0, repeats: true, block: { timer in
-                self._angle = self._angle + Double.pi/30.0
-                
-                
-            })
+//            _timer = Timer.scheduledTimer(timeInterval: 1.0/30,
+//                                          target: self,
+//                                          selector: #selector(updateAnge),
+//                                          userInfo: nil, repeats: true)
         }
         case .Finished: do {
             _titleLbl.textColor = NSColor.blue
@@ -164,6 +183,33 @@ class ActivityView : NSView {
         
     }
     
+//    @objc func updateAnge() {
+//        _angle = self._angle + Double.pi/30.0
+//
+//
+//        let width = self.frame.width
+//        let height = self.frame.height
+//
+//        let activitySize = min(width, height)
+//        var mulPath = CGMutablePath()
+//        let inRadius = activitySize/2 - 3
+//        let outRadius = activitySize/2
+//        let endRage = self._angle - Double.pi / 3.0
+//        mulPath.move(to: CGPointMake(activitySize/2.0 + inRadius*sin(self._angle),
+//                                     activitySize/2.0 + inRadius * cos(self._angle)))
+//        mulPath.addLine(to: CGPointMake(activitySize/2.0 + outRadius*sin(self._angle),
+//                                        activitySize/2.0 + outRadius * cos(self._angle)))
+//        mulPath.addArc(center: CGPoint(x: activitySize/2.0, y: activitySize/2.0),
+//                       radius: outRadius,
+//                       startAngle: self._angle, endAngle: endRage, clockwise: true)
+//        mulPath.addLine(to: CGPointMake(activitySize/2 + inRadius*sin(endRage),
+//                                        activitySize/2 + inRadius * cos(endRage)))
+//        mulPath.addArc(center: CGPoint(x: activitySize/2.0, y: activitySize/2.0),
+//                       radius: inRadius,
+//                       startAngle: endRage, endAngle: self._angle, clockwise: false)
+//        self._shapeLayer.path = mulPath
+//    }
+    
     
     /// Setter & Getter
     ///

+ 6 - 1
KdanAutoTest/KdanAuto/Class/Norrmal/TestCaseCellView.swift

@@ -130,7 +130,12 @@ class TestCaseCellView : NSTableCellView {
             self.wantsLayer = true
             self.layer?.opacity = 0.5
         }
-        _activityView.setActivityStatus(.Normal)
+        
+        updateStatus()
+    }
+    
+    public func updateStatus() {
+        _activityView.setActivityStatus(ActivityStatus(rawValue: (_autoTestObj?.status())!.rawValue) ?? .Normal)
     }
     
 }

+ 14 - 0
KdanAutoTest/KdanAuto/ViewController.swift

@@ -62,6 +62,14 @@ class ViewController : NSViewController, SettingViewControllerDelegate, AutoTest
             var report = NSMutableAttributedString.init()
             for testType in testCaseNames {
                 let testObject = AutoTest.autoTestForType(testType as NSString)
+                testObject?.setStatus(.Wait)
+            }
+            self.reloadListData()
+            
+            for testType in testCaseNames {
+                let testObject = AutoTest.autoTestForType(testType as NSString)
+                testObject?.setStatus(.Process)
+                self.reloadListData()
                 
                 if nil != testObject {
                     testObject?.autoTest()
@@ -72,6 +80,12 @@ class ViewController : NSViewController, SettingViewControllerDelegate, AutoTest
                         report.append(cReport)
                     }
                 }
+                testObject?.setStatus(.Finished)
+                self.reloadListData()
+            }
+            for testType in testCaseNames {
+                let testObject = AutoTest.autoTestForType(testType as NSString)
+                testObject?.setStatus(.Normal)
             }
             
             do {