| 391 | } |
| 392 | |
| 393 | void XcaTreeView::contextMenu(QContextMenuEvent *e, QMenu *parent, int col) |
| 394 | { |
| 395 | int shown = 0; |
| 396 | tipMenu *menu, *dn, *v3ext, *current, *v3ns, *keyprop; |
| 397 | QAction *a; |
| 398 | dbheader *hd; |
| 399 | dbheaderList allHeaders = basemodel->getAllHeaders(); |
| 400 | |
| 401 | menu = new tipMenu(QString(), mainwin); |
| 402 | dn = new tipMenu(tr("Subject entries"), mainwin); |
| 403 | v3ext = new tipMenu(tr("X509v3 Extensions"), mainwin); |
| 404 | v3ns = new tipMenu(tr("Netscape extensions"), mainwin); |
| 405 | keyprop = new tipMenu(tr("Key properties"), mainwin); |
| 406 | menu->addAction(tr("Reset"), basemodel, SLOT(columnResetDefaults())); |
| 407 | if (col >= 0 && col < allHeaders.size()) { |
| 408 | curr_hd = allHeaders[col]; |
| 409 | menu->addAction(tr("Hide Column"), this,SLOT(columnRemove())); |
| 410 | if (curr_hd->id > 0) |
| 411 | menu->addAction(tr("Details"), this, |
| 412 | SLOT(headerDetails())); |
| 413 | } |
| 414 | menu->addSeparator(); |
| 415 | foreach(hd, allHeaders) { |
| 416 | switch (hd->type) { |
| 417 | case dbheader::hd_x509name: |
| 418 | current = dn; |
| 419 | break; |
| 420 | case dbheader::hd_v3ext: |
| 421 | current = v3ext; |
| 422 | break; |
| 423 | case dbheader::hd_v3ext_ns: |
| 424 | if (Settings["disable_netscape"]) |
| 425 | continue; |
| 426 | current = v3ns; |
| 427 | break; |
| 428 | case dbheader::hd_key: |
| 429 | current = keyprop; |
| 430 | break; |
| 431 | default: |
| 432 | current = menu; |
| 433 | break; |
| 434 | } |
| 435 | a = current->addAction(hd->getName()); |
| 436 | a->setCheckable(true); |
| 437 | a->setChecked(hd->show); |
| 438 | a->setToolTip(hd->getTooltip()); |
| 439 | hd->action = a; |
| 440 | } |
| 441 | |
| 442 | menu->addSeparator(); |
| 443 | |
| 444 | addSubmenu(menu, dn); |
| 445 | addSubmenu(v3ext, v3ns); |
| 446 | addSubmenu(menu, v3ext); |
| 447 | addSubmenu(menu, keyprop); |
| 448 | |
| 449 | |
| 450 | if (parent) { |
nothing calls this directly
no test coverage detected