1
0
mirror of https://github.com/chylex/TweetDuck.git synced 2025-04-07 00:15:52 +02:00

Show a deprecation notice on launch

References 
This commit is contained in:
chylex 2023-07-16 22:59:16 +02:00
parent 37303ddf02
commit a58a1b347a
Signed by: chylex
GPG Key ID: 4DE42C8F19A80548
5 changed files with 58 additions and 20 deletions

View File

@ -9,6 +9,7 @@ static class Arguments {
public const string ArgIgnoreGDPR = "-nogdpr";
public const string ArgHttpVideo = "-httpvideo";
public const string ArgFreeze = "-freeze";
public const string ArgHideDeprecation = "-hidedeprecation";
// internal args
public const string ArgRestart = "-restart";

View File

@ -0,0 +1,36 @@
using System;
using System.Windows.Forms;
using TweetLib.Core;
namespace TweetDuck.Dialogs;
static class DeprecationNoticeDialog {
public static bool Show() {
const string contents = """
TweetDuck is no longer being maintained:
- Twitter has been constantly breaking TweetDeck and therefore also breaking TweetDuck.
- Twitter will be replacing TweetDeck with a new version that is incompatible with most of the app's features.
- Twitter is planning to put TweetDeck behind a subscription paywall.
There will be no more updates.
Continue at your own risk.
""";
using FormMessage message = new FormMessage("TweetDuck Deprecation Notice", contents, MessageBoxIcon.Warning);
message.AddButton("Exit", DialogResult.Cancel, ControlType.Cancel);
message.AddButton("Continue", DialogResult.OK, ControlType.Accept | ControlType.Focused);
Button btnLearnMore = message.CreateButton("Learn More", x: 9, width: 106);
btnLearnMore.Anchor |= AnchorStyles.Left;
btnLearnMore.Margin = new Padding(0, 0, 48, 0);
btnLearnMore.Click += OnBtnLearnMoreClick;
message.AddActionControl(btnLearnMore);
return message.ShowDialog() == DialogResult.OK;
}
private static void OnBtnLearnMoreClick(object? sender, EventArgs args) {
App.SystemHandler.OpenBrowser(Program.Website + "/deprecation");
}
}

View File

@ -124,15 +124,7 @@ public Button AddButton(string title, ControlType type) {
}
public Button AddButton(string title, DialogResult result = DialogResult.OK, ControlType type = ControlType.None) {
Button button = new Button {
Anchor = AnchorStyles.Bottom,
Font = SystemFonts.MessageBoxFont,
Location = new Point(0, 12),
Size = new Size(BrowserUtils.Scale(88, dpiScale), BrowserUtils.Scale(26, dpiScale)),
TabIndex = 256 - buttonCount,
Text = title,
UseVisualStyleBackColor = true
};
Button button = CreateButton(title);
button.Click += (_, _) => {
ClickedButton = button;
@ -162,6 +154,18 @@ public Button AddButton(string title, DialogResult result = DialogResult.OK, Con
return button;
}
public Button CreateButton(string title, int x = 0, int width = 88) {
return new Button {
Anchor = AnchorStyles.Bottom,
Font = SystemFonts.MessageBoxFont,
Location = new Point(x, 12),
Size = new Size(BrowserUtils.Scale(width, dpiScale), BrowserUtils.Scale(26, dpiScale)),
TabIndex = 256 - buttonCount,
Text = title,
UseVisualStyleBackColor = true
};
}
public void AddActionControl(Control control) {
panelActions.Controls.Add(control);

View File

@ -108,6 +108,10 @@ public void BeforeLaunch() {
if (Config.System.Migrate()) {
Config.System.Save();
}
if (!Arguments.HasFlag(Arguments.ArgHideDeprecation) && !DeprecationNoticeDialog.Show()) {
Environment.Exit(0);
}
}
public void Launch(ResourceCache resourceCache, PluginManager pluginManager) {

View File

@ -1,6 +1,5 @@
using System;
using System.Diagnostics;
using System.Drawing;
using System.Windows.Forms;
using TweetDuck.Dialogs;
using TweetDuck.Management;
@ -36,16 +35,10 @@ public void HandleException(string caption, string message, bool canIgnore, Exce
btnIgnore.Enabled = canIgnore;
form.ActiveControl = canIgnore ? btnIgnore : btnExit;
Button btnOpenLog = new Button {
Anchor = AnchorStyles.Bottom | AnchorStyles.Left,
Enabled = loggedSuccessfully,
Font = SystemFonts.MessageBoxFont,
Location = new Point(9, 12),
Margin = new Padding(0, 0, 48, 0),
Size = new Size(106, 26),
Text = "Show Error Log",
UseVisualStyleBackColor = true
};
Button btnOpenLog = form.CreateButton("Show Error Log", x: 9, width: 106);
btnOpenLog.Anchor |= AnchorStyles.Left;
btnOpenLog.Enabled = loggedSuccessfully;
btnOpenLog.Margin = new Padding(0, 0, 48, 0);
btnOpenLog.Click += static (_, _) => {
if (!OpenLogFile()) {