/[winpt]/trunk/Src/wptPreferencesDlg.cpp
ViewVC logotype

Diff of /trunk/Src/wptPreferencesDlg.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 88 by twoaday, Mon Nov 21 12:06:59 2005 UTC revision 180 by twoaday, Mon Mar 6 14:41:58 2006 UTC
# Line 1  Line 1 
1  /* wptPreferencesDlg.cpp - Dialog for the preferences  /* wptPreferencesDlg.cpp - Dialog for the preferences
2   *      Copyright (C) 2001, 2002, 2003, 2005 Timo Schulz   *      Copyright (C) 2001, 2002, 2003, 2005, 2006 Timo Schulz
3   *   *
4   * This file is part of WinPT.   * This file is part of WinPT.
5   *   *
# Line 43  Line 43 
43  static int hotkeys[] = {  static int hotkeys[] = {
44      IDC_PREFS_CLIP_ENCRYPT,      IDC_PREFS_CLIP_ENCRYPT,
45      IDC_PREFS_CLIP_DECRYPT_VERIFY,      IDC_PREFS_CLIP_DECRYPT_VERIFY,
     IDC_PREFS_CLIP_SIGN,  
46      IDC_PREFS_CLIP_SIGNENC,      IDC_PREFS_CLIP_SIGNENC,
47        IDC_PREFS_CLIP_SIGN,    
48      IDC_PREFS_CWS_ENCRYPT,      IDC_PREFS_CWS_ENCRYPT,
49      IDC_PREFS_CWS_DECRYPT_VERIFY,      IDC_PREFS_CWS_DECRYPT_VERIFY,
50      IDC_PREFS_CWS_SIGN,      IDC_PREFS_CWS_SIGN,
# Line 55  static int hotkeys[] = { Line 55  static int hotkeys[] = {
55    
56  /* Check that the given hotkey is in A..Z or a..z. */  /* Check that the given hotkey is in A..Z or a..z. */
57  static int  static int
58  check_hotkey (char * key)  check_hotkey (char *key)
59  {  {
60      if (*key >= 'A' && *key <= 'Z')      if (*key >= 'A' && *key <= 'Z')
61          return 1;          return 1;
# Line 94  enable_backup_items (HWND dlg, int val) Line 94  enable_backup_items (HWND dlg, int val)
94  }  }
95    
96    
 /* Initialize the combox in the dialog @dlg with the valid list modes. */  
 static void  
 init_keylist_modes (HWND dlg)  
 {  
     HWND cb = GetDlgItem (dlg, IDC_PREFS_LISTMODE);  
     combox_add_string (cb, (char *)"NORMAL");  
     combox_add_string (cb, (char *)"MINIMAL");  
     SendMessage (cb, CB_SETCURSEL, (WPARAM)reg_prefs.keylist_mode, 0);  
 }  
   
   
97  /* Initialize the combobox in the dialog @dlg with the valid wipe modes. */  /* Initialize the combobox in the dialog @dlg with the valid wipe modes. */
98  static void  static void
99  init_wipe_modes (HWND dlg)  init_wipe_modes (HWND dlg)
# Line 117  init_wipe_modes (HWND dlg) Line 106  init_wipe_modes (HWND dlg)
106  }  }
107    
108    
109    /* Helper function to prepare dialog. */
110    static void
111    on_init_dialog (HWND dlg)
112    {
113        struct gettext_tab_s prefs[] = {
114            {IDC_PREFS_SECMODE, _("Do not use any &temporary files")},
115            {IDC_PREFS_VIEWER, _("Use clipboard &viewer to display the plaintext")},
116            {IDC_PREFS_WWINFO, _("Word wrap cleartext &signatures at column")},
117            {IDC_PREFS_DISABLE_HOTKEYS, _("&Disable hotkeys (Not recommended!)")},
118            {IDC_PREFS_TRUST, _("Skip key validation and assume that keys are always fully trusted")},
119            {IDC_PREFS_AUTOBACKUP, _("&Automatic keyring backup when WinPT closes")},
120            {IDC_PREFS_BAKHOME, _("Backup to &keyring folder")},
121            {IDC_PREFS_BAKUSER, _("Backup to:")},
122            {IDC_PREFS_KEYLISTINF, _("Select &key list mode")},
123            {IDC_PREFS_WIPEINF, _("Select &wipe mode")},
124            {IDC_PREFS_KSINF, _("Keyserver &config")},
125            {IDC_PREFS_CACHEINF, _("Cache &passphrases for 'n' minutes")},
126            {IDC_PREFS_CACHEHINT, _("(CTRL+ALT+F to clear the cache)")},
127            {IDC_PREFS_ALLOPTINF, _("General options")},
128            {IDC_PREFS_CLIPINF, _("Clipboard hotkeys")},
129            {IDC_PREFS_CURRINF, _("Current window hotkeys")},
130            {IDC_PREFS_KSELFILE, _("Browse...")},
131            {IDC_PREFS_BAKSELECT, _("Browse...")},
132            {IDCANCEL, _("&Cancel")},
133        {0, NULL}};
134        int i;
135    
136        gettext_localize_dialog (dlg, prefs, _("WinPT Preferences"));
137    
138        SetDlgItemInt (dlg, IDC_PREFS_CACHETIME, reg_prefs.cache_time/60, TRUE);
139        SetDlgItemInt (dlg, IDC_PREFS_WORDWRAP, reg_prefs.word_wrap, TRUE);
140        if (reg_prefs.backup.path)
141            SetDlgItemText (dlg, IDC_PREFS_BAKPATH, reg_prefs.backup.path);
142            
143        for (i=0; hotkeys[i]; i++) {
144            if (!wpt_hotkeys[i].enabled)
145                continue;
146            char key[2];
147            key[0] = wpt_hotkeys[i].key;
148            key[1] = 0;
149            SetDlgItemText (dlg, hotkeys[i], key);
150        }
151        CheckDlgButton (dlg, IDC_PREFS_DISABLE_HOTKEYS,
152                        reg_prefs.no_hotkeys ? BST_CHECKED : BST_UNCHECKED);
153        CheckDlgButton (dlg, IDC_PREFS_SECMODE,
154                        reg_prefs.use_tmpfiles ? BST_UNCHECKED : BST_CHECKED);
155        CheckDlgButton (dlg, IDC_PREFS_VIEWER,
156                        reg_prefs.use_viewer ? BST_CHECKED: BST_UNCHECKED);
157        CheckDlgButton (dlg, IDC_PREFS_TRUST,
158                        reg_prefs.always_trust? BST_CHECKED : BST_UNCHECKED);
159        CheckDlgButton (dlg, IDC_PREFS_AUTOBACKUP,
160                        reg_prefs.auto_backup? BST_CHECKED : BST_UNCHECKED);
161        CheckDlgButton (dlg, IDC_PREFS_BAKHOME,
162                        reg_prefs.backup.mode==1? BST_CHECKED : BST_UNCHECKED);
163        CheckDlgButton (dlg, IDC_PREFS_BAKUSER,
164                        reg_prefs.backup.mode==2? BST_CHECKED : BST_UNCHECKED);
165        if (reg_prefs.no_hotkeys)
166            disable_hotkey_items (dlg, 1);
167        if (!reg_prefs.auto_backup)
168            enable_backup_items (dlg, 0);
169        EnableWindow (GetDlgItem (dlg, IDC_PREFS_BAKPATH),
170                          reg_prefs.backup.mode==1?FALSE : TRUE);
171        EnableWindow (GetDlgItem (dlg, IDC_PREFS_BAKSELECT),
172                          reg_prefs.backup.mode==1? FALSE : TRUE);
173        init_wipe_modes (dlg);
174        center_window (dlg, NULL);    
175        SetForegroundWindow (dlg);
176    }
177    
178    
179  /* Dialog box procedure for the WinPT preferences. */  /* Dialog box procedure for the WinPT preferences. */
180  BOOL CALLBACK  BOOL CALLBACK
181  prefs_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)  prefs_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)
182  {  {
183      int rc;      int rc;
184      int i, id;      int i;
185      char t[2];      char t[3];
186      char path[256], * p;      char path[256], *p;
187      HWND cb;      HWND cb;
188            
189      switch (msg) {      switch (msg) {
190      case WM_INITDIALOG:      case WM_INITDIALOG:
191          SetWindowText (dlg, _("WinPT Preferences"));          on_init_dialog (dlg);
         SetDlgItemText (dlg, IDC_PREFS_SECMODE, _("Do not use any &temporary files"));  
         SetDlgItemText (dlg, IDC_PREFS_VIEWER, _("Use clipboard &viewer to display the plaintext"));  
         SetDlgItemText (dlg, IDC_PREFS_WWINFO, _("Word wrap cleartext &signatures at column"));  
         SetDlgItemText (dlg, IDC_PREFS_DISABLE_HOTKEYS, _("&Disable hotkeys (Not recommended!)"));  
         SetDlgItemText (dlg, IDC_PREFS_TRUST, _("Skip key validation and assume that keys are always fully trusted"));  
         SetDlgItemText (dlg, IDC_PREFS_AUTOBACKUP, _("&Automatic keyring backup when WinPT closes"));  
         SetDlgItemText (dlg, IDC_PREFS_BAKHOME, _("Backup to GPG &home folder"));  
         SetDlgItemText (dlg, IDC_PREFS_BAKUSER, _("Backup to:"));  
         SetDlgItemText (dlg, IDC_PREFS_KEYLISTINF, _("Select &key list mode"));  
         SetDlgItemText (dlg, IDC_PREFS_WIPEINF, _("Select &wipe mode"));  
         SetDlgItemText (dlg, IDC_PREFS_KSINF, _("Keyserver &config"));  
         SetDlgItemText (dlg, IDC_PREFS_CACHEINF, _("Cache &passphrases for 'n' seconds"));  
         SetDlgItemText (dlg, IDC_PREFS_CACHEHINT, _("(CTRL+ALT+F to clear the cache)"));  
         SetDlgItemText (dlg, IDC_PREFS_ALLOPTINF, _("General options"));  
         SetDlgItemText (dlg, IDC_PREFS_CLIPINF, _("Clipboard hotkeys"));  
         SetDlgItemText (dlg, IDC_PREFS_CURRINF, _("Current window hotkeys"));  
   
         SetDlgItemInt( dlg, IDC_PREFS_CACHETIME, reg_prefs.cache_time, TRUE );  
         SetDlgItemInt( dlg, IDC_PREFS_WORDWRAP, reg_prefs.word_wrap, TRUE );  
         if (reg_prefs.backup.path)  
             SetDlgItemText (dlg, IDC_PREFS_BAKPATH, reg_prefs.backup.path);  
         if (reg_prefs.kserv_conf)  
             SetDlgItemText (dlg, IDC_PREFS_KSERVER, reg_prefs.kserv_conf);  
   
         for (i=0; (id=hotkeys[i]); i++)  
             SetDlgItemText (dlg, id, reg_hotkeys[i].key);  
         CheckDlgButton( dlg, IDC_PREFS_DISABLE_HOTKEYS,  
                         reg_prefs.no_hotkeys ? BST_CHECKED : BST_UNCHECKED );  
         CheckDlgButton( dlg, IDC_PREFS_SECMODE,  
                         reg_prefs.use_tmpfiles ? BST_UNCHECKED : BST_CHECKED );  
         CheckDlgButton( dlg, IDC_PREFS_VIEWER,  
                         reg_prefs.use_viewer ? BST_CHECKED: BST_UNCHECKED );  
         CheckDlgButton( dlg, IDC_PREFS_TRUST,  
                         reg_prefs.always_trust? BST_CHECKED : BST_UNCHECKED );  
         CheckDlgButton( dlg, IDC_PREFS_AUTOBACKUP,  
                         reg_prefs.auto_backup? BST_CHECKED : BST_UNCHECKED );  
         CheckDlgButton( dlg, IDC_PREFS_BAKHOME,  
                         reg_prefs.backup.mode==1? BST_CHECKED : BST_UNCHECKED );  
         CheckDlgButton( dlg, IDC_PREFS_BAKUSER,  
                         reg_prefs.backup.mode==2? BST_CHECKED : BST_UNCHECKED );  
         if( reg_prefs.no_hotkeys )  
             disable_hotkey_items( dlg, 1 );  
         if (!reg_prefs.auto_backup)  
             enable_backup_items (dlg, 0);  
         EnableWindow (GetDlgItem (dlg, IDC_PREFS_BAKPATH),  
                       reg_prefs.backup.mode==1?FALSE : TRUE);  
         EnableWindow (GetDlgItem (dlg, IDC_PREFS_BAKSELECT),  
                       reg_prefs.backup.mode==1? FALSE : TRUE);  
         init_keylist_modes (dlg);  
         init_wipe_modes (dlg);  
         center_window (dlg, NULL);  
         SetForegroundWindow (dlg);  
192          return TRUE;          return TRUE;
193                    
194      case WM_SYSCOMMAND:      case WM_SYSCOMMAND:
195          if (LOWORD (wparam) == SC_CLOSE)          if (LOWORD (wparam) == SC_CLOSE)
196              EndDialog (dlg, TRUE);              EndDialog (dlg, FALSE);
197          return FALSE;          return FALSE;
198                    
199      case WM_COMMAND:      case WM_COMMAND:
200          switch( HIWORD(wparam) ) {          switch (HIWORD (wparam)) {
201          case BN_CLICKED:          case BN_CLICKED:
202              switch( (int)LOWORD( wparam ) ) {              switch ((int)LOWORD (wparam)) {
203              case IDC_PREFS_DISABLE_HOTKEYS:                          case IDC_PREFS_DISABLE_HOTKEYS:            
204                  reg_prefs.no_hotkeys ^= 1;                  reg_prefs.no_hotkeys ^= 1;
205                  disable_hotkey_items( dlg, reg_prefs.no_hotkeys );                  disable_hotkey_items (dlg, reg_prefs.no_hotkeys);
206                  break;                  break;
207    
208              case IDC_PREFS_TRUST:              case IDC_PREFS_TRUST:
209                  reg_prefs.always_trust ^= 1;                  reg_prefs.always_trust ^= 1;
210                  if( reg_prefs.always_trust ) {                  if (reg_prefs.always_trust) {
211                      msg_box (dlg,                      msg_box (dlg,
212                  _("In most cases it is not a good idea to enable this setting.\n"                  _("In most cases it is not a good idea to enable this setting.\n"
213                    "If you know what you are doing let this flag enabled, otherwise\n"                    "If you know what you are doing let this flag enabled, otherwise\n"
214                    "it is safe to leave this flag untouched."),                    "it is safe to leave this flag untouched."),
215                    _("Preferences"), MB_ICONWARNING|MB_OK );                    _("Preferences"), MB_ICONWARNING|MB_OK);
216                  }                  }
217                  break;                  break;
218    
# Line 217  prefs_dlg_proc (HWND dlg, UINT msg, WPAR Line 224  prefs_dlg_proc (HWND dlg, UINT msg, WPAR
224                          !IsDlgButtonChecked (dlg, IDC_PREFS_BAKUSER))                          !IsDlgButtonChecked (dlg, IDC_PREFS_BAKUSER))
225                          CheckDlgButton (dlg, IDC_PREFS_BAKHOME, BST_CHECKED);                          CheckDlgButton (dlg, IDC_PREFS_BAKHOME, BST_CHECKED);
226                  }                  }
227                    if (IsDlgButtonChecked (dlg, IDC_PREFS_BAKHOME))
228                        EnableWindow (GetDlgItem (dlg, IDC_PREFS_BAKPATH), FALSE);
229                  break;                  break;
230    
231              case IDC_PREFS_BAKHOME:                          case IDC_PREFS_BAKHOME:            
# Line 231  prefs_dlg_proc (HWND dlg, UINT msg, WPAR Line 240  prefs_dlg_proc (HWND dlg, UINT msg, WPAR
240              }              }
241              break;              break;
242          }          }
243          switch( LOWORD( wparam ) ) {          switch (LOWORD (wparam)) {
244          case IDC_PREFS_BAKSELECT:          case IDC_PREFS_BAKSELECT:
245              const char *bpath;              const char *bpath;
246              bpath = get_folder_dlg (dlg, _("Select GPG backup path"), NULL);              bpath = get_folder_dlg (dlg, _("Select GPG backup path"), NULL);
# Line 239  prefs_dlg_proc (HWND dlg, UINT msg, WPAR Line 248  prefs_dlg_proc (HWND dlg, UINT msg, WPAR
248                  SetDlgItemText (dlg, IDC_PREFS_BAKPATH, bpath);                  SetDlgItemText (dlg, IDC_PREFS_BAKPATH, bpath);
249              break;              break;
250    
         case IDC_PREFS_KSELFILE: {  
             const char * name;  
             name = get_fileopen_dlg (dlg, _("Please select a keyserver.conf file"),  
                                      NULL, NULL);  
             if (name != NULL)  
                 SetDlgItemText (dlg, IDC_PREFS_KSERVER, name);  
             break; }  
   
251          case IDOK:          case IDOK:
252              rc = GetDlgItemInt( dlg, IDC_PREFS_CACHETIME, NULL, FALSE );              rc = GetDlgItemInt (dlg, IDC_PREFS_CACHETIME, NULL, FALSE);
253              if( !rc )              if (rc <= 0)
254                  reg_prefs.cache_time = 0;                  reg_prefs.cache_time = 0;
255              else if( rc > 3600 ) {              else if (rc > 720) {
256                  msg_box( dlg, _("Please enter a value that is between 1-3600.\nIt is not "                  msg_box( dlg, _("Please enter a value that is between 1-720.\nIt is not "
257                                  "a good idea to cache the passphrase more than one hour."),                                  "a good idea to cache the passphrase more than 12 hours."),
258                                  _("Preferences"), MB_ERR );                                  _("Preferences"), MB_ERR);
259                  SetDlgItemInt( dlg, IDC_PREFS_CACHETIME, 0, FALSE );                  SetDlgItemInt (dlg, IDC_PREFS_CACHETIME, 0, FALSE);
260                  return TRUE;                  return TRUE;
261              }              }
262              if (reg_prefs.cache_time != rc)              if (reg_prefs.cache_time != rc)
263                  agent_flush_cache ();                  agent_flush_cache ();
264              reg_prefs.cache_time = rc;              reg_prefs.cache_time = rc*60;
265              rc = GetDlgItemInt( dlg, IDC_PREFS_WORDWRAP, NULL, FALSE );              rc = GetDlgItemInt (dlg, IDC_PREFS_WORDWRAP, NULL, FALSE);
266              if( !rc )              if (rc <= 0)
267                  reg_prefs.word_wrap = 0;                  reg_prefs.word_wrap = 0;
268              else if( rc > 80 ) {              else if (rc > 80) {
269                  msg_box( dlg, _("Please enter a value between 1-80."), _("Preferences"), MB_ERR );                  msg_box (dlg, _("Please enter a value between 1-80."),
270                             _("Preferences"), MB_ERR);
271                  return TRUE;                  return TRUE;
272              }              }
273              reg_prefs.word_wrap = rc;              reg_prefs.word_wrap = rc;
274              reg_prefs.use_tmpfiles = IsDlgButtonChecked( dlg, IDC_PREFS_SECMODE )? 0 : 1;              reg_prefs.use_tmpfiles = IsDlgButtonChecked (dlg, IDC_PREFS_SECMODE)? 0 : 1;
275              reg_prefs.use_viewer = IsDlgButtonChecked( dlg, IDC_PREFS_VIEWER )? 1 : 0;              reg_prefs.use_viewer = IsDlgButtonChecked (dlg, IDC_PREFS_VIEWER)? 1 : 0;
276              reg_prefs.backup.mode = IsDlgButtonChecked( dlg, IDC_PREFS_BAKHOME ) ? 1 :              reg_prefs.backup.mode = IsDlgButtonChecked (dlg, IDC_PREFS_BAKHOME ) ? 1 :
277                                      IsDlgButtonChecked( dlg, IDC_PREFS_BAKUSER )? 2 : 0;                                      IsDlgButtonChecked (dlg, IDC_PREFS_BAKUSER)? 2 : 0;
278              if( reg_prefs.backup.mode == 2 ) {              if (reg_prefs.backup.mode == 2) {
279                  if( !GetDlgItemText( dlg, IDC_PREFS_BAKPATH, path, sizeof (path)-1 )                  if (!GetDlgItemText (dlg, IDC_PREFS_BAKPATH, path, sizeof (path)-1)
280                      || dir_exist_check( path ) ) {                      || dir_exist_check (path)) {
281                      msg_box( dlg, _("The specified backup folder is invalid."),                      msg_box (dlg, _("The specified backup folder is invalid."),
282                               _("Preferences"), MB_ERR );                               _("Preferences"), MB_ERR);
283                      return TRUE;                      return TRUE;
284                  }                  }
285                  free_if_alloc (reg_prefs.backup.path);                  free_if_alloc (reg_prefs.backup.path);
# Line 285  prefs_dlg_proc (HWND dlg, UINT msg, WPAR Line 287  prefs_dlg_proc (HWND dlg, UINT msg, WPAR
287                  if (!p)                  if (!p)
288                      BUG (0);                      BUG (0);
289              }              }
             free_if_alloc (reg_prefs.kserv_conf);  
             if (!GetDlgItemText (dlg, IDC_PREFS_KSERVER, path, sizeof (path)-1)  
                 || file_exist_check (path)) {  
                 rc = msg_box (dlg, _("The specified keyserver config file is invalid.\n\n"  
                                      "Create new default config file?"),  
                          _("Preferences"), MB_ERR|MB_YESNO);  
                 if (rc == IDNO)  
                     return TRUE;  
                 else  
                 {  
                     char cwd[256], * fn;  
                     FILE * fp = fopen ("keyserver.conf", "wb");  
                     if (fp) {  
                         fprintf (fp, "%s\r\n", DEF_HKP_KEYSERVER);  
                         fclose (fp);  
                     }  
                     GetCurrentDirectory (DIM (cwd)-1, cwd);  
                     fn = make_filename (cwd, "keyserver", "conf");  
                     memset (path, 0, sizeof( path));  
                     strncpy (path, fn, DIM (path)-1);  
                     free_if_alloc (fn);  
                 }  
             }  
             p = reg_prefs.kserv_conf = m_strdup (path);  
             if (!p)  
                 BUG (0);  
   
             cb = GetDlgItem( dlg, IDC_PREFS_LISTMODE );  
             reg_prefs.keylist_mode = SendMessage( cb, CB_GETCURSEL, 0, 0 );  
290    
291              cb = GetDlgItem( dlg, IDC_PREFS_WIPEMODE );              cb = GetDlgItem (dlg, IDC_PREFS_WIPEMODE);
292              reg_prefs.wipe_mode = SendMessage( cb, CB_GETCURSEL, 0, 0 );              reg_prefs.wipe_mode = SendMessage (cb, CB_GETCURSEL, 0, 0);
293                            
294              if (IsDlgButtonChecked (dlg, IDC_PREFS_DISABLE_HOTKEYS)) {              if (IsDlgButtonChecked (dlg, IDC_PREFS_DISABLE_HOTKEYS)) {
295                  hotkeys_unregister (glob_hwnd);                  hotkeys_unregister (glob_hwnd);
# Line 324  prefs_dlg_proc (HWND dlg, UINT msg, WPAR Line 297  prefs_dlg_proc (HWND dlg, UINT msg, WPAR
297              }              }
298              else {              else {
299                  reg_prefs.no_hotkeys = 0;                  reg_prefs.no_hotkeys = 0;
300                  for( i = 0; (id = hotkeys[i]); i++ ) {                  for (i = 0; hotkeys[i]; i++) {
301                      rc = GetDlgItemText( dlg, id, t, 2 );                      rc = GetDlgItemText (dlg, hotkeys[i], t, sizeof (t)-1);
302                      if( rc && check_hotkey( &t[0] ) )                      if (rc > 0 && check_hotkey (&t[0]))
303                          hotkey_enable( &reg_hotkeys[i], t );                          hotkey_enable (&wpt_hotkeys[i], t);
304                      else                      else
305                          hotkey_disable( &reg_hotkeys[i] );                          hotkey_disable (&wpt_hotkeys[i]);
306                  }                  }
307                  set_reg_entry (HKEY_CURRENT_USER, "Software\\WinPT", "DisableHotkeys", "0");                  set_reg_entry (HKEY_CURRENT_USER, "Software\\WinPT", "DisableHotkeys", "0");
308                  reg_prefs.no_hotkeys = 0;                  reg_prefs.no_hotkeys = 0;
309              }              }
310    
311              if ((rc = set_reg_winpt_prefs (&reg_prefs)))              rc = set_reg_winpt_prefs (&reg_prefs);
312                if (rc)
313                  msg_box (dlg, winpt_strerror (rc), _("Preferences"), MB_ERR);                  msg_box (dlg, winpt_strerror (rc), _("Preferences"), MB_ERR);
314                            
315              if (reg_prefs.no_hotkeys == 0) {              if (reg_prefs.no_hotkeys == 0) {
316                  hotkeys_unregister (glob_hwnd);                  hotkeys_unregister (glob_hwnd);
317                  hotkeys_modify ();                  rc = hotkeys_register (glob_hwnd);
318                  if ((rc = hotkeys_register (glob_hwnd)))                  if (rc)
319                      msg_box (NULL, winpt_strerror (rc), _("Hotkeys"), MB_ERR);                      msg_box (NULL, winpt_strerror (rc), _("Hotkeys"), MB_ERR);
320              }              }
321              EndDialog (dlg, TRUE);              EndDialog (dlg, TRUE);
322              return TRUE;              return TRUE;
323                            
324          case IDCANCEL:          case IDCANCEL:
325              EndDialog( dlg, FALSE );              /* Reset backup mode if no mode was chosen. */
326                if (reg_prefs.auto_backup == 1 &&
327                    !IsDlgButtonChecked (dlg, IDC_PREFS_BAKHOME) &&
328                    !IsDlgButtonChecked (dlg, IDC_PREFS_BAKUSER))
329                    reg_prefs.auto_backup = 0;
330                EndDialog (dlg, FALSE);
331              return FALSE;              return FALSE;
332          }          }
333          break;          break;

Legend:
Removed from v.88  
changed lines
  Added in v.180

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26