From af6a13021057009105e7248ddff23529044344ba Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Sun, 23 Jun 2019 18:09:27 -0500 Subject: [PATCH] Move scope controls into scroll area FIXME: Timer used to update scroll view width, should tie into layout system somehow --- clients/tde/src/part/scope/layout.ui | 233 +++++++++++++++------------ clients/tde/src/part/scope/part.cpp | 18 +++ clients/tde/src/part/scope/part.h | 2 + 3 files changed, 148 insertions(+), 105 deletions(-) diff --git a/clients/tde/src/part/scope/layout.ui b/clients/tde/src/part/scope/layout.ui index e14cb65..16b0d0c 100644 --- a/clients/tde/src/part/scope/layout.ui +++ b/clients/tde/src/part/scope/layout.ui @@ -78,126 +78,128 @@ - + - groupOscilloscopeCaptureControls + oscilloscopeControlCanvas - - Capture Controls - - - - - runControlStartButton - - - Run - - - - - runControlStopButton - - - Stop - - - - - timebaseControlLayoutWidget - - - - - traceControlLayoutWidget - - - - - - - groupOscilloscopeAnalysisControls - - - Analysis Controls + + + 0 + 7 + 0 + 1 + - - - - postProcessTraceControlLayoutWidget - - - - - mathTraceControlLayoutWidget - - - - + - groupOscilloscopeAcquisitionControls - - - Acquisition Controls + oscilloscopeControlCanvasWidget - + - acqStart - - - Start Acquisition - + groupOscilloscopeCaptureControls + + + Capture Controls + + + + + runControlStartButton + + + Run + + + + + runControlStopButton + + + Stop + + + + + timebaseControlLayoutWidget + + + + + traceControlLayoutWidget + + + - + - acqStop - - - Stop Acquisition - + groupOscilloscopeAnalysisControls + + + Analysis Controls + + + + + postProcessTraceControlLayoutWidget + + + + + mathTraceControlLayoutWidget + + + - + - waveformSave - - - Save Waveforms - + groupOscilloscopeAcquisitionControls + + + Acquisition Controls + + + + + acqStart + + + Start Acquisition + + + + + acqStop + + + Stop Acquisition + + + + + waveformSave + + + Save Waveforms + + + + + waveformRecall + + + Recall Waveforms + + + - + - waveformRecall + groupOscilloscopeTestNotes - - Recall Waveforms - - - - - - - groupOscilloscopeTestNotes - - - Notes - - - - 5 - 3 - 0 - 1 - - - - - - userNotes - - - + + Notes @@ -207,7 +209,28 @@ 1 + + + + userNotes + + + + + + + 5 + 3 + 0 + 1 + + + + + + 0 + diff --git a/clients/tde/src/part/scope/part.cpp b/clients/tde/src/part/scope/part.cpp index e5ebfa4..401fd66 100644 --- a/clients/tde/src/part/scope/part.cpp +++ b/clients/tde/src/part/scope/part.cpp @@ -529,6 +529,9 @@ ScopePart::ScopePart( TQWidget *parentWidget, const char *widgetName, TQObject * connect(m_forcedUpdateTimer, SIGNAL(timeout()), this, SLOT(mainEventLoop())); m_updateTimeoutTimer = new TQTimer(this); connect(m_updateTimeoutTimer, SIGNAL(timeout()), this, SLOT(mainEventLoop())); + m_controlWidgetViewFixupTimer = new TQTimer(this); + connect(m_controlWidgetViewFixupTimer, SIGNAL(timeout()), this, SLOT(controlWidgetViewSetWidth())); + m_controlWidgetViewFixupTimer->start(100, FALSE); // Initialize data m_hdivs = 0; @@ -579,6 +582,10 @@ ScopePart::ScopePart( TQWidget *parentWidget, const char *widgetName, TQObject * // Create widgets m_base = new ScopeBase(widget()); + m_base->oscilloscopeControlCanvas->addChild(m_base->oscilloscopeControlCanvasWidget); + m_base->oscilloscopeControlCanvas->setHScrollBarMode(TQScrollView::AlwaysOff); + m_base->oscilloscopeControlCanvas->setFrameShape(TQFrame::NoFrame); + m_base->oscilloscopeControlCanvas->setMargin(0); m_traceControlWidgetGrid = new TQGridLayout(m_base->traceControlLayoutWidget); m_postProcessTraceControlWidgetGrid = new TQGridLayout(m_base->postProcessTraceControlLayoutWidget); m_mathTraceControlWidgetGrid = new TQGridLayout(m_base->mathTraceControlLayoutWidget); @@ -643,6 +650,8 @@ ScopePart::ScopePart( TQWidget *parentWidget, const char *widgetName, TQObject * } ScopePart::~ScopePart() { + m_controlWidgetViewFixupTimer->stop(); + if (m_instrumentMutex->locked()) { printf("[WARNING] Exiting when data transfer still in progress!\n\r"); fflush(stdout); } @@ -2471,6 +2480,15 @@ void ScopePart::updateTraceControlWidgets() { } } +void ScopePart::controlWidgetViewSetWidth() { + if (m_base->oscilloscopeControlCanvas->contentsHeight() > m_base->oscilloscopeControlCanvas->height()) { + m_base->oscilloscopeControlCanvas->setFixedWidth(m_base->oscilloscopeControlCanvas->contentsWidth() + m_base->oscilloscopeControlCanvas->verticalScrollBar()->sliderRect().width()); + } + else { + m_base->oscilloscopeControlCanvas->setFixedWidth(m_base->oscilloscopeControlCanvas->contentsWidth()); + } +} + void ScopePart::traceControlEnableChanged(bool enabled) { int i; int channel = -1; diff --git a/clients/tde/src/part/scope/part.h b/clients/tde/src/part/scope/part.h index 2aa2130..46e2f5d 100644 --- a/clients/tde/src/part/scope/part.h +++ b/clients/tde/src/part/scope/part.h @@ -217,6 +217,7 @@ namespace RemoteLab void postInit(); void processLockouts(); void updateGraticule(); + void controlWidgetViewSetWidth(); void connectionFinishedCallback(); void disconnectFromServerCallback(); void connectionStatusChangedCallback(); @@ -258,6 +259,7 @@ namespace RemoteLab int m_commHandlerCommandState; TQTimer* m_forcedUpdateTimer; TQTimer* m_updateTimeoutTimer; + TQTimer* m_controlWidgetViewFixupTimer; bool m_connectionActiveAndValid; unsigned char m_tickerState; TQ_INT16 m_maxNumberOfTraces;