From b00b6e8412d2678289310a16a31549c038627e70 Mon Sep 17 00:00:00 2001 From: Milan Hanajik Date: Tue, 7 Mar 2017 08:33:40 +0100 Subject: [PATCH] Munich : Printer clean-up and fixes, ver. 2.12.483 --- Config/Entities/Enums.cs | 10 + .../Printers/Munich/MunichPrintDocument.cs | 9 +- .../Munich/MunichPrintDocument.cs | 389 ------------------ .../ResultsPrinters/Munich/Printer.cs | 2 +- .../Forms/PreviousResultsDlg.cs | 2 +- TestBenchFramework/Properties/AssemblyInfo.cs | 4 +- .../Properties/Resources.Designer.cs | 10 - TestBenchFramework/Properties/Resources.resx | 3 - TestBenchFramework/Resources/Headpic.png | Bin 72618 -> 0 bytes TestBenchFramework/TBF.csproj | 4 - 10 files changed, 19 insertions(+), 414 deletions(-) delete mode 100644 TestBenchFramework/BenchControl/ResultsPrinters/Munich/MunichPrintDocument.cs delete mode 100644 TestBenchFramework/Resources/Headpic.png diff --git a/Config/Entities/Enums.cs b/Config/Entities/Enums.cs index 6bb210e3c..d737753d9 100644 --- a/Config/Entities/Enums.cs +++ b/Config/Entities/Enums.cs @@ -247,6 +247,15 @@ namespace Config.Entities public enum ItemCategory { +#if LANG_DE + [Description("Allgemein")] Other, + [Description("Prüfstanddaten")] BenchData, + [Description("Prüfstandergebnisse")] BenchResult, + [Description("Prüfpunktdaten")] TestData, + [Description("Prüfpunktergebnisse")] TestResult, + [Description("Wasserzelledaten")] MeterData, + [Description("Wasserzelleergebnisse")] MeterResult, +#else [Description("Other")] Other, [Description("Bench data")] BenchData, [Description("Bench result")] BenchResult, @@ -254,6 +263,7 @@ namespace Config.Entities [Description("Test result")] TestResult, [Description("Meter data")] MeterData, [Description("Meter result")] MeterResult, +#endif Count, } diff --git a/Results/Output/Printers/Munich/MunichPrintDocument.cs b/Results/Output/Printers/Munich/MunichPrintDocument.cs index c7b6fe38c..25437c91f 100644 --- a/Results/Output/Printers/Munich/MunichPrintDocument.cs +++ b/Results/Output/Printers/Munich/MunichPrintDocument.cs @@ -1,5 +1,5 @@ /// -/// Copyright (c) 2013-2016 Sensus Metering Systems +/// Copyright (c) 2016-2017 Sensus Metering Systems /// using System; using System.Collections.Generic; @@ -111,10 +111,11 @@ namespace Results.Output.Printers.Munich /// This provides the print logic for our document protected override void OnPrintPage(System.Drawing.Printing.PrintPageEventArgs e) { - // Run base code + /// Run base code base.OnPrintPage(e); - e.Graphics.DrawImageUnscaled(Results.Properties.Resources.Headpic, 0, 0); + /// Draw 2550 x 3507 'headpic' scaled to A4 at 100 DPI + e.Graphics.DrawImage(Results.Properties.Resources.Headpic, new Rectangle(0, 0, 827, 1137)); /// Set print area size and margins (in dots using 80 dpi) int printHeight = base.DefaultPageSettings.PaperSize.Height - base.DefaultPageSettings.Margins.Top - base.DefaultPageSettings.Margins.Bottom; @@ -240,7 +241,7 @@ namespace Results.Output.Printers.Munich PrintAt(e, Tab2, lineNr * SpacingOne, wm.Batch.AmbientHumiAve().ToString("F0") + " %"); lineNr++; PrintAt(e, Tab1, lineNr * SpacingOne, "Luftdruck"); - PrintAt(e, Tab2, lineNr * SpacingOne, wm.Batch.AmbientPressAve().ToString("F0") + " mbar"); + PrintAt(e, Tab2, lineNr * SpacingOne, Config.Units.ConvertTo(Config.Unit.mbar, wm.Batch.AmbientPressAve()).ToString("F0") + " mbar"); lineNr++; PrintAt(e, Tab3, lineNr * SpacingOne, wm.Batch.EndTime.Date.ToString("d")); diff --git a/TestBenchFramework/BenchControl/ResultsPrinters/Munich/MunichPrintDocument.cs b/TestBenchFramework/BenchControl/ResultsPrinters/Munich/MunichPrintDocument.cs deleted file mode 100644 index 51f25d97f..000000000 --- a/TestBenchFramework/BenchControl/ResultsPrinters/Munich/MunichPrintDocument.cs +++ /dev/null @@ -1,389 +0,0 @@ -/// -/// Copyright (c) 2013-2015 Sensus Metering Systems -/// -using System; -using System.Collections.Generic; -using System.Drawing; -using System.Drawing.Printing; -using Config.Entities; -using TBF.BenchControl; - -namespace TBF.BenchControl.ResultsPrinters.Munich -{ - public class MunichPrintDocument : PrintDocument - { - const string FontFamilyName = "Arial"; //"Times New Roman"; - - const int SpacingOne = 18; - const int SpacingOneAndHalf = (3 * SpacingOne) / 2; - const int TitleX = 240; - const int TitleY = 180; /// Depends on the size of the header - const int FirstLineNr = 14; /// Depends on the size of the header - const int Tab1 = 80; /// Positions of columns above the table - const int Tab2 = 240; - const int Tab3 = 430; - const int Tab4 = 590; - const int BorderW = 1; /// Table border line width - const int MarginTop = 7; /// Margins of the text from table lines - const int MarginLeft = 4; /// Margins of the text from table lines - - /// - /// Data to print - /// - readonly string docVersion; - readonly Results.Entities.WaterMeter wm; - string zaehlertyp; - string pruefvorlage; - - readonly IList results; - readonly int resultsCount; - readonly bool compound; /// true when MetersKind is MetersKind.Combined - - readonly int secondTableOffset; /// Calculated in the constructor - - /// Top coordinate of the table - int top; - - /// - /// Property variable for the Font the user wishes to use - /// - Font font; - Font boldFont; - Font fontTitle; - - /// - /// Constructor - /// - /// Text to be printed - public MunichPrintDocument(string docVersion, - Results.Entities.WaterMeter wm, - PageOrientation pageOrientation) - { - this.docVersion = docVersion; - this.wm = wm; - compound = wm.Compound(); - - string[] info = wm.ProductName().Split(new char[] { ';' }); - if (info.Length >= 2) - { - pruefvorlage = info[0]; - zaehlertyp = info[1]; - } - else if (info.Length == 1) - { - pruefvorlage = info[0]; - zaehlertyp = compound ? "Verbundzähler" : "Einzelzähler"; - } - else - { - pruefvorlage = wm.ProcedureName(); - zaehlertyp = compound ? "Verbundzähler" : "Einzelzähler"; - } - - results = wm.MeterTestRslts; - this.resultsCount = compound ? (results.Count / 3) : results.Count; - - int resultsCount = wm.MeterTestRslts.Count; - if (compound) resultsCount /= 3; - - secondTableOffset = (resultsCount + 2) * SpacingOneAndHalf; - - DefaultPageSettings.Landscape = (pageOrientation == PageOrientation.Landscape); - } - - /// - /// Override the default onbeginPrint method of the PrintDocument Object. - /// - /// - /// - protected override void OnBeginPrint(System.Drawing.Printing.PrintEventArgs e) - { - base.OnBeginPrint(e); - - if (font == null) { font = new Font(FontFamilyName, 10, FontStyle.Regular); } - if (boldFont == null) { boldFont = new Font(FontFamilyName, 10, FontStyle.Bold); } - if (fontTitle == null) { fontTitle = new Font(FontFamilyName, 24, FontStyle.Bold); } - } - - /// - /// Override the default OnPrintPage method of the PrintDocument. - /// - /// - /// This provides the print logic for our document - protected override void OnPrintPage(System.Drawing.Printing.PrintPageEventArgs e) - { - // Run base code - base.OnPrintPage(e); - - e.Graphics.DrawImageUnscaled(Properties.Resources.Headpic, 0, 0); - - /// Set print area size and margins (in dots using 80 dpi) - int printHeight = base.DefaultPageSettings.PaperSize.Height - base.DefaultPageSettings.Margins.Top - base.DefaultPageSettings.Margins.Bottom; - int printWidth = base.DefaultPageSettings.PaperSize.Width - base.DefaultPageSettings.Margins.Left - base.DefaultPageSettings.Margins.Right; - int leftMargin = base.DefaultPageSettings.Margins.Left; /// X - int topMargin = base.DefaultPageSettings.Margins.Top; /// Y - - /// Check if the user selected to print in Landscape mode - /// if they did then we need to swap height/width parameters - if (base.DefaultPageSettings.Landscape) - { - int tmp = printHeight; - printHeight = printWidth; - printWidth = tmp; - } - - int x = leftMargin; - int y = topMargin; - - /// Use the StringFormat class for the text layout of our document - StringFormat format = new StringFormat(StringFormatFlags.LineLimit); - - RectangleF printArea = new RectangleF(TitleX, TitleY, 667, 50); - e.Graphics.DrawString(wm.Batch.ProtocolTitle, this.fontTitle, Brushes.Black, printArea); - - int lineNr = FirstLineNr; - PrintAt(e, Tab1, lineNr * SpacingOne, docVersion); - lineNr++; - PrintBoldAt(e, Tab1, lineNr * SpacingOne, "Prüfstand Nr :"); - PrintBoldAt(e, Tab2, lineNr * SpacingOne, wm.BenchId().ToString()); - PrintBoldAt(e, Tab3, lineNr * SpacingOne, "Datum :"); - PrintBoldAt(e, Tab4, lineNr * SpacingOne, wm.Batch.EndTime.Date.ToString("d")); - lineNr++; - PrintAt(e, Tab1, lineNr * SpacingOne, "Zählertyp :"); - PrintAt(e, Tab2, lineNr * SpacingOne, zaehlertyp); - PrintAt(e, Tab3, lineNr * SpacingOne, "Eichjahr :"); - PrintAt(e, Tab4, lineNr * SpacingOne, wm.YearOfProduction.ToString()); - lineNr++; - PrintAt(e, Tab1, lineNr * SpacingOne, "Prüfvorlage :"); - PrintAt(e, Tab2, lineNr * SpacingOne, pruefvorlage); - lineNr += 2; - - if (compound) - { - PrintBoldAt(e, Tab1, lineNr * SpacingOne, "Hauptzahler"); - PrintBoldAt(e, Tab3, lineNr * SpacingOne, "Nebenzahler"); - lineNr++; - } - - PrintAt(e, Tab1, lineNr * SpacingOne, "Hersteller :"); - PrintAt(e, Tab2, lineNr * SpacingOne, wm.Producer()); - if (compound) - { - PrintAt(e, Tab3, lineNr * SpacingOne, "Hersteller :"); - PrintAt(e, Tab4, lineNr * SpacingOne, wm.ProducerAux()); - } - lineNr++; - - PrintAt(e, Tab1, lineNr * SpacingOne, "Seriennummer :"); - PrintAt(e, Tab2, lineNr * SpacingOne, wm.SerialNr); - if (compound) - { - PrintAt(e, Tab3, lineNr * SpacingOne, "Seriennummer :"); - PrintAt(e, Tab4, lineNr * SpacingOne, wm.SerialNrAux); - } - lineNr++; - - PrintAt(e, Tab1, lineNr * SpacingOne, "Qn :"); - PrintAt(e, Tab2, lineNr * SpacingOne, wm.Q3_Qn().ToString()); - if (compound) - { - PrintAt(e, Tab3, lineNr * SpacingOne, "Qn :"); - PrintAt(e, Tab4, lineNr * SpacingOne, wm.Q3_Qn_Aux().ToString()); - } - lineNr++; - - PrintAt(e, Tab1, lineNr * SpacingOne, "Zulassungszeichen :"); - PrintAt(e, Tab2, lineNr * SpacingOne, wm.ApprovalInfo()); - if (compound) - { - PrintAt(e, Tab3, lineNr * SpacingOne, "Zulassungszeichen :"); - PrintAt(e, Tab4, lineNr * SpacingOne, wm.ApprovalInfoAux()); - } - lineNr++; - - PrintAt(e, Tab1, lineNr * SpacingOne, "Metr. klasse :"); - PrintAt(e, Tab2, lineNr * SpacingOne, wm.MetrologicalClass()); - if (compound) - { - PrintAt(e, Tab3, lineNr * SpacingOne, "Metr. klasse :"); - PrintAt(e, Tab4, lineNr * SpacingOne, wm.MetrologicalClassAux()); - } - lineNr++; - - PrintAt(e, Tab1, lineNr * SpacingOne, "Stand :"); - PrintAt(e, Tab2, lineNr * SpacingOne, wm.EndState); - if (compound) - { - PrintAt(e, Tab3, lineNr * SpacingOne, "Stand :"); - PrintAt(e, Tab4, lineNr * SpacingOne, wm.EndStateAux); - - lineNr += 2; - PrintAt(e, Tab1, lineNr * SpacingOne, "Umschaltpunkte :"); - lineNr++; - PrintAt(e, Tab1, lineNr * SpacingOne, "Qsteig"); - PrintAt(e, Tab2, lineNr * SpacingOne, (1000.0 * wm.QRise).ToString("F1") + " l/h"); - lineNr++; - PrintAt(e, Tab1, lineNr * SpacingOne, "Qfall"); - PrintAt(e, Tab2, lineNr * SpacingOne, (1000.0 * wm.QFall).ToString("F1") + " l/h"); - } - - lineNr += 2; - top = SpacingOne * lineNr; - - PrintTable(e); - DrawTable(e); - - lineNr += (secondTableOffset * 2) / SpacingOne; - PrintAt(e, Tab1, lineNr * SpacingOne, "Temperatur"); - PrintAt(e, Tab2, lineNr * SpacingOne, wm.Batch.AmbientTempAve().ToString("F1") + " \x00b0C"); - lineNr++; - PrintAt(e, Tab1, lineNr * SpacingOne, "Feuchtigkeit"); - PrintAt(e, Tab2, lineNr * SpacingOne, wm.Batch.AmbientHumiAve().ToString("F0") + " %"); - lineNr++; - PrintAt(e, Tab1, lineNr * SpacingOne, "Luftdruck"); - PrintAt(e, Tab2, lineNr * SpacingOne, Config.Units.ConvertTo(Config.Unit.mbar, wm.Batch.AmbientPressAve()).ToString("F0") + " mbar"); - - lineNr++; - PrintAt(e, Tab3, lineNr * SpacingOne, wm.Batch.EndTime.Date.ToString("d")); - lineNr ++; - PrintAt(e, Tab3, lineNr * SpacingOne, "Datum"); - PrintAt(e, Tab4, lineNr * SpacingOne, "Unterschrift"); - } - - /// - /// Print table texts. - /// - void PrintTable(System.Drawing.Printing.PrintPageEventArgs e) - { - PrintAt(e, FromTest(-1, -1), "Prüflauf"); - PrintAt(e, FromTest(-1, 0), "Q [l/h]"); - PrintAt(e, FromTest(-1, 1), "Prüf-Vol.[l]"); - PrintAt(e, FromTest(-1, 2), compound ? "HZ-Vol.[l]" : "Z-Vol.[l]"); - PrintAt(e, FromTest(-1, 3), compound ? "NZ-Vol.[l]" : "-"); - PrintAt(e, FromTest(-1, 4), "Fehler [%]"); - PrintAt(e, FromTest(-1, 5), "Ergebnis"); - - PrintAt(e, FromTest(-1, 6), "Q [l/h]"); - PrintAt(e, FromTest(-1, 7), "Temperatur"); - PrintAt(e, FromTest(-1, 8), "Dichte"); - PrintAt(e, FromTest(-1, 9), "Prüfzeit"); - PrintAt(e, FromTest(-1, 10), "Druck Eing."); - PrintAt(e, FromTest(-1, 11), "Druck Ausg."); - - int rowCnt = 0; - foreach (var mtr in wm.MeterTestRslts) - { - if (!compound || mtr.CompoundMeterId == (byte)CompoundMeterId.Compound) - { - Point p = FromTest(rowCnt, -1); - PrintAt(e, p.X, p.Y, mtr.Name()); - PrintAt(e, p.X, p.Y + (resultsCount + 2) * SpacingOneAndHalf, mtr.Name()); - - PrintAt(e, FromTest(rowCnt, 0), mtr.TestRslt.FlowMass.ToString("F1")); - PrintAt(e, FromTest(rowCnt, 1), mtr.TestRslt.VolumeCTV.ToString("F2")); - if (compound) - { - Results.Entities.MeterTestRslt mainMtr = wm.GetMeterTestRslt(mtr.Name(), CompoundMeterId.CompoundMain); - Results.Entities.MeterTestRslt auxMtr = wm.GetMeterTestRslt(mtr.Name(), CompoundMeterId.CompoundAux); - - PrintAt(e, FromTest(rowCnt, 2), mainMtr.VolumeMeter.ToString("F2")); - PrintAt(e, FromTest(rowCnt, 3), auxMtr.VolumeMeter.ToString("F2")); - PrintAt(e, FromTest(rowCnt, 4), mtr.Error.ToString("F2")); - PrintAt(e, FromTest(rowCnt, 5), mtr.Passed ? "iO" : "NiO"); - } - else - { - PrintAt(e, FromTest(rowCnt, 2), mtr.VolumeMeter.ToString("F2")); - PrintAt(e, FromTest(rowCnt, 3), "-"); - PrintAt(e, FromTest(rowCnt, 4), mtr.Error.ToString("F2")); - PrintAt(e, FromTest(rowCnt, 5), mtr.Passed ? "iO" : "NiO"); - } - PrintAt(e, FromTest(rowCnt, 6), mtr.TestRslt.FlowMass.ToString("F1")); - PrintAt(e, FromTest(rowCnt, 7), mtr.TestRslt.TempDownMean.ToString("F2")); - PrintAt(e, FromTest(rowCnt, 8), mtr.TestRslt.DensityDiv.ToString("F2")); - PrintAt(e, FromTest(rowCnt, 9), mtr.TestTime.ToString("F1")); - PrintAt(e, FromTest(rowCnt, 10), Config.Units.ConvertTo(Config.Unit.bar, mtr.TestRslt.PressUpMean).ToString("F3")); - PrintAt(e, FromTest(rowCnt, 11), Config.Units.ConvertTo(Config.Unit.bar, mtr.TestRslt.PressDownMean).ToString("F3")); - - rowCnt++; - } - } - } - - /// - /// Draw table lines. - /// - void DrawTable(System.Drawing.Printing.PrintPageEventArgs e) - { - int mid = top + SpacingOneAndHalf; - int bot = top + (resultsCount + 1) * SpacingOneAndHalf; - - int top2 = top + secondTableOffset; - int mid2 = mid + secondTableOffset; - int bot2 = bot + secondTableOffset; - - // Horizontal lines - e.Graphics.DrawLine(new Pen(Color.Black, BorderW), new Point(80, top), new Point(747, top)); - e.Graphics.DrawLine(new Pen(Color.Black, BorderW), new Point(80, mid), new Point(747, mid)); - e.Graphics.DrawLine(new Pen(Color.Black, BorderW), new Point(80, bot), new Point(747, bot)); - - e.Graphics.DrawLine(new Pen(Color.Black, BorderW), new Point(80, top2), new Point(747, top2)); - e.Graphics.DrawLine(new Pen(Color.Black, BorderW), new Point(80, mid2), new Point(747, mid2)); - e.Graphics.DrawLine(new Pen(Color.Black, BorderW), new Point(80, bot2), new Point(747, bot2)); - - // Vertical lines - e.Graphics.DrawLine(new Pen(Color.Black, BorderW), new Point( 80, top), new Point( 80, bot)); - e.Graphics.DrawLine(new Pen(Color.Black, BorderW), new Point(267, top), new Point(267, bot)); - e.Graphics.DrawLine(new Pen(Color.Black, BorderW), new Point(347, top), new Point(347, bot)); - e.Graphics.DrawLine(new Pen(Color.Black, BorderW), new Point(427, top), new Point(427, bot)); - e.Graphics.DrawLine(new Pen(Color.Black, BorderW), new Point(507, top), new Point(507, bot)); - e.Graphics.DrawLine(new Pen(Color.Black, BorderW), new Point(587, top), new Point(587, bot)); - e.Graphics.DrawLine(new Pen(Color.Black, BorderW), new Point(667, top), new Point(667, bot)); - e.Graphics.DrawLine(new Pen(Color.Black, BorderW), new Point(747, top), new Point(747, bot)); - - e.Graphics.DrawLine(new Pen(Color.Black, BorderW), new Point( 80, top2), new Point( 80, bot2)); - e.Graphics.DrawLine(new Pen(Color.Black, BorderW), new Point(267, top2), new Point(267, bot2)); - e.Graphics.DrawLine(new Pen(Color.Black, BorderW), new Point(347, top2), new Point(347, bot2)); - e.Graphics.DrawLine(new Pen(Color.Black, BorderW), new Point(427, top2), new Point(427, bot2)); - e.Graphics.DrawLine(new Pen(Color.Black, BorderW), new Point(507, top2), new Point(507, bot2)); - e.Graphics.DrawLine(new Pen(Color.Black, BorderW), new Point(587, top2), new Point(587, bot2)); - e.Graphics.DrawLine(new Pen(Color.Black, BorderW), new Point(667, top2), new Point(667, bot2)); - e.Graphics.DrawLine(new Pen(Color.Black, BorderW), new Point(747, top2), new Point(747, bot2)); - } - - void PrintAt(System.Drawing.Printing.PrintPageEventArgs e, Point p, string text) - { - PrintAt(e, p.X, p.Y, text); - } - - void PrintAt(System.Drawing.Printing.PrintPageEventArgs e, int x, int y, string text) - { - RectangleF printArea = new RectangleF(x, y, 667, SpacingOne); - e.Graphics.DrawString(text, this.font, Brushes.Black, printArea); - } - - void PrintBoldAt(System.Drawing.Printing.PrintPageEventArgs e, Point p, string text) - { - PrintBoldAt(e, p.X, p.Y, text); - } - - void PrintBoldAt(System.Drawing.Printing.PrintPageEventArgs e, int x, int y, string text) - { - RectangleF printArea = new RectangleF(x, y, 667, SpacingOne); - e.Graphics.DrawString(text, this.boldFont, Brushes.Black, printArea); - } - - Point FromTest(int testNr, int parNr) - { - const int NrParamsInOneTableRow = 6; - - int x = 267 + (parNr % NrParamsInOneTableRow) * 80 + MarginLeft; - int y = top + SpacingOneAndHalf + MarginTop + testNr * SpacingOneAndHalf - + ((parNr >= NrParamsInOneTableRow) ? secondTableOffset : 0); - - if (parNr < 0) x = 80 + MarginLeft; /// When parNr == -1 return the left column x coordinate - - return new Point(x, y); - } - } -} diff --git a/TestBenchFramework/BenchControl/ResultsPrinters/Munich/Printer.cs b/TestBenchFramework/BenchControl/ResultsPrinters/Munich/Printer.cs index 49400847d..101560f6f 100644 --- a/TestBenchFramework/BenchControl/ResultsPrinters/Munich/Printer.cs +++ b/TestBenchFramework/BenchControl/ResultsPrinters/Munich/Printer.cs @@ -54,7 +54,7 @@ namespace TBF.BenchControl.ResultsPrinters.Munich { foreach (var wm in batch.WaterMeters) { - new MunichPrintDocument(printerCfg.Version, wm, printerCfg.PageOrientation).Print(); + new Results.Output.Printers.Munich.MunichPrintDocument(printerCfg.Version, wm, printerCfg.PageOrientation).Print(); } } diff --git a/TestBenchFramework/Forms/PreviousResultsDlg.cs b/TestBenchFramework/Forms/PreviousResultsDlg.cs index 61118905d..caba29bb6 100644 --- a/TestBenchFramework/Forms/PreviousResultsDlg.cs +++ b/TestBenchFramework/Forms/PreviousResultsDlg.cs @@ -126,7 +126,7 @@ namespace TBF.Forms } foreach (var wm in b.WaterMeters) { - new TBF.BenchControl.ResultsPrinters.Munich.MunichPrintDocument(docVersion, wm, Config.Entities.PageOrientation.Portrait).Print(); + new Results.Output.Printers.Munich.MunichPrintDocument(docVersion, wm, Config.Entities.PageOrientation.Portrait).Print(); } #endif } diff --git a/TestBenchFramework/Properties/AssemblyInfo.cs b/TestBenchFramework/Properties/AssemblyInfo.cs index 6817cbf6d..d66f6617f 100644 --- a/TestBenchFramework/Properties/AssemblyInfo.cs +++ b/TestBenchFramework/Properties/AssemblyInfo.cs @@ -29,5 +29,5 @@ using System.Runtime.InteropServices; // Build Number // Revision // -[assembly: AssemblyVersion("2.12.482.1")] -[assembly: AssemblyFileVersion("2.12.482.1")] +[assembly: AssemblyVersion("2.12.483.1")] +[assembly: AssemblyFileVersion("2.12.483.1")] diff --git a/TestBenchFramework/Properties/Resources.Designer.cs b/TestBenchFramework/Properties/Resources.Designer.cs index 3275f57a1..6fd3d8148 100644 --- a/TestBenchFramework/Properties/Resources.Designer.cs +++ b/TestBenchFramework/Properties/Resources.Designer.cs @@ -60,16 +60,6 @@ namespace TBF.Properties { } } - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap Headpic { - get { - object obj = ResourceManager.GetObject("Headpic", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// diff --git a/TestBenchFramework/Properties/Resources.resx b/TestBenchFramework/Properties/Resources.resx index 82f5750b6..9132fc007 100644 --- a/TestBenchFramework/Properties/Resources.resx +++ b/TestBenchFramework/Properties/Resources.resx @@ -130,9 +130,6 @@ ..\Resources\TestPassedImage.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\Headpic.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\TestFailedImage2.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a diff --git a/TestBenchFramework/Resources/Headpic.png b/TestBenchFramework/Resources/Headpic.png deleted file mode 100644 index 9a764174d463e87b6bdd2a6afceeab46a6ea2f2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72618 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 F{|}9grxE}F diff --git a/TestBenchFramework/TBF.csproj b/TestBenchFramework/TBF.csproj index 44329c87e..b7d99a8bf 100644 --- a/TestBenchFramework/TBF.csproj +++ b/TestBenchFramework/TBF.csproj @@ -1165,9 +1165,6 @@ Component - - Component - @@ -2378,7 +2375,6 @@ -