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

Diff of /trunk/Src/wptKeyEditDlgs.cpp

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

revision 211 by twoaday, Sun May 7 12:36:48 2006 UTC revision 220 by twoaday, Tue May 30 15:31:49 2006 UTC
# Line 120  enum uid_col_t { Line 120  enum uid_col_t {
120    
121  /* Key edit callback context. */  /* Key edit callback context. */
122  struct keyedit_cb_s {  struct keyedit_cb_s {
123      const char     *keyid;      HWND            parent; /* parent window handle. */
124      const char     *pass;      const char     *keyid;  /* key ID of the key. */
125        const char     *pass;   /* pointer to the passphrase. */
126      listview_ctrl_t lv;      listview_ctrl_t lv;
127      int             lv_pos;      int             lv_pos;
128      void           *opaque;      void           *opaque;
# Line 209  do_add_new_userid (listview_ctrl_t lv, Line 210  do_add_new_userid (listview_ctrl_t lv,
210                     const char *utf8_name, const char *email,                     const char *utf8_name, const char *email,
211                     const char *utf8_comment)                     const char *utf8_comment)
212  {  {
213      char *p;      char *p, *native;
214      size_t n;      size_t n;
215            
216      n = strlen (utf8_name) + strlen (email) + 16;      n = strlen (utf8_name) + strlen (email) + 16;
# Line 218  do_add_new_userid (listview_ctrl_t lv, Line 219  do_add_new_userid (listview_ctrl_t lv,
219      p = new char[n+1];      p = new char[n+1];
220      if (!p)      if (!p)
221          BUG (NULL);          BUG (NULL);
222      if (utf8_comment) {      if (utf8_comment)
223          sprintf (p, "%s (%s)", utf8_name, utf8_comment);          sprintf (p, "%s (%s)", utf8_name, utf8_comment);
     }  
224      else      else
225          sprintf (p, "%s", utf8_name);          sprintf (p, "%s", utf8_name);
226        native = utf8_to_native (p);
227        free_if_alloc (p);
228    
229      listview_add_item (lv, "");      listview_add_item (lv, "");
230      listview_add_sub_item (lv, 0, 0, _("Ultimate" ));      listview_add_sub_item (lv, 0, UID_COL_VALID, _("Ultimate" ));
231      listview_add_sub_item (lv, 0, 1, p);      listview_add_sub_item (lv, 0, UID_COL_NAME, native);
232      listview_add_sub_item (lv, 0, 2, email && *email? email : "");      listview_add_sub_item (lv, 0, UID_COL_EMAIL, email && *email? email : "");
233      listview_add_sub_item (lv, 0, 3, get_key_created (time (NULL)));      listview_add_sub_item (lv, 0, UID_COL_CREATION, get_key_created (time (NULL)));
234      free_if_alloc (p);      free_if_alloc (native);
235  }  }
236    
237    
# Line 241  do_add_new_subkey (listview_ctrl_t lv, k Line 243  do_add_new_subkey (listview_ctrl_t lv, k
243      int n;      int n;
244            
245      expdate = keygen->expire? get_key_expire_date (keygen->expire) : _("Never");      expdate = keygen->expire? get_key_expire_date (keygen->expire) : _("Never");
246      _snprintf (info, sizeof info-1, "%d-bit %s",      _snprintf (info, sizeof (info)-1, "%d-bit %s",
247                 keygen->bits,                 keygen->bits,
248                 get_key_pubalgo ((gpgme_pubkey_algo_t)keygen->algo));                 get_key_pubalgo ((gpgme_pubkey_algo_t)keygen->algo));
249      _snprintf (keyid, sizeof keyid-1, "0x%s", keygen->fpr+8);      _snprintf (keyid, sizeof (keyid)-1, "0x%s", keygen->fpr+8);
250      s = get_key_created (time (NULL));      s = get_key_created (time (NULL));
251      n = listview_count_items (lv, 0);      n = listview_count_items (lv, 0);
252      listview_add_item_pos (lv, n);      listview_add_item_pos (lv, n);
# Line 388  keyedit_addphoto_dlg_proc (HWND dlg, UIN Line 390  keyedit_addphoto_dlg_proc (HWND dlg, UIN
390                  msg_box( dlg, _("Please enter a file name."), _("Add Photo"), MB_ERR);                  msg_box( dlg, _("Please enter a file name."), _("Add Photo"), MB_ERR);
391                  return FALSE;                  return FALSE;
392              }              }
393              if (get_file_size (file) == 0 || get_file_size (file) > 6144 ) {              if (get_file_size (file) == 0 || get_file_size (file) > 6144) {
394                  id = msg_box (dlg, _("The JPEG is really large.\n"                  id = msg_box (dlg, _("The JPEG is really large.\n"
395                                       "Are you sure you want to use it?"),                                       "Are you sure you want to use it?"),
396                                       _("Add Photo"), MB_YESNO|MB_INFO);                                       _("Add Photo"), MB_YESNO|MB_INFO);
# Line 446  keyedit_addrevoker_dlg_proc (HWND dlg, U Line 448  keyedit_addrevoker_dlg_proc (HWND dlg, U
448          SetDlgItemText (dlg, IDCANCEL, _("&Cancel"));          SetDlgItemText (dlg, IDCANCEL, _("&Cancel"));
449          SetWindowText (dlg, _("Add Revoker"));          SetWindowText (dlg, _("Add Revoker"));
450          SetForegroundWindow (dlg);          SetForegroundWindow (dlg);
451            center_window (dlg, cb->parent);
452          break;          break;
453    
454      case WM_SYSCOMMAND:      case WM_SYSCOMMAND:
# Line 515  keyedit_adduid_dlg_proc (HWND dlg, UINT Line 518  keyedit_adduid_dlg_proc (HWND dlg, UINT
518          SetDlgItemText (dlg, IDC_ADDUID_INFCOMMENT, _("&Comment"));          SetDlgItemText (dlg, IDC_ADDUID_INFCOMMENT, _("&Comment"));
519          SetDlgItemText (dlg, IDCANCEL, _("&Cancel"));          SetDlgItemText (dlg, IDCANCEL, _("&Cancel"));
520          SetForegroundWindow (dlg);          SetForegroundWindow (dlg);
521            center_window (dlg, ctx->parent);
522          return FALSE;          return FALSE;
523                    
524      case WM_SYSCOMMAND:      case WM_SYSCOMMAND:
# Line 659  keyedit_addsubkey_dlg_proc (HWND dlg, UI Line 663  keyedit_addsubkey_dlg_proc (HWND dlg, UI
663          EnableWindow (GetDlgItem (dlg, IDC_ADDSUBKEY_EXPDATE), FALSE);          EnableWindow (GetDlgItem (dlg, IDC_ADDSUBKEY_EXPDATE), FALSE);
664          init_keysize_box (dlg, IDC_ADDSUBKEY_SIZE);          init_keysize_box (dlg, IDC_ADDSUBKEY_SIZE);
665          SetForegroundWindow (dlg);          SetForegroundWindow (dlg);
666            center_window (dlg, ctx->parent);
667          return FALSE;          return FALSE;
668                    
669      case WM_SYSCOMMAND:      case WM_SYSCOMMAND:
# Line 773  keyedit_add_userid (winpt_key_t k, HWND Line 778  keyedit_add_userid (winpt_key_t k, HWND
778    
779      memset (&keygen, 0, sizeof (keygen));      memset (&keygen, 0, sizeof (keygen));
780      memset (&cb, 0, sizeof cb);      memset (&cb, 0, sizeof cb);
781        cb.parent = dlg;
782      cb.opaque = &keygen;      cb.opaque = &keygen;
783      cb.is_protected = k->is_protected;      cb.is_protected = k->is_protected;
784      cb.pass = pass;      cb.pass = pass;
# Line 918  keyedit_add_photo (winpt_key_t k, HWND d Line 924  keyedit_add_photo (winpt_key_t k, HWND d
924          if (cancel)          if (cancel)
925              return FALSE;              return FALSE;
926      }      }
927        cb.parent = dlg;
928      cb.pass = pass;      cb.pass = pass;
929      cb.keyid = k->keyid;      cb.keyid = k->keyid;
930    
# Line 950  keyedit_add_revoker (winpt_key_t k, HWND Line 957  keyedit_add_revoker (winpt_key_t k, HWND
957      }      }
958    
959      memset (&cb, 0, sizeof (cb));      memset (&cb, 0, sizeof (cb));
960        cb.parent = dlg;
961      cb.is_protected = k->is_protected;      cb.is_protected = k->is_protected;
962      cb.keyid = k->keyid;      cb.keyid = k->keyid;
963      cb.pass = pass;      cb.pass = pass;
# Line 1038  keyedit_change_passwd (winpt_key_t k, HW Line 1046  keyedit_change_passwd (winpt_key_t k, HW
1046      }      }
1047      new_pass = request_passphrase2 (_("New Passphrase" ), 1, &cancel);      new_pass = request_passphrase2 (_("New Passphrase" ), 1, &cancel);
1048      if (cancel) {      if (cancel) {
1049          free_if_alloc (old_pass);          sfree_if_alloc (old_pass);
1050          return FALSE;          return FALSE;
1051      }      }
1052    
1053        if (strlen (new_pass) == 0) {
1054            cancel = msg_box (dlg, _("Are you sure that you really don't want a passphrase?\n"
1055                                     "This is propably a bad idea, still proceed?"),
1056                                _("Key Edit"), MB_WARN_ASK);
1057            if (cancel != IDYES) {
1058                sfree_if_alloc (old_pass);
1059                sfree_if_alloc (new_pass);
1060                return FALSE;
1061            }
1062        }
1063    
1064      if (is_8bit_string (new_pass)) {      if (is_8bit_string (new_pass)) {
1065          msg_box (dlg, _("The passphrase contains 8-bit characters.\n"          msg_box (dlg, _("The passphrase contains 8-bit characters.\n"
1066                           "It is not suggested to use charset specific characters."),                           "It is not suggested to use charset specific characters."),
1067                           _("Key Edit"), MB_ERR);                           _("Key Edit"), MB_ERR);
1068          free_if_alloc (old_pass);          sfree_if_alloc (old_pass);
1069          free_if_alloc (new_pass);          sfree_if_alloc (new_pass);
1070          return FALSE;          return FALSE;
1071      }      }
1072    
1073      ke = create_GpgKeyEdit (k->keyid);      ke = create_GpgKeyEdit (k->keyid);
1074      ke->setPassphrase (k->is_protected? old_pass : NULL);      ke->setPassphrase (k->is_protected? old_pass : NULL);
1075      err = ke->changePassphrase (new_pass, 0);      if (!k->is_protected)
1076            ke->setNoPassphrase (true);
1077        err = ke->changePassphrase (new_pass, 1);
1078      if (err)      if (err)
1079          msg_box (dlg, gpgme_strerror (err), _("Change Passwd"), MB_ERR);          msg_box (dlg, gpgme_strerror (err), _("Change Passwd"), MB_ERR);
1080      else      else
# Line 1099  subkey_list_init (HWND dlg, winpt_key_t Line 1120  subkey_list_init (HWND dlg, winpt_key_t
1120      for (i = 0; cols[i].fieldname != NULL; i++)      for (i = 0; cols[i].fieldname != NULL; i++)
1121          listview_add_column (lv, &cols[i]);          listview_add_column (lv, &cols[i]);
1122                    
1123      for( i = 0; i < nkeys; i++ ) {      for (i = 0; i < nkeys; i++) {
1124          listview_add_item( lv, "" );          listview_add_item (lv, "");
1125          listview_add_sub_item( lv, 0, 1, "" );          listview_add_sub_item (lv, 0, 1, "");
1126          memset( &lvi, 0, sizeof lvi );          memset (&lvi, 0, sizeof (lvi));
1127          lvi.mask = LVIF_PARAM;            lvi.mask = LVIF_PARAM;  
1128          lvi.lParam = (LPARAM)k->ctx;          lvi.lParam = (LPARAM)k->ext;
1129          if( ListView_SetItem( lv->ctrl, &lvi ) == FALSE )          if( ListView_SetItem (lv->ctrl, &lvi) == FALSE)
1130              return NULL;              return NULL;
1131      }      }
1132                    
1133      listview_set_ext_style( lv );      listview_set_ext_style( lv );
# Line 1725  showpref_dlg_proc (HWND dlg, UINT msg, W Line 1746  showpref_dlg_proc (HWND dlg, UINT msg, W
1746          SetDlgItemText (dlg, IDC_SHOWPREF_UIDHINT, _("user ID:"));          SetDlgItemText (dlg, IDC_SHOWPREF_UIDHINT, _("user ID:"));
1747          SetWindowText (dlg, _("Key Preferences"));          SetWindowText (dlg, _("Key Preferences"));
1748          SetForegroundWindow (dlg);          SetForegroundWindow (dlg);
1749            center_window (dlg, cb->parent);
1750          break;          break;
1751    
1752      case WM_COMMAND:      case WM_COMMAND:
# Line 1757  do_editkey_showpref (winpt_key_t k, HWND Line 1779  do_editkey_showpref (winpt_key_t k, HWND
1779          return FALSE;          return FALSE;
1780      }      }
1781      memset (&cb, 0, sizeof (cb));      memset (&cb, 0, sizeof (cb));
1782        cb.parent = dlg;
1783      cb.opaque = k->ctx;      cb.opaque = k->ctx;
1784      cb.keyid = k->keyid;      cb.keyid = k->keyid;
1785      cb.lv = lv;      cb.lv = lv;
# Line 2163  keyedit_main_dlg_proc (HWND dlg, UINT ms Line 2186  keyedit_main_dlg_proc (HWND dlg, UINT ms
2186      case WM_NOTIFY:      case WM_NOTIFY:
2187          NMHDR * notify;          NMHDR * notify;
2188          notify = (NMHDR *)lparam;          notify = (NMHDR *)lparam;
2189          if (notify && notify->code == NM_DBLCLK &&          if (!notify || notify->idFrom != IDC_KEYEDIT_UIDLIST)
2190              notify->idFrom == IDC_KEYEDIT_UIDLIST)              break;
2191            if (notify->code == NM_DBLCLK)
2192              do_editkey_showpref (k, dlg, lvuid);              do_editkey_showpref (k, dlg, lvuid);
2193            if (notify->code == NM_RCLICK && k->key_pair) {
2194                HMENU hm = LoadMenu (glob_hinst, MAKEINTRESOURCE (IDR_WINPT_KEYEDIT));
2195                HMENU popup = GetSubMenu (hm, 0);
2196                POINT p;
2197    
2198                GetCursorPos (&p);
2199                TrackPopupMenu (popup, TPM_RIGHTALIGN, p.x, p.y, 0, dlg, NULL);
2200                DestroyMenu (hm);
2201                DestroyMenu (popup);
2202            }
2203          break;          break;
2204    
2205      case WM_COMMAND:      case WM_COMMAND:
2206          switch( LOWORD( wparam ) ) {          switch (LOWORD (wparam)) {
2207          case IDOK:          case IDOK:
2208              cmd = lookup_cmd (dlg);              cmd = lookup_cmd (dlg);
2209              if (cmd == LB_ERR) {              if (cmd == LB_ERR) {
# Line 2203  keyedit_main_dlg_proc (HWND dlg, UINT ms Line 2237  keyedit_main_dlg_proc (HWND dlg, UINT ms
2237              case CMD_LSIGN: do_editkey_sign_userid (k, dlg,              case CMD_LSIGN: do_editkey_sign_userid (k, dlg,
2238                                                      lvuid, cmd);                                                      lvuid, cmd);
2239                              break;                              break;
2240              case CMD_CLEAN: do_editkey_clean (k, dlg);              case CMD_CLEAN: do_editkey_clean (k, dlg); break;
2241              case CMD_MINIMIZE: do_editkey_minimize (k, dlg);              case CMD_MINIMIZE: do_editkey_minimize (k, dlg); break;
2242              }              }
2243              break;              break;          
2244                
2245          case IDCANCEL:          case IDCANCEL:
2246              EndDialog (dlg, FALSE);              EndDialog (dlg, FALSE);
2247              break;              break;
# Line 2219  keyedit_main_dlg_proc (HWND dlg, UINT ms Line 2253  keyedit_main_dlg_proc (HWND dlg, UINT ms
2253          case IDC_KEYEDIT_REVOKE:          case IDC_KEYEDIT_REVOKE:
2254              gen_desig_revoke_cert (k, dlg);              gen_desig_revoke_cert (k, dlg);
2255              break;              break;
2256    
2257            case ID_KEYEDIT_UID_PRIM:
2258                do_editkey_primary (k, dlg, lvuid);
2259                break;
2260    
2261            case ID_KEYEDIT_UID_DEL:
2262                do_editkey_deluid (k, dlg, lvuid);
2263                break;
2264    
2265            case ID_KEYEDIT_UID_REV:
2266                do_editkey_revuid (k, dlg, lvuid);
2267                break;
2268          }          }
2269          break;          break;
2270      }      }

Legend:
Removed from v.211  
changed lines
  Added in v.220

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26