예제 #1
0
void myGauge2::paintEvent(QPaintEvent *)
{
    QPainter painter(this);
    painter.setRenderHints(QPainter::Antialiasing|QPainter::TextAntialiasing);
    resetVariables(&painter);
    drawOuterCircle(&painter);
    drawInnerCircle(&painter);
    drawColorPie(&painter);
    drawCoverCircle(&painter);
    drawMark(&painter);
    drawIndicator(&painter);
    drawCoverBall(&painter);
    drawTextRect(&painter);
    painter.end();
}
void PSV_CircularIndicatorItem::updateItem()
{
    m_outerRadius = PSV_Public::getMinLenght(m_rect) * 0.5;
    m_markFont.setPointSizeF(PSV_Public::getMinLenght(m_rect) * 0.03);
    m_valueFont.setPointSizeF(PSV_Public::getMinLenght(m_rect) * 0.04);
    int zValue = 0;
    drawOuterCircle(zValue++);
    drawInnerCircle(zValue++);
    drawColorPie(zValue++);
    drawCoverCircle(zValue++);
    drawMark(zValue++);
    drawIndicator(zValue++);
    drawCoverBall(zValue++);
    drawTextRect(zValue++);
    //=====================================
}
예제 #3
0
void myGauge1::paintEvent(QPaintEvent *)
{
    QPainter painter;
    painter.begin(this);
    painter.setRenderHints(QPainter::Antialiasing|QPainter::TextAntialiasing);

    resetVariables(&painter);
    drawOuterCircle(&painter);
    drawInnerCircle(&painter);
    drawColorPies(&painter);
    drawGraph(&painter);
    drawCoverLines(&painter);
    drawCoverCircle(&painter);
    drawMarkAndText(&painter);

    drawTextRect(&painter);

    painter.end();
}
예제 #4
0
PrintSheet::PrintSheet( DigiDoc *doc, QPrinter *printer )
:	QPainter( printer )
,	p( printer )
{
	printer->setOrientation( QPrinter::Portrait );

	left		= p->pageRect().left();
	margin		= left;
	right		= p->pageRect().right() - 2*margin;
	top			= p->pageRect().top();
	bottom		= p->pageRect().y() + p->pageRect().height() - 2*margin;

#ifdef Q_OS_MAC
	scale( 0.8, 0.8 );
	right /= 0.8;
	bottom /= 0.8;
#endif

	QFont text = font();
	text.setFamily( "Arial, Liberation Sans, Helvetica, sans-serif" );
	text.setPixelSize( 12 );

	QFont head = text;
	QFont sHead = text;
	head.setPixelSize( 28 );
	sHead.setPixelSize( 18 );

	QPen oPen = pen();
	QPen sPen = pen();
	QPen hPen = pen();
	hPen.setWidth( 2 );
	sPen.setWidth( 1 );
	sPen.setStyle( Qt::DotLine );

	setFont( head );
	QRect rect( left, top, right, 60 );
	drawText( rect, Qt::TextWordWrap, tr("VALIDITY CONFIRMATION SHEET"), &rect );
	setPen( hPen );
	drawLine( left, rect.bottom(), right, rect.bottom() );
	top += rect.height() + 30;

	setFont( sHead );
	drawText( left, top, tr("SIGNED FILES") );
	setPen( sPen );
	drawLine( left, top+3, right, top+3 );
	top += 30;

	setFont( text );
	setPen( oPen );
	drawText( left, top, tr("FILE NAME") );
	drawText( right-150, top, tr("FILE SIZE") );
	for( int i = 0; i < doc->documentModel()->rowCount(); ++i )
	{
		int fileHeight = drawTextRect( QRect( left, top+5, right - left - 150, 20 ),
			doc->documentModel()->index( i, 0 ).data().toString() );
		drawTextRect( QRect( right-150, top+5, 150, fileHeight ),
			doc->documentModel()->index( i, 2 ).data().toString() );
		top += fileHeight;
		newPage( 50 );
	}
	top += 35;

	newPage( 50 );
	setFont( sHead );
	drawText( left, top, tr("SIGNERS") );
	setPen( sPen );
	drawLine( left, top+3, right, top+3 );
	top += 30;

	setFont( text );
	setPen( oPen );

	int i = 1;
	Q_FOREACH( const DigiDocSignature &sig, doc->signatures() )
	{
		const SslCertificate cert = sig.cert();
		bool tempel = cert.isTempel();

		newPage( 50 );
		drawText( left, top, tr("NO.") );
		drawText( left+40, top, tempel ? tr( "COMPANY" ) : tr( "NAME" ) );
		drawText( right-300, top, tempel ? tr("REGISTER CODE") : tr("PERSONAL CODE") );
		drawText( right-170, top, tr("TIME") );
		top += 5;

		int nameHeight = drawTextRect( QRect( left+40, top, right - left - 340, 20 ),
			cert.toString( cert.showCN() ? "CN" : "GN SN" ) );
		drawTextRect( QRect( left, top, 40, nameHeight ),
			QString::number( i++ ) );
		drawTextRect( QRect( right-300, top, 130, nameHeight ),
			cert.subjectInfo( "serialNumber" ) );
		drawTextRect( QRect( right-170, top, 170, nameHeight ),
			DateTime( sig.dateTime() ).toStringZ( "dd.MM.yyyy hh:mm:ss" ) );
		top += 20 + nameHeight;

		QString valid;
		switch( sig.validate() )
		{
		case DigiDocSignature::Valid: valid.append( tr("SIGNATURE IS VALID") ); break;
		case DigiDocSignature::Invalid: valid.append( tr("SIGNATURE IS NOT VALID") ); break;
		case DigiDocSignature::Unknown: valid.append( tr("UNKNOWN") ); break;
		}
		if( sig.isTest() )
			valid += " " + tr("(NB! TEST SIGNATURE)");
		customText( tr("VALIDITY OF SIGNATURE"), valid );
		customText( tr("ROLE / RESOLUTION"), sig.role() );
		customText( tr("PLACE OF CONFIRMATION (CITY, STATE, ZIP, COUNTRY)"), sig.location() );
		customText( tr("SERIAL NUMBER OF SIGNER CERTIFICATE"), cert.serialNumber() );

		newPage( 50 );
		drawText( left, top, tr("ISSUER OF CERTIFICATE") );
		drawText( left+207, top, tr("HASH VALUE OF ISSUER'S PUBLIC KEY") );
		top += 5;
		int issuerHeight = drawTextRect( QRect( left, top, 200, 20 ),
			cert.issuerInfo( QSslCertificate::CommonName ) );
		drawTextRect( QRect( left+200, top, right - left - 200, issuerHeight ),
			cert.toHex( cert.authorityKeyIdentifier() ) );
		top += 20 + issuerHeight;

		customText( tr("HASH VALUE OF VALIDITY CONFIRMATION (OCSP RESPONSE)"), cert.toHex( sig.ocspDigestValue() ) );
		top += 15;
	}
	save();
	newPage( 50 );
	QTextDocument textDoc;
	textDoc.setTextWidth( right - margin );
	textDoc.setHtml( tr("The print out of files listed in the section <b>\"Signed Files\"</b> "
						"are inseparable part of this Validity Confirmation Sheet.") );
	translate( QPoint( left, top - 30) );
	textDoc.drawContents( this , QRectF( 0, 0, right - margin, 40) );
	top += 30;
	restore();

	newPage( 90 );
	drawText( left+3, top, tr("NOTES") );
	top += 10;
	drawRect( left, top, right - margin, 80 );

	end();
}