mirror of
https://github.com/MaxiFan/TunnelX.git
synced 2026-05-17 21:14:37 +03:00
Fix help donation actions and remove internal docs
This commit is contained in:
@@ -29,6 +29,8 @@ create-ico.ps1
|
|||||||
|
|
||||||
# Personal notes and exported documents
|
# Personal notes and exported documents
|
||||||
*.docx
|
*.docx
|
||||||
|
docs/PRIVACY_REVIEW.md
|
||||||
|
docs/PUBLISHING_CHECKLIST.md
|
||||||
|
|
||||||
# Logs and temporary files
|
# Logs and temporary files
|
||||||
*.log
|
*.log
|
||||||
|
|||||||
@@ -377,7 +377,8 @@ public partial class MainWindow : Window
|
|||||||
{
|
{
|
||||||
var helpWindow = new AppTunnel.Views.HelpWindow
|
var helpWindow = new AppTunnel.Views.HelpWindow
|
||||||
{
|
{
|
||||||
Owner = this
|
Owner = this,
|
||||||
|
DataContext = _viewModel
|
||||||
};
|
};
|
||||||
helpWindow.ShowDialog();
|
helpWindow.ShowDialog();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,9 +9,9 @@ public static class AppInfo
|
|||||||
public const string PayPalEmail = "gallafan@gmail.com";
|
public const string PayPalEmail = "gallafan@gmail.com";
|
||||||
public const string PayPalDonateUrl = "https://www.paypal.com/donate/?business=gallafan%40gmail.com¤cy_code=USD";
|
public const string PayPalDonateUrl = "https://www.paypal.com/donate/?business=gallafan%40gmail.com¤cy_code=USD";
|
||||||
public const string CryptoDonationText =
|
public const string CryptoDonationText =
|
||||||
"TRON / USDT-TRC20: TNWV867fQDT6zpLunHgbeMjrN6ic63LQSu\n" +
|
"ترون / USDT روی TRC20: TNWV867fQDT6zpLunHgbeMjrN6ic63LQSu\n" +
|
||||||
"Bitcoin: bc1qgx3g47c458fu6smnpqpu0l05hha82rq2xjet4y\n" +
|
"بیتکوین: bc1qgx3g47c458fu6smnpqpu0l05hha82rq2xjet4y\n" +
|
||||||
"Ethereum / USDT-ERC20: 0x72d94Bb250E8802441a0ED05686Ee925BC99Fef5\n" +
|
"اتریوم / USDT روی ERC20: 0x72d94Bb250E8802441a0ED05686Ee925BC99Fef5\n" +
|
||||||
"TON: UQD65oL2Vu2OJDSrwQ0wLLSw3g668SREMJ3VPW9k8b6Sy-Yf\n" +
|
"TON: UQD65oL2Vu2OJDSrwQ0wLLSw3g668SREMJ3VPW9k8b6Sy-Yf\n" +
|
||||||
"BNB Smart Chain: 0xE2a5b01cE2b3713D435Bc16d92eAdd88A82159f0\n" +
|
"BNB Smart Chain: 0xE2a5b01cE2b3713D435Bc16d92eAdd88A82159f0\n" +
|
||||||
"Dogecoin: DSZRNY65yF679uvjAh6sUAt6YiEEQHwKGb";
|
"Dogecoin: DSZRNY65yF679uvjAh6sUAt6YiEEQHwKGb";
|
||||||
|
|||||||
@@ -64,6 +64,7 @@ public partial class MainViewModel : INotifyPropertyChanged
|
|||||||
ClearConfigCommand = new RelayCommand(_ => SelectedV2RayConfig = "", _ => !IsConnected && CurrentTunnelType == TunnelType.V2Ray);
|
ClearConfigCommand = new RelayCommand(_ => SelectedV2RayConfig = "", _ => !IsConnected && CurrentTunnelType == TunnelType.V2Ray);
|
||||||
OpenGitHubCommand = new RelayCommand(_ => OpenExternalLink(AppInfo.GitHubUrl));
|
OpenGitHubCommand = new RelayCommand(_ => OpenExternalLink(AppInfo.GitHubUrl));
|
||||||
OpenDonateCommand = new RelayCommand(_ => OpenExternalLink(AppInfo.PayPalDonateUrl));
|
OpenDonateCommand = new RelayCommand(_ => OpenExternalLink(AppInfo.PayPalDonateUrl));
|
||||||
|
CopyDonationInfoCommand = new RelayCommand(_ => CopyDonationInfoToClipboard());
|
||||||
|
|
||||||
_trafficRouter.TrafficUpdated += OnTrafficUpdated;
|
_trafficRouter.TrafficUpdated += OnTrafficUpdated;
|
||||||
|
|
||||||
@@ -247,7 +248,7 @@ public partial class MainViewModel : INotifyPropertyChanged
|
|||||||
public string AppCreatorText => AppInfo.CreatorText;
|
public string AppCreatorText => AppInfo.CreatorText;
|
||||||
public string AppGitHubUrl => AppInfo.GitHubUrl;
|
public string AppGitHubUrl => AppInfo.GitHubUrl;
|
||||||
public string AppLicenseText => AppInfo.LicenseName;
|
public string AppLicenseText => AppInfo.LicenseName;
|
||||||
public string DonatePayPalText => $"PayPal: {AppInfo.PayPalEmail}";
|
public string DonatePayPalText => $"پیپل: {AppInfo.PayPalEmail}";
|
||||||
public string CryptoDonationText => AppInfo.CryptoDonationText;
|
public string CryptoDonationText => AppInfo.CryptoDonationText;
|
||||||
|
|
||||||
public string ConnectButtonText => _connectionState switch
|
public string ConnectButtonText => _connectionState switch
|
||||||
@@ -617,6 +618,7 @@ public partial class MainViewModel : INotifyPropertyChanged
|
|||||||
public ICommand ClearConfigCommand { get; }
|
public ICommand ClearConfigCommand { get; }
|
||||||
public ICommand OpenGitHubCommand { get; }
|
public ICommand OpenGitHubCommand { get; }
|
||||||
public ICommand OpenDonateCommand { get; }
|
public ICommand OpenDonateCommand { get; }
|
||||||
|
public ICommand CopyDonationInfoCommand { get; }
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
@@ -638,6 +640,24 @@ public partial class MainViewModel : INotifyPropertyChanged
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void CopyDonationInfoToClipboard()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var text =
|
||||||
|
$"{AppInfo.AppName} - حمایت از پروژه\n" +
|
||||||
|
$"PayPal: {AppInfo.PayPalEmail}\n" +
|
||||||
|
$"PayPal link: {AppInfo.PayPalDonateUrl}\n\n" +
|
||||||
|
AppInfo.CryptoDonationText;
|
||||||
|
System.Windows.Clipboard.SetText(text);
|
||||||
|
Logger.Info("[UI] Donation info copied to clipboard");
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Logger.Warning($"[UI] Copy donation info failed: {ex.Message}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void PasteConfigFromClipboard()
|
private void PasteConfigFromClipboard()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
|||||||
@@ -61,7 +61,7 @@
|
|||||||
Foreground="{StaticResource AccentBrush}"
|
Foreground="{StaticResource AccentBrush}"
|
||||||
FlowDirection="LeftToRight"
|
FlowDirection="LeftToRight"
|
||||||
TextWrapping="Wrap"/>
|
TextWrapping="Wrap"/>
|
||||||
<TextBlock Text="{Binding AppLicenseText, StringFormat=License: {0}}"
|
<TextBlock Text="{Binding AppLicenseText, StringFormat=لایسنس: {0}}"
|
||||||
FontSize="10"
|
FontSize="10"
|
||||||
Foreground="{StaticResource TextSecondaryBrush}"
|
Foreground="{StaticResource TextSecondaryBrush}"
|
||||||
FlowDirection="LeftToRight"
|
FlowDirection="LeftToRight"
|
||||||
@@ -81,17 +81,23 @@
|
|||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<StackPanel Grid.Column="2"
|
<StackPanel Grid.Column="2"
|
||||||
Orientation="Horizontal"
|
Orientation="Vertical"
|
||||||
VerticalAlignment="Center">
|
VerticalAlignment="Center"
|
||||||
|
MinWidth="150">
|
||||||
<Button Style="{StaticResource SecondaryButton}"
|
<Button Style="{StaticResource SecondaryButton}"
|
||||||
Content="GitHub"
|
Content="باز کردن گیتهاب"
|
||||||
Command="{Binding OpenGitHubCommand}"
|
Command="{Binding OpenGitHubCommand}"
|
||||||
Padding="14,8"
|
Padding="14,8"/>
|
||||||
Margin="0,0,8,0"/>
|
|
||||||
<Button Style="{StaticResource PrimaryButton}"
|
<Button Style="{StaticResource PrimaryButton}"
|
||||||
Content="Donate"
|
Content="حمایت با پیپل"
|
||||||
Command="{Binding OpenDonateCommand}"
|
Command="{Binding OpenDonateCommand}"
|
||||||
Padding="16,8"/>
|
Padding="16,8"
|
||||||
|
Margin="0,8,0,0"/>
|
||||||
|
<Button Style="{StaticResource SecondaryButton}"
|
||||||
|
Content="کپی اطلاعات حمایت"
|
||||||
|
Command="{Binding CopyDonationInfoCommand}"
|
||||||
|
Padding="14,8"
|
||||||
|
Margin="0,8,0,0"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Border>
|
</Border>
|
||||||
|
|||||||
+1
-1
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
## Unreleased
|
## Unreleased
|
||||||
|
|
||||||
- Prepared open-source repository documentation and GitHub release checklist.
|
- Prepared open-source repository documentation and release guidance.
|
||||||
- Added in-app GitHub and donation links.
|
- Added in-app GitHub and donation links.
|
||||||
- Added project metadata for MaxFan and GPL-3.0-or-later licensing.
|
- Added project metadata for MaxFan and GPL-3.0-or-later licensing.
|
||||||
- Improved leak logging and traffic accounting in recent internal builds.
|
- Improved leak logging and traffic accounting in recent internal builds.
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
TunnelX is a free and open-source Windows split-tunneling client built by **MaxFan**. It routes selected apps, selected destinations, or the whole system through supported tunnel cores while keeping local and excluded destinations on the normal network path.
|
TunnelX is a free and open-source Windows split-tunneling client built by **MaxFan**. It routes selected apps, selected destinations, or the whole system through supported tunnel cores while keeping local and excluded destinations on the normal network path.
|
||||||
|
|
||||||
> Status: pre-release. Review `docs/PUBLISHING_CHECKLIST.md` before publishing a public repository or release artifact.
|
> Status: pre-release. Review the release notes in `docs/BUILD.md` before publishing a public artifact.
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
@@ -15,7 +15,7 @@ TunnelX is a free and open-source Windows split-tunneling client built by **MaxF
|
|||||||
|
|
||||||
## Download
|
## Download
|
||||||
|
|
||||||
Public downloads should be attached to GitHub Releases after the checklist is complete:
|
Public downloads should be attached to GitHub Releases after release validation is complete:
|
||||||
|
|
||||||
[GitHub project](https://github.com/MaxiFan/TunnelX)
|
[GitHub project](https://github.com/MaxiFan/TunnelX)
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -30,7 +30,7 @@ TunnelX-v1.2.21-standalone-compressed.exe
|
|||||||
|
|
||||||
## Before Publishing
|
## Before Publishing
|
||||||
|
|
||||||
- Run the leak test plan in `docs/PUBLISHING_CHECKLIST.md`.
|
- Run leak, DNS, full-route, split-route, app toggle, and reconnect tests before attaching a public artifact.
|
||||||
- Confirm third-party license notices are current.
|
- Confirm third-party license notices are current.
|
||||||
- Confirm the app version in `AppTunnel/AppTunnel.csproj`.
|
- Confirm the app version in `AppTunnel/AppTunnel.csproj`.
|
||||||
- Attach release artifacts only to GitHub Releases; do not commit generated `publish/` or `Releases/` output.
|
- Attach release artifacts only to GitHub Releases; do not commit generated `publish/` or `Releases/` output.
|
||||||
|
|||||||
Reference in New Issue
Block a user