diff options
author | graemeg <graemeg@ae50a9b5-8222-0410-bf8d-8a13f76226bf> | 2008-07-15 10:51:23 +0000 |
---|---|---|
committer | graemeg <graemeg@ae50a9b5-8222-0410-bf8d-8a13f76226bf> | 2008-07-15 10:51:23 +0000 |
commit | 6cfa87f0908b4bdc71d42cd8b17ab3ee82f27b18 (patch) | |
tree | f3f1910c9b9584b8d89a69c0ef5d3f0f846db73f | |
parent | 72fd359020d8a29ca92096b1ecc1ac7421b723dc (diff) | |
download | fpGUI-6cfa87f0908b4bdc71d42cd8b17ab3ee82f27b18.tar.xz |
* GUI Test Runner: Improved the images in the treeview.
* GUI Test Runner: Progress bar is now activated as tests run.
* Treeview: Fixed the horizontal scrolling bug where nodes disappear.
-rw-r--r-- | examples/apps/fpcunit/fpg_guitestrunner.pas | 57 | ||||
-rw-r--r-- | examples/apps/fpcunit/images/error.bmp | bin | 0 -> 822 bytes | |||
-rw-r--r-- | examples/apps/fpcunit/images/treeimages.inc | 52 | ||||
-rw-r--r-- | src/gui/gui_tree.pas | 9 | ||||
-rw-r--r-- | unittests/fpcunitproject.lpi | 3 |
5 files changed, 98 insertions, 23 deletions
diff --git a/examples/apps/fpcunit/fpg_guitestrunner.pas b/examples/apps/fpcunit/fpg_guitestrunner.pas index 9380a114..cafc92be 100644 --- a/examples/apps/fpcunit/fpg_guitestrunner.pas +++ b/examples/apps/fpcunit/fpg_guitestrunner.pas @@ -110,11 +110,14 @@ begin FailureNode.ImageIndex := 3; node := FailureNode.AppendText('Message: ' + AFailure.ExceptionMessage); node.ImageIndex := 4; - node.TextColor := clFuchsia; +// node.TextColor := clFuchsia; node := FailureNode.AppendText('Exception: ' + AFailure.ExceptionClassName); node.ImageIndex := 4; - node.TextColor := clFuchsia; -// PaintNodeFailure(FailureNode); +// node.TextColor := clFuchsia; + + node := node.Parent; + if Assigned(node) and (node.ImageIndex in [0, 1]) then + node.ImageIndex := 3; end; Inc(failureCounter); if errorCounter = 0 then @@ -137,26 +140,29 @@ begin begin ErrorNode.ImageIndex := 2; node := ErrorNode.AppendText('Exception message: ' + AError.ExceptionMessage); - node.TextColor := clRed; +// node.TextColor := clRed; node.ImageIndex := 4; node := ErrorNode.AppendText('Exception class: ' + AError.ExceptionClassName); - node.TextColor := clRed; +// node.TextColor := clRed; node.ImageIndex := 4; if (AError.SourceUnitName <> '') and (AError.FailedMethodName <> '') then begin node := ErrorNode.AppendText('Unit name: ' + AError.SourceUnitName); - node.TextColor := clRed; +// node.TextColor := clRed; node.ImageIndex := 5; node := ErrorNode.AppendText('Method name: ' + AError.FailedMethodName); - node.TextColor := clRed; +// node.TextColor := clRed; node.ImageIndex := 5; node := ErrorNode.AppendText('Line number: ' + IntToStr(AError.LineNumber)); - node.TextColor := clRed; +// node.TextColor := clRed; node.ImageIndex := 5; end; -// PaintNodeError(ErrorNode); + + node := node.Parent; + if Assigned(node) and (node.ImageIndex in [0, 1, 3]) then + node.ImageIndex := 2; end; Inc(errorCounter); barColor := clRed; @@ -167,14 +173,13 @@ end; procedure TGUITestRunnerForm.StartTest(ATest: TTest); var - Node: TfpgTreeNode; + n: TfpgTreeNode; begin -// writeln(ATest.TestName, '...'); - Node := FindNode(ATest); - if Assigned(Node) then + n := FindNode(ATest); + if Assigned(n) then begin - Node.Clear; - Node.ImageIndex := 1; // green + n.Clear; + n.ImageIndex := 1; // green tvTests.Invalidate; fpgApplication.ProcessMessages; end @@ -184,12 +189,22 @@ end; procedure TGUITestRunnerForm.EndTest(ATest: TTest); begin - + inc(pbName1.Position, 1); + pbName1.Invalidate; + fpgApplication.ProcessMessages; end; procedure TGUITestRunnerForm.StartTestSuite(ATestSuite: TTestSuite); +var + n: TfpgTreeNode; begin - + n := FindNode(ATestSuite); + if Assigned(n) then + begin + n.ImageIndex := 1; // green + end + else + writeln(' Failed to find TestSuite'); end; procedure TGUITestRunnerForm.EndTestSuite(ATestSuite: TTestSuite); @@ -302,6 +317,10 @@ begin begin testSuite := TTest(tvTests.Selection.Data); // tvTests.Selection.Collapse; + + pbName1.Position := 0; + pbName1.Max := testSuite.CountTestCases; + RunTest(testSuite); end; end; @@ -358,7 +377,9 @@ begin img := CreateImage_BMP(@fpcunit_circle_fuchsia, sizeof(fpcunit_circle_fuchsia) ); FImagelist.AddImage(img, 3); - img := CreateImage_BMP(@fpcunit_bug, sizeof(fpcunit_bug) ); + //img := CreateImage_BMP(@fpcunit_bug, sizeof(fpcunit_bug) ); + //FImagelist.AddImage(img, 4); + img := CreateImage_BMP(@fpcunit_error, sizeof(fpcunit_error) ); FImagelist.AddImage(img, 4); img := CreateImage_BMP(@fpcunit_information, sizeof(fpcunit_information) ); diff --git a/examples/apps/fpcunit/images/error.bmp b/examples/apps/fpcunit/images/error.bmp Binary files differnew file mode 100644 index 00000000..505df947 --- /dev/null +++ b/examples/apps/fpcunit/images/error.bmp diff --git a/examples/apps/fpcunit/images/treeimages.inc b/examples/apps/fpcunit/images/treeimages.inc index 86553af7..93131e40 100644 --- a/examples/apps/fpcunit/images/treeimages.inc +++ b/examples/apps/fpcunit/images/treeimages.inc @@ -363,3 +363,55 @@ Const 202,148,153,194,186,234,191,249,254,253,255,255,255,255,255,255,255, 255,255,255,255,255,255); +Const + fpcunit_error : Array[0..821] of byte = ( + 66, 77, 54, 3, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 40, 0, 0, + 0, 16, 0, 0, 0, 16, 0, 0, 0, 1, 0, 24, 0, 0, 0, 0, 0, + 0, 3, 0, 0, 19, 11, 0, 0, 19, 11, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 123,201,237, 45,167,224, 43,164,223, 41,161,221, 39,158,220, 37,155, + 218, 35,152,217, 32,147,214, 27,140,211, 22,133,207, 17,126,204, 13, + 119,201, 9,113,198, 6,108,195, 3,104,193, 93,157,214, 72,182,230, + 190,227,245,244,252,254,239,251,254,238,251,254,238,251,254,239,252, + 254,239,252,254,239,251,254,238,251,254,237,251,254,237,251,254,236, + 251,254,242,252,254,171,206,235, 42,127,202,195,232,247, 98,191,232, + 244,252,254,181,239,250, 88,218,245, 88,218,245, 87,216,243, 88,215, + 242, 88,214,242, 87,217,244, 81,216,245, 78,215,244, 98,218,246,234, + 251,254, 68,147,210,182,212,237,255,255,255, 94,192,234,157,215,241, + 231,249,253,139,229,248, 90,219,246, 91,218,244, 61,161,213, 61,161, + 213, 84,214,242, 82,216,245, 80,214,244,216,246,252,136,191,229, 85, + 160,217,255,255,255,255,255,255,227,244,251, 55,178,229,243,251,254, + 195,242,251, 92,220,246, 92,218,244,100,223,246, 87,203,235, 85,214, + 242, 84,217,245,148,231,248,227,244,251, 28,138,209,222,237,248,255, + 255,255,255,255,255,255,255,255,121,204,238,140,210,240,234,251,254, + 148,230,248, 92,218,244, 71,177,221, 61,161,213, 86,215,242, 92,219, + 245,222,248,253,125,192,231,135,195,232,255,255,255,255,255,255,255, + 255,255,255,255,255,246,252,254, 69,186,232,200,234,247,230,250,253, + 93,218,244, 61,161,213, 61,161,213, 87,215,242,199,243,252,192,227, + 244, 59,164,221,245,250,253,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,185,229,247,113,200,237,249,254,255, 94,220,244, + 62,162,213, 62,162,213, 92,217,244,237,251,254,104,187,229,178,220, + 242,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255, 90,195,236,169,223,244,237,249,253, 62,163,214, + 62,163,214,212,245,252,162,215,241, 93,185,230,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,218,242,251, 58,184,232,249,253,255,148,233,249,158,235,250, + 236,250,254, 49,170,225,215,238,249,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,116,206,239,148,216,242,243,252,254,231,250,254,143,211,240, + 134,206,239,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,241, + 250,254, 68,190,234,241,250,253,213,239,250, 67,183,232,241,249,253, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,141, + 216,243,133,212,241,130,209,240,173,225,245,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,253,254,255, 93, + 199,238,104,202,239,253,254,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, + 255,255,255,255,255,255); + diff --git a/src/gui/gui_tree.pas b/src/gui/gui_tree.pas index 25d8c839..2beb35de 100644 --- a/src/gui/gui_tree.pas +++ b/src/gui/gui_tree.pas @@ -1257,7 +1257,7 @@ var YPos: integer; col: integer; ACenterPos: integer; - x, + x: integer; y: integer; AImageItem: TfpgImageItem; AVisibleHeight: integer; @@ -1325,9 +1325,12 @@ begin w := GetColumnLeft(StepToRoot(h)); ACenterPos := YPos - FYOffset + col + (GetNodeHeight div 2); YPos := YPos + GetNodeHeight; + i := GetColumnLeft(StepToRoot(h)) + GetNodeWidth(h); - if ACenterPos > (FHScrollbar.Position - GetNodeHeight) then + // only paint the node if it is fully visible + if i > FXOffset then begin +// writeln('painting node: ', h.Text); if h = Selection then // draw the selection rectangle and text begin if Focused then @@ -1516,7 +1519,7 @@ begin end; break; //==> end; - end; + end; { while h <> nil } Canvas.EndDraw; end; diff --git a/unittests/fpcunitproject.lpi b/unittests/fpcunitproject.lpi index d3b90945..cbfeec27 100644 --- a/unittests/fpcunitproject.lpi +++ b/unittests/fpcunitproject.lpi @@ -54,8 +54,7 @@ <Generate Value="Faster"/> </CodeGeneration> <Other> - <CustomOptions Value="-FUunits -"/> + <CustomOptions Value="-FUunits"/> <CompilerPath Value="$(CompPath)"/> </Other> </CompilerOptions> |