mirror of
				https://github.com/JakubMelka/PDF4QT.git
				synced 2025-06-05 21:59:17 +02:00 
			
		
		
		
	Finishing of dimension plugin
This commit is contained in:
		| @@ -375,7 +375,31 @@ void PDFViewerMainWindow::loadPlugins() | |||||||
|  |  | ||||||
|                 menu->addAction(action); |                 menu->addAction(action); | ||||||
|                 toolbarButton->menu()->addAction(action); |                 toolbarButton->menu()->addAction(action); | ||||||
|                 connect(action, &QAction::triggered, toolbarButton, [action, toolbarButton](){ toolbarButton->setDefaultAction(action); }); |  | ||||||
|  |                 auto onPluginActionTriggered = [toolbarButton, action]() | ||||||
|  |                 { | ||||||
|  |                     if (action->isEnabled()) | ||||||
|  |                     { | ||||||
|  |                         toolbarButton->setDefaultAction(action); | ||||||
|  |                     } | ||||||
|  |                 }; | ||||||
|  |                 auto onPluginActionStateChanged = [toolbarButton, action]() | ||||||
|  |                 { | ||||||
|  |                     if (!action->isEnabled() && toolbarButton->defaultAction() == action) | ||||||
|  |                     { | ||||||
|  |                         for (QAction* action : toolbarButton->menu()->actions()) | ||||||
|  |                         { | ||||||
|  |                             if (action->isEnabled()) | ||||||
|  |                             { | ||||||
|  |                                 toolbarButton->setDefaultAction(action); | ||||||
|  |                                 break; | ||||||
|  |                             } | ||||||
|  |                         } | ||||||
|  |                     } | ||||||
|  |                 }; | ||||||
|  |  | ||||||
|  |                 connect(action, &QAction::triggered, toolbarButton, onPluginActionTriggered); | ||||||
|  |                 connect(action, &QAction::changed, toolbarButton, onPluginActionStateChanged); | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -290,6 +290,13 @@ void DimensionsPlugin::drawPage(QPainter* painter, | |||||||
|                 painter->drawLine(line1); |                 painter->drawLine(line1); | ||||||
|                 painter->drawLine(line2); |                 painter->drawLine(line2); | ||||||
|  |  | ||||||
|  |                 qreal startAngle = line1.angle() * 16; | ||||||
|  |                 qreal angleLength = dimension.getMeasuredValue() * 16; | ||||||
|  |  | ||||||
|  |                 QRectF rect(-maxLength * 0.5, -maxLength * 0.5, maxLength, maxLength); | ||||||
|  |                 rect.translate(line1.p1()); | ||||||
|  |                 painter->drawArc(rect, startAngle - angleLength, angleLength); | ||||||
|  |  | ||||||
|                 QPen penPoint(Qt::black); |                 QPen penPoint(Qt::black); | ||||||
|                 penPoint.setCapStyle(Qt::RoundCap); |                 penPoint.setCapStyle(Qt::RoundCap); | ||||||
|                 penPoint.setWidthF(pointSize); |                 penPoint.setWidthF(pointSize); | ||||||
| @@ -299,6 +306,14 @@ void DimensionsPlugin::drawPage(QPainter* painter, | |||||||
|                 painter->drawPoint(line1.p2()); |                 painter->drawPoint(line1.p2()); | ||||||
|                 painter->drawPoint(line2.p2()); |                 painter->drawPoint(line2.p2()); | ||||||
|  |  | ||||||
|  |                 QMatrix textMatrix; | ||||||
|  |                 textMatrix.translate(line1.x1(), line1.y1()); | ||||||
|  |                 textMatrix.rotate(-line1.angle() + dimension.getMeasuredValue() * 0.5); | ||||||
|  |  | ||||||
|  |                 QPointF textPoint = textMatrix.map(QPointF(maxLength * 0.25, 0.0)); | ||||||
|  |                 QString text = QString("%1 %2").arg(locale.toString(dimension.getMeasuredValue() * m_angleUnit.scale, 'f', 2), m_angleUnit.symbol); | ||||||
|  |                 painter->drawText(textPoint, text); | ||||||
|  |  | ||||||
|                 break; |                 break; | ||||||
|             } |             } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user