From bc68e9cef18c45a3c4fdf7a1dd5a7fadfeeec1ac Mon Sep 17 00:00:00 2001 From: yuriqdev Date: Wed, 6 Jun 2018 05:54:35 +0300 Subject: [PATCH] Some minor changes. - Updated .gitignore. - Removed unused code. - Added precompiled binaries. - Added Tooltips for menu buttons. - Minor code improvements. - Build settings changed to ANY CPU --- .gitignore | 89 +++++------------- WinCCFlexArchViewer/Main.Designer.cs | 9 ++ WinCCFlexArchViewer/Main.cs | 5 +- WinCCFlexArchViewer/NumTextBox.cs | 6 +- WinCCFlexArchViewer/WinCCFlexLogViewer.csproj | 3 +- .../YScaleSettings.Designer.cs | 51 +++++----- .../bin/Release/WinCCFlexLogViewer.exe | Bin 816128 -> 816640 bytes changelog.txt | 5 +- 8 files changed, 68 insertions(+), 100 deletions(-) diff --git a/.gitignore b/.gitignore index d49070a..00ef998 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,5 @@ -### Csharp ### ## Ignore Visual Studio temporary files, build results, and ## files generated by popular Visual Studio add-ons. -## -## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore # User-specific files *.suo @@ -10,6 +7,9 @@ *.userosscache *.sln.docstates +!*.exe +!*.dll + # User-specific files (MonoDevelop/Xamarin Studio) *.userprefs @@ -18,12 +18,14 @@ [Dd]ebugPublic/ [Rr]elease/ [Rr]eleases/ -x64/ -x86/ +[Xx]64/ +[Xx]86/ +[Bb]uild/ bld/ [Bb]in/ [Oo]bj/ -[Ll]og/ + + # Visual Studio 2015 cache/options directory .vs/ @@ -43,11 +45,9 @@ TestResult.xml [Rr]eleasePS/ dlldata.c -# .NET Core +# DNX project.lock.json -project.fragment.lock.json artifacts/ -**/Properties/launchSettings.json *_i.c *_p.c @@ -86,7 +86,6 @@ ipch/ *.sdf *.cachefile *.VC.db -*.VC.VC.opendb # Visual Studio profiler *.psess @@ -114,10 +113,6 @@ _TeamCity* # DotCover is a Code Coverage Tool *.dotCover -# Visual Studio code coverage results -*.coverage -*.coveragexml - # NCrunch _NCrunch_* .*crunch*.local.xml @@ -149,18 +144,13 @@ publish/ # Publish Web Output *.[Pp]ublish.xml *.azurePubxml -# TODO: Uncomment the next line to ignore your web deploy settings. -# By default, sensitive information, such as encrypted password -# should be stored in the .pubxml.user file. + +# TODO: Un-comment the next line if you do not want to checkin +# your web deploy settings because they may include unencrypted +# passwords #*.pubxml -*.pubxml.user *.publishproj -# Microsoft Azure Web App publish settings. Comment the next line if you want to -# checkin your Azure Web App publish settings, but sensitive information contained -# in these scripts will be unencrypted -PublishScripts/ - # NuGet Packages *.nupkg # The packages folder can be ignored because of Package Restore @@ -169,7 +159,7 @@ PublishScripts/ !**/packages/build/ # Uncomment if necessary however generally it will be regenerated when needed #!**/packages/repositories.config -# NuGet v3's project.json files produces more ignorable files +# NuGet v3's project.json files produces more ignoreable files *.nuget.props *.nuget.targets @@ -181,11 +171,9 @@ csx/ ecf/ rcf/ -# Windows Store app package directories and files +# Windows Store app package directory AppPackages/ BundleArtifacts/ -Package.StoreAssociation.xml -_pkginfo.txt # Visual Studio cache files # files ending in .cache can be ignored @@ -195,19 +183,16 @@ _pkginfo.txt # Others ClientBin/ +[Ss]tyle[Cc]op.* ~$* *~ *.dbmdl *.dbproj.schemaview -*.jfm *.pfx *.publishsettings +node_modules/ orleans.codegen.cs -# Since there are multiple workflows, uncomment next line to ignore bower_components -# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) -#bower_components/ - # RIA/Silverlight projects Generated_Code/ @@ -222,7 +207,6 @@ UpgradeLog*.htm # SQL Server files *.mdf *.ldf -*.ndf # Business Intelligence projects *.rdl.data @@ -237,10 +221,6 @@ FakesAssemblies/ # Node.js Tools for Visual Studio .ntvs_analysis.dat -node_modules/ - -# Typescript v1 declaration files -typings/ # Visual Studio 6 build log *.plg @@ -248,9 +228,6 @@ typings/ # Visual Studio 6 workspace options file *.opt -# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) -*.vbw - # Visual Studio LightSwitch build output **/*.HTMLClient/GeneratedArtifacts **/*.DesktopClient/GeneratedArtifacts @@ -259,36 +236,12 @@ typings/ **/*.Server/ModelManifest.xml _Pvt_Extensions +# LightSwitch generated files +GeneratedArtifacts/ +ModelManifest.xml + # Paket dependency manager .paket/paket.exe -paket-files/ # FAKE - F# Make .fake/ - -# JetBrains Rider -.idea/ -*.sln.iml - -# CodeRush -.cr/ - -# Python Tools for Visual Studio (PTVS) -__pycache__/ -*.pyc - -# Cake - Uncomment if you are using it -# tools/** -# !tools/packages.config - -# Telerik's JustMock configuration file -*.jmconfig - -# BizTalk build output -*.btp.cs -*.btm.cs -*.odx.cs -*.xsd.cs - - -# End of \ No newline at end of file diff --git a/WinCCFlexArchViewer/Main.Designer.cs b/WinCCFlexArchViewer/Main.Designer.cs index 6053447..7069703 100644 --- a/WinCCFlexArchViewer/Main.Designer.cs +++ b/WinCCFlexArchViewer/Main.Designer.cs @@ -73,6 +73,7 @@ private void InitializeComponent() this.menuStrip1.Location = new System.Drawing.Point(0, 0); this.menuStrip1.Name = "menuStrip1"; this.menuStrip1.Padding = new System.Windows.Forms.Padding(6, 2, 2, 2); + this.menuStrip1.ShowItemToolTips = true; this.menuStrip1.Size = new System.Drawing.Size(846, 24); this.menuStrip1.TabIndex = 0; this.menuStrip1.Text = "menuStrip1"; @@ -83,6 +84,7 @@ private void InitializeComponent() this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; this.fileToolStripMenuItem.Size = new System.Drawing.Size(53, 20); this.fileToolStripMenuItem.Text = "File"; + this.fileToolStripMenuItem.ToolTipText = "Open data log file"; this.fileToolStripMenuItem.Click += new System.EventHandler(this.fileToolStripMenuItem_Click); // // togleTableToolStripMenuItem @@ -91,6 +93,7 @@ private void InitializeComponent() this.togleTableToolStripMenuItem.Name = "togleTableToolStripMenuItem"; this.togleTableToolStripMenuItem.Size = new System.Drawing.Size(98, 20); this.togleTableToolStripMenuItem.Text = "toggle table"; + this.togleTableToolStripMenuItem.ToolTipText = "Toggle table view"; this.togleTableToolStripMenuItem.Click += new System.EventHandler(this.togleTableToolStripMenuItem_Click); // // hideshowcurveMenuItem @@ -106,6 +109,7 @@ private void InitializeComponent() this.printMenuItem.Name = "printMenuItem"; this.printMenuItem.Size = new System.Drawing.Size(60, 20); this.printMenuItem.Text = "print"; + this.printMenuItem.ToolTipText = "Print Graph"; this.printMenuItem.Click += new System.EventHandler(this.printMenuItem_Click); // // lockunlockvzoomMenuItem @@ -115,6 +119,7 @@ private void InitializeComponent() this.lockunlockvzoomMenuItem.Name = "lockunlockvzoomMenuItem"; this.lockunlockvzoomMenuItem.Size = new System.Drawing.Size(131, 20); this.lockunlockvzoomMenuItem.Text = "lock vertical zoom"; + this.lockunlockvzoomMenuItem.ToolTipText = "Toggle Y-axis zoom lock"; this.lockunlockvzoomMenuItem.Click += new System.EventHandler(this.lockunlockvzoomMenuItem_Click); // // ExitStripMenuItem @@ -134,6 +139,7 @@ private void InitializeComponent() this.aboutMenuItem.Name = "aboutMenuItem"; this.aboutMenuItem.Size = new System.Drawing.Size(38, 20); this.aboutMenuItem.Text = " "; + this.aboutMenuItem.ToolTipText = "About"; this.aboutMenuItem.Click += new System.EventHandler(this.aboutMenuItem_Click); // // ControlsStripMenuItem @@ -142,6 +148,7 @@ private void InitializeComponent() this.ControlsStripMenuItem.Name = "ControlsStripMenuItem"; this.ControlsStripMenuItem.Size = new System.Drawing.Size(78, 20); this.ControlsStripMenuItem.Text = "controls"; + this.ControlsStripMenuItem.ToolTipText = "Toggle Control pad"; this.ControlsStripMenuItem.Click += new System.EventHandler(this.ControlsStripMenuItem_Click); // // fullscreenToolStripMenuItem @@ -150,6 +157,7 @@ private void InitializeComponent() this.fullscreenToolStripMenuItem.Name = "fullscreenToolStripMenuItem"; this.fullscreenToolStripMenuItem.Size = new System.Drawing.Size(86, 20); this.fullscreenToolStripMenuItem.Text = "fullscreen"; + this.fullscreenToolStripMenuItem.ToolTipText = "Toggle fullscreen mode"; this.fullscreenToolStripMenuItem.Click += new System.EventHandler(this.fullscreenToolStripMenuItem_Click); // // SaveCSVMenuItem @@ -158,6 +166,7 @@ private void InitializeComponent() this.SaveCSVMenuItem.Name = "SaveCSVMenuItem"; this.SaveCSVMenuItem.Size = new System.Drawing.Size(79, 20); this.SaveCSVMenuItem.Text = "Save csv"; + this.SaveCSVMenuItem.ToolTipText = "Save Table data to CSV file"; this.SaveCSVMenuItem.Click += new System.EventHandler(this.SaveCSVMenuItem_Click); // // openFileDialog1 diff --git a/WinCCFlexArchViewer/Main.cs b/WinCCFlexArchViewer/Main.cs index d49e98c..911dd2b 100644 --- a/WinCCFlexArchViewer/Main.cs +++ b/WinCCFlexArchViewer/Main.cs @@ -258,7 +258,7 @@ private void parse_data(object sender, DoWorkEventArgs e) } } //EndOfForeach - datapointCounter = timeList.Count; //немного оптимизации, получим число записей сразу, без цикла + datapointCounter = timeList.Count; // получим число записей сразу, без цикла table = new DataTable(); DataColumn dataColumn = new DataColumn(); dataColumn.DataType = Type.GetType("System.String"); @@ -320,7 +320,7 @@ private void parse_data(object sender, DoWorkEventArgs e) } } } //EndOfForeach - goodRecCounter = table.Rows.Count; //немного оптимизации, получим число записей сразу, без цикла + goodRecCounter = table.Rows.Count; // получим число записей сразу, без цикла } // @@ -441,6 +441,7 @@ private void toolMnuItemChSta(object sender, EventArgs e) { ((ToolStripMenuItem)sender).Checked = DTrend.GraphPane.CurveList[((ToolStripMenuItem)sender).OwnerItem.Text].IsVisible; } + // Event handler for Dropdown MenuItem "show/hide ALL Curves" private void toggleAllCurves(object sender, EventArgs e) { diff --git a/WinCCFlexArchViewer/NumTextBox.cs b/WinCCFlexArchViewer/NumTextBox.cs index 32db815..e9fd369 100644 --- a/WinCCFlexArchViewer/NumTextBox.cs +++ b/WinCCFlexArchViewer/NumTextBox.cs @@ -35,7 +35,7 @@ protected override void WndProc(ref Message m) { Text = value.ToString(); } - else MessageBox.Show("Error paste"); + else MessageBox.Show("Only Number Allowed", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } @@ -44,13 +44,13 @@ private double DblParse() double d = 0.0; if (Text == String.Empty) { - MessageBox.Show("Empty Value Not Allowed"); + MessageBox.Show("Empty Value Not Allowed", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning); ok = false; } else { ok = double.TryParse(this.Text, out d); - if (ok == false) MessageBox.Show("Only Number Allowed"); + if (ok == false) MessageBox.Show("Only Number Allowed", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning); } return d; } diff --git a/WinCCFlexArchViewer/WinCCFlexLogViewer.csproj b/WinCCFlexArchViewer/WinCCFlexLogViewer.csproj index a05e518..86b4f86 100644 --- a/WinCCFlexArchViewer/WinCCFlexLogViewer.csproj +++ b/WinCCFlexArchViewer/WinCCFlexLogViewer.csproj @@ -45,13 +45,14 @@ false - x86 + AnyCPU pdbonly true bin\Release\ TRACE prompt 4 + false diff --git a/WinCCFlexArchViewer/YScaleSettings.Designer.cs b/WinCCFlexArchViewer/YScaleSettings.Designer.cs index fbc7fc3..67a92b6 100644 --- a/WinCCFlexArchViewer/YScaleSettings.Designer.cs +++ b/WinCCFlexArchViewer/YScaleSettings.Designer.cs @@ -17,16 +17,17 @@ private void InitializeComponent() this.channel_name_label = new System.Windows.Forms.Label(); this.btnSet = new System.Windows.Forms.Button(); this.btnCancel = new System.Windows.Forms.Button(); - this.channel_Y_min_input = new NumTextBox(); - this.channel_Y_max_input = new NumTextBox(); this.channel_Y_min_label = new System.Windows.Forms.Label(); this.channel_Y_max_label = new System.Windows.Forms.Label(); + this.channel_Y_max_input = new WinCCFlexLogViewer.NumTextBox(); + this.channel_Y_min_input = new WinCCFlexLogViewer.NumTextBox(); this.SuspendLayout(); // // channel_name_label // this.channel_name_label.AutoSize = true; this.channel_name_label.Location = new System.Drawing.Point(5, 9); + this.channel_name_label.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); this.channel_name_label.Name = "channel_name_label"; this.channel_name_label.Size = new System.Drawing.Size(75, 13); this.channel_name_label.TabIndex = 0; @@ -52,26 +53,6 @@ private void InitializeComponent() this.btnCancel.UseVisualStyleBackColor = true; this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); // - // channel_Y_min_input - // - this.channel_Y_min_input.Location = new System.Drawing.Point(55, 31); - this.channel_Y_min_input.Name = "channel_Y_min_input"; - this.channel_Y_min_input.Size = new System.Drawing.Size(100, 20); - this.channel_Y_min_input.TabIndex = 3; - this.channel_Y_min_input.Text = "0"; - this.channel_Y_min_input.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.channel_Y_min_input.WordWrap = false; - // - // channel_Y_max_input - // - this.channel_Y_max_input.Location = new System.Drawing.Point(55, 53); - this.channel_Y_max_input.Name = "channel_Y_max_input"; - this.channel_Y_max_input.Size = new System.Drawing.Size(100, 20); - this.channel_Y_max_input.TabIndex = 4; - this.channel_Y_max_input.Text = "0"; - this.channel_Y_max_input.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.channel_Y_max_input.WordWrap = false; - // // channel_Y_min_label // this.channel_Y_min_label.AutoSize = true; @@ -90,14 +71,34 @@ private void InitializeComponent() this.channel_Y_max_label.TabIndex = 6; this.channel_Y_max_label.Text = "Y Max:"; // + // channel_Y_max_input + // + this.channel_Y_max_input.Location = new System.Drawing.Point(55, 53); + this.channel_Y_max_input.Name = "channel_Y_max_input"; + this.channel_Y_max_input.Size = new System.Drawing.Size(100, 20); + this.channel_Y_max_input.TabIndex = 4; + this.channel_Y_max_input.Text = "0"; + this.channel_Y_max_input.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.channel_Y_max_input.WordWrap = false; + // + // channel_Y_min_input + // + this.channel_Y_min_input.Location = new System.Drawing.Point(55, 31); + this.channel_Y_min_input.Name = "channel_Y_min_input"; + this.channel_Y_min_input.Size = new System.Drawing.Size(100, 20); + this.channel_Y_min_input.TabIndex = 3; + this.channel_Y_min_input.Text = "0"; + this.channel_Y_min_input.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.channel_Y_min_input.WordWrap = false; + // // YScaleSettings // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(184, 112); this.Controls.Add(this.channel_Y_max_label); - this.Controls.Add(channel_Y_min_label); - this.Controls.Add(channel_Y_max_input); + this.Controls.Add(this.channel_Y_min_label); + this.Controls.Add(this.channel_Y_max_input); this.Controls.Add(this.channel_Y_min_input); this.Controls.Add(this.btnCancel); this.Controls.Add(this.btnSet); @@ -109,7 +110,7 @@ private void InitializeComponent() this.ShowIcon = false; this.ShowInTaskbar = false; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Y scale settings"; + this.Text = " Y scale settings"; this.ResumeLayout(false); this.PerformLayout(); diff --git a/WinCCFlexArchViewer/bin/Release/WinCCFlexLogViewer.exe b/WinCCFlexArchViewer/bin/Release/WinCCFlexLogViewer.exe index 1470616a40e16833e941022f761cb4fe23098bfb..7f1a563d75cbf8dcc14a32217314ccae7f7166a2 100644 GIT binary patch delta 9572 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 a(&J^o%Xq|m+VsPI>0F;9Cm&$nvHt~=N^;i# delta 9045 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 Iv#;5|0eCm@1poj5 diff --git a/changelog.txt b/changelog.txt index ea6e56d..9ad7a5f 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,7 @@ 1.9.0 beta 3 +Added Tooltips for menu buttons. +Minor code improvements. +Removed unused code. 1.9.0 beta 2 Added export data from DataGrid to CSV file. @@ -16,7 +19,7 @@ Enabled "ReadOnly" property in the data grid. Minor bug fixes. 1.8.2 -Information on command-line options moved to the "Info" window (temporary solution). +Information on command-line options moved to the "About" window (temporary solution). Added ability to rearrange columns in the DataGrid. Fixed display error in fullscreen mode. Added "Full Screen" button.