@@ -38,14 +38,14 @@ private struct Language
38
38
}
39
39
} ;
40
40
41
- private bool betaLangWarning = false ;
41
+ private bool settingsStarted = false ;
42
42
private MainForm owner ;
43
43
44
44
public SettingsForm ( bool darkMode )
45
45
{
46
46
if ( darkMode )
47
47
{
48
- this . HandleCreated += new EventHandler ( ThemeManager . formHandleCreated ) ;
48
+ HandleCreated += new EventHandler ( ThemeManager . formHandleCreated ) ;
49
49
}
50
50
51
51
InitializeComponent ( ) ;
@@ -89,12 +89,7 @@ public SettingsForm(bool darkMode)
89
89
90
90
favExtTextBox . Text = Properties . Settings . Default . FavoriteExternalApp ;
91
91
92
- const string openWithKey = "HKEY_CLASSES_ROOT\\ *\\ shell\\ QuickPictureViewer" ;
93
- string openWithValue = ( string ) Registry . GetValue ( openWithKey , string . Empty , string . Empty ) ;
94
- if ( openWithValue . Length > 0 )
95
- {
96
- openWithCheckBox . Checked = true ;
97
- }
92
+ openWithCheckBox . Checked = GetOpenWithState ( ) ;
98
93
const string browseWithKey1 = "HKEY_CLASSES_ROOT\\ Directory\\ Background\\ shell\\ QuickPictureViewer" ;
99
94
const string browseWithKey2 = "HKEY_CLASSES_ROOT\\ Directory\\ shell\\ QuickPictureViewer" ;
100
95
string browseWithValue1 = ( string ) Registry . GetValue ( browseWithKey1 , string . Empty , string . Empty ) ;
@@ -124,7 +119,7 @@ public SettingsForm(bool darkMode)
124
119
125
120
private void InitLanguage ( )
126
121
{
127
- this . Text = owner . resMan . GetString ( "settings" ) ;
122
+ Text = owner . resMan . GetString ( "settings" ) ;
128
123
langPage . Text = owner . resMan . GetString ( "localization" ) ;
129
124
startupPage . Text = owner . resMan . GetString ( "startup" ) ;
130
125
restartLabel1 . Text = "* " + owner . resMan . GetString ( "restart-required" ) ;
@@ -140,7 +135,6 @@ private void InitLanguage()
140
135
updatesCheckBox . Text = owner . resMan . GetString ( "check-for-app-updates" ) ;
141
136
favExtLabel . Text = owner . resMan . GetString ( "fav-external-app" ) + ":" ;
142
137
browseBtn . Text = " " + owner . resMan . GetString ( "browse" ) ;
143
- externalPage . Text = owner . resMan . GetString ( "windows" ) ;
144
138
slideshowPage . Text = owner . resMan . GetString ( "slideshow" ) ;
145
139
slideshowTimeLabel . Text = owner . resMan . GetString ( "switching-time" ) + ":" ;
146
140
mousePage . Text = owner . resMan . GetString ( "input" ) ;
@@ -175,32 +169,32 @@ private void SetDarkMode(bool dark)
175
169
}
176
170
177
171
DarkMode = dark ;
178
- updatesCheckBox . SetDarkMode ( dark ) ;
179
- fullscrCursorCheckBox . SetDarkMode ( dark ) ;
172
+ updatesCheckBox . DarkMode = dark ;
173
+ fullscrCursorCheckBox . DarkMode = dark ;
180
174
darkThemeRadio . SetDarkMode ( dark ) ;
181
175
lightThemeRadio . SetDarkMode ( dark ) ;
182
176
systemThemeRadio . SetDarkMode ( dark ) ;
183
177
closeBtn . SetDarkMode ( dark ) ;
184
178
slideshowTimeNumeric . DarkMode = dark ;
185
- slideshowCounterCheckBox . SetDarkMode ( dark ) ;
179
+ slideshowCounterCheckBox . DarkMode = dark ;
186
180
langComboBox . SetDarkMode ( dark ) ;
187
181
favExtTextBox . DarkMode = dark ;
188
- escToExitCheckBox . SetDarkMode ( dark ) ;
182
+ escToExitCheckBox . DarkMode = dark ;
189
183
mouseWheelActionRadio1 . SetDarkMode ( dark ) ;
190
184
mouseWheelActionRadio2 . SetDarkMode ( dark ) ;
191
185
mouseWheelActionRadio3 . SetDarkMode ( dark ) ;
192
- startupMaximizeCheckBox . SetDarkMode ( dark ) ;
193
- startupPasteCheckBox . SetDarkMode ( dark ) ;
194
- startupBoundsCheckBox . SetDarkMode ( dark ) ;
195
- openWithCheckBox . SetDarkMode ( dark ) ;
196
- browseWithCheckBox . SetDarkMode ( dark ) ;
186
+ startupMaximizeCheckBox . DarkMode = dark ;
187
+ startupPasteCheckBox . DarkMode = dark ;
188
+ startupBoundsCheckBox . DarkMode = dark ;
189
+ openWithCheckBox . DarkMode = dark ;
190
+ browseWithCheckBox . DarkMode = dark ;
197
191
}
198
192
199
193
private void SettingsForm_KeyDown ( object sender , KeyEventArgs e )
200
194
{
201
195
if ( e . KeyCode == Keys . Escape )
202
196
{
203
- this . Close ( ) ;
197
+ Close ( ) ;
204
198
}
205
199
}
206
200
@@ -245,7 +239,7 @@ private void fullscrCursorCheckBox_CheckedChanged(object sender, EventArgs e)
245
239
246
240
private void closeBtn_Click ( object sender , EventArgs e )
247
241
{
248
- this . Close ( ) ;
242
+ Close ( ) ;
249
243
}
250
244
251
245
private void favExtTextBox_TextChanged ( object sender , EventArgs e )
@@ -282,7 +276,7 @@ private void langComboBox_SelectedIndexChanged(object sender, EventArgs e)
282
276
283
277
if ( owner != null )
284
278
{
285
- if ( languages [ langComboBox . SelectedIndex ] . Beta && betaLangWarning )
279
+ if ( languages [ langComboBox . SelectedIndex ] . Beta && settingsStarted )
286
280
{
287
281
MessageBox . Show (
288
282
owner . resMan . GetString ( "beta-lang-warning" ) ,
@@ -318,10 +312,10 @@ private void Ll_Click(object sender, EventArgs e)
318
312
319
313
private void SettingsForm_Load ( object sender , EventArgs e )
320
314
{
321
- owner = this . Owner as MainForm ;
315
+ owner = Owner as MainForm ;
322
316
InitLanguage ( ) ;
323
317
langComboBox_SelectedIndexChanged ( null , null ) ;
324
- betaLangWarning = true ;
318
+ settingsStarted = true ;
325
319
}
326
320
327
321
private void escToExitCheckBox_CheckedChanged ( object sender , EventArgs e )
@@ -370,5 +364,67 @@ private void startupBoundsCheckBox_CheckedChanged(object sender, EventArgs e)
370
364
Properties . Settings . Default . StartupRestoreBounds = startupBoundsCheckBox . Checked ;
371
365
Properties . Settings . Default . Save ( ) ;
372
366
}
367
+
368
+ private void openWithCheckBox_CheckedChanged ( object sender , EventArgs e )
369
+ {
370
+ if ( settingsStarted )
371
+ {
372
+ try
373
+ {
374
+ if ( openWithCheckBox . Checked )
375
+ {
376
+ Registry . SetValue ( "HKEY_CLASSES_ROOT\\ *\\ shell\\ QuickPictureViewer" , "" , "Open with QuickPictureViewer" ) ;
377
+ Registry . SetValue ( "HKEY_CLASSES_ROOT\\ *\\ shell\\ QuickPictureViewer" , "Icon" , string . Format ( "\" {0}picture.ico\" " , AppDomain . CurrentDomain . BaseDirectory ) ) ;
378
+ Registry . SetValue ( "HKEY_CLASSES_ROOT\\ *\\ shell\\ QuickPictureViewer\\ command" , "" , string . Format ( "\" {0}quick-picture-viewer.exe\" \" %V\" " , AppDomain . CurrentDomain . BaseDirectory ) ) ;
379
+ }
380
+ else
381
+ {
382
+ RegistryKey RegKey = Registry . ClassesRoot . OpenSubKey ( "*\\ shell\\ QuickPictureViewer" , true ) ;
383
+ RegKey . DeleteSubKeyTree ( "" ) ;
384
+ }
385
+ }
386
+ catch
387
+ {
388
+ MessageBox . Show ( "To change context menu options you need to run app with Administrator" , owner . resMan . GetString ( "error" ) ) ;
389
+ }
390
+ }
391
+ }
392
+
393
+ private void browseWithCheckBox_CheckedChanged ( object sender , EventArgs e )
394
+ {
395
+ if ( settingsStarted )
396
+ {
397
+ try
398
+ {
399
+ if ( browseWithCheckBox . Checked )
400
+ {
401
+ Registry . SetValue ( "HKEY_CLASSES_ROOT\\ Directory\\ Background\\ shell\\ QuickPictureViewer" , "" , "Browse folder with QuickPictureViewer" ) ;
402
+ Registry . SetValue ( "HKEY_CLASSES_ROOT\\ Directory\\ Background\\ shell\\ QuickPictureViewer" , "Icon" , string . Format ( "\" {0}picture.ico\" " , AppDomain . CurrentDomain . BaseDirectory ) ) ;
403
+ Registry . SetValue ( "HKEY_CLASSES_ROOT\\ Directory\\ Background\\ shell\\ QuickPictureViewer\\ command" , "" , string . Format ( "\" {0}quick-picture-viewer.exe\" \" %V\" " , AppDomain . CurrentDomain . BaseDirectory ) ) ;
404
+
405
+ Registry . SetValue ( "HKEY_CLASSES_ROOT\\ Directory\\ shell\\ QuickPictureViewer" , "" , "Browse folder with QuickPictureViewer" ) ;
406
+ Registry . SetValue ( "HKEY_CLASSES_ROOT\\ Directory\\ shell\\ QuickPictureViewer" , "Icon" , string . Format ( "\" {0}picture.ico\" " , AppDomain . CurrentDomain . BaseDirectory ) ) ;
407
+ Registry . SetValue ( "HKEY_CLASSES_ROOT\\ Directory\\ shell\\ QuickPictureViewer\\ command" , "" , string . Format ( "\" {0}quick-picture-viewer.exe\" \" %V\" " , AppDomain . CurrentDomain . BaseDirectory ) ) ;
408
+ }
409
+ else
410
+ {
411
+ RegistryKey RegKey = Registry . ClassesRoot . OpenSubKey ( "Directory\\ Background\\ shell\\ QuickPictureViewer" , true ) ;
412
+ RegKey . DeleteSubKeyTree ( "" ) ;
413
+ RegistryKey RegKey2 = Registry . ClassesRoot . OpenSubKey ( "Directory\\ shell\\ QuickPictureViewer" , true ) ;
414
+ RegKey2 . DeleteSubKeyTree ( "" ) ;
415
+ }
416
+ }
417
+ catch
418
+ {
419
+ MessageBox . Show ( "To change context menu options you need to run app with Administrator" , owner . resMan . GetString ( "error" ) ) ;
420
+ }
421
+ }
422
+ }
423
+
424
+ private bool GetOpenWithState ( )
425
+ {
426
+ string openWithValue = ( string ) Registry . GetValue ( "HKEY_CLASSES_ROOT\\ *\\ shell\\ QuickPictureViewer" , string . Empty , string . Empty ) ;
427
+ return openWithValue . Length > 0 ;
428
+ }
373
429
}
374
430
}
0 commit comments