Skip to content

Commit 8847063

Browse files
committed
feat: Allow you maximize tab window coverage of the taskbar by right click the maximize button #299
chore: #305 apply slat by Set-Secret.ps1
1 parent f690888 commit 8847063

14 files changed

+99
-133
lines changed

.github/workflows/build-on-dev-push.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,8 @@ jobs:
6969
- name: Run script
7070
shell: pwsh
7171
run: |
72-
./scripts/Set-Slat.ps1 ${{ secrets.GLOBAL_STRING_ENCRYPTION_SLAT }}
7372
./scripts/Set-Secret.ps1 -filePath .\Ui\Assert.cs -Pattern "===REPLACE_ME_WITH_APP_CENTER_SECRET===" -Secret ${{ secrets.APP_CENTER_SECRET }}
73+
./scripts/Set-Secret.ps1 -filePath .\Ui\Assert.cs -Pattern "===REPLACE_ME_WITH_SALT===" -Secret ${{ secrets.GLOBAL_STRING_ENCRYPTION_SLAT }}
7474
7575
# Publish the application
7676
- name: Publish the application

Ui/AppInit.cs

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,17 @@
11
using System;
2-
using System.Collections.Generic;
32
using System.Diagnostics;
43
using System.Globalization;
54
using System.IO;
6-
using System.Linq;
7-
using System.Text;
8-
using System.Threading.Tasks;
95
using System.Windows;
10-
using System.Windows.Threading;
11-
using Newtonsoft.Json;
126
using _1RM.Model;
137
using _1RM.Model.DAO;
148
using _1RM.Service;
159
using _1RM.View;
1610
using _1RM.View.Guidance;
1711
using Shawn.Utils;
18-
using Shawn.Utils.Wpf;
1912
using Shawn.Utils.Wpf.FileSystem;
20-
using Stylet;
2113
using _1RM.Service.DataSource;
22-
using _1RM.Service.DataSource.Model;
2314
using _1RM.Utils;
24-
using _1RM.Utils.KiTTY;
2515
using _1RM.Utils.KiTTY.Model;
2616
using _1RM.Utils.PRemoteM;
2717

@@ -64,8 +54,8 @@ private static void CreateDirIfNotExist(string path, bool isFile)
6454
public static void InitOnStartup()
6555
{
6656
SimpleLogHelper.WriteLogLevel = SimpleLogHelper.EnumLogLevel.Disabled;
67-
// TODO Set salt by github action with repository secret
68-
UnSafeStringEncipher.Init("***SALT***");
57+
// Set salt by github action with repository secret
58+
UnSafeStringEncipher.Init(Assert.STRING_SALT);
6959
Directory.SetCurrentDirectory(AppDomain.CurrentDomain.BaseDirectory); // in case user start app in a different working dictionary.
7060
}
7161

@@ -271,7 +261,7 @@ public void InitOnStart()
271261
}
272262

273263
private bool _isNewUser = false;
274-
private EnumDbStatus _localDataConnectionStatus;
264+
private EnumDatabaseStatus _localDataConnectionStatus;
275265

276266
public void InitOnConfigure()
277267
{
@@ -294,11 +284,15 @@ public void InitOnLaunch()
294284
{
295285
KittyConfig.CleanUpOldConfig();
296286

297-
if (_localDataConnectionStatus != EnumDbStatus.OK)
287+
if (_localDataConnectionStatus != EnumDatabaseStatus.OK)
298288
{
299289
string error = _localDataConnectionStatus.GetErrorInfo();
300290
MessageBox.Show(error, IoC.Get<LanguageService>().Translate("Error"), MessageBoxButton.OK, MessageBoxImage.Error, MessageBoxResult.None, MessageBoxOptions.DefaultDesktopOnly);
301-
IoC.Get<MainWindowViewModel>().ShowMe(goPage: EnumMainWindowPage.SettingsData);
291+
IoC.Get<MainWindowViewModel>().OnMainWindowViewLoaded += () =>
292+
{
293+
IoC.Get<MainWindowViewModel>().ShowMe(goPage: EnumMainWindowPage.SettingsData);
294+
};
295+
IoC.Get<MainWindowViewModel>().ShowMe();
302296
return;
303297
}
304298

@@ -310,7 +304,11 @@ public void InitOnLaunch()
310304

311305
if (IoC.Get<ConfigurationService>().General.AppStartMinimized == false || _isNewUser)
312306
{
313-
IoC.Get<MainWindowViewModel>().ShowMe(goPage: EnumMainWindowPage.List);
307+
IoC.Get<MainWindowViewModel>().OnMainWindowViewLoaded += () =>
308+
{
309+
IoC.Get<MainWindowViewModel>().ShowMe(goPage: EnumMainWindowPage.List);
310+
};
311+
IoC.Get<MainWindowViewModel>().ShowMe();
314312
}
315313

316314
if (_isNewUser == false && ConfigurationService != null)

Ui/Assert.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,5 +21,6 @@ internal static class Assert
2121

2222

2323
public const string MS_APP_CENTER_SECRET = "===REPLACE_ME_WITH_APP_CENTER_SECRET===";
24+
public const string STRING_SALT = "===REPLACE_ME_WITH_SALT===";
2425
}
2526
}

Ui/Model/DAO/EnumDbStatus.cs renamed to Ui/Model/DAO/EnumDatabaseStatus.cs

Lines changed: 11 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -4,49 +4,39 @@
44

55
namespace _1RM.Model.DAO
66
{
7-
public enum EnumDbStatus
7+
public enum EnumDatabaseStatus
88
{
99
NotConnectedYet,
1010
AccessDenied,
1111
LostConnection,
1212
OK,
13+
EncryptKeyError, // 数据加密密钥不匹配,唯一的原因是软件未使用官方发布版本.
1314
}
1415

1516

16-
public enum EnumConnectionStatus
17-
{
18-
NotConnectedYet, // Die
19-
AccessDenied, // Die
20-
CanConnect, // To LostConnection OR DisConnected
21-
LostConnection, // Die
22-
}
23-
public enum EnumEncryptionStatus
24-
{
25-
NonEncryption,
26-
RsaPrivateKeyNotFound, // Die
27-
RsaPrivateKeyMismatch, // Die
28-
DataIsDamaged // Die
29-
}
30-
3117
public static class EnumConnectResultErrorInfo
3218
{
33-
public static string GetErrorInfo(this EnumDbStatus result)
19+
public static string GetErrorInfo(this EnumDatabaseStatus result)
3420
{
3521
var lang = IoC.Get<LanguageService>();
3622
Debug.Assert(lang != null);
3723
switch (result)
3824
{
39-
case EnumDbStatus.AccessDenied:
25+
case EnumDatabaseStatus.AccessDenied:
4026
return lang.Translate("string_database_error_permission_denied");
4127

42-
case EnumDbStatus.OK:
28+
case EnumDatabaseStatus.OK:
4329
break;
4430

45-
case EnumDbStatus.NotConnectedYet:
31+
case EnumDatabaseStatus.NotConnectedYet:
4632
return "database: NotConnected!";
4733

48-
case EnumDbStatus.LostConnection:
34+
case EnumDatabaseStatus.LostConnection:
4935
return "database: Lost Connection!";
36+
37+
case EnumDatabaseStatus.EncryptKeyError:
38+
return $"database: your database is encrypted by a third-part build {Assert.APP_NAME}, this app can not read your data correctly!";
39+
5040
default:
5141
throw new ArgumentOutOfRangeException(nameof(result), result, null);
5242
}

Ui/Model/GlobalData.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -154,10 +154,9 @@ public bool ReloadServerList(bool focus = false)
154154
foreach (var additionalSource in _sourceService.AdditionalSources)
155155
{
156156
// 对于断线的数据源,隔一段时间后尝试重连
157-
if (additionalSource.Value.Status == EnumDbStatus.LostConnection)
157+
if (additionalSource.Value.Status == EnumDatabaseStatus.LostConnection)
158158
{
159-
if (additionalSource.Value.StatueTime.AddMinutes(10) < DateTime.Now
160-
&& additionalSource.Value.Database_OpenConnection())
159+
if (additionalSource.Value.StatueTime.AddMinutes(10) < DateTime.Now)
161160
{
162161
additionalSource.Value.Database_SelfCheck();
163162
}

Ui/Service/DataSource/DataSourceService.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,12 @@ public List<ProtocolBaseViewModel> GetServers(bool focus)
6767
/// <summary>
6868
/// init db connection to a sqlite db. Do make sure sqlitePath is writable!.
6969
/// </summary>
70-
public EnumDbStatus InitLocalDataSource(SqliteSource? sqliteConfig = null)
70+
public EnumDatabaseStatus InitLocalDataSource(SqliteSource? sqliteConfig = null)
7171
{
7272
if (sqliteConfig == null)
7373
{
74+
// sqliteConfig == null means we need init a new local data source.
75+
// so read from configs and find where db is.
7476
sqliteConfig = IoC.Get<ConfigurationService>().LocalDataSource;
7577
if (string.IsNullOrWhiteSpace(sqliteConfig.Path))
7678
sqliteConfig.Path = AppPathHelper.Instance.SqliteDbDefaultPath;
@@ -84,7 +86,7 @@ public EnumDbStatus InitLocalDataSource(SqliteSource? sqliteConfig = null)
8486
if (!IoPermissionHelper.HasWritePermissionOnFile(sqliteConfig.Path))
8587
{
8688
LocalDataSource = null;
87-
return EnumDbStatus.AccessDenied;
89+
return EnumDatabaseStatus.AccessDenied;
8890
}
8991
LocalDataSource = sqliteConfig;
9092
var ret = LocalDataSource.Database_SelfCheck();
@@ -101,7 +103,7 @@ public void AddOrUpdateDataSourceAsync(DataSourceBase config)
101103
}
102104

103105

104-
public EnumDbStatus AddOrUpdateDataSource(DataSourceBase config, int connectTimeOutSeconds = 5)
106+
public EnumDatabaseStatus AddOrUpdateDataSource(DataSourceBase config, int connectTimeOutSeconds = 5)
105107
{
106108
try
107109
{
@@ -127,7 +129,7 @@ public EnumDbStatus AddOrUpdateDataSource(DataSourceBase config, int connectTime
127129
catch (Exception e)
128130
{
129131
SimpleLogHelper.Warning(e);
130-
return EnumDbStatus.AccessDenied;
132+
return EnumDatabaseStatus.AccessDenied;
131133
}
132134
finally
133135
{

Ui/Service/DataSource/Model/DataSourceBase.Config.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,16 +32,16 @@ protected DataSourceBase()
3232
};
3333
}
3434

35-
private EnumDbStatus _status = EnumDbStatus.NotConnectedYet;
35+
private EnumDatabaseStatus _status = EnumDatabaseStatus.NotConnectedYet;
3636
[JsonIgnore]
37-
public EnumDbStatus Status
37+
public EnumDatabaseStatus Status
3838
{
3939
get => _status;
4040
set
4141
{
4242
SetAndNotifyIfChanged(ref _status, value);
4343
StatueTime = DateTime.Now;
44-
StatusInfo = Status == EnumDbStatus.OK ? $"{CachedProtocols.Count} servers" : Status.GetErrorInfo();
44+
StatusInfo = Status == EnumDatabaseStatus.OK ? $"{CachedProtocols.Count} servers" : Status.GetErrorInfo();
4545
}
4646
}
4747

0 commit comments

Comments
 (0)