Branch: master

c866f917 2019-04-06 22:21:40 Timothy Pearson
Enhance horizontal cursor labels in scope zoom widget
M clients/tde/src/part/scope/part.cpp
M clients/tde/src/widgets/tracewidget.cpp
M clients/tde/src/widgets/tracewidget.h

clients/tde/src/part/scope/part.cpp

diff --git a/clients/tde/src/part/scope/part.cpp b/clients/tde/src/part/scope/part.cpp
index 1995e85..44dbb84 100644
--- a/clients/tde/src/part/scope/part.cpp
+++ b/clients/tde/src/part/scope/part.cpp
@@ -565,6 +565,7 @@
 	m_traceWidget->setCursorActiveTraceList(4, activeTraces);
 	m_traceWidget->setZoomBoxEnabled(true);
 
+	m_base->traceZoomWidget->setHorizontalRangeModeAbsolute(false);
 	m_base->traceZoomWidget->setSizePolicy(TQSizePolicy(TQSizePolicy::MinimumExpanding, TQSizePolicy::MinimumExpanding));
 	connect(m_traceWidget, SIGNAL(zoomBoxChanged(const TQRectF&)), this, SLOT(updateZoomWidgetLimits(const TQRectF&)));
 	connect(m_traceWidget, SIGNAL(offsetChanged(uint, double)), m_base->traceZoomWidget, SLOT(setTraceOffset(uint, double)));

clients/tde/src/widgets/tracewidget.cpp

diff --git a/clients/tde/src/widgets/tracewidget.cpp b/clients/tde/src/widgets/tracewidget.cpp
index 6ce3fa2..f875571 100644
--- a/clients/tde/src/widgets/tracewidget.cpp
+++ b/clients/tde/src/widgets/tracewidget.cpp
@@ -1374,7 +1374,12 @@
 #if 0
 			m_base->m_traceArray[trace]->graphStatusLabel->setText(TQString("<qt><nobr>%1<br>@%2,%3</qt>").arg(m_base->m_traceArray[trace]->traceName).arg(TraceWidget::prettyFormat(realCursorXPosition, horizontal_range, m_base->m_traceArray[trace]->horizontalUnits)).arg(TraceWidget::prettyFormat(realCursorYPosition, vertical_range, m_base->m_traceArray[trace]->verticalUnits)));
 #else
-			m_base->m_traceArray[trace]->graphStatusLabel->setText(TQString("<qt><nobr>@%2,%3</qt>").arg(TraceWidget::prettyFormat(realCursorXPosition, (m_base->m_useAbsoluteHorizontalRange)?m_base->m_traceArray[trace]->rightEdge:horizontal_range, m_base->m_traceArray[trace]->horizontalUnits)).arg(TraceWidget::prettyFormat(realCursorYPosition, vertical_range, m_base->m_traceArray[trace]->verticalUnits)));
+			if (m_base->m_useAbsoluteHorizontalRange) {
+				m_base->m_traceArray[trace]->graphStatusLabel->setText(TQString("<qt><nobr>@%2,%3</qt>").arg(TraceWidget::prettyFormat(realCursorXPosition, m_base->m_traceArray[trace]->rightEdge, m_base->m_traceArray[trace]->horizontalUnits)).arg(TraceWidget::prettyFormat(realCursorYPosition, vertical_range, m_base->m_traceArray[trace]->verticalUnits)));
+			}
+			else {
+				m_base->m_traceArray[trace]->graphStatusLabel->setText(TQString("<qt><nobr>@%2[%3+%4],%5</qt>").arg(TraceWidget::prettyFormat(realCursorXPosition, m_base->m_traceArray[trace]->rightEdge, m_base->m_traceArray[trace]->horizontalUnits)).arg(TraceWidget::prettyFormat(m_base->m_traceArray[trace]->leftEdge, m_base->m_traceArray[trace]->rightEdge, m_base->m_traceArray[trace]->horizontalUnits)).arg(TraceWidget::prettyFormat(realCursorXPosition - m_base->m_traceArray[trace]->leftEdge, horizontal_range, m_base->m_traceArray[trace]->horizontalUnits)).arg(TraceWidget::prettyFormat(realCursorYPosition, vertical_range, m_base->m_traceArray[trace]->verticalUnits)));
+			}
 #endif
 			m_base->m_traceArray[trace]->graphStatusLabelInner->setText(m_base->m_traceArray[trace]->graphStatusLabel->text());
 		}
@@ -2469,6 +2474,14 @@
 	setTraceOffset(traceNumber, offset, false);
 }
 
+bool TraceWidget::horizontalRangeModeAbsolute() {
+	return m_useAbsoluteHorizontalRange;
+}
+
+void TraceWidget::setHorizontalRangeModeAbsolute(bool absolute) {
+	m_useAbsoluteHorizontalRange = absolute;
+}
+
 void TraceWidget::setTraceTextOffset(uint traceNumber, double offset, bool deferUpdate) {
 	VERIFY_TRACE_ARRAY_SIZE
 

clients/tde/src/widgets/tracewidget.h

diff --git a/clients/tde/src/widgets/tracewidget.h b/clients/tde/src/widgets/tracewidget.h
index 2f58891..7f63307 100644
--- a/clients/tde/src/widgets/tracewidget.h
+++ b/clients/tde/src/widgets/tracewidget.h
@@ -320,6 +320,9 @@
 		double traceTextOffset(uint traceNumber);
 		void setTraceTextOffset(uint traceNumber, double offset, bool deferUpdate);
 
+		bool horizontalRangeModeAbsolute();
+		void setHorizontalRangeModeAbsolute(bool absolute=true);
+
 		bool userIsInteractingWithCursor();
 
 		static TQString prettyFormat(double value, double rangeDetectValue, TQString baseUnits, unsigned int precision=3);