KiCad PCB EDA Suite
DIALOG_RESCUE_EACH Class Reference
Inheritance diagram for DIALOG_RESCUE_EACH:
DIALOG_RESCUE_EACH_BASE DIALOG_SHIM KIWAY_HOLDER

Public Member Functions

 DIALOG_RESCUE_EACH (SCH_EDIT_FRAME *aParent, RESCUER &aRescuer, bool aAskShowAgain)
 This dialog asks the user which rescuable, cached parts he wants to rescue. More...
 
 ~DIALOG_RESCUE_EACH ()
 
int ShowQuasiModal ()
 
void EndQuasiModal (int retCode)
 
bool IsQuasiModal ()
 
bool Show (bool show) override
 
bool Enable (bool enable) override
 
void OnPaint (wxPaintEvent &event)
 
KIWAYKiway () const
 Function Kiway returns a reference to the KIWAY that this object has an opportunity to participate in. More...
 
PROJECTPrj () const
 Function Prj returns a reference to the PROJECT "associated with" this KIWAY. More...
 
void SetKiway (wxWindow *aDest, KIWAY *aKiway)
 Function SetKiway. More...
 

Protected Member Functions

virtual void OnDialogResize (wxSizeEvent &event)
 
void FinishDialogSettings ()
 In all dialogs, we must call the same functions to fix minimal dlg size, the default position and perhaps some others to fix a few issues depending on Windows Managers this helper function does these calls. More...
 
void SetSizeInDU (int x, int y)
 Set the dialog to the given dimensions in "dialog units". More...
 
int HorizPixelsFromDU (int x)
 Convert an integer number of dialog units to pixels, horizontally. More...
 
int VertPixelsFromDU (int y)
 Convert an integer number of dialog units to pixels, vertically. More...
 

Protected Attributes

wxHtmlWindow * m_htmlPrompt
 
wxStaticText * m_titleSymbols
 
wxDataViewListCtrl * m_ListOfConflicts
 
wxStaticText * m_titleInstances
 
wxDataViewListCtrl * m_ListOfInstances
 
wxStaticText * m_staticText2
 
wxPanel * m_componentViewOld
 
wxStaticText * m_staticText3
 
wxPanel * m_componentViewNew
 
wxButton * m_btnNeverShowAgain
 
wxStdDialogButtonSizer * m_stdButtons
 
wxButton * m_stdButtonsOK
 
wxButton * m_stdButtonsCancel
 
bool m_fixupsRun
 
std::string m_hash_key
 
EVENT_LOOPm_qmodal_loop
 
bool m_qmodal_showing
 
WDO_ENABLE_DISABLEm_qmodal_parent_disabler
 

Private Member Functions

bool TransferDataToWindow () override
 
bool TransferDataFromWindow () override
 
void PopulateConflictList ()
 
void PopulateInstanceList ()
 
void OnConflictSelect (wxDataViewEvent &event) override
 
void OnNeverShowClick (wxCommandEvent &event) override
 
void OnCancelClick (wxCommandEvent &event) override
 
void OnHandleCachePreviewRepaint (wxPaintEvent &aRepaintEvent) override
 
void OnHandleLibraryPreviewRepaint (wxPaintEvent &aRepaintEvent) override
 
void renderPreview (LIB_PART *aComponent, int aUnit, wxPanel *panel)
 

Private Attributes

SCH_EDIT_FRAMEm_Parent
 
wxConfigBase * m_Config
 
RESCUERm_Rescuer
 
bool m_AskShowAgain
 

Detailed Description

Definition at line 36 of file dialog_rescue_each.cpp.

Constructor & Destructor Documentation

DIALOG_RESCUE_EACH::DIALOG_RESCUE_EACH ( SCH_EDIT_FRAME aParent,
RESCUER aRescuer,
bool  aAskShowAgain 
)

This dialog asks the user which rescuable, cached parts he wants to rescue.

Any rejects will be pruned from aCandidates.

Parameters
aParent- the SCH_EDIT_FRAME calling this
aRescuer- the active RESCUER instance
aAskShowAgain- if true, a "Never Show Again" button will be included

Definition at line 71 of file dialog_rescue_each.cpp.

References PCAD2KICAD::Center, Kiface(), KIFACE_I::KifaceSettings(), DIALOG_RESCUE_EACH_BASE::m_componentViewNew, DIALOG_RESCUE_EACH_BASE::m_componentViewOld, m_Config, DIALOG_RESCUE_EACH_BASE::m_htmlPrompt, DIALOG_RESCUE_EACH_BASE::m_ListOfConflicts, DIALOG_RESCUE_EACH_BASE::m_ListOfInstances, DIALOG_RESCUE_EACH_BASE::m_stdButtonsOK, and DIALOG_SHIM::SetSizeInDU().

73  : DIALOG_RESCUE_EACH_BASE( aParent ),
74  m_Parent( aParent ),
75  m_Rescuer( &aRescuer ),
76  m_AskShowAgain( aAskShowAgain )
77 {
79  m_stdButtonsOK->SetDefault();
80 
81  // Set the info message, customized to include the proper suffix.
82  wxString info =
83  _( "This schematic was made using older symbol libraries which may break the "
84  "schematic. Some symbols may need to be linked to a different symbol name. "
85  "Some symbols may need to be \"rescued\" (copied and renamed) into a new library.\n\n"
86  "The following changes are recommended to update the project." );
87  m_htmlPrompt->AppendToPage( info );
88 
89  // wxDataViewListCtrl seems to do a poor job of laying itself out so help it along here.
90  wxString header = _( "Accept" );
91  wxFont font = m_ListOfConflicts->GetFont();
92 
93  font.MakeBold();
94 
95  wxClientDC dc( this );
96 
97  dc.SetFont( font );
98 
99  int padding = 30;
100  int width = dc.GetTextExtent( header ).GetWidth();
101 
102  m_ListOfConflicts->AppendToggleColumn( header, wxDATAVIEW_CELL_ACTIVATABLE, width,
103  wxALIGN_CENTER );
104 
105  header = _( "Symbol Name" );
106  width = dc.GetTextExtent( header ).GetWidth() + padding;
107  m_ListOfConflicts->AppendTextColumn( header, wxDATAVIEW_CELL_INERT, width );
108 
109  header = _( "Action Taken" );
110  width = dc.GetTextExtent( header ).GetWidth() + padding;
111  m_ListOfConflicts->AppendTextColumn( header, wxDATAVIEW_CELL_INERT, width );
112 
113  header = _( "Reference" );
114  width = dc.GetTextExtent( header ).GetWidth() + padding;
115  m_ListOfInstances->AppendTextColumn( header, wxDATAVIEW_CELL_INERT, width );
116 
117  header = _( "Value" );
118  width = dc.GetTextExtent( header ).GetWidth() + padding;
119  m_ListOfInstances->AppendTextColumn( header, wxDATAVIEW_CELL_INERT, width );
120 
121  m_componentViewOld->SetLayoutDirection( wxLayout_LeftToRight );
122  m_componentViewNew->SetLayoutDirection( wxLayout_LeftToRight );
123 
124  Layout();
125  SetSizeInDU( 280, 240 );
126 
127  // Make sure the HTML window is large enough. Some fun size juggling and
128  // fudge factors here but it does seem to work pretty reliably.
129  auto info_size = m_htmlPrompt->GetTextExtent( info );
130  auto prompt_size = m_htmlPrompt->GetSize();
131  auto font_size = m_htmlPrompt->GetTextExtent( "X" );
132  auto approx_info_height = ( 2 * info_size.x / prompt_size.x ) * font_size.y;
133  m_htmlPrompt->SetSizeHints( 2 * prompt_size.x / 3, approx_info_height );
134  Layout();
135  GetSizer()->SetSizeHints( this );
136  SetSizeInDU( 280, 240 );
137  Center();
138 }
SCH_EDIT_FRAME * m_Parent
DIALOG_RESCUE_EACH_BASE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxString &title=_("Project Rescue Helper"), const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(-1,-1), long style=wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER)
KIFACE_I & Kiface()
Global KIFACE_I "get" accessor.
Definition: kicad.cpp:52
void SetSizeInDU(int x, int y)
Set the dialog to the given dimensions in "dialog units".
wxConfigBase * KifaceSettings() const
Definition: kiface_i.h:103
wxDataViewListCtrl * m_ListOfConflicts
wxDataViewListCtrl * m_ListOfInstances
DIALOG_RESCUE_EACH::~DIALOG_RESCUE_EACH ( )

