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 ) : 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 );

View File

@ -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;

View File

@ -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();
} }

View File

@ -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