Skip to content

Commit a486a4e

Browse files
committed
feat: Add telemetry invitation system
1 parent 60d998b commit a486a4e

File tree

11 files changed

+595
-4
lines changed

11 files changed

+595
-4
lines changed

Source/Contrib/DataCollector/Program.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ class Program
2929
static void Main(string[] args)
3030
{
3131
if (args.Contains("/system", StringComparer.OrdinalIgnoreCase))
32-
SystemInfo.WriteSystemDetails(Console.Out);
32+
CollectSystem();
3333
else if (args.Contains("/tile-terrtex", StringComparer.OrdinalIgnoreCase))
3434
CollectTileTerrtex(args);
3535
else
@@ -53,6 +53,12 @@ static void ShowHelp()
5353
Console.WriteLine(" /help Show help and usage information");
5454
}
5555

56+
static void CollectSystem()
57+
{
58+
Console.Error.WriteLine("Collecting information...");
59+
SystemInfo.WriteSystemDetails(Console.Out);
60+
}
61+
5662
struct TileTerrtexDirectory
5763
{
5864
public string Path;

Source/Menu/MainForm.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// COPYRIGHT 2009, 2010, 2011, 2012, 2013, 2014, 2015 by the Open Rails project.
1+
// COPYRIGHT 2009 - 2024 by the Open Rails project.
22
//
33
// This file is part of Open Rails.
44
//
@@ -56,6 +56,7 @@ public enum UserAction
5656

5757
bool Initialized;
5858
UserSettings Settings;
59+
TelemetryManager TelemetryManager;
5960
List<Folder> Folders = new List<Folder>();
6061
public List<Route> Routes = new List<Route>();
6162
List<Activity> Activities = new List<Activity>();
@@ -149,6 +150,7 @@ void MainForm_Shown(object sender, EventArgs e)
149150
{
150151
var options = Environment.GetCommandLineArgs().Where(a => (a.StartsWith("-") || a.StartsWith("/"))).Select(a => a.Substring(1));
151152
Settings = new UserSettings(options);
153+
TelemetryManager = new TelemetryManager(Settings.Telemetry);
152154

153155
Cursor = Cursors.Default;
154156

@@ -546,7 +548,7 @@ void buttonOptions_Click(object sender, EventArgs e)
546548
{
547549
SaveOptions();
548550

549-
using (var form = new OptionsForm(Settings, UpdateManager, BaseDocumentationUrl))
551+
using (var form = new OptionsForm(Settings, UpdateManager, TelemetryManager, BaseDocumentationUrl))
550552
{
551553
switch (form.ShowDialog(this))
552554
{

Source/Menu/Options.Designer.cs

Lines changed: 32 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Source/Menu/Options.cs

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ public partial class OptionsForm : Form
3838
{
3939
readonly UserSettings Settings;
4040
readonly UpdateManager UpdateManager;
41+
readonly TelemetryManager TelemetryManager;
4142
readonly string BaseDocumentationUrl;
4243

4344
private GettextResourceManager catalog = new GettextResourceManager("Menu");
@@ -48,14 +49,15 @@ public class ComboBoxMember
4849
public string Name { get; set; }
4950
}
5051

51-
public OptionsForm(UserSettings settings, UpdateManager updateManager, string baseDocumentationUrl)
52+
public OptionsForm(UserSettings settings, UpdateManager updateManager, TelemetryManager telemetryManager, string baseDocumentationUrl)
5253
{
5354
InitializeComponent();
5455

5556
Localizer.Localize(this, catalog);
5657

5758
Settings = settings;
5859
UpdateManager = updateManager;
60+
TelemetryManager = telemetryManager;
5961
BaseDocumentationUrl = baseDocumentationUrl;
6062

6163
InitializeHelpIcons();
@@ -780,6 +782,7 @@ private void InitializeHelpIcons()
780782
(pbEnableTcsScripts, new[] { checkEnableTCSScripts }),
781783
(pbAutoSave, new[] { checkAutoSaveActive }),
782784
(pbOverspeedMonitor, new[] { checkOverspeedMonitor }),
785+
(pbTelemetry, new[] { buttonTelemetry }),
783786

784787
// Audio tab
785788
(pbSoundVolumePercent, new Control[] { labelSoundVolume, numericSoundVolumePercent }),
@@ -870,6 +873,10 @@ private void HelpIcon_Click(object sender, EventArgs _)
870873
pbOverspeedMonitor,
871874
BaseDocumentationUrl + "/options.html#overspeed-monitor"
872875
},
876+
{
877+
pbTelemetry,
878+
BaseDocumentationUrl + "/options.html#telemetry"
879+
},
873880

874881
// Audio tab
875882
{
@@ -1011,5 +1018,13 @@ private void HelpIcon_MouseLeave(object sender, EventArgs _)
10111018
hover.Leave();
10121019
}
10131020
#endregion
1021+
1022+
private void buttonTelemetry_Click(object sender, EventArgs e)
1023+
{
1024+
using (var telemetryForm = new TelemetryForm(TelemetryManager))
1025+
{
1026+
telemetryForm.ShowDialog(this);
1027+
}
1028+
}
10141029
}
10151030
}

Source/Menu/Options.resx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,4 +123,7 @@
123123
<metadata name="bindingSourceContent.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
124124
<value>114, 17</value>
125125
</metadata>
126+
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
127+
<value>17, 17</value>
128+
</metadata>
126129
</root>

Source/Menu/TelemetryForm.Designer.cs

Lines changed: 189 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)