Definition at line 141 of file dialog_rescue_each.cpp.

142 {
143 }

Member Function Documentation

bool DIALOG_SHIM::Enable ( bool  enable)
overrideinherited

Definition at line 205 of file dialog_shim.cpp.

Referenced by DIALOG_PRINT_USING_PRINTER::InitValues(), and DIALOG_SHIM::IsQuasiModal().

206 {
207  // so we can do logging of this state change:
208 
209 #if defined(DEBUG)
210  const char* type_id = typeid( *this ).name();
211  printf( "wxDialog %s: %s\n", type_id, enable ? "enabled" : "disabled" );
212 #endif
213 
214  return wxDialog::Enable( enable );
215 }
void DIALOG_SHIM::EndQuasiModal ( int  retCode)
inherited

Definition at line 610 of file dialog_shim.cpp.

References DIALOG_SHIM::IsQuasiModal(), DIALOG_SHIM::m_qmodal_loop, DIALOG_SHIM::m_qmodal_parent_disabler, DIALOG_SHIM::m_qmodal_showing, and DIALOG_SHIM::Show().

Referenced by DIALOG_SHIM::OnButton(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::OnCancelButtonClick(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnCancelButtonClick(), DIALOG_EDIT_ONE_FIELD::OnCancelClick(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::OnCloseDialog(), DIALOG_EDIT_ONE_FIELD::OnCloseDialog(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnCloseDialog(), DIALOG_CHOOSE_COMPONENT::OnCloseTimer(), DIALOG_SHIM::OnCloseWindow(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::OnOKButtonClick(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnOKButtonClick(), DIALOG_EDIT_ONE_FIELD::OnOkClick(), DIALOG_EXCHANGE_FOOTPRINTS::OnQuit(), DIALOG_CHOOSE_COMPONENT::OnSchViewDClick(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::SetInitCmp(), and DIALOG_SHIM::~DIALOG_SHIM().

611 {
612  // Hook up validator and transfer data from controls handling so quasi-modal dialogs
613  // handle validation in the same way as other dialogs.
614  if( ( retCode == wxID_OK ) && ( !Validate() || !TransferDataFromWindow() ) )
615  return;
616 
617  SetReturnCode( retCode );
618 
619  if( !IsQuasiModal() )
620  {
621  wxFAIL_MSG( wxT( "either DIALOG_SHIM::EndQuasiModal called twice or ShowQuasiModal wasn't called" ) );
622  return;
623  }
624 
625  m_qmodal_showing = false;
626 
627  if( m_qmodal_loop )
628  {
629  if( m_qmodal_loop->IsRunning() )
630  m_qmodal_loop->Exit( 0 );
631  else
632  m_qmodal_loop->ScheduleExit( 0 );
633 
634  m_qmodal_loop = NULL;
635  }
636 
639 
640  Show( false );
641 }
bool m_qmodal_showing
Definition: dialog_shim.h:155
EVENT_LOOP * m_qmodal_loop
Definition: dialog_shim.h:154
bool IsQuasiModal()
Definition: dialog_shim.h:103
bool Show(bool show) override
WDO_ENABLE_DISABLE * m_qmodal_parent_disabler
Definition: dialog_shim.h:156
void DIALOG_SHIM::FinishDialogSettings ( )
protectedinherited

In all dialogs, we must call the same functions to fix minimal dlg size, the default position and perhaps some others to fix a few issues depending on Windows Managers this helper function does these calls.

FinishDialogSettings must be called from derived classes, when all widgets are initialized, and therefore their size fixed. If TransferDataToWindow() is used to initialize widgets, at end of TransferDataToWindow, or better at end of a wxInitDialogEvent handler

In any case, the best way is to call it in a wxInitDialogEvent handler after calling TransfertDataToWindow(), which is the default wxInitDialogEvent handler wxDialog

Definition at line 104 of file dialog_shim.cpp.

References PCAD2KICAD::Center.

Referenced by COLOR4D_PICKER_DLG::COLOR4D_PICKER_DLG(), DIALOG_3D_VIEW_OPTIONS::DIALOG_3D_VIEW_OPTIONS(), DIALOG_ANNOTATE::DIALOG_ANNOTATE(), DIALOG_BOM::DIALOG_BOM(), DIALOG_COPPER_ZONE::DIALOG_COPPER_ZONE(), DIALOG_DESIGN_RULES::DIALOG_DESIGN_RULES(), DIALOG_DIMENSION_EDITOR::DIALOG_DIMENSION_EDITOR(), DIALOG_DISPLAY_OPTIONS::DIALOG_DISPLAY_OPTIONS(), DIALOG_DRC_CONTROL::DIALOG_DRC_CONTROL(), DIALOG_EDIT_COMPONENT_IN_LIBRARY::DIALOG_EDIT_COMPONENT_IN_LIBRARY(), DIALOG_EDIT_LINE_STYLE::DIALOG_EDIT_LINE_STYLE(), DIALOG_EESCHEMA_OPTIONS::DIALOG_EESCHEMA_OPTIONS(), DIALOG_ENUM_PADS::DIALOG_ENUM_PADS(), DIALOG_EXCHANGE_FOOTPRINTS::DIALOG_EXCHANGE_FOOTPRINTS(), DIALOG_EXPORT_3DFILE::DIALOG_EXPORT_3DFILE(), DIALOG_EXPORT_IDF3::DIALOG_EXPORT_IDF3(), DIALOG_EXPORT_STEP::DIALOG_EXPORT_STEP(), DIALOG_FIELDS_EDITOR_GLOBAL::DIALOG_FIELDS_EDITOR_GLOBAL(), DIALOG_FOOTPRINT_WIZARD_LIST::DIALOG_FOOTPRINT_WIZARD_LIST(), DIALOG_GLOBAL_SYM_LIB_TABLE_CONFIG::DIALOG_GLOBAL_SYM_LIB_TABLE_CONFIG(), DIALOG_KEEPOUT_AREA_PROPERTIES::DIALOG_KEEPOUT_AREA_PROPERTIES(), DIALOG_LABEL_EDITOR::DIALOG_LABEL_EDITOR(), DIALOG_LIB_EDIT_DRAW_ITEM::DIALOG_LIB_EDIT_DRAW_ITEM(), DIALOG_LIB_EDIT_TEXT::DIALOG_LIB_EDIT_TEXT(), DIALOG_LIB_NEW_COMPONENT::DIALOG_LIB_NEW_COMPONENT(), DIALOG_LIBEDIT_OPTIONS::DIALOG_LIBEDIT_OPTIONS(), DIALOG_PAD_PROPERTIES::DIALOG_PAD_PROPERTIES(), DIALOG_PADS_MASK_CLEARANCE::DIALOG_PADS_MASK_CLEARANCE(), DIALOG_PLOT_SCHEMATIC::DIALOG_PLOT_SCHEMATIC(), DIALOG_SCH_EDIT_SHEET_PIN::DIALOG_SCH_EDIT_SHEET_PIN(), DIALOG_SCH_SHEET_PROPS::DIALOG_SCH_SHEET_PROPS(), DIALOG_SELECT_PRETTY_LIB::DIALOG_SELECT_PRETTY_LIB(), DIALOG_TRACK_VIA_SIZE::DIALOG_TRACK_VIA_SIZE(), DIALOG_EDIT_ONE_FIELD::init(), DIALOG_SHIM::IsQuasiModal(), NETLIST_DIALOG::NETLIST_DIALOG(), DIALOG_LIB_EDIT_PIN::OnInitDialog(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::OnInitDialog(), DIALOG_TRACK_VIA_PROPERTIES::OnInitDlg(), DIALOG_GRAPHIC_ITEMS_OPTIONS::OnInitDlg(), DIALOG_EDIT_FPTEXT::OnInitDlg(), DIALOG_SET_GRID::OnInitDlg(), DIALOG_PCB_TEXT_PROPERTIES::OnInitDlg(), DIALOG_PRINT_FOR_MODEDIT::OnInitDlg(), DIALOG_FOOTPRINT_FP_EDITOR::OnInitDlg(), DIALOG_GRAPHIC_ITEM_PROPERTIES::OnInitDlg(), DIALOG_SIM_SETTINGS::onInitDlg(), DIALOG_SPICE_MODEL::onInitDlg(), DIALOG_FOOTPRINT_BOARD_EDITOR::OnInitDlg(), DIALOG_PRINT_USING_PRINTER::OnInitDlg(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnInitDlg(), TARGET_PROPERTIES_DIALOG_EDITOR::TARGET_PROPERTIES_DIALOG_EDITOR(), DIALOG_SIGNAL_LIST::TransferDataToWindow(), and DIALOG_UPDATE_FIELDS::TransferDataToWindow().

105 {
106  // must be called from the constructor of derived classes,
107  // when all widgets are initialized, and therefore their size fixed
108 
109  // SetSizeHints fixes the minimal size of sizers in the dialog
110  // (SetSizeHints calls Fit(), so no need to call it)
111  GetSizer()->SetSizeHints( this );
112 
113  // the default position, when calling the first time the dlg
114  Center();
115 }
int DIALOG_SHIM::HorizPixelsFromDU ( int  x)
protectedinherited

Convert an integer number of dialog units to pixels, horizontally.

See SetSizeInDU or wxDialog documentation for more information.

Definition at line 125 of file dialog_shim.cpp.

Referenced by DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT(), and DIALOG_SHIM::IsQuasiModal().

126 {
127  wxSize sz( x, 0 );
128  return ConvertDialogToPixels( sz ).x;
129 }
KIWAY& KIWAY_HOLDER::Kiway ( ) const
inlineinherited

Function Kiway returns a reference to the KIWAY that this object has an opportunity to participate in.

A KIWAY_HOLDER is not necessarily a KIWAY_PLAYER.

Definition at line 60 of file kiway_player.h.

References KIWAY_HOLDER::m_kiway, KIWAY_HOLDER::Prj(), and KIWAY_HOLDER::SetKiway().

Referenced by SCH_EDIT_FRAME::AppendSchematic(), CVPCB_MAINFRAME::BuildLIBRARY_LISTBOX(), DIALOG_CHOOSE_COMPONENT::ConstructRightPanel(), CVPCB_MAINFRAME::CreateScreenCmp(), CVPCB_MAINFRAME::CVPCB_MAINFRAME(), DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT(), DIALOG_SHIM::DIALOG_SHIM(), EDIT_TOOL::editFootprintInFpEditor(), SCH_EDIT_FRAME::EditSheet(), DISPLAY_FOOTPRINTS_FRAME::Get_Module(), LIB_MANAGER::GetBufferedPart(), FOOTPRINT_EDIT_FRAME::GetIconScale(), LIB_MANAGER::getLibraryBuffer(), FOOTPRINT_EDIT_FRAME::GetPlotSettings(), PCB_EDIT_FRAME::importFile(), SCH_EDIT_FRAME::importFile(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::initBuffers(), SCH_EDIT_FRAME::KiwayMailIn(), KIWAY_PLAYER::language_change(), CVPCB_MAINFRAME::LoadFootprintFiles(), KIWAY_PLAYER::OnChangeIconsOptions(), CVPCB_MAINFRAME::OnEditFootprintLibraryTable(), SCH_BASE_FRAME::OnEditSymbolLibTable(), DIALOG_CHOOSE_COMPONENT::OnIdle(), KICAD_MANAGER_FRAME::OnImportEagleFiles(), SCH_EDIT_FRAME::OnLeftClick(), SCH_BASE_FRAME::OnOpenLibraryViewer(), SCH_EDIT_FRAME::OnSimulate(), DIALOG_EDIT_ONE_FIELD::OnTextValueSelectButtonClick(), FOOTPRINT_EDIT_FRAME::OnUpdateInsertModuleInBoard(), FOOTPRINT_EDIT_FRAME::OnUpdateLoadModuleFromBoard(), FOOTPRINT_EDIT_FRAME::OnUpdateReplaceModuleInBoard(), SCH_EDIT_FRAME::OpenProjectFiles(), KIWAY_HOLDER::Prj(), PCB_EDIT_FRAME::Process_Config(), PCB_EDIT_FRAME::Process_Special_Functions(), FOOTPRINT_EDIT_FRAME::ProcessPreferences(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), FOOTPRINT_VIEWER_FRAME::ReCreateFootprintList(), FOOTPRINT_WIZARD_FRAME::ReCreateVToolbar(), LIB_EDIT_FRAME::refreshSchematic(), SCH_EDIT_FRAME::SaveEEFile(), CVPCB_MAINFRAME::SaveFootprintAssociation(), SCH_BASE_FRAME::SelectComponentFromLibBrowser(), SCH_EDIT_FRAME::SendCrossProbeNetName(), PCB_EDIT_FRAME::SendCrossProbeNetName(), CVPCB_MAINFRAME::SendMessageToEESCHEMA(), PCB_EDIT_FRAME::SendMessageToEESCHEMA(), SCH_EDIT_FRAME::SendMessageToPCBNEW(), SCH_EDIT_FRAME::sendNetlist(), FOOTPRINT_EDIT_FRAME::SetPlotSettings(), DISPLAY_FOOTPRINTS_FRAME::Show3D_Frame(), FOOTPRINT_EDIT_FRAME::Show3D_Frame(), FOOTPRINT_VIEWER_FRAME::Show3D_Frame(), FOOTPRINT_WIZARD_FRAME::Show3D_Frame(), DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB::showButtonHandler(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::showButtonHandler(), SIM_PLOT_FRAME::SIM_PLOT_FRAME(), LIB_MANAGER::UpdatePart(), and DIALOG_EXCHANGE_FOOTPRINTS::ViewAndSelectFootprint().

61  {
62  wxASSERT( m_kiway ); // smoke out bugs in Debug build, then Release runs fine.
63  return *m_kiway;
64  }
KIWAY * m_kiway
Definition: kiway_player.h:85
void DIALOG_RESCUE_EACH::OnCancelClick ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_RESCUE_EACH_BASE.

Definition at line 336 of file dialog_rescue_each.cpp.

References RESCUER::m_chosen_candidates, m_Rescuer, and DIALOG_RESCUE_EACH_BASE::OnCancelClick().

337 {
340 }
virtual void OnCancelClick(wxCommandEvent &event)
std::vector< RESCUE_CANDIDATE * > m_chosen_candidates
void DIALOG_RESCUE_EACH::OnConflictSelect ( wxDataViewEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_RESCUE_EACH_BASE.

Definition at line 284 of file dialog_rescue_each.cpp.

References DIALOG_RESCUE_EACH_BASE::m_componentViewNew, DIALOG_RESCUE_EACH_BASE::m_componentViewOld, DIALOG_RESCUE_EACH_BASE::m_ListOfConflicts, and PopulateInstanceList().

285 {
286  // wxformbuilder connects this event to the _dialog_, not the data view.
287  // Make sure the correct item triggered it, otherwise we trigger recursively
288  // and get a stack overflow.
289  if( aEvent.GetEventObject() != m_ListOfConflicts )
290  return;
291 
293 
294  m_componentViewOld->Refresh();
295  m_componentViewNew->Refresh();
296 }
wxDataViewListCtrl * m_ListOfConflicts
virtual void DIALOG_RESCUE_EACH_BASE::OnDialogResize ( wxSizeEvent &  event)
inlineprotectedvirtualinherited
void DIALOG_RESCUE_EACH::OnHandleCachePreviewRepaint ( wxPaintEvent &  aRepaintEvent)
overrideprivatevirtual

Reimplemented from DIALOG_RESCUE_EACH_BASE.

Definition at line 215 of file dialog_rescue_each.cpp.

References RESCUE_CANDIDATE::GetCacheCandidate(), RESCUER::m_all_candidates, DIALOG_RESCUE_EACH_BASE::m_componentViewOld, DIALOG_RESCUE_EACH_BASE::m_ListOfConflicts, m_Rescuer, and renderPreview().

216 {
217  int row = m_ListOfConflicts->GetSelectedRow();
218 
219  if( row == wxNOT_FOUND )
220  row = 0;
221 
222  RESCUE_CANDIDATE& selected_part = m_Rescuer->m_all_candidates[row];
223 
224  if( selected_part.GetCacheCandidate() )
225  renderPreview( selected_part.GetCacheCandidate(), 0, m_componentViewOld );
226 }
virtual LIB_PART * GetCacheCandidate() const
Get the part that can be loaded from the project cache, if possible, or else NULL.
boost::ptr_vector< RESCUE_CANDIDATE > m_all_candidates
void renderPreview(LIB_PART *aComponent, int aUnit, wxPanel *panel)
wxDataViewListCtrl * m_ListOfConflicts
void DIALOG_RESCUE_EACH::OnHandleLibraryPreviewRepaint ( wxPaintEvent &  aRepaintEvent)
overrideprivatevirtual

Reimplemented from DIALOG_RESCUE_EACH_BASE.

Definition at line 229 of file dialog_rescue_each.cpp.

References RESCUE_CANDIDATE::GetLibCandidate(), RESCUER::m_all_candidates, DIALOG_RESCUE_EACH_BASE::m_componentViewNew, DIALOG_RESCUE_EACH_BASE::m_ListOfConflicts, m_Rescuer, and renderPreview().

230 {
231  int row = m_ListOfConflicts->GetSelectedRow();
232 
233  if( row == wxNOT_FOUND )
234  row = 0;
235 
236  RESCUE_CANDIDATE& selected_part = m_Rescuer->m_all_candidates[row];
237 
238  if( selected_part.GetLibCandidate() )
239  renderPreview( selected_part.GetLibCandidate(), 0, m_componentViewNew );
240 }
virtual LIB_PART * GetLibCandidate() const
Get the part the would be loaded from the libraries, if possible, or else NULL.
boost::ptr_vector< RESCUE_CANDIDATE > m_all_candidates
void renderPreview(LIB_PART *aComponent, int aUnit, wxPanel *panel)
wxDataViewListCtrl * m_ListOfConflicts
void DIALOG_RESCUE_EACH::OnNeverShowClick ( wxCommandEvent &  event)
overrideprivatevirtual

Reimplemented from DIALOG_RESCUE_EACH_BASE.

Definition at line 317 of file dialog_rescue_each.cpp.

References RESCUER::m_chosen_candidates, m_Config, m_Parent, m_Rescuer, and RescueNeverShowEntry.

318 {
319  wxMessageDialog dlg( m_Parent,
320  _( "Stop showing this tool?\n"
321  "No changes will be made.\n\n"
322  "This setting can be changed from the \"Symbol Libraries\" dialog,\n"
323  "and the tool can be activated manually from the \"Tools\" menu." ),
324  _( "Rescue Symbols" ), wxYES_NO | wxNO_DEFAULT | wxICON_QUESTION );
325  int resp = dlg.ShowModal ();
326 
327  if( resp == wxID_YES )
328  {
329  m_Config->Write( RescueNeverShowEntry, true );
331  Close();
332  }
333 }
SCH_EDIT_FRAME * m_Parent
const wxChar RescueNeverShowEntry[]
std::vector< RESCUE_CANDIDATE * > m_chosen_candidates
void DIALOG_SHIM::OnPaint ( wxPaintEvent &  event)
inherited

Definition at line 271 of file dialog_shim.cpp.

References DIALOG_SHIM::m_fixupsRun, and recursiveDescent().

Referenced by DIALOG_SHIM::DIALOG_SHIM(), and DIALOG_SHIM::IsQuasiModal().

272 {
273  if( !m_fixupsRun )
274  {
275 #if DLGSHIM_SELECT_ALL_IN_TEXT_CONTROLS
276  const bool selectAllInTextCtrls = true;
277 #else
278  const bool selectAllInTextCtrls = false;
279 #endif
280  wxWindow* firstTextCtrl = NULL;
281  wxWindow* windowWithFocus = NULL;
282 
283  recursiveDescent( GetChildren(), selectAllInTextCtrls, firstTextCtrl,
284  windowWithFocus );
285 
286 #if DLGSHIM_USE_SETFOCUS
287  // While it would be nice to honour any focus already set (which was
288  // recorded in windowWithFocus), the reality is that it's currently wrong
289  // far more often than it's right.
290  // So just focus on the first text control if we have one; otherwise the
291  // focus on the dialog itself, which will at least allow esc, return, etc.
292  // to function.
293  if( firstTextCtrl )
294  firstTextCtrl->SetFocus();
295  else
296  SetFocus();
297 #endif
298 
299 #ifdef __WXMAC__
300  fixOSXCancelButtonIssue( this );
301 #endif
302 
303  m_fixupsRun = true;
304  }
305 
306  event.Skip();
307 }
static void recursiveDescent(wxWindowList &children, const bool selectTextInTextCtrls, wxWindow *&firstTextCtrl, wxWindow *&windowWithFocus)
bool m_fixupsRun
Definition: dialog_shim.h:149
void DIALOG_RESCUE_EACH::PopulateConflictList ( )
private

Definition at line 161 of file dialog_rescue_each.cpp.

References RESCUE_CANDIDATE::GetActionDescription(), RESCUE_CANDIDATE::GetRequestedName(), RESCUER::m_all_candidates, DIALOG_RESCUE_EACH_BASE::m_ListOfConflicts, and m_Rescuer.

Referenced by TransferDataToWindow().

162 {
163  wxVector<wxVariant> data;
164  for( RESCUE_CANDIDATE& each_candidate : m_Rescuer->m_all_candidates )
165  {
166  data.clear();
167  data.push_back( wxVariant( true ) );
168  data.push_back( each_candidate.GetRequestedName() );
169  data.push_back( each_candidate.GetActionDescription() );
170 
171  m_ListOfConflicts->AppendItem( data );
172  }
173 
174  if( !m_Rescuer->m_all_candidates.empty() )
175  {
176  // Select the first choice
177  m_ListOfConflicts->SelectRow( 0 );
178  }
179 }
virtual wxString GetActionDescription() const =0
Get a description of the action proposed, for displaying in the UI.
boost::ptr_vector< RESCUE_CANDIDATE > m_all_candidates
wxDataViewListCtrl * m_ListOfConflicts
virtual wxString GetRequestedName() const
Get the name that was originally requested in the schematic.
void DIALOG_RESCUE_EACH::PopulateInstanceList ( )
private

Definition at line 182 of file dialog_rescue_each.cpp.

References Format(), RESCUER::GetComponents(), SCH_EDIT_FRAME::GetCurrentSheet(), RESCUE_CANDIDATE::GetRequestedName(), EDA_TEXT::GetText(), RESCUER::m_all_candidates, DIALOG_RESCUE_EACH_BASE::m_ListOfConflicts, DIALOG_RESCUE_EACH_BASE::m_ListOfInstances, m_Parent, m_Rescuer, and DIALOG_RESCUE_EACH_BASE::m_titleInstances.

Referenced by OnConflictSelect(), and TransferDataToWindow().

183 {
184  m_ListOfInstances->DeleteAllItems();
185 
186  int row = m_ListOfConflicts->GetSelectedRow();
187 
188  if( row == wxNOT_FOUND )
189  row = 0;
190 
191  RESCUE_CANDIDATE& selected_part = m_Rescuer->m_all_candidates[row];
192 
193  wxVector<wxVariant> data;
194  int count = 0;
195 
196  for( SCH_COMPONENT* each_component : *m_Rescuer->GetComponents() )
197  {
198  if( each_component->GetLibId().Format() != UTF8( selected_part.GetRequestedName() ) )
199  continue;
200 
201  SCH_FIELD* valueField = each_component->GetField( 1 );
202 
203  data.clear();
204  data.push_back( each_component->GetRef( & m_Parent->GetCurrentSheet() ) );
205  data.push_back( valueField ? valueField->GetText() : wxT( "" ) );
206  m_ListOfInstances->AppendItem( data );
207  count++;
208  }
209 
210  m_titleInstances->SetLabelText( wxString::Format(
211  _( "Instances of this symbol (%d items):" ), count ) );
212 }
Class UTF8 is an 8 bit string that is assuredly encoded in UTF8, and supplies special conversion supp...
Definition: utf8.h:73
Class SCH_FIELD instances are attached to a component and provide a place for the component&#39;s value...
Definition: sch_field.h:56
SCH_EDIT_FRAME * m_Parent
boost::ptr_vector< RESCUE_CANDIDATE > m_all_candidates
const wxString & GetText() const
Function GetText returns the string associated with the text object.
Definition: eda_text.h:128
SCH_SHEET_PATH & GetCurrentSheet()
void Format(OUTPUTFORMATTER *out, int aNestLevel, int aCtl, CPTREE &aTree)
Function Format outputs a PTREE into s-expression format via an OUTPUTFORMATTER derivative.
Definition: ptree.cpp:205
Class SCH_COMPONENT describes a real schematic component.
Definition: sch_component.h:69
std::vector< SCH_COMPONENT * > * GetComponents()
Get the list of symbols that need rescued.
wxDataViewListCtrl * m_ListOfConflicts
virtual wxString GetRequestedName() const
Get the name that was originally requested in the schematic.
wxDataViewListCtrl * m_ListOfInstances
PROJECT & KIWAY_HOLDER::Prj ( ) const
inherited

Function Prj returns a reference to the PROJECT "associated with" this KIWAY.

Definition at line 34 of file kiway_holder.cpp.

References KIWAY_HOLDER::Kiway(), and KIWAY::Prj().

Referenced by SCH_EDIT_FRAME::AppendSchematic(), PCB_EDIT_FRAME::ArchiveModulesOnBoard(), DIALOG_SYMBOL_REMAP::backupProject(), LIB_VIEW_FRAME::BestZoom(), DIALOG_FOOTPRINT_FP_EDITOR::BrowseAndAdd3DShapeFile(), DIALOG_FOOTPRINT_BOARD_EDITOR::BrowseAndAdd3DShapeFile(), DIALOG_EDIT_COMPONENT_IN_LIBRARY::BrowseAndSelectDocFile(), DIALOG_SYMBOL_LIB_TABLE::browseLibrariesHandler(), CVPCB_MAINFRAME::BuildLIBRARY_LISTBOX(), DIALOG_FOOTPRINT_FP_EDITOR::Cfg3DPath(), DIALOG_FOOTPRINT_BOARD_EDITOR::Cfg3DPath(), DIALOG_EDIT_COMPONENT_IN_LIBRARY::checkNewAlias(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::copyPanelToOptions(), PCB_BASE_EDIT_FRAME::CreateNewLibrary(), DIALOG_PLOT_SCHEMATIC::createPlotFileName(), DIALOG_SYMBOL_REMAP::createProjectSymbolLibTable(), FOOTPRINT_EDIT_FRAME::DeleteModuleFromCurrentLibrary(), DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT(), DIALOG_CONFIG_EQUFILES::DIALOG_CONFIG_EQUFILES(), DIALOG_FOOTPRINT_BOARD_EDITOR::DIALOG_FOOTPRINT_BOARD_EDITOR(), DIALOG_FOOTPRINT_FP_EDITOR::DIALOG_FOOTPRINT_FP_EDITOR(), DIALOG_PAGES_SETTINGS::DIALOG_PAGES_SETTINGS(), DIALOG_SYMBOL_LIB_TABLE::DIALOG_SYMBOL_LIB_TABLE(), DIALOG_SYMBOL_REMAP::DIALOG_SYMBOL_REMAP(), LIB_VIEW_FRAME::DisplayLibInfos(), LIB_EDIT_FRAME::DisplayLibInfos(), SCH_BASE_FRAME::DisplayListComponentsInLib(), PCB_EDIT_FRAME::doAutoSave(), DIALOG_FOOTPRINT_FP_EDITOR::Edit3DShapeFileName(), DIALOG_FOOTPRINT_BOARD_EDITOR::Edit3DShapeFileName(), SCH_EDIT_FRAME::EditSheet(), PCB_EDIT_FRAME::Export_IDF3(), PCB_EDIT_FRAME::Files_io_from_id(), NETLIST_DIALOG::GenNetlist(), DISPLAY_FOOTPRINTS_FRAME::Get_Module(), FOOTPRINT_VIEWER_FRAME::getCurFootprintName(), LIB_EDIT_FRAME::GetCurLib(), FOOTPRINT_VIEWER_FRAME::getCurNickname(), FOOTPRINT_EDIT_FRAME::GetCurrentLib(), SCH_BASE_FRAME::GetLibAlias(), SCH_BASE_FRAME::GetLibPart(), FOOTPRINT_EDIT_FRAME::getLibPath(), LIB_EDIT_FRAME::getLibraryFileName(), DIALOG_SYMBOL_REMAP::getLibsNotInGlobalSymbolLibTable(), DIALOG_BOM::getPluginFileName(), LIB_VIEW_FRAME::getSelectedAlias(), FP_THREAD_IFACE::GetTable(), PCB_EDIT_FRAME::importFile(), SCH_EDIT_FRAME::importFile(), DIALOG_FOOTPRINT_FP_EDITOR::initModeditProperties(), DIALOG_FOOTPRINT_BOARD_EDITOR::InitModeditProperties(), PCB_EDIT_FRAME::InstallNetlistFrame(), SCH_EDIT_FRAME::IsSearchCacheObsolete(), KIWAY_HOLDER::Kiway(), SCH_EDIT_FRAME::Load_Component(), SCH_EDIT_FRAME::LoadCmpToFootprintLinkFile(), LIB_EDIT_FRAME::LoadComponentFromCurrentLib(), CVPCB_MAINFRAME::LoadFootprintFiles(), DIALOG_SPICE_MODEL::loadLibrary(), LIB_EDIT_FRAME::LoadOneSymbol(), CVPCB_MAINFRAME::LoadProjectFile(), SCH_EDIT_FRAME::LoadProjectFile(), PCB_EDIT_FRAME::LoadProjectSettings(), DIALOG_DRC_CONTROL::makeValidFileNameReport(), FOOTPRINT_VIEWER_FRAME::OnActivate(), DIALOG_GENCAD_EXPORT_OPTIONS::onBrowse(), DIALOG_DRC_CONTROL::OnButtonBrowseRptFileClick(), DIALOG_EDIT_COMPONENTS_LIBID::onClickOrphansButton(), CVPCB_MAINFRAME::OnEditFootprintLibraryTable(), SCH_BASE_FRAME::OnEditSymbolLibTable(), DIALOG_GENDRILL::OnGenReportFile(), DIALOG_CHOOSE_COMPONENT::OnIdle(), SCH_EDIT_FRAME::OnImportProject(), PCB_EDIT_FRAME::OnLeftClick(), DIALOG_NETLIST::OnOpenNetlistClick(), DIALOG_PLOT::OnOutputDirectoryBrowseClicked(), DIALOG_SVG_PRINT::OnOutputDirectoryBrowseClicked(), DIALOG_GENDRILL::OnOutputDirectoryBrowseClicked(), DIALOG_PLOT_SCHEMATIC::OnOutputDirectoryBrowseClicked(), LIB_EDIT_FRAME::OnPlotCurrentComponent(), DIALOG_SYMBOL_REMAP::OnRemapSymbols(), SCH_EDIT_FRAME::OnRightClick(), DIALOG_BOM::OnRunPlugin(), SCH_EDIT_FRAME::OnSaveProject(), DIALOG_CHOOSE_COMPONENT::OnSchViewPaint(), DIALOG_SPICE_MODEL::onSelectLibrary(), LIB_VIEW_FRAME::OnSelectSymbol(), DIALOG_EDIT_COMPONENT_IN_SCHEMATIC::OnTestChipName(), FOOTPRINT_EDIT_FRAME::OnUpdateSelectCurrentLib(), LIB_EDIT_FRAME::OnViewEntryDoc(), LIB_VIEW_FRAME::onViewSymbolDocument(), SCH_EDIT_FRAME::OpenProjectFiles(), PCB_EDIT_FRAME::OpenProjectFiles(), SCH_EDIT_FRAME::PasteListOfItems(), DIALOG_CHOOSE_COMPONENT::PopulateFootprintSelector(), SCH_EDIT_FRAME::Process_Config(), PCB_EDIT_FRAME::Process_Config(), FOOTPRINT_EDIT_FRAME::ProcessPreferences(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), PCB_EDIT_FRAME::RecreateCmpFileFromBoard(), FOOTPRINT_VIEWER_FRAME::ReCreateFootprintList(), LIB_VIEW_FRAME::ReCreateHToolbar(), FOOTPRINT_VIEWER_FRAME::ReCreateLibraryList(), LIB_VIEW_FRAME::ReCreateListCmp(), LIB_VIEW_FRAME::ReCreateListLib(), LIB_VIEW_FRAME::RedrawActiveWindow(), EDA_3D_VIEWER::ReloadRequest(), DIALOG_SYMBOL_REMAP::remapSymbolToLibTable(), FOOTPRINT_EDIT_FRAME::restoreLastFootprint(), FOOTPRINT_EDIT_FRAME::retainLastFootprint(), SCH_EDIT_FRAME::SaveEEFile(), FOOTPRINT_EDIT_FRAME::SaveFootprintInLibrary(), LIB_EDIT_FRAME::saveLibrary(), LIB_EDIT_FRAME::SaveOneSymbol(), CVPCB_MAINFRAME::SaveProjectFile(), SCH_EDIT_FRAME::SaveProjectSettings(), PCB_EDIT_FRAME::SaveProjectSettings(), SCH_BASE_FRAME::saveSymbolLibTables(), FOOTPRINT_VIEWER_FRAME::SelectAndViewFootprint(), SCH_BASE_FRAME::SelectComponentFromLibrary(), PCB_BASE_FRAME::SelectLibrary(), SCH_BASE_FRAME::SelectLibraryFromList(), LIB_EDIT_FRAME::selectSymLibTable(), SCH_EDIT_FRAME::sendNetlist(), FOOTPRINT_VIEWER_FRAME::setCurFootprintName(), LIB_EDIT_FRAME::SetCurLib(), FOOTPRINT_VIEWER_FRAME::setCurNickname(), LIB_EDIT_FRAME::SetCurPart(), DIALOG_CHOOSE_COMPONENT::ShowFootprintFor(), SIM_PLOT_FRAME::SIM_PLOT_FRAME(), LIB_MANAGER::symTable(), EDA_3D_VIEWER::takeScreenshot(), SIM_PLOT_FRAME::updateNetlistExporter(), SCH_SCREEN::UpdateSymbolLinks(), FOOTPRINT_VIEWER_FRAME::UpdateTitle(), FOOTPRINT_EDIT_FRAME::updateTitle(), SCH_EDIT_FRAME::WriteNetListFile(), DIALOG_FOOTPRINT_BOARD_EDITOR::~DIALOG_FOOTPRINT_BOARD_EDITOR(), and DIALOG_FOOTPRINT_FP_EDITOR::~DIALOG_FOOTPRINT_FP_EDITOR().

35 {
36  return Kiway().Prj();
37 }
KIWAY & Kiway() const
Function Kiway returns a reference to the KIWAY that this object has an opportunity to participate in...
Definition: kiway_player.h:60
VTBL_ENTRY PROJECT & Prj() const
Function Prj returns the PROJECT associated with this KIWAY.
Definition: kiway.cpp:142
void DIALOG_RESCUE_EACH::renderPreview ( LIB_PART aComponent,
int  aUnit,
wxPanel *  panel 
)
private

Definition at line 246 of file dialog_rescue_each.cpp.

References EDA_RECT::Centre(), PART_DRAW_OPTIONS::Default(), LIB_PART::Draw(), SCH_BASE_FRAME::GetDrawBgColor(), EDA_RECT::GetHeight(), LIB_PART::GetUnitBoundingBox(), EDA_RECT::GetWidth(), m_Parent, min, and scale.

Referenced by OnHandleCachePreviewRepaint(), and OnHandleLibraryPreviewRepaint().

247 {
248  wxPaintDC dc( aPanel );
249  wxColour bgColor = m_Parent->GetDrawBgColor().ToColour();
250 
251  dc.SetBackground( wxBrush( bgColor ) );
252  dc.Clear();
253 
254  if( aComponent == NULL )
255  return;
256 
257  if( aUnit <= 0 )
258  aUnit = 1;
259 
260  const wxSize dc_size = dc.GetSize();
261  dc.SetDeviceOrigin( dc_size.x / 2, dc_size.y / 2 );
262 
263  // Find joint bounding box for everything we are about to draw.
264  EDA_RECT bBox = aComponent->GetUnitBoundingBox( aUnit, /* deMorganConvert */ 1 );
265  const double xscale = (double) dc_size.x / bBox.GetWidth();
266  const double yscale = (double) dc_size.y / bBox.GetHeight();
267  const double scale = std::min( xscale, yscale ) * 0.85;
268 
269  dc.SetUserScale( scale, scale );
270 
271  wxPoint offset = - bBox.Centre();
272 
273  // Avoid rendering when either dimension is zero
274  int width, height;
275 
276  dc.GetSize( &width, &height );
277  if( !width || !height )
278  return;
279 
280  aComponent->Draw( NULL, &dc, offset, aUnit, 1, PART_DRAW_OPTIONS::Default() );
281 }
void Draw(EDA_DRAW_PANEL *aPanel, wxDC *aDc, const wxPoint &aOffset, int aMulti, int aConvert, const PART_DRAW_OPTIONS &aOpts)
Draw part.
const EDA_RECT GetUnitBoundingBox(int aUnit, int aConvert) const
Get the bounding box for the symbol.
SCH_EDIT_FRAME * m_Parent
int GetHeight() const
Definition: eda_rect.h:118
wxPoint Centre() const
Definition: eda_rect.h:60
static PART_DRAW_OPTIONS Default()
COLOR4D GetDrawBgColor() const override
const int scale
Class EDA_RECT handles the component boundary box.
Definition: eda_rect.h:44
int GetWidth() const
Definition: eda_rect.h:117
#define min(a, b)
Definition: auxiliary.h:85
void KIWAY_HOLDER::SetKiway ( wxWindow *  aDest,
KIWAY aKiway 
)
inherited

Function SetKiway.

Parameters
aDestis the recipient of aKiway pointer. It is only used for debugging, since "this" is not a wxWindow*. "this" is a KIWAY_HOLDER mix-in.
aKiwayis often from a parent window, or from KIFACE::CreateWindow().

Definition at line 41 of file kiway_holder.cpp.

References KIWAY_HOLDER::m_kiway, and name.

Referenced by DIALOG_SHIM::DIALOG_SHIM(), KIWAY_HOLDER::Kiway(), and SIM_PLOT_FRAME::SIM_PLOT_FRAME().

42 {
43 #if defined(DEBUG)
44  // offer a trap point for debugging most any window
45  wxASSERT( aDest );
46  if( !strcmp( typeid(aDest).name(), "DIALOG_EDIT_LIBENTRY_FIELDS_IN_LIB" ) )
47  {
48  int breakhere=1;
49  (void) breakhere;
50  }
51 #endif
52 
53  (void) aDest;
54 
55  m_kiway = aKiway;
56 }
KIWAY * m_kiway
Definition: kiway_player.h:85
const char * name
Definition: DXF_plotter.cpp:61
void DIALOG_SHIM::SetSizeInDU ( int  x,
int  y 
)
protectedinherited

Set the dialog to the given dimensions in "dialog units".

These are units equivalent to 4* the average character width and 8* the average character height, allowing a dialog to be sized in a way that scales it with the system font.

Definition at line 118 of file dialog_shim.cpp.

Referenced by DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT(), DIALOG_EDIT_COMPONENTS_LIBID::DIALOG_EDIT_COMPONENTS_LIBID(), DIALOG_FIELDS_EDITOR_GLOBAL::DIALOG_FIELDS_EDITOR_GLOBAL(), DIALOG_RESCUE_EACH(), DIALOG_SYMBOL_LIB_TABLE::DIALOG_SYMBOL_LIB_TABLE(), HOTKEYS_EDITOR_DIALOG::HOTKEYS_EDITOR_DIALOG(), HTML_MESSAGE_BOX::HTML_MESSAGE_BOX(), DIALOG_SHIM::IsQuasiModal(), DIALOG_LAYERS_SETUP::OnInitDialog(), and HTML_MESSAGE_BOX::SetDialogSizeInDU().

119 {
120  wxSize sz( x, y );
121  SetSize( ConvertDialogToPixels( sz ) );
122 }
bool DIALOG_SHIM::Show ( bool  show)
overrideinherited

Definition at line 146 of file dialog_shim.cpp.

References class_map, EDA_RECT::GetPosition(), EDA_RECT::GetSize(), DIALOG_SHIM::m_hash_key, max, wxPoint::x, and wxPoint::y.

Referenced by DisplayHotkeyList(), DIALOG_SHIM::EndQuasiModal(), InvokeDialogERC(), DIALOG_SHIM::IsQuasiModal(), DIALOG_SCH_FIND::OnCancel(), DIALOG_DRC_CONTROL::OnLeftDClickClearance(), DIALOG_DRC_CONTROL::OnLeftDClickUnconnected(), DIALOG_DRC_CONTROL::OnPopupMenu(), DIALOG_EXCHANGE_FOOTPRINTS::OnQuit(), POSITION_RELATIVE_TOOL::PositionRelative(), CVPCB_MAINFRAME::ReadNetListAndFpFiles(), SCH_COMPONENT::SetPosition(), DRC::ShowDRCDialog(), and DIALOG_SHIM::ShowQuasiModal().

147 {
148  bool ret;
149  const char* hash_key;
150 
151  if( m_hash_key.size() )
152  {
153  // a special case like EDA_LIST_DIALOG, which has multiple uses.
154  hash_key = m_hash_key.c_str();
155  }
156  else
157  {
158  hash_key = typeid(*this).name();
159  }
160 
161  // Show or hide the window. If hiding, save current position and size.
162  // If showing, use previous position and size.
163  if( show )
164  {
165 #ifndef __WINDOWS__
166  wxDialog::Raise(); // Needed on OS X and some other window managers (i.e. Unity)
167 #endif
168  ret = wxDialog::Show( show );
169 
170  // classname is key, returns a zeroed out default EDA_RECT if none existed before.
171  EDA_RECT savedDialogRect = class_map[ hash_key ];
172 
173  if( savedDialogRect.GetSize().x != 0 && savedDialogRect.GetSize().y != 0 )
174  {
175  SetSize( savedDialogRect.GetPosition().x,
176  savedDialogRect.GetPosition().y,
177  std::max( wxDialog::GetSize().x, savedDialogRect.GetSize().x ),
178  std::max( wxDialog::GetSize().y, savedDialogRect.GetSize().y ),
179  0 );
180  }
181 
182  // Be sure that the dialog appears in a visible area
183  // (the dialog position might have been stored at the time when it was
184  // shown on another display)
185  if( wxDisplay::GetFromWindow( this ) == wxNOT_FOUND )
186  Centre();
187  }
188  else
189  {
190  // Save the dialog's position & size before hiding, using classname as key
191  class_map[ hash_key ] = EDA_RECT( wxDialog::GetPosition(), wxDialog::GetSize() );
192 
193 #ifdef __WXMAC__
194  if ( m_eventLoop )
195  m_eventLoop->Exit( GetReturnCode() ); // Needed for APP-MODAL dlgs on OSX
196 #endif
197 
198  ret = wxDialog::Show( show );
199  }
200 
201  return ret;
202 }
const wxSize GetSize() const
Definition: eda_rect.h:101
std::string m_hash_key
Definition: dialog_shim.h:151
static RECT_MAP class_map
const wxPoint GetPosition() const
Definition: eda_rect.h:113
#define max(a, b)
Definition: auxiliary.h:86
Class EDA_RECT handles the component boundary box.
Definition: eda_rect.h:44
int DIALOG_SHIM::ShowQuasiModal ( )
inherited

Definition at line 558 of file dialog_shim.cpp.

References DBG, DIALOG_SHIM::m_qmodal_loop, DIALOG_SHIM::m_qmodal_parent_disabler, DIALOG_SHIM::m_qmodal_showing, and DIALOG_SHIM::Show().

Referenced by SCH_EDIT_FRAME::EditComponent(), SCH_EDIT_FRAME::EditComponentFieldText(), LIB_EDIT_FRAME::EditField(), EDIT_TOOL::ExchangeFootprints(), PCB_EDIT_FRAME::InstallExchangeModuleFrame(), LIB_EDIT_FRAME::InstallFieldsEditorDialog(), SCH_EDIT_FRAME::InstallHierarchyFrame(), InvokeDialogCreateBOMEditor(), InvokeDialogEditComponentsLibId(), InvokeDialogUpdateFields(), SCH_EDIT_FRAME::OnRemapSymbols(), LIB_VIEW_FRAME::OnSelectSymbol(), SCH_EDIT_FRAME::OpenProjectFiles(), and SCH_BASE_FRAME::SelectComponentFromLibrary().

559 {
560  // This is an exception safe way to zero a pointer before returning.
561  // Yes, even though DismissModal() clears this first normally, this is
562  // here in case there's an exception before the dialog is dismissed.
563  struct NULLER
564  {
565  void*& m_what;
566  NULLER( void*& aPtr ) : m_what( aPtr ) {}
567  ~NULLER() { m_what = 0; } // indeed, set it to NULL on destruction
568  } clear_this( (void*&) m_qmodal_loop );
569 
570  // release the mouse if it's currently captured as the window having it
571  // will be disabled when this dialog is shown -- but will still keep the
572  // capture making it impossible to do anything in the modal dialog itself
573  wxWindow* win = wxWindow::GetCapture();
574  if( win )
575  win->ReleaseMouse();
576 
577  // Get the optimal parent
578  wxWindow* parent = GetParentForModalDialog( GetParent(), GetWindowStyle() );
579 
580  // Show the optimal parent
581  DBG( if( parent ) printf( "%s: optimal parent: %s\n", __func__, typeid(*parent).name() );)
582 
583  wxASSERT_MSG( !m_qmodal_parent_disabler,
584  wxT( "Caller using ShowQuasiModal() twice on same window?" ) );
585 
586  // quasi-modal: disable only my "optimal" parent
588 
589 #ifdef __WXMAC__
590  // Apple in its infinite wisdom will raise a disabled window before even passing
591  // us the event, so we have no way to stop it. Instead, we must set an order on
592  // the windows so that the quasi-modal will be pushed in front of the disabled
593  // window when it is raised.
594  ReparentQuasiModal();
595 #endif
596  Show( true );
597 
598  m_qmodal_showing = true;
599 
600  EVENT_LOOP event_loop;
601 
602  m_qmodal_loop = &event_loop;
603 
604  event_loop.Run();
605 
606  return GetReturnCode();
607 }
bool m_qmodal_showing
Definition: dialog_shim.h:155
EVENT_LOOP * m_qmodal_loop
Definition: dialog_shim.h:154
bool Show(bool show) override
WDO_ENABLE_DISABLE * m_qmodal_parent_disabler
Definition: dialog_shim.h:156
Toggle a window&#39;s "enable" status to disabled, then enabled on destruction.
Definition: dialog_shim.cpp:33
#define DBG(x)
Definition: fctsys.h:33
bool DIALOG_RESCUE_EACH::TransferDataFromWindow ( )
overrideprivate

Definition at line 299 of file dialog_rescue_each.cpp.

References RESCUER::GetCandidateCount(), RESCUER::m_all_candidates, RESCUER::m_chosen_candidates, DIALOG_RESCUE_EACH_BASE::m_ListOfConflicts, and m_Rescuer.

300 {
301  if( !wxDialog::TransferDataFromWindow() )
302  return false;
303 
304  for( size_t index = 0; index < m_Rescuer->GetCandidateCount(); ++index )
305  {
306  wxVariant val;
307  m_ListOfConflicts->GetValue( val, index, 0 );
308  bool rescue_part = val.GetBool();
309 
310  if( rescue_part )
312  }
313  return true;
314 }
boost::ptr_vector< RESCUE_CANDIDATE > m_all_candidates
size_t GetCandidateCount()
Returen the number of rescue candidates found.
std::vector< RESCUE_CANDIDATE * > m_chosen_candidates
wxDataViewListCtrl * m_ListOfConflicts
bool DIALOG_RESCUE_EACH::TransferDataToWindow ( )
overrideprivate

Definition at line 146 of file dialog_rescue_each.cpp.

References m_AskShowAgain, DIALOG_RESCUE_EACH_BASE::m_btnNeverShowAgain, PopulateConflictList(), and PopulateInstanceList().

147 {
148  if( !wxDialog::TransferDataToWindow() )
149  return false;
150 
153 
154  if( !m_AskShowAgain )
155  m_btnNeverShowAgain->Hide();
156 
157  return true;
158 }
int DIALOG_SHIM::VertPixelsFromDU ( int  y)
protectedinherited

Convert an integer number of dialog units to pixels, vertically.

See SetSizeInDU or wxDialog documentation for more information.

Definition at line 132 of file dialog_shim.cpp.

Referenced by DIALOG_CHOOSE_COMPONENT::DIALOG_CHOOSE_COMPONENT(), DIALOG_EDIT_COMPONENTS_LIBID::DIALOG_EDIT_COMPONENTS_LIBID(), DIALOG_SHIM::IsQuasiModal(), and DIALOG_LAYERS_SETUP::OnInitDialog().

133 {
134  wxSize sz( 0, y );
135  return ConvertDialogToPixels( sz ).y;
136 }

Member Data Documentation

bool DIALOG_RESCUE_EACH::m_AskShowAgain
private

Definition at line 56 of file dialog_rescue_each.cpp.

Referenced by TransferDataToWindow().

wxButton* DIALOG_RESCUE_EACH_BASE::m_btnNeverShowAgain
protectedinherited
wxPanel* DIALOG_RESCUE_EACH_BASE::m_componentViewOld
protectedinherited
wxConfigBase* DIALOG_RESCUE_EACH::m_Config
private

Definition at line 54 of file dialog_rescue_each.cpp.

Referenced by DIALOG_RESCUE_EACH(), and OnNeverShowClick().

bool DIALOG_SHIM::m_fixupsRun
protectedinherited

Definition at line 149 of file dialog_shim.h.

Referenced by DIALOG_SHIM::OnPaint().

std::string DIALOG_SHIM::m_hash_key
protectedinherited
wxHtmlWindow* DIALOG_RESCUE_EACH_BASE::m_htmlPrompt
protectedinherited
wxDataViewListCtrl* DIALOG_RESCUE_EACH_BASE::m_ListOfInstances
protectedinherited
SCH_EDIT_FRAME* DIALOG_RESCUE_EACH::m_Parent
private

Definition at line 53 of file dialog_rescue_each.cpp.

Referenced by OnNeverShowClick(), PopulateInstanceList(), and renderPreview().

EVENT_LOOP* DIALOG_SHIM::m_qmodal_loop
protectedinherited

Definition at line 154 of file dialog_shim.h.

Referenced by DIALOG_SHIM::EndQuasiModal(), and DIALOG_SHIM::ShowQuasiModal().

WDO_ENABLE_DISABLE* DIALOG_SHIM::m_qmodal_parent_disabler
protectedinherited
bool DIALOG_SHIM::m_qmodal_showing
protectedinherited
wxStaticText* DIALOG_RESCUE_EACH_BASE::m_staticText2
protectedinherited
wxStaticText* DIALOG_RESCUE_EACH_BASE::m_staticText3
protectedinherited
wxStdDialogButtonSizer* DIALOG_RESCUE_EACH_BASE::m_stdButtons
protectedinherited
wxButton* DIALOG_RESCUE_EACH_BASE::m_stdButtonsCancel
protectedinherited
wxButton* DIALOG_RESCUE_EACH_BASE::m_stdButtonsOK
protectedinherited
wxStaticText* DIALOG_RESCUE_EACH_BASE::m_titleInstances
protectedinherited
wxStaticText* DIALOG_RESCUE_EACH_BASE::m_titleSymbols
protectedinherited

The documentation for this class was generated from the following file: