Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: ngscopeclient/scopehal-apps
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: bdd9e321389e
Choose a base ref
...
head repository: ngscopeclient/scopehal-apps
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 67ea814c0305
Choose a head ref
  • 1 commit
  • 4 files changed
  • 1 contributor

Commits on Sep 7, 2020

  1. Fixed bug where clicking a trace in the protocol analyzer from a hist…

    …orical waveform moved to the new history point but did not properly reload cached waveforms for display
    azonenberg committed Sep 7, 2020
    Copy the full SHA
    67ea814 View commit details
Showing with 15 additions and 10 deletions.
  1. +1 −1 lib
  2. +6 −8 src/glscopeclient/OscilloscopeWindow.cpp
  3. +4 −0 src/glscopeclient/ProtocolAnalyzerWindow.cpp
  4. +4 −1 src/glscopeclient/WaveformArea_events.cpp
2 changes: 1 addition & 1 deletion lib
Submodule lib updated from 36a191 to 7f6da2
14 changes: 6 additions & 8 deletions src/glscopeclient/OscilloscopeWindow.cpp
Original file line number Diff line number Diff line change
@@ -1862,7 +1862,7 @@ void OscilloscopeWindow::ClearPersistence(WaveformGroup* group, bool geometry_di
{
//Clear persistence on waveform areas
auto area = dynamic_cast<WaveformArea*>(a);
if(area != NULL)
if(area != NULL && w->get_realized())
areas.push_back(area);
}
}
@@ -1908,11 +1908,8 @@ void OscilloscopeWindow::ClearPersistence(WaveformGroup* group, bool geometry_di

void OscilloscopeWindow::ClearAllPersistence()
{
for(auto w : m_waveformAreas)
{
w->ClearPersistence();
w->queue_draw();
}
for(auto g : m_waveformGroups)
ClearPersistence(g, true, false);
}

void OscilloscopeWindow::OnQuit()
@@ -2335,9 +2332,10 @@ void OscilloscopeWindow::OnHistoryUpdated(bool refreshAnalyzers)
//Update the views
for(auto w : m_waveformAreas)
{
w->ClearPersistence();
w->OnWaveformDataReady();
if(w->get_realized())
w->OnWaveformDataReady();
}
ClearAllPersistence();

if(refreshAnalyzers)
{
4 changes: 4 additions & 0 deletions src/glscopeclient/ProtocolAnalyzerWindow.cpp
Original file line number Diff line number Diff line change
@@ -215,6 +215,10 @@ void ProtocolAnalyzerWindow::FillOutRow(
char t[4];
snprintf(t, sizeof(t), "%02x ", b);
sdata += t;

//Truncate really long packets to keep UI responsive
if(sdata.length() > 1024)
break;
}
row[m_columns.m_data] = sdata;

5 changes: 4 additions & 1 deletion src/glscopeclient/WaveformArea_events.cpp
Original file line number Diff line number Diff line change
@@ -1004,12 +1004,15 @@ void WaveformArea::OnWaveformDataReady()
d->SetXOffset(m_group->m_xAxisOffset);
d->SetXScale(m_group->m_pixelsPerXUnit);
}

//TODO: only if stuff changed
//TODO: clear sweeps if this happens?
m_group->m_timeline.queue_draw();
}
}

//Redraw everything
queue_draw();
m_group->m_timeline.queue_draw();
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////