Changed lifetime of RENDER_SETTINGS (now they are accessible right after PAINTER object is created).
This commit is contained in:
parent
afe2e27b0a
commit
e2f5b2779f
|
@ -64,14 +64,13 @@ void RENDER_SETTINGS::update()
|
||||||
|
|
||||||
|
|
||||||
PAINTER::PAINTER( GAL* aGal ) :
|
PAINTER::PAINTER( GAL* aGal ) :
|
||||||
m_gal( aGal ), m_settings( NULL ), m_brightenedColor( 0.0, 1.0, 0.0, 0.9 )
|
m_gal( aGal ), m_brightenedColor( 0.0, 1.0, 0.0, 0.9 )
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
PAINTER::~PAINTER()
|
PAINTER::~PAINTER()
|
||||||
{
|
{
|
||||||
delete m_settings;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -91,7 +90,7 @@ void PAINTER::DrawBrightened( const VIEW_ITEM* aItem )
|
||||||
m_gal->PushDepth();
|
m_gal->PushDepth();
|
||||||
m_gal->SetLayerDepth( -1.0 );
|
m_gal->SetLayerDepth( -1.0 );
|
||||||
|
|
||||||
// Draw semitransparent box that marks items as brightened
|
// Draw an outline that marks items as brightened
|
||||||
m_gal->SetIsStroke( true );
|
m_gal->SetIsStroke( true );
|
||||||
m_gal->SetLineWidth( 100000.0 );
|
m_gal->SetLineWidth( 100000.0 );
|
||||||
m_gal->SetStrokeColor( m_brightenedColor );
|
m_gal->SetStrokeColor( m_brightenedColor );
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
|
|
||||||
#include <gal/color4d.h>
|
#include <gal/color4d.h>
|
||||||
#include <colors.h>
|
#include <colors.h>
|
||||||
|
#include <boost/shared_ptr.hpp>
|
||||||
|
|
||||||
class EDA_ITEM;
|
class EDA_ITEM;
|
||||||
class COLORS_DESIGN_SETTINGS;
|
class COLORS_DESIGN_SETTINGS;
|
||||||
|
@ -187,10 +187,7 @@ public:
|
||||||
*/
|
*/
|
||||||
virtual void ApplySettings( RENDER_SETTINGS* aSettings )
|
virtual void ApplySettings( RENDER_SETTINGS* aSettings )
|
||||||
{
|
{
|
||||||
if( m_settings )
|
m_settings.reset( aSettings );
|
||||||
delete m_settings;
|
|
||||||
|
|
||||||
m_settings = aSettings;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -207,7 +204,7 @@ public:
|
||||||
*/
|
*/
|
||||||
virtual RENDER_SETTINGS* GetSettings() const
|
virtual RENDER_SETTINGS* GetSettings() const
|
||||||
{
|
{
|
||||||
return m_settings;
|
return m_settings.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -233,7 +230,7 @@ protected:
|
||||||
GAL* m_gal;
|
GAL* m_gal;
|
||||||
|
|
||||||
/// Colors and display modes settings that are going to be used when drawing items.
|
/// Colors and display modes settings that are going to be used when drawing items.
|
||||||
RENDER_SETTINGS* m_settings;
|
boost::shared_ptr<RENDER_SETTINGS> m_settings;
|
||||||
|
|
||||||
/// Color of brightened item frame
|
/// Color of brightened item frame
|
||||||
COLOR4D m_brightenedColor;
|
COLOR4D m_brightenedColor;
|
||||||
|
|
|
@ -191,6 +191,8 @@ void PCB_RENDER_SETTINGS::update()
|
||||||
PCB_PAINTER::PCB_PAINTER( GAL* aGal ) :
|
PCB_PAINTER::PCB_PAINTER( GAL* aGal ) :
|
||||||
PAINTER( aGal )
|
PAINTER( aGal )
|
||||||
{
|
{
|
||||||
|
m_settings.reset( new PCB_RENDER_SETTINGS() );
|
||||||
|
m_pcbSettings = (PCB_RENDER_SETTINGS*) m_settings.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
#define __CLASS_PCB_PAINTER_H
|
#define __CLASS_PCB_PAINTER_H
|
||||||
|
|
||||||
#include <layers_id_colors_and_visibility.h>
|
#include <layers_id_colors_and_visibility.h>
|
||||||
|
#include <boost/shared_ptr.hpp>
|
||||||
#include <painter.h>
|
#include <painter.h>
|
||||||
|
|
||||||
class EDA_ITEM;
|
class EDA_ITEM;
|
||||||
|
@ -130,10 +131,11 @@ public:
|
||||||
PAINTER::ApplySettings( aSettings );
|
PAINTER::ApplySettings( aSettings );
|
||||||
|
|
||||||
// Store PCB specific render settings
|
// Store PCB specific render settings
|
||||||
m_pcbSettings = dynamic_cast<PCB_RENDER_SETTINGS*>( aSettings );
|
m_pcbSettings = (PCB_RENDER_SETTINGS*) m_settings.get(); //dynamic_cast<PCB_RENDER_SETTINGS*>( aSettings );
|
||||||
}
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
/// Just a properly casted pointer to settings
|
||||||
PCB_RENDER_SETTINGS* m_pcbSettings;
|
PCB_RENDER_SETTINGS* m_pcbSettings;
|
||||||
|
|
||||||
// Drawing functions for various types of PCB-specific items
|
// Drawing functions for various types of PCB-specific items
|
||||||
|
|
Loading…
Reference in New Issue