/[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 47 by werner, Mon Oct 31 14:04:59 2005 UTC revision 218 by twoaday, Wed May 24 07:53:24 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 17  Line 17 
17   * along with WinPT; if not, write to the Free Software Foundation,   * along with WinPT; if not, write to the Free Software Foundation,
18   * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA   * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
19   */   */
   
20  #ifdef HAVE_CONFIG_H  #ifdef HAVE_CONFIG_H
21  #include <config.h>  #include <config.h>
22  #endif  #endif
23    
24  #include <windows.h>  #include <windows.h>
 #include <windows.h>  
25  #include <shlobj.h>  #include <shlobj.h>
26    
27  #include "wptNLS.h"  #include "wptNLS.h"
# Line 45  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 57  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 96  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 119  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            {IDC_PREFS_EXTINF, _("Default extension for encrypted files")},
133            {IDCANCEL, _("&Cancel")},
134        {0, NULL}};
135        int i;
136        HWND cb;
137    
138        gettext_localize_dialog (dlg, prefs, _("WinPT Preferences"));
139    
140        SetDlgItemInt (dlg, IDC_PREFS_CACHETIME, reg_prefs.cache_time/60, TRUE);
141        SetDlgItemInt (dlg, IDC_PREFS_WORDWRAP, reg_prefs.word_wrap, TRUE);
142        if (reg_prefs.backup.path)
143            SetDlgItemText (dlg, IDC_PREFS_BAKPATH, reg_prefs.backup.path);
144            
145        for (i=0; hotkeys[i]; i++) {
146            if (!wpt_hotkeys[i].enabled)
147                continue;
148            char key[2];
149            key[0] = wpt_hotkeys[i].key;
150            key[1] = 0;
151            SetDlgItemText (dlg, hotkeys[i], key);
152        }
153        cb = GetDlgItem (dlg, IDC_PREFS_DEFEXT);
154        combox_add_string (cb, _("GnuPG (.gpg)"));
155        combox_add_string (cb, _("PGP   (.pgp)"));
156        SendMessage (cb, CB_SETCURSEL, 0, 0);
157    
158        CheckDlgButton (dlg, IDC_PREFS_DISABLE_HOTKEYS,
159                        reg_prefs.no_hotkeys ? BST_CHECKED : BST_UNCHECKED);
160        CheckDlgButton (dlg, IDC_PREFS_VIEWER,
161                        reg_prefs.use_viewer ? BST_CHECKED: BST_UNCHECKED);
162        CheckDlgButton (dlg, IDC_PREFS_TRUST,
163                        reg_prefs.always_trust? BST_CHECKED : BST_UNCHECKED);
164        CheckDlgButton (dlg, IDC_PREFS_AUTOBACKUP,
165                        reg_prefs.auto_backup? BST_CHECKED : BST_UNCHECKED);
166        CheckDlgButton (dlg, IDC_PREFS_BAKHOME,
167                        reg_prefs.backup.mode==1? BST_CHECKED : BST_UNCHECKED);
168        CheckDlgButton (dlg, IDC_PREFS_BAKUSER,
169                        reg_prefs.backup.mode==2? BST_CHECKED : BST_UNCHECKED);
170        SendDlgItemMessage (dlg, IDC_PREFS_DEFEXT, CB_SETCURSEL,
171                            reg_prefs.default_ext, 0);
172        if (reg_prefs.no_hotkeys)
173            disable_hotkey_items (dlg, 1);
174        if (!reg_prefs.auto_backup)
175            enable_backup_items (dlg, 0);
176        EnableWindow (GetDlgItem (dlg, IDC_PREFS_BAKPATH),
177                          reg_prefs.backup.mode==1?FALSE : TRUE);
178        EnableWindow (GetDlgItem (dlg, IDC_PREFS_BAKSELECT),
179                          reg_prefs.backup.mode==1? FALSE : TRUE);
180        init_wipe_modes (dlg);
181        center_window (dlg, NULL);    
182        SetForegroundWindow (dlg);
183    }
184    
185    
186  /* Dialog box procedure for the WinPT preferences. */  /* Dialog box procedure for the WinPT preferences. */
187  BOOL CALLBACK  BOOL CALLBACK
188  prefs_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)  prefs_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)
189  {  {
190      int rc;      int rc;
191      int i, id;      int i;
192      char t[2];      char t[3];
193      char path[256], * p;      char path[256], *p;
194      HWND cb;      HWND cb;
195            
196      switch ( msg ) {      switch (msg) {
197      case WM_INITDIALOG:      case WM_INITDIALOG:
198      #ifndef LANG_DE          on_init_dialog (dlg);
         SetWindowText (dlg, _("WinPT Preferences"));  
         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:"));  
     #endif  
         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);  
199          return TRUE;          return TRUE;
200                    
201      case WM_SYSCOMMAND:      case WM_SYSCOMMAND:
202          if (LOWORD (wparam) == SC_CLOSE)          if (LOWORD (wparam) == SC_CLOSE)
203              EndDialog (dlg, TRUE);              EndDialog (dlg, FALSE);
204          return FALSE;          return FALSE;
205                    
206      case WM_COMMAND:      case WM_COMMAND:
207          switch( HIWORD(wparam) ) {          switch (HIWORD (wparam)) {
208          case BN_CLICKED:          case BN_CLICKED:
209              switch( (int)LOWORD( wparam ) ) {              switch ((int)LOWORD (wparam)) {
210              case IDC_PREFS_DISABLE_HOTKEYS:                          case IDC_PREFS_DISABLE_HOTKEYS:            
211                  reg_prefs.no_hotkeys ^= 1;                  reg_prefs.no_hotkeys ^= 1;
212                  disable_hotkey_items( dlg, reg_prefs.no_hotkeys );                  disable_hotkey_items (dlg, reg_prefs.no_hotkeys);
213                  break;                  break;
214    
215              case IDC_PREFS_TRUST:              case IDC_PREFS_TRUST:
216                  reg_prefs.always_trust ^= 1;                  reg_prefs.always_trust ^= 1;
217                  if( reg_prefs.always_trust ) {                  if (reg_prefs.always_trust) {
218                      msg_box (dlg,                      msg_box (dlg,
219                  _("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"
220                    "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"
221                    "it is safe to leave this flag untouched."),                    "it is safe to leave this flag untouched."),
222                    _("Preferences"), MB_ICONWARNING|MB_OK );                    _("Preferences"), MB_ICONWARNING|MB_OK);
223                  }                  }
224                  break;                  break;
225    
# Line 212  prefs_dlg_proc (HWND dlg, UINT msg, WPAR Line 231  prefs_dlg_proc (HWND dlg, UINT msg, WPAR
231                          !IsDlgButtonChecked (dlg, IDC_PREFS_BAKUSER))                          !IsDlgButtonChecked (dlg, IDC_PREFS_BAKUSER))
232                          CheckDlgButton (dlg, IDC_PREFS_BAKHOME, BST_CHECKED);                          CheckDlgButton (dlg, IDC_PREFS_BAKHOME, BST_CHECKED);
233                  }                  }
234                    if (IsDlgButtonChecked (dlg, IDC_PREFS_BAKHOME))
235                        EnableWindow (GetDlgItem (dlg, IDC_PREFS_BAKPATH), FALSE);
236                  break;                  break;
237    
238              case IDC_PREFS_BAKHOME:                          case IDC_PREFS_BAKHOME:            
# Line 226  prefs_dlg_proc (HWND dlg, UINT msg, WPAR Line 247  prefs_dlg_proc (HWND dlg, UINT msg, WPAR
247              }              }
248              break;              break;
249          }          }
250          switch( LOWORD( wparam ) ) {          switch (LOWORD (wparam)) {
251          case IDC_PREFS_BAKSELECT:          case IDC_PREFS_BAKSELECT:
252              const char *bpath;              const char *bpath;
253              bpath = get_folder_dlg (dlg, _("Select GPG backup path"), NULL);              bpath = get_folder_dlg (dlg, _("Select GPG backup path"), NULL);
# Line 234  prefs_dlg_proc (HWND dlg, UINT msg, WPAR Line 255  prefs_dlg_proc (HWND dlg, UINT msg, WPAR
255                  SetDlgItemText (dlg, IDC_PREFS_BAKPATH, bpath);                  SetDlgItemText (dlg, IDC_PREFS_BAKPATH, bpath);
256              break;              break;
257    
         case IDC_PREFS_KSELFILE: {  
             const char * name;  
             name = get_filename_dlg (dlg, FILE_OPEN, _("Please select a keyserver.conf file"),  
                                      NULL, NULL);  
             if (name != NULL)  
                 SetDlgItemText (dlg, IDC_PREFS_KSERVER, name);  
             break; }  
   
258          case IDOK:          case IDOK:
259              rc = GetDlgItemInt( dlg, IDC_PREFS_CACHETIME, NULL, FALSE );              rc = GetDlgItemInt (dlg, IDC_PREFS_CACHETIME, NULL, FALSE);
260              if( !rc )              if (rc <= 0) {
261                  reg_prefs.cache_time = 0;                  reg_prefs.cache_time = 0;
262              else if( rc > 3600 ) {                  agent_flush_cache ();
263                  msg_box( dlg, _("Please enter a value that is between 1-3600.\nIt is not "              }
264                                  "a good idea to cache the passphrase more than one hour."),              else if (rc > 720) {
265                                  _("Preferences"), MB_ERR );                  msg_box( dlg, _("Please enter a value that is between 1-720.\nIt is not "
266                  SetDlgItemInt( dlg, IDC_PREFS_CACHETIME, 0, FALSE );                                  "a good idea to cache the passphrase more than 12 hours."),
267                                    _("Preferences"), MB_ERR);
268                    SetDlgItemInt (dlg, IDC_PREFS_CACHETIME, 0, FALSE);
269                  return TRUE;                  return TRUE;
270              }              }
271              if (reg_prefs.cache_time != rc)              if (reg_prefs.cache_time != rc)
272                  agent_flush_cache ();                  agent_flush_cache ();
273              reg_prefs.cache_time = rc;              reg_prefs.cache_time = rc*60;
274              rc = GetDlgItemInt( dlg, IDC_PREFS_WORDWRAP, NULL, FALSE );              rc = GetDlgItemInt (dlg, IDC_PREFS_WORDWRAP, NULL, FALSE);
275              if( !rc )              if (rc <= 0)
276                  reg_prefs.word_wrap = 0;                  reg_prefs.word_wrap = 0;
277              else if( rc > 80 ) {              else if (rc > 80) {
278                  msg_box( dlg, _("Please enter a value between 1-80."), _("Preferences"), MB_ERR );                  msg_box (dlg, _("Please enter a value between 1-80."),
279                             _("Preferences"), MB_ERR);
280                  return TRUE;                  return TRUE;
281              }              }
282                reg_prefs.default_ext = SendDlgItemMessage (dlg, IDC_PREFS_DEFEXT, CB_GETCURSEL, 0, 0);
283              reg_prefs.word_wrap = rc;              reg_prefs.word_wrap = rc;
284              reg_prefs.use_tmpfiles = IsDlgButtonChecked( dlg, IDC_PREFS_SECMODE )? 0 : 1;              reg_prefs.use_viewer = IsDlgButtonChecked (dlg, IDC_PREFS_VIEWER)? 1 : 0;
285              reg_prefs.use_viewer = IsDlgButtonChecked( dlg, IDC_PREFS_VIEWER )? 1 : 0;              reg_prefs.backup.mode = IsDlgButtonChecked (dlg, IDC_PREFS_BAKHOME ) ? 1 :
286              reg_prefs.backup.mode = IsDlgButtonChecked( dlg, IDC_PREFS_BAKHOME ) ? 1 :                                      IsDlgButtonChecked (dlg, IDC_PREFS_BAKUSER)? 2 : 0;
287                                      IsDlgButtonChecked( dlg, IDC_PREFS_BAKUSER )? 2 : 0;              if (reg_prefs.backup.mode == 2) {
288              if( reg_prefs.backup.mode == 2 ) {                  if (!GetDlgItemText (dlg, IDC_PREFS_BAKPATH, path, sizeof (path)-1)
289                  if( !GetDlgItemText( dlg, IDC_PREFS_BAKPATH, path, sizeof (path)-1 )                      || dir_exist_check (path)) {
290                      || dir_exist_check( path ) ) {                      msg_box (dlg, _("The specified backup folder is invalid."),
291                      msg_box( dlg, _("The specified backup folder is invalid."),                               _("Preferences"), MB_ERR);
                              _("Preferences"), MB_ERR );  
292                      return TRUE;                      return TRUE;
293                  }                  }
294                  free_if_alloc (reg_prefs.backup.path);                  free_if_alloc (reg_prefs.backup.path);
# Line 280  prefs_dlg_proc (HWND dlg, UINT msg, WPAR Line 296  prefs_dlg_proc (HWND dlg, UINT msg, WPAR
296                  if (!p)                  if (!p)
297                      BUG (0);                      BUG (0);
298              }              }
             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 );  
299    
300              cb = GetDlgItem( dlg, IDC_PREFS_WIPEMODE );              cb = GetDlgItem (dlg, IDC_PREFS_WIPEMODE);
301              reg_prefs.wipe_mode = SendMessage( cb, CB_GETCURSEL, 0, 0 );              reg_prefs.wipe_mode = SendMessage (cb, CB_GETCURSEL, 0, 0);
302                            
303              if (IsDlgButtonChecked (dlg, IDC_PREFS_DISABLE_HOTKEYS)) {              if (IsDlgButtonChecked (dlg, IDC_PREFS_DISABLE_HOTKEYS)) {
304                  hotkeys_unregister (glob_hwnd);                  hotkeys_unregister (glob_hwnd);
# Line 319  prefs_dlg_proc (HWND dlg, UINT msg, WPAR Line 306  prefs_dlg_proc (HWND dlg, UINT msg, WPAR
306              }              }
307              else {              else {
308                  reg_prefs.no_hotkeys = 0;                  reg_prefs.no_hotkeys = 0;
309                  for( i = 0; (id = hotkeys[i]); i++ ) {                  for (i = 0; hotkeys[i]; i++) {
310                      rc = GetDlgItemText( dlg, id, t, 2 );                      rc = GetDlgItemText (dlg, hotkeys[i], t, sizeof (t)-1);
311                      if( rc && check_hotkey( &t[0] ) )                      if (rc > 0 && check_hotkey (&t[0]))
312                          hotkey_enable( &reg_hotkeys[i], t );                          hotkey_enable (&wpt_hotkeys[i], t);
313                      else                      else
314                          hotkey_disable( &reg_hotkeys[i] );                          hotkey_disable (&wpt_hotkeys[i]);
315                  }                  }
316                  set_reg_entry (HKEY_CURRENT_USER, "Software\\WinPT", "DisableHotkeys", "0");                  set_reg_entry (HKEY_CURRENT_USER, "Software\\WinPT", "DisableHotkeys", "0");
317                  reg_prefs.no_hotkeys = 0;                  reg_prefs.no_hotkeys = 0;
318              }              }
319    
320              if ((rc = set_reg_winpt_prefs (&reg_prefs)))              rc = set_reg_winpt_prefs (&reg_prefs);
321                if (rc)
322                  msg_box (dlg, winpt_strerror (rc), _("Preferences"), MB_ERR);                  msg_box (dlg, winpt_strerror (rc), _("Preferences"), MB_ERR);
323                            
324              if (reg_prefs.no_hotkeys == 0) {              if (reg_prefs.no_hotkeys == 0) {
325                  hotkeys_unregister (glob_hwnd);                  hotkeys_unregister (glob_hwnd);
326                  hotkeys_modify ();                  rc = hotkeys_register (glob_hwnd);
327                  if ((rc = hotkeys_register (glob_hwnd)))                  if (rc)
328                      msg_box (NULL, winpt_strerror (rc), _("Hotkeys"), MB_ERR);                      msg_box (NULL, winpt_strerror (rc), _("Hotkeys"), MB_ERR);
329              }              }
330              EndDialog (dlg, TRUE);              EndDialog (dlg, TRUE);
331              return TRUE;              return TRUE;
332                            
333          case IDCANCEL:          case IDCANCEL:
334              EndDialog( dlg, FALSE );              /* Reset backup mode if no mode was chosen. */
335                if (reg_prefs.auto_backup == 1 &&
336                    !IsDlgButtonChecked (dlg, IDC_PREFS_BAKHOME) &&
337                    !IsDlgButtonChecked (dlg, IDC_PREFS_BAKUSER))
338                    reg_prefs.auto_backup = 0;
339                EndDialog (dlg, FALSE);
340              return FALSE;              return FALSE;
341          }          }
342          break;          break;

Legend:
Removed from v.47  
changed lines
  Added in v.218

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26