Compare commits

...

45 commits

Author SHA1 Message Date
e199c426f5 WeeXnes/Views/Settings/SettingsView.xaml aktualisiert
All checks were successful
Dotnet Build / build (push) Successful in 1m7s
2025-05-19 12:18:47 +00:00
77ef325085 WeeXnes/Core/Global.cs aktualisiert
Some checks failed
Dotnet Build / build (push) Failing after 2m9s
2025-05-19 12:14:09 +00:00
c1be81924b WeeXnes/WeeXnes.csproj aktualisiert
Some checks are pending
Dotnet Build / build (push) Waiting to run
2025-05-19 12:13:51 +00:00
dd3f5782a3 WeeXnes/Views/Settings/SettingsView.xaml aktualisiert
Some checks failed
Dotnet Build / build (push) Has been cancelled
2025-05-19 12:13:26 +00:00
83c85f932e .forgejo/workflows/dotnet.yaml aktualisiert
All checks were successful
Dotnet Build / build (push) Successful in 1m35s
2025-05-18 20:35:48 +00:00
9585ab95aa .forgejo/workflows/dotnet.yaml aktualisiert
Some checks failed
Dotnet Build / build (push) Failing after 5m6s
2025-05-18 20:28:56 +00:00
d698312381 .forgejo/workflows/dotnet.yaml aktualisiert
Some checks failed
Dotnet Build / build (push) Failing after 1m16s
2025-05-18 20:24:24 +00:00
d9981c025d .forgejo/workflows/dotnet.yaml aktualisiert
Some checks failed
Dotnet Build / build (push) Failing after 1m55s
2025-05-18 20:16:15 +00:00
3e2ed4b627 .forgejo/workflows/dotnet.yaml aktualisiert
Some checks failed
Dotnet Build / build (push) Failing after 2m7s
2025-05-18 20:06:06 +00:00
e69218c791 .forgejo/workflows/dotnet.yaml aktualisiert
Some checks failed
Dotnet Build / build (push) Failing after 1m4s
2025-05-18 20:01:36 +00:00
cd9d8fe20a .forgejo/workflows/dotnet.yaml aktualisiert
Some checks failed
Dotnet Build / build (push) Failing after 57s
2025-05-18 20:00:02 +00:00
a0ae016646 .forgejo/workflows/dotnet.yaml aktualisiert
Some checks failed
Dotnet Build / build (push) Failing after 1m2s
2025-05-18 19:58:52 +00:00
77250ee7c1 .forgejo/workflows/dotnet.yaml aktualisiert
Some checks failed
Dotnet Build / build (push) Failing after 1m39s
2025-05-18 19:52:54 +00:00
6846729432 .forgejo/workflows/dotnet.yaml aktualisiert
Some checks failed
Dotnet Build / build (push) Failing after 2m3s
2025-05-18 19:40:43 +00:00
97f3d31eab .forgejo/workflows/dotnet.yaml aktualisiert
All checks were successful
Dotnet Build / build (push) Successful in 2m4s
2025-05-18 19:32:56 +00:00
7d937fd89f .forgejo/workflows/dotnet.yaml aktualisiert
All checks were successful
Dotnet Build / build (push) Successful in 53s
2025-05-18 19:30:02 +00:00
025347faf6 .forgejo/workflows/dotnet.yaml aktualisiert
Some checks failed
Dotnet Build / build (push) Has been cancelled
2025-05-18 19:29:44 +00:00
12fbc227a5 .forgejo/workflows/dotnet.yaml aktualisiert
All checks were successful
Dotnet Build / build (push) Successful in 2m27s
2025-05-18 19:24:49 +00:00
16b21bf005 .forgejo/workflows/dotnet.yaml aktualisiert
Some checks failed
Dotnet Build / build (push) Failing after 1m12s
2025-05-18 19:20:31 +00:00
e57fef6b57 .forgejo/workflows/dotnet.yaml aktualisiert
All checks were successful
Dotnet Build / build (push) Successful in -1h57m51s
2025-05-18 19:00:39 +00:00
5c6b5dff76 .forgejo/workflows/dotnet.yaml aktualisiert
Some checks failed
Dotnet Build / build (push) Failing after -1h58m21s
2025-05-18 17:55:35 +00:00
4d937f14eb .github/workflows/dotnet-framework.yml gelöscht
All checks were successful
Dotnet Build / build (push) Successful in -1h58m56s
2025-05-18 17:53:25 +00:00
c85baa5172 .forgejo/workflows/dotnet.yaml aktualisiert
Some checks failed
Dotnet Build / build (push) Has been cancelled
2025-05-18 17:53:13 +00:00
d05f8db247 .forgejo/workflows/dotnet.yaml aktualisiert
All checks were successful
Dotnet Build / build (push) Successful in -1h59m2s
2025-05-18 17:29:14 +00:00
1faad86a8e .forgejo/workflows/dotnet.yaml aktualisiert
All checks were successful
Dotnet Build / build (push) Successful in -1h59m54s
2025-05-18 17:27:14 +00:00
09a7ee6dea .forgejo/workflows/dotnet.yaml hinzugefügt
All checks were successful
Dotnet Build / build (push) Successful in -1h59m53s
2025-05-18 16:06:45 +00:00
WeeXnes
a0e607d1e3
Update dotnet-framework.yml 2025-04-18 13:56:02 +02:00
f98cdf9b63 fixed example plugin 2025-04-09 13:30:21 +02:00
a118f4fe8b fix 2025-04-09 08:09:11 +02:00
9e8b3b89f8 plugin prototype working 2025-04-09 08:05:58 +02:00
6e60333fdf plugins loading now 2025-04-08 13:26:38 +02:00
b832aafa7c added IPluginBase for upcoming Plugin System 2025-04-08 12:20:04 +02:00
111c511ac9 file editor fix 2024-06-13 20:38:11 +02:00
55c753dead Fully added File Editor 2024-06-13 20:27:16 +02:00
5cb3c52ba7 file editor update 2024-06-13 12:46:11 +02:00
0d26606d5b updated readme 2024-06-13 12:11:51 +02:00
cbe7bfc2be updated readme and media 2024-06-13 12:08:05 +02:00
bff0928b7c file editor changes 2024-06-13 11:45:35 +02:00
f65057350d File Editor Update 2024-06-13 11:36:45 +02:00
9f96ae1493 Encrypted File Editor Ui Changes 2024-06-13 11:12:03 +02:00
218f9e1490 Prework for Encrypted TextEditor 2024-05-24 04:53:08 +02:00
7fc12b2c98 cleaned up launch flags 2024-03-12 08:36:42 +01:00
e2525e253a fixed -debugMode argument 2024-02-29 08:31:06 +01:00
9c4f2c6138 sound bug fix 2024-02-15 00:46:41 +01:00
48ef43f31e prep-work for adding auto updates option 2024-02-07 10:27:35 +01:00
37 changed files with 795 additions and 101 deletions

View file

@ -0,0 +1,140 @@
name: Dotnet Build
on: [push]
jobs:
build:
runs-on: win11
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: MSBuild version
run: |
msbuild -version
- name: Extract project version
run: |
$version = Select-String -Path "WeeXnes/WeeXnes.csproj" -Pattern "<Version>(.+?)</Version>" | ForEach-Object {
($_ -match "<Version>(.+?)</Version>") | Out-Null
$matches[1]
}
Write-Output "Version extracted: $version"
"PROJECT_VERSION=$version" | Out-File -FilePath $Env:GITHUB_ENV -Encoding ASCII -Append
- name: Test exported version variable
run: |
Write-Output "The extracted project version is: $env:PROJECT_VERSION"
if (-not $env:PROJECT_VERSION) {
Write-Error "PROJECT_VERSION variable is not set!"
exit 1
}
- name: Restore Packages
run: nuget restore WeeXnes.sln
- name: Build Solution
run: |
msbuild WeeXnes.sln /p:DeleteExistingFiles=True /p:platform="Any CPU" /p:configuration="Release"
- name: Packing Zip
run: |
$zipName = "currentRelease_$env:PROJECT_VERSION.zip"
Compress-Archive -Path `
WeeXnes\bin\Release\WeeXnes.exe, `
WeeXnes\bin\Release\System.Drawing.Common.dll, `
WeeXnes\bin\Release\Wpf.Ui.dll, `
WeeXnes_UAC\bin\Release\WeeXnes_UAC.exe, `
WeeXnes\bin\Release\DiscordRPC.dll, `
WeeXnes\bin\Release\Newtonsoft.Json.dll, `
Autostart\bin\Release\Autostart.exe, `
WXPlugin\bin\Release\WXPlugin.dll, `
Update\bin\Release\Update.exe `
-CompressionLevel Optimal `
-DestinationPath $zipName
Write-Output "Created zip: $zipName"
- name: Prepare release directory
run: |
mkdir release
move currentRelease_$env:PROJECT_VERSION.zip release\
- name: Create Git tag
run: |
git config user.name "WeeXnes"
git config user.email "weexnes@weexnes.dev"
git tag $env:PROJECT_VERSION
git push origin $env:PROJECT_VERSION
- name: Upload Release Asset to Forgejo
env:
RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }}
PROJECT_VERSION: ${{ env.PROJECT_VERSION }}
run: |
$ErrorActionPreference = "Stop"
$owner = "WeeXnes"
$repo = "WeeXnesSuite"
$tag = "$env:PROJECT_VERSION"
$token = $env:RELEASE_TOKEN
$fileName = "currentRelease_$tag.zip"
$filePath = "release/$fileName"
$releaseUrl = "https://git.weexnes.dev/api/v1/repos/$owner/$repo/releases/tags/$tag"
try {
$release = Invoke-RestMethod -Uri $releaseUrl -Headers @{ Authorization = "token $token" }
Write-Host "Found existing release for tag $tag"
} catch {
Write-Host "Release for tag $tag not found, creating..."
$createReleaseUrl = "https://git.weexnes.dev/api/v1/repos/$owner/$repo/releases"
$body = @{
tag_name = $tag
name = $tag
draft = $false
prerelease = $false
} | ConvertTo-Json -Depth 3
$release = Invoke-RestMethod -Uri $createReleaseUrl -Headers @{ Authorization = "token $token"; "Content-Type" = "application/json" } -Method Post -Body $body
}
$releaseId = $release.id
Write-Host "Release ID: $releaseId"
$uploadUrl = "https://git.weexnes.dev/api/v1/repos/$owner/$repo/releases/$releaseId/assets?name=$fileName"
Write-Host "Uploading asset to $uploadUrl"
Add-Type -AssemblyName "System.Net.Http"
$fileBytes = [System.IO.File]::ReadAllBytes($filePath)
# Use static method to correctly instantiate ByteArrayContent
$byteContent = [System.Net.Http.ByteArrayContent]::new($fileBytes)
$byteContent.Headers.ContentType = [System.Net.Http.Headers.MediaTypeHeaderValue]::new("application/zip")
$form = [System.Net.Http.MultipartFormDataContent]::new()
$form.Add($byteContent, "attachment", $fileName)
$client = [System.Net.Http.HttpClient]::new()
$client.DefaultRequestHeaders.Authorization = [System.Net.Http.Headers.AuthenticationHeaderValue]::new("token", $token)
$response = $client.PostAsync($uploadUrl, $form).Result
$responseContent = $response.Content.ReadAsStringAsync().Result
if ($response.IsSuccessStatusCode) {
Write-Host "✅ Upload succeeded"
} else {
Write-Host "❌ Upload failed with status $($response.StatusCode)"
Write-Host "Response: $responseContent"
exit 1
}

View file

@ -1,81 +0,0 @@
name: .NET Framework
on:
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]
jobs:
build:
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
- name: Setup MSBuild
uses: microsoft/setup-msbuild@v1
- name: Setup NuGet
uses: NuGet/setup-nuget@v1.1.1
- name: Navigate to Workspace
run: cd $GITHUB_WORKSPACE
- name: Restore Packages
run: nuget restore WeeXnes.sln
- name: Build Solution
run: |
msbuild.exe WeeXnes.sln /p:DeleteExistingFiles=True /p:platform="Any CPU" /p:configuration="Release"
- name: Format Xaml to XML
run: (gc Weexnes\WeeXnes.csproj) -replace ' ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"', '' | Out-File -encoding ASCII formatted.csproj
shell: pwsh
- uses: bbonkr/get-version-action@v1.0.4
id: get_version
with:
project: "formatted.csproj"
- name: logging
run: |
echo "Version=${{ steps.get_version.outputs.version }}"
- name: Packing Zip
run: Compress-Archive
D:\a\WeeXnesSuite\WeeXnesSuite\WeeXnes\bin\Release\WeeXnes.exe,
D:\a\WeeXnesSuite\WeeXnesSuite\WeeXnes\bin\Release\System.Drawing.Common.dll,
D:\a\WeeXnesSuite\WeeXnesSuite\WeeXnes\bin\Release\Wpf.Ui.dll,
D:\a\WeeXnesSuite\WeeXnesSuite\WeeXnes_UAC\bin\Release\WeeXnes_UAC.exe,
D:\a\WeeXnesSuite\WeeXnesSuite\WeeXnes\bin\Release\DiscordRPC.dll,
D:\a\WeeXnesSuite\WeeXnesSuite\WeeXnes\bin\Release\Newtonsoft.Json.dll,
D:\a\WeeXnesSuite\WeeXnesSuite\Autostart\bin\Release\Autostart.exe,
Update\bin\Release\Update.exe
-CompressionLevel Optimal -DestinationPath packed.zip
shell: pwsh
- name: Create Release
uses: actions/create-release@v1
id: create_release
with:
draft: false
prerelease: false
release_name: v${{ steps.get_version.outputs.version }}
tag_name: ${{ steps.get_version.outputs.version }}
env:
GITHUB_TOKEN: ${{ github.token }}
- name: Upload windows artifact
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ github.token }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: D:\a\WeeXnesSuite\WeeXnesSuite\packed.zip
asset_name: currentRelease_${{ steps.get_version.outputs.version }}.zip
asset_content_type: application/zip

View file

@ -14,6 +14,7 @@
<WarningLevel>4</WarningLevel>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<ApplicationIcon>wicns.ico</ApplicationIcon>
<LangVersion>12</LangVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>

View file

@ -0,0 +1,33 @@
using System;
using System.Windows.Controls;
using Wpf.Ui.Common;
using Wpf.Ui.Controls;
using WXPlugin.PluginCore;
namespace ExamplePlugin
{
public class ExamplePlugin : IPluginBase
{
public String Name { get; set; } = "Example Plugin";
public String Description { get; set; } = "This is an example plugin.";
public Page UiPage { get; set; } = new ExampleUi();
public NavigationItem NavIcon { get; set; } = new NavigationItem
{
Content = "Plugin",
Icon = SymbolRegular.Syringe20,
PageTag = "examplePlugin",
PageType = typeof(ExampleUi),
};
public void Execute()
{
throw new NotImplementedException();
}
public void Initialize()
{
//throw new NotImplementedException();
}
}
}

View file

@ -0,0 +1,77 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props"
Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')"/>
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{910F0FC8-B73D-449F-ADD7-C6CA147D9F05}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ExamplePlugin</RootNamespace>
<AssemblyName>ExamplePlugin</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="System"/>
<Reference Include="System.Core"/>
<Reference Include="System.Data"/>
<Reference Include="System.Drawing.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll</HintPath>
</Reference>
<Reference Include="System.Xaml" />
<Reference Include="System.Xml"/>
<Reference Include="WindowsBase" />
<Reference Include="Wpf.Ui, Version=2.0.3.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\WPF-UI.2.0.3\lib\net48\Wpf.Ui.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="ExamplePlugin.cs" />
<Compile Include="ExampleUi.xaml.cs" />
<Compile Include="Properties\AssemblyInfo.cs"/>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\WXPlugin\WXPlugin.csproj">
<Project>{56bfe4e0-0d30-474a-b57b-cf08515ff66e}</Project>
<Name>WXPlugin</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Page Include="ExampleUi.xaml" />
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets"/>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View file

@ -0,0 +1,17 @@
<Page x:Class="ExampleUi"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:ExamplePlugin"
xmlns:ui="http://schemas.lepo.co/wpfui/2022/xaml"
mc:Ignorable="d"
Title="AddRPCView" Height="Auto" Width="Auto"
Loaded="ExampleUi_OnLoaded">
<Grid>
<StackPanel>
<TextBlock Foreground="White">This is a Test Ui for the Example Plugin</TextBlock>
<TextBlock Name="TestLabel" Foreground="White" Text="{Binding LabelContent}"/>
</StackPanel>
</Grid>
</Page>

View file

@ -0,0 +1,18 @@
using System;
using System.Windows;
using System.Windows.Controls;
public partial class ExampleUi : Page
{
private int counter = 0;
public ExampleUi()
{
InitializeComponent();
}
private void ExampleUi_OnLoaded(object sender, RoutedEventArgs e)
{
counter++;
TestLabel.Text = counter.ToString();
}
}

View file

@ -0,0 +1,35 @@
using System.Reflection;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("ExamplePlugin")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ExamplePlugin")]
[assembly: AssemblyCopyright("Copyright © 2025")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("910F0FC8-B73D-449F-ADD7-C6CA147D9F05")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View file

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="System.Drawing.Common" version="6.0.0" targetFramework="net48" />
<package id="WPF-UI" version="2.0.3" targetFramework="net48" />
</packages>

BIN
Images/home.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

BIN
Images/password_gen.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

BIN
Images/password_manager.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

BIN
Images/rpc.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

BIN
Images/settings.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

View file

@ -1,5 +1,5 @@
<div align="center">
<img width="100" height="100" src="https://cdn.discordapp.com/attachments/741123537582162020/965619554426437732/wicon.png">
<img width="100" height="100" src="https://raw.githubusercontent.com/WeeXnes/WeeXnesSuite/master/WeeXnes/Images/wicon.png">
<br>
<img alt="GitHub release (latest by date)" src="https://img.shields.io/github/v/release/WeeXnes/WeeXnesSuite?color=%23702e94">
@ -21,14 +21,14 @@ Uses:
<h3 align="center">Encrypted Key Manager and Custom Discord Rich Presence that you can configure for every Process you want</h3>
<h2>Overview:</h2>
<image src="https://cdn.discordapp.com/attachments/741123537582162020/1117161497269907486/home.png" height="400">
<image src="https://raw.githubusercontent.com/WeeXnes/WeeXnesSuite/master/Images/home.png" height="400">
<h2></h2>
<h3>Discord Rich Presence</h3>
Configurable DiscordRPC for every process you want. It detects if a process is started and starts the Rich Presence you configured for the Process (also has import/export functionality)
<br>
<image src="https://cdn.discordapp.com/attachments/741123537582162020/1117161498477871225/rpc.png" height="400">
<image src="https://raw.githubusercontent.com/WeeXnes/WeeXnesSuite/master/Images/rpc.png" height="400">
<h2></h2>
@ -36,25 +36,23 @@ Uses:
<h3>Key Manager</h3>
encrypted key manager with import/export functionality
<br>
<image src="https://cdn.discordapp.com/attachments/741123537582162020/1117161497475432650/keys.png" height="400">
<image src="https://raw.githubusercontent.com/WeeXnes/WeeXnesSuite/master/Images/password_manager.png" height="400">
<h2></h2>
<h3>Password Generator</h3>
Password Generator. Generated passwords can be quickly saved to the Key Manager
<br>
<image src="https://cdn.discordapp.com/attachments/741123537582162020/1117161497714491503/passwordgen.png" height="400">
<image src="https://raw.githubusercontent.com/WeeXnes/WeeXnesSuite/master/Images/password_gen.png" height="400">
<h2></h2>
<h3>Settings</h3>
Settings Showcase
<br>
<image src="https://cdn.discordapp.com/attachments/741123537582162020/1117161498771468439/settings.png" height="400">
<image src="https://raw.githubusercontent.com/WeeXnes/WeeXnesSuite/master/Images/settings.png" height="600">
coming soon:
- Modular Plugin Loader so anyone can extend the functionality of the programm easily
<h2>Supported by: <a href="https://www.jetbrains.com">JetBrains</a></h2>

View file

@ -14,6 +14,7 @@
<WarningLevel>4</WarningLevel>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<ApplicationIcon>wicns.ico</ApplicationIcon>
<LangVersion>12</LangVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>

View file

@ -0,0 +1,16 @@
using System;
using System.Windows.Controls;
using Wpf.Ui.Controls;
namespace WXPlugin.PluginCore
{
public interface IPluginBase
{
public String Name { get; set; }
public String Description { get; set; }
public Page UiPage { get; set; }
public NavigationItem NavIcon { get; set; }
public void Initialize();
public void Execute();
}
}

View file

@ -0,0 +1,35 @@
using System.Reflection;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("WXPlugin")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("WXPlugin")]
[assembly: AssemblyCopyright("Copyright © 2025")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("56BFE4E0-0D30-474A-B57B-CF08515FF66E")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

67
WXPlugin/WXPlugin.csproj Normal file
View file

@ -0,0 +1,67 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props"
Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')"/>
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{56BFE4E0-0D30-474A-B57B-CF08515FF66E}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>WXPlugin</RootNamespace>
<AssemblyName>WXPlugin</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<LangVersion>12</LangVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="System"/>
<Reference Include="System.Core"/>
<Reference Include="System.Data"/>
<Reference Include="System.Drawing.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll</HintPath>
</Reference>
<Reference Include="System.Xml"/>
<Reference Include="WindowsBase" />
<Reference Include="Wpf.Ui, Version=2.0.3.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\WPF-UI.2.0.3\lib\net48\Wpf.Ui.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="PluginCore\IPluginBase.cs" />
<Compile Include="Properties\AssemblyInfo.cs"/>
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets"/>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

5
WXPlugin/packages.config Normal file
View file

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="System.Drawing.Common" version="6.0.0" targetFramework="net48" />
<package id="WPF-UI" version="2.0.3" targetFramework="net48" />
</packages>

View file

@ -8,6 +8,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WeeXnes_UAC", "WeeXnes_UAC\
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Update", "Update\Update.csproj", "{133FF515-D605-4856-BA2E-5841BF47EC2F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WXPlugin", "WXPlugin\WXPlugin.csproj", "{56BFE4E0-0D30-474A-B57B-CF08515FF66E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ExamplePlugin", "ExamplePlugin\ExamplePlugin.csproj", "{910F0FC8-B73D-449F-ADD7-C6CA147D9F05}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -30,5 +34,13 @@ Global
{133FF515-D605-4856-BA2E-5841BF47EC2F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{133FF515-D605-4856-BA2E-5841BF47EC2F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{133FF515-D605-4856-BA2E-5841BF47EC2F}.Release|Any CPU.Build.0 = Release|Any CPU
{56BFE4E0-0D30-474A-B57B-CF08515FF66E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{56BFE4E0-0D30-474A-B57B-CF08515FF66E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{56BFE4E0-0D30-474A-B57B-CF08515FF66E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{56BFE4E0-0D30-474A-B57B-CF08515FF66E}.Release|Any CPU.Build.0 = Release|Any CPU
{910F0FC8-B73D-449F-ADD7-C6CA147D9F05}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{910F0FC8-B73D-449F-ADD7-C6CA147D9F05}.Debug|Any CPU.Build.0 = Debug|Any CPU
{910F0FC8-B73D-449F-ADD7-C6CA147D9F05}.Release|Any CPU.ActiveCfg = Release|Any CPU
{910F0FC8-B73D-449F-ADD7-C6CA147D9F05}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
EndGlobal

View file

@ -3,6 +3,7 @@ using System.ComponentModel;
using System.Windows;
using System.IO;
using System.Net;
using System.Runtime.CompilerServices;
using System.Windows.Media;
using Newtonsoft.Json.Linq;
using Nocksoft.IO.ConfigFiles;
@ -45,12 +46,26 @@ namespace WeeXnes
Console.Data.Formatting.timestamp_prefix = true;
SetExceptionHandler();
CheckForDebugMode();
CheckStartupArgs(e.Args);
CheckUpdatedFiles();
CheckForFolder();
LoadSettings();
SaveSettingsHandler.SetupSaveEvents();
LoadFiles();
CheckStartupArgs(e.Args);
LoadPluginManager();
}
private void LoadPluginManager()
{
if (!Directory.Exists(Global.Defaults.DefaultPathPlugins))
Directory.CreateDirectory(Global.Defaults.DefaultPathPlugins);
Global.pluginManager.LoadPlugins();
foreach (var plugin in Global.pluginManager.CurrentPlugins)
{
plugin.Initialize();
}
}
private void CheckUpdatedFiles()
@ -176,10 +191,10 @@ namespace WeeXnes
{
switch (argument)
{
case "-autostart":
case HandleLaunchArguments.ArgumentStrings.autostart:
HandleLaunchArguments.arg_autostart();
break;
case "-debugMode":
case HandleLaunchArguments.ArgumentStrings.debugMode:
HandleLaunchArguments.arg_debugMode();
break;
}

View file

@ -40,7 +40,15 @@ namespace WeeXnes.Core
{
if(!App.DebugMode)
return;
//VanillaConsole.OutputEncoding = Encoding.UTF8;
try
{
VanillaConsole.OutputEncoding = Encoding.UTF8;
}
catch (Exception ex)
{
}
ConsoleColor prevColor = VanillaConsole.BackgroundColor;
ConsoleColor prevForeColor = VanillaConsole.ForegroundColor;
if (Data.Colors.colored_output)

View file

@ -8,21 +8,24 @@ namespace WeeXnes.Core
{
public class Information
{
public const string Version = "4.5.1.2";
public const string Version = "4.7";
public const string EncryptionHash = "8zf5#RdyQ]$4x4_";
public const string ApiUrl = "https://api.github.com/repos/weexnes/weexnessuite/releases/latest";
}
public class Global
{
public static PluginManager pluginManager = new PluginManager(Path.Combine(Environment.CurrentDirectory, "plugins"));
public static string AppDataPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "WeeXnes");
public static UpdateVar<string> AppDataPathRPC = new UpdateVar<string>();
public static UpdateVar<string> AppDataPathKEY = new UpdateVar<string>();
public static UpdateVar<bool> checkUpdateOnStartup = new UpdateVar<bool>();
public static string SettingsFile = "settings.ini";
public class Defaults
{
public static string DefaultPathRPC = Path.Combine(AppDataPath, "RPC");
public static string DefaultPathKEY = Path.Combine(AppDataPath, "Keys");
public static string DefaultPathPlugins = Path.Combine(Environment.CurrentDirectory, "plugins");
}
public static void ForceClose()
{

View file

@ -8,6 +8,11 @@ namespace WeeXnes.Core
{
public class HandleLaunchArguments
{
public static class ArgumentStrings
{
public const string autostart = "-autostart";
public const string debugMode = "-debugMode";
}
public static class Data
{
public static bool Autostart = false;

View file

@ -0,0 +1,51 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using WXPlugin.PluginCore;
namespace WeeXnes.Core;
public class PluginManager
{
private HashSet<String> Directories = new HashSet<String>();
public HashSet<IPluginBase> CurrentPlugins { get; set; } = new HashSet<IPluginBase>();
public PluginManager(String pluginPath)
{
Console.WriteLine("Plugin Manager Initialized");
Directories.Add(pluginPath);
}
public void LoadPlugins()
{
Console.WriteLine("Plugin Manager Loading Plugins");
CurrentPlugins = new HashSet<IPluginBase>();
foreach (var dir in Directories)
{
DirectoryInfo dirInfo = new DirectoryInfo(dir);
foreach (var file in dirInfo.GetFiles("*.dll"))
{
Assembly asm = Assembly.LoadFrom(file.FullName);
foreach (Type type in asm.GetTypes())
{
if (type.IsSubclassOf(typeof(IPluginBase)) || type.GetInterfaces().Contains(typeof(IPluginBase)) && type.IsAbstract == false)
{
IPluginBase newPlugin = type.InvokeMember(
null,
BindingFlags.CreateInstance,
null,
null,
null)
as IPluginBase;
Console.WriteLine("Loaded: " + newPlugin.Name);
Console.WriteLine(newPlugin.UiPage.Content.ToString());
CurrentPlugins.Add(newPlugin);
}
}
}
}
}
}

View file

@ -18,6 +18,7 @@ namespace WeeXnes.Core
public const string Section = "GENERAL";
public const string RpcFilesPath = "RpcFilesPath";
public const string KeyFilesPath = "KeyFilesPath";
public const string StartupUpdateCheck = "StartupUpdateCheck";
}
public static class KeyManager
{
@ -87,6 +88,14 @@ namespace WeeXnes.Core
Global.AppDataPathKEY.Value
);
};
Global.checkUpdateOnStartup.ValueChanged += () =>
{
SettingsView.Data.settingsFile.SetValue(
Data.General.Section,
Data.General.StartupUpdateCheck,
Global.checkUpdateOnStartup.Value.ToString()
);
};
}
}
}

View file

@ -10,14 +10,16 @@
xmlns:discordrpc="clr-namespace:WeeXnes.Views.DiscordRPC"
xmlns:passwordGenerator="clr-namespace:WeeXnes.Views.PasswordGenerator"
xmlns:profile="clr-namespace:WeeXnes.Views.ProfileView"
xmlns:EncryptedTextEditor="clr-namespace:WeeXnes.Views.EncryptedTextEditor"
mc:Ignorable="d"
Height="400"
Height="540"
Width="500"
Title="WeeXnes"
Background="{DynamicResource ApplicationBackgroundBrush}"
ExtendsContentIntoTitleBar="True"
WindowBackdropType="Mica"
WindowStartupLocation="CenterScreen">
WindowStartupLocation="CenterScreen"
Loaded="MainWindow_OnLoaded">
<Grid>
<Grid.RowDefinitions>
@ -63,6 +65,7 @@
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<ui:NavigationStore
Name="NavBar"
Grid.Column="0"
Frame="{Binding ElementName=MainFrame}"
SelectedPageIndex="0">
@ -91,12 +94,19 @@
Name="ButtonPwGen"
PageTag="Gen"
PageType="{x:Type passwordGenerator:PasswordGenView}"/>
<ui:NavigationItem
Content="Editor"
Icon="DocumentOnePage24"
Name="ButtonEncryptedFileEditor"
PageTag="Editor"
PageType="{x:Type EncryptedTextEditor:TextEditorView}"/>
<ui:NavigationItem
Content="Profile"
Icon="InprivateAccount24"
Name="ButtonProfile"
PageTag="Profile"
PageType="{x:Type profile:LoginView}"/>
PageType="{x:Type profile:LoginView}"
Visibility="Collapsed"/>
</ui:NavigationStore.Items>
<ui:NavigationStore.Footer>
<ui:NavigationItem

View file

@ -16,6 +16,14 @@ namespace WeeXnes
{
InitializeComponent();
Wpf.Ui.Appearance.Accent.ApplySystemAccent();
EnableDebugOptions();
}
private void EnableDebugOptions()
{
if(!App.DebugMode)
return;
//Code to be enabled in Debug mode
}
@ -52,7 +60,14 @@ namespace WeeXnes
{
Environment.Exit(0);
}
private void MainWindow_OnLoaded(object sender, RoutedEventArgs e)
{
foreach (var plugin in Global.pluginManager.CurrentPlugins)
{
NavBar.Items.Add(plugin.NavIcon);
}
}
}
}

View file

@ -0,0 +1,35 @@
<Page x:Class="WeeXnes.Views.EncryptedTextEditor.TextEditorView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:WeeXnes.Views.EncryptedTextEditor"
mc:Ignorable="d"
Title="TextEditorView" Height="Auto" Width="Auto">
<Grid>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="40px"/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Button Name="btn_openFile" Click="Btn_openFile_OnClick" Grid.Column="0" Content="Open File" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="5"/>
<Button Name="btn_saveFile" Click="Btn_saveFile_OnClick" Grid.Column="1" Content="Save" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="5"/>
<Button Name="btn_saveFileAs" Click="Btn_saveFileAs_OnClick" Grid.Column="2" Content="Save As" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="5"/>
</Grid>
<RichTextBox Name="rtb_FileEditor" Grid.Row="1">
<RichTextBox.Resources>
<Style TargetType="{x:Type Paragraph}">
<Setter Property="Margin" Value="0"/>
</Style>
</RichTextBox.Resources>
</RichTextBox>
</Grid>
</Grid>
</Page>

View file

@ -0,0 +1,97 @@
using System;
using System.IO;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Forms;
using EncryptionLib;
using WeeXnes.Core;
namespace WeeXnes.Views.EncryptedTextEditor;
public partial class TextEditorView : Page
{
public string currentFilePath { get; set; } = null;
public TextEditorView()
{
InitializeComponent();
}
private void RaiseClickEvent(System.Windows.Controls.Button button)
{
var clickEventArgs = new RoutedEventArgs(System.Windows.Controls.Button.ClickEvent);
button.RaiseEvent(clickEventArgs);
}
private void Btn_openFile_OnClick(object sender, RoutedEventArgs e)
{
var fileContent = string.Empty;
var filePath = string.Empty;
Console.WriteLine("Calling OpenFileDialog");
using (OpenFileDialog openFileDialog = new OpenFileDialog())
{
//openFileDialog.InitialDirectory = AppDomain.CurrentDomain.BaseDirectory;
openFileDialog.Filter = "WXN Text Files (*.wtf)|*.wtf";
openFileDialog.RestoreDirectory = true;
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
Console.WriteLine("Opening file " + openFileDialog.FileName);
this.currentFilePath = openFileDialog.FileName;
string[] FileContent = File.ReadAllLines(openFileDialog.FileName);
string[] decryptedContent = EncryptorLibary.decryptArray(Information.EncryptionHash, FileContent);
rtb_FileEditor.Document.Blocks.Clear();
foreach (string line in decryptedContent)
{
rtb_FileEditor.Document.Blocks.Add(new Paragraph(new Run(line)));
}
}
}
}
private void Btn_saveFile_OnClick(object sender, RoutedEventArgs e)
{
if (this.currentFilePath == null)
{
RaiseClickEvent(btn_saveFileAs);
}
else
{
Console.WriteLine("Saving file " + currentFilePath);
TextRange textRange = new TextRange(rtb_FileEditor.Document.ContentStart, rtb_FileEditor.Document.ContentEnd);
string plainText = textRange.Text;
string[] lines = plainText.Split(new[] { Environment.NewLine }, StringSplitOptions.None);
string[] encryptedContent =
EncryptionLib.EncryptorLibary.encryptArray(Information.EncryptionHash, lines);
File.WriteAllLines(this.currentFilePath, encryptedContent);
}
}
private void Btn_saveFileAs_OnClick(object sender, RoutedEventArgs e)
{
Console.WriteLine("Calling SaveFileDialog");
using (SaveFileDialog saveFileDialog = new SaveFileDialog())
{
//saveFileDialog.InitialDirectory = AppDomain.CurrentDomain.BaseDirectory;
saveFileDialog.Filter = "WXN Text Files (*.wtf)|*.wtf";
saveFileDialog.RestoreDirectory = true;
if(saveFileDialog.ShowDialog() == DialogResult.OK)
{
Console.WriteLine("Saving file " + saveFileDialog.FileName);
this.currentFilePath = saveFileDialog.FileName;
TextRange textRange = new TextRange(rtb_FileEditor.Document.ContentStart, rtb_FileEditor.Document.ContentEnd);
string plainText = textRange.Text;
string[] lines = plainText.Split(new[] { Environment.NewLine }, StringSplitOptions.None);
string[] encryptedContent =
EncryptionLib.EncryptorLibary.encryptArray(Information.EncryptionHash, lines);
File.WriteAllLines(saveFileDialog.FileName, encryptedContent);
}
}
}
}

View file

@ -0,0 +1,21 @@
<Page x:Class="WeeXnes.Views.PluginManager.PluginManagerView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:WeeXnes.Views.PluginManager"
mc:Ignorable="d"
Title="PluginManagerView" Height="450" Width="800">
<Grid>
<ListView ItemsSource="{Binding Plugin}">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Name}"/>
<TextBlock Text="{Binding Description}"/>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</Grid>
</Page>

View file

@ -0,0 +1,13 @@
using System.Windows.Controls;
namespace WeeXnes.Views.PluginManager;
public partial class PluginManagerView : Page
{
public PluginManagerView()
{
InitializeComponent();
}
}

View file

@ -17,7 +17,8 @@
<ui:CardAction Icon="Play28"
Name="ButtonCheckForUpdates"
Click="ButtonCheckForUpdates_OnClick"
Margin="0,10,0,0">
Margin="0,10,0,0"
Visibility="Collapsed">
<StackPanel>
<TextBlock
Margin="0,0,0,4"
@ -114,6 +115,11 @@
<StackPanel Orientation="Vertical" Visibility="Collapsed" Name="DebugOptions">
<Label Content="Debug" HorizontalAlignment="Center"/>
<CheckBox Content="Check for updates on Startup"
Name="CheckboxAutoUpdate"
Checked="CheckboxAutoUpdate_OnChecked"
Unchecked="CheckboxAutoUpdate_OnUnchecked"/>
<ui:CardAction Icon="ErrorCircle24"
Click="dbg_throwException">
<StackPanel>

View file

@ -50,7 +50,18 @@ namespace WeeXnes.Views.Settings
{
KeyManagerView.Data.censorKeys.Value = false;
}
private void CheckboxAutoUpdate_OnChecked(object sender, RoutedEventArgs e)
{
Global.checkUpdateOnStartup.Value = true;
}
private void CheckboxAutoUpdate_OnUnchecked(object sender, RoutedEventArgs e)
{
Global.checkUpdateOnStartup.Value = false;
}
private void ButtonCheckForUpdates_OnClick(object sender, RoutedEventArgs e)

View file

@ -4,7 +4,7 @@
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<Version>4.5.1.2</Version>
<Version>4.7</Version>
<ProjectGuid>{4B33CEE7-C74D-43B9-B99A-8B273D5195BC}</ProjectGuid>
<OutputType>WinExe</OutputType>
<RootNamespace>WeeXnes</RootNamespace>
@ -15,7 +15,7 @@
<WarningLevel>4</WarningLevel>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<ApplicationIcon>wicns.ico</ApplicationIcon>
<LangVersion>10</LangVersion>
<LangVersion>12</LangVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
@ -75,6 +75,7 @@
<Compile Include="Core\EncryptorLibrary.cs" />
<Compile Include="Core\HandleLaunchArguments.cs" />
<Compile Include="Core\LoginLib.cs" />
<Compile Include="Core\PluginManager.cs" />
<Compile Include="Core\RpcLogEvents.cs" />
<Compile Include="Core\SaveSettingsHandler.cs" />
<Compile Include="Core\WXFile.cs" />
@ -91,6 +92,9 @@
<Compile Include="Views\DiscordRPC\RunRPCView.xaml.cs">
<DependentUpon>RunRPCView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\EncryptedTextEditor\TextEditorView.xaml.cs">
<DependentUpon>TextEditorView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\Home\HomeView.xaml.cs">
<DependentUpon>HomeView.xaml</DependentUpon>
</Compile>
@ -107,6 +111,9 @@
<Compile Include="Views\PasswordGenerator\SaveToKeyManagerView.xaml.cs">
<DependentUpon>SaveToKeyManagerView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\PluginManager\PluginManagerView.xaml.cs">
<DependentUpon>PluginManagerView.xaml</DependentUpon>
</Compile>
<Compile Include="Views\ProfileView\InboxView.xaml.cs">
<DependentUpon>InboxView.xaml</DependentUpon>
</Compile>
@ -158,11 +165,13 @@
<Page Include="Views\DiscordRPC\DiscordRPCView.xaml" />
<Page Include="Views\DiscordRPC\EditRPCView.xaml" />
<Page Include="Views\DiscordRPC\RunRPCView.xaml" />
<Page Include="Views\EncryptedTextEditor\TextEditorView.xaml" />
<Page Include="Views\Home\HomeView.xaml" />
<Page Include="Views\KeyManager\KeyManagerView.xaml" />
<Page Include="Views\PasswordGenerator\PasswordGenView.xaml" />
<Page Include="Views\PasswordGenerator\SavePasswordView.xaml" />
<Page Include="Views\PasswordGenerator\SaveToKeyManagerView.xaml" />
<Page Include="Views\PluginManager\PluginManagerView.xaml" />
<Page Include="Views\ProfileView\InboxView.xaml" />
<Page Include="Views\ProfileView\LicenseView.xaml" />
<Page Include="Views\ProfileView\LoginError.xaml" />
@ -196,5 +205,11 @@
<Content Include="wicns.ico" />
<Resource Include="Images\wicon.png" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\WXPlugin\WXPlugin.csproj">
<Project>{56bfe4e0-0d30-474a-b57b-cf08515ff66e}</Project>
<Name>WXPlugin</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View file

@ -13,6 +13,7 @@
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<WarningLevel>4</WarningLevel>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<LangVersion>12</LangVersion>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>