Files
GoldenCheetah/qwt/examples/polarspectrogram/PlotWindow.cpp
Joachim Kohlhammer 49cf6340a4 Upgraded Qwt to 6.2 (branch: qwt-multiaxes) (#4427)
This commit is based on https://github.com/GoldenCheetah/GoldenCheetah/pull/3956
with the following additions / changes:
* Upgraded to the latest version of the multiaxes-branch, thus eliminating crashes of GoldenCheetah on startup
* Disabled the emitting of Layout Requests on geometry changes of QwtScaleWidget - without this, CPU utilization was up to 100% on one core
* Added the class SplineLookup, reusing small portions of code from Qwt 6.1
* Re-added the splines in WPrime and RideFile (resampling), using the new interface of QwtSpline
* Appveyor: qwt in cache-section now depends on qwt/qwtconfig.prin.in for refresh on version change
2024-01-06 18:59:55 -03:00

71 lines
2.0 KiB
C++

/*****************************************************************************
* Qwt Polar Examples - Copyright (C) 2008 Uwe Rathmann
* This file may be used under the terms of the 3-clause BSD License
*****************************************************************************/
#include "Plot.h"
#include "PlotWindow.h"
#include <QwtScaleEngine>
#include <QwtRasterData>
#include <QwtPolarSpectrogram>
#include <QwtScaleWidget>
#include <QwtColorMap>
#include <QLayout>
namespace
{
class ColorMap : public QwtLinearColorMap
{
public:
ColorMap()
: QwtLinearColorMap( Qt::darkBlue, Qt::yellow )
{
#if 1
addColorStop( 0.00, Qt::black );
addColorStop( 0.05, Qt::darkRed );
#else
addColorStop( 0.05, Qt::blue );
#endif
addColorStop( 0.3, Qt::cyan );
addColorStop( 0.6, Qt::green );
addColorStop( 0.98, Qt::red );
}
};
}
PlotWindow::PlotWindow( QWidget* parent )
: QWidget( parent )
{
m_plot = new Plot();
m_colorScale = new QwtScaleWidget();
m_colorScale->setAlignment( QwtScaleDraw::RightScale );
m_colorScale->setColorBarEnabled( true );
QwtText title( "Intensity" );
QFont font = m_colorScale->font();
font.setBold( true );
title.setFont( font );
m_colorScale->setTitle( title );
const QwtInterval interval =
m_plot->spectrogram()->data()->interval( Qt::ZAxis );
m_colorScale->setColorMap( interval, new ColorMap() );
m_plot->spectrogram()->setColorMap( new ColorMap() );
QwtLinearScaleEngine scaleEngine;
m_colorScale->setScaleDiv(
scaleEngine.divideScale( interval.minValue(), interval.maxValue(), 8, 5 ) );
int startDist, endDist;
m_colorScale->getBorderDistHint( startDist, endDist );
m_colorScale->setBorderDist( startDist, endDist );
QHBoxLayout* layout = new QHBoxLayout( this );
layout->addWidget( m_plot, 10 );
layout->addWidget( m_colorScale, 10 );
}