xca/widgets/clicklabel.cpp
Christian Hohnstaedt 1bc340a0ef Close #104: Also show sha256 digests of public keys
Print digest of public keys in the key details in different formats:

Print SHA256 SSH digest as used to by SSH users:
	ssh-keygen -l -f ~/.ssh/id_rsa.pub

Print SHA1 X509 key digest as shown in the
	Subject key identifier of a certificate

Print SHA256 digest as in:
	openssl pkey -pubout -outform DER < key.pem | sha256sum
as requested by this issue.

Refactored digesting functionality by a generic Digest()
function working with QByteArrays.
The function formatHash() now also expects a QByteArray input.
2019-03-14 06:35:24 +01:00

85 lines
1.6 KiB
C++

/* vi: set sw=4 ts=4:
*
* Copyright (C) 2001 - 2007 Christian Hohnstaedt.
*
* All rights reserved.
*/
#include "clicklabel.h"
#include <QToolTip>
#include <QPalette>
#include <QColor>
void DoubleClickLabel::mouseDoubleClickEvent(QMouseEvent * e)
{
QWidget::mouseDoubleClickEvent(e);
if (clicktext.isEmpty())
emit doubleClicked(text());
else
emit doubleClicked(clicktext);
}
void DoubleClickLabel::setClickText(QString s)
{
clicktext = s;
}
ClickLabel::ClickLabel(QWidget *parent)
:DoubleClickLabel(parent)
{
QFont fnt( font() );
fnt.setBold(true);
setFont( fnt );
setFrameShape( QLabel::Panel );
setFrameShadow( QLabel::Sunken );
setAlignment( Qt::AlignCenter );
setToolTip( tr("Double click for details") );
setAutoFillBackground(true);
QPalette pal = palette();
QColor col = QColor(0xff, 0xff, 0xff);
pal.setColor(QPalette::Normal, QPalette::Window, col );
pal.setColor(QPalette::Inactive, QPalette::Window, col );
setPalette( pal );
setTextFormat(Qt::PlainText);
}
void ClickLabel::setColor(const QColor &col)
{
QPalette pal = palette();
pal.setColor(QPalette::Normal, QPalette::WindowText, col );
pal.setColor(QPalette::Inactive, QPalette::WindowText, col );
setPalette( pal );
}
void ClickLabel::setRed()
{
setColor( QColor( 192, 32, 32) );
}
void ClickLabel::setGreen()
{
setColor( QColor( 32, 192, 32) );
}
void ClickLabel::disableToolTip()
{
setToolTip(QString());
}
CopyLabel::CopyLabel(QWidget *parent)
:DoubleClickLabel(parent)
{
setFrameStyle(QFrame::StyledPanel);
setTextFormat(Qt::PlainText);
#if QT_VERSION >= 0x040200
setTextInteractionFlags(
Qt::TextSelectableByMouse |
Qt::TextSelectableByKeyboard
);
#endif
}