Skip to content

Commit 6af9f91

Browse files
authored
Merge pull request #2 from zzy-life/claude/persist-note-style-settings-YkhUH
添加便签样式持久化功能
2 parents 143e094 + 0f5e107 commit 6af9f91

File tree

6 files changed

+109
-16
lines changed

6 files changed

+109
-16
lines changed

Desktop Notes/Desktop Notes/FormData.cs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,4 +90,24 @@ private void DefaultStyle()
9090
FStyle = FontStyle.Regular;
9191
}
9292
}
93+
94+
// 默认便签设置类,用于保存上一次使用的样式设置
95+
public class DefaultNoteSettings
96+
{
97+
public int theme { get; set; }
98+
public int style { get; set; }
99+
public double opacity { get; set; }
100+
public Theme customTheme { get; set; }
101+
public Style customStyle { get; set; }
102+
103+
public DefaultNoteSettings()
104+
{
105+
// 设置初始默认值
106+
theme = 1; // 默认主题
107+
style = 1; // 默认样式
108+
opacity = 0.95; // 默认不透明度
109+
customTheme = new Theme();
110+
customStyle = new Style();
111+
}
112+
}
93113
}

Desktop Notes/Desktop Notes/MainForm.cs

Lines changed: 46 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -40,24 +40,46 @@ public MainForm(int id, FormData dat = null)
4040
private void LoadData(FormData dat = null)
4141
{
4242
//load defaults
43-
this.Opacity = 0.95;
4443
this.StartPosition = FormStartPosition.WindowsDefaultLocation;
4544
this.CreationTime = DateTime.Now;
4645
if (string.IsNullOrEmpty(Title))
4746
{
4847
Title = string.Format("Note {0:##}", FORM_ID);
4948
}
50-
if (Program.Themes.Count > 1)
51-
{
52-
Random rand = new Random();
53-
CurrentTheme = rand.Next(Program.Themes.Count - 1) + 1;
54-
}
55-
if (Program.Styles.Count > 1)
56-
{
57-
CurrentStyle = 1;
58-
}
49+
50+
// 如果是新建便签,应用上次保存的默认设置
5951
if (dat == null)
6052
{
53+
DefaultNoteSettings defaultSettings = REGISTRY.GetDefaultSettings();
54+
this.Opacity = defaultSettings.opacity;
55+
56+
if (defaultSettings.customTheme != null)
57+
{
58+
this.CustomTheme = defaultSettings.customTheme;
59+
}
60+
if (defaultSettings.customStyle != null)
61+
{
62+
this.CustomStyle = defaultSettings.customStyle;
63+
}
64+
65+
if (Program.Themes.Count > defaultSettings.theme)
66+
{
67+
CurrentTheme = defaultSettings.theme;
68+
}
69+
else if (Program.Themes.Count > 1)
70+
{
71+
CurrentTheme = 1;
72+
}
73+
74+
if (Program.Styles.Count > defaultSettings.style)
75+
{
76+
CurrentStyle = defaultSettings.style;
77+
}
78+
else if (Program.Styles.Count > 1)
79+
{
80+
CurrentStyle = 1;
81+
}
82+
6183
this.Show();
6284
return;
6385
}
@@ -110,6 +132,7 @@ public int CurrentTheme
110132
Save();
111133
}
112134
ReloadTheme();
135+
SaveAsDefaultSettings(); // 保存为默认设置
113136
}
114137
}
115138

@@ -129,9 +152,22 @@ public int CurrentStyle
129152
Save();
130153
}
131154
ReloadStyle();
155+
SaveAsDefaultSettings(); // 保存为默认设置
132156
}
133157
}
134158

159+
// 保存当前便签的样式设置为默认设置
160+
public void SaveAsDefaultSettings()
161+
{
162+
DefaultNoteSettings settings = new DefaultNoteSettings();
163+
settings.theme = this.CurrentTheme;
164+
settings.style = this.CurrentStyle;
165+
settings.opacity = this.Opacity;
166+
settings.customTheme = this.CustomTheme;
167+
settings.customStyle = this.CustomStyle;
168+
REGISTRY.SaveDefaultSettings(settings);
169+
}
170+
135171
public void ReloadTheme()
136172
{
137173
Theme th = Program.Themes[_theme];

Desktop Notes/Desktop Notes/Properties/AssemblyInfo.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,12 @@
2424
// Version information for an assembly consists of the following four values:
2525
//
2626
// Major Version
27-
// Minor Version
27+
// Minor Version
2828
// Build Number
2929
// Revision
3030
//
31-
// You can specify all the values or you can default the Build and Revision Numbers
31+
// You can specify all the values or you can default the Build and Revision Numbers
3232
// by using the '*' as shown below:
3333
// [assembly: AssemblyVersion("1.0.*")]
34-
[assembly: AssemblyVersion("1.1.0.0")]
35-
[assembly: AssemblyFileVersion("1.2.0.0")]
34+
[assembly: AssemblyVersion("1.3.0.0")]
35+
[assembly: AssemblyFileVersion("1.3.0.0")]

Desktop Notes/Desktop Notes/REGISTRY.cs

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,5 +75,34 @@ public static bool FirstRun
7575
return false;
7676
}
7777
}
78+
79+
// 默认便签设置的注册表键名
80+
private const string DEFAULT_SETTINGS_KEY = "_DefaultSettings";
81+
82+
// 保存默认便签设置
83+
public static void SaveDefaultSettings(DefaultNoteSettings settings)
84+
{
85+
try
86+
{
87+
string json = JsonConvert.SerializeObject(settings);
88+
REG_PATH.SetValue(DEFAULT_SETTINGS_KEY, json);
89+
}
90+
catch { }
91+
}
92+
93+
// 读取默认便签设置
94+
public static DefaultNoteSettings GetDefaultSettings()
95+
{
96+
try
97+
{
98+
object dat = REG_PATH.GetValue(DEFAULT_SETTINGS_KEY, null);
99+
if (dat == null) return new DefaultNoteSettings();
100+
return JsonConvert.DeserializeObject<DefaultNoteSettings>((string)dat);
101+
}
102+
catch
103+
{
104+
return new DefaultNoteSettings();
105+
}
106+
}
78107
}
79108
}

Desktop Notes/Desktop Notes/SettingForm.cs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ private void style_sel_SelectedIndexChanged(object sender, EventArgs e)
110110
catch { }
111111
}
112112

113-
//change values
113+
//change values
114114
private void current_font_Click(object sender, EventArgs e)
115115
{
116116
FontDialog fod = new FontDialog();
@@ -130,6 +130,7 @@ private void current_font_Click(object sender, EventArgs e)
130130
form.Save();
131131
setstyle();
132132
}
133+
form.SaveAsDefaultSettings(); // 保存为默认设置
133134
}
134135
}
135136

@@ -150,6 +151,7 @@ private void font_size_ValueChanged(object sender, EventArgs e)
150151
form.Save();
151152
setstyle();
152153
}
154+
form.SaveAsDefaultSettings(); // 保存为默认设置
153155
}
154156

155157
private void trackBar1_Scroll(object sender, EventArgs e)
@@ -163,6 +165,7 @@ private void opacity_val_ValueChanged(object sender, EventArgs e)
163165
form.Opacity = (double)opacity_val.Value;
164166
int v = (int)(opacity_val.Value * 100);
165167
if (v >= trackBar1.Minimum && v != trackBar1.Value) trackBar1.Value = v;
168+
form.SaveAsDefaultSettings(); // 保存为默认设置
166169
}
167170

168171
//change custom themes
@@ -183,6 +186,7 @@ private void topbar_color_Click(object sender, EventArgs e)
183186
form.Save();
184187
settheme();
185188
}
189+
form.SaveAsDefaultSettings(); // 保存为默认设置
186190
}
187191
}
188192

@@ -203,6 +207,7 @@ private void back_color_Click(object sender, EventArgs e)
203207
form.Save();
204208
settheme();
205209
}
210+
form.SaveAsDefaultSettings(); // 保存为默认设置
206211
}
207212
}
208213

@@ -223,7 +228,8 @@ private void text_color_Click(object sender, EventArgs e)
223228
form.Save();
224229
settheme();
225230
}
226-
}
231+
form.SaveAsDefaultSettings(); // 保存为默认设置
232+
}
227233
}
228234

229235

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,6 @@ Desktop-Notes
99

1010
支持始终置顶,开机启动,主题设置等
1111

12+
**v1.3.0 新增功能:** 样式记忆功能 - 新建便签自动应用上次设置的字体、颜色、透明度
13+
1214
![image](https://github.com/user-attachments/assets/7f0b28cc-168f-41ff-a884-11290ebdab32)

0 commit comments

Comments
 (0)