Changed lifetime of RENDER_SETTINGS (now they are accessible right after PAINTER object is created).

This commit is contained in:
Maciej Suminski 2013-09-11 12:09:22 +02:00
parent afe2e27b0a
commit e2f5b2779f
4 changed files with 11 additions and 11 deletions

View File

@ -64,14 +64,13 @@ void RENDER_SETTINGS::update()
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()
{
delete m_settings;
}
@ -91,7 +90,7 @@ void PAINTER::DrawBrightened( const VIEW_ITEM* aItem )
m_gal->PushDepth();
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->SetLineWidth( 100000.0 );
m_gal->SetStrokeColor( m_brightenedColor );

View File

@ -32,7 +32,7 @@
#include <gal/color4d.h>
#include <colors.h>
#include <boost/shared_ptr.hpp>
class EDA_ITEM;
class COLORS_DESIGN_SETTINGS;
@ -187,10 +187,7 @@ public:
*/
virtual void ApplySettings( RENDER_SETTINGS* aSettings )
{
if( m_settings )
delete m_settings;
m_settings = aSettings;
m_settings.reset( aSettings );
}
/**
@ -207,7 +204,7 @@ public:
*/
virtual RENDER_SETTINGS* GetSettings() const
{
return m_settings;
return m_settings.get();
}
/**
@ -233,7 +230,7 @@ protected:
GAL* m_gal;
/// 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
COLOR4D m_brightenedColor;

View File

@ -191,6 +191,8 @@ void PCB_RENDER_SETTINGS::update()
PCB_PAINTER::PCB_PAINTER( GAL* aGal ) :
PAINTER( aGal )
{
m_settings.reset( new PCB_RENDER_SETTINGS() );
m_pcbSettings = (PCB_RENDER_SETTINGS*) m_settings.get();
}

View File

@ -27,6 +27,7 @@
#define __CLASS_PCB_PAINTER_H
#include <layers_id_colors_and_visibility.h>
#include <boost/shared_ptr.hpp>
#include <painter.h>
class EDA_ITEM;
@ -130,10 +131,11 @@ public:
PAINTER::ApplySettings( aSettings );
// 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:
/// Just a properly casted pointer to settings
PCB_RENDER_SETTINGS* m_pcbSettings;
// Drawing functions for various types of PCB-specific items