From be7de02a1d40c103fd67a5bac37553f6a2093cca Mon Sep 17 00:00:00 2001 From: jean-pierre charras Date: Tue, 16 Apr 2013 12:53:23 +0200 Subject: [PATCH] Eeschema: fix bug #1168116. Netlist generation: remove dead code and fully outdated option pspice "use net number" Pcbnew: layer manager: display tooltips using translated form (where internationalized, but always shown in English). --- eeschema/dialogs/dialog_netlist.cpp | 26 ---- eeschema/dialogs/dialog_netlist.h | 3 - eeschema/events_called_functions_for_edit.cpp | 14 +-- eeschema/netform.cpp | 119 +----------------- eeschema/schedit.cpp | 6 +- pcbnew/class_pcb_layer_widget.cpp | 12 +- 6 files changed, 24 insertions(+), 156 deletions(-) diff --git a/eeschema/dialogs/dialog_netlist.cpp b/eeschema/dialogs/dialog_netlist.cpp index 3914a3c3aa..0964609497 100644 --- a/eeschema/dialogs/dialog_netlist.cpp +++ b/eeschema/dialogs/dialog_netlist.cpp @@ -188,9 +188,6 @@ NETLIST_DIALOG::NETLIST_DIALOG( SCH_EDIT_FRAME* parent ) : long tmp; m_config->Read( NETLIST_USE_DEFAULT_NETNAME, &tmp, 0l ); m_cbUseDefaultNetlistName->SetValue( tmp ); - m_config->Read( NETLIST_PSPICE_USE_NETNAME, &m_spiceNetlistUseNames, true ); - - m_NetFmtName = m_Parent->GetNetListFormatName(); for( int ii = 0; ii < PANELCUSTOMBASE + CUSTOMPANEL_COUNTMAX; ii++ ) @@ -268,18 +265,6 @@ void NETLIST_DIALOG::InstallPageSpice() page->m_AddSubPrefix->SetValue( m_Parent->GetAddReferencePrefix() ); page->m_LeftBoxSizer->Add( page->m_AddSubPrefix, 0, wxGROW | wxALL, 5 ); - - wxString netlist_opt[2] = { _( "Use Net Names" ), _( "Use Net Numbers" ) }; - page->m_NetOption = new wxRadioBox( page, -1, _( "Netlist Options:" ), - wxDefaultPosition, wxDefaultSize, - 2, netlist_opt, 1, - wxRA_SPECIFY_COLS ); - - if( !m_spiceNetlistUseNames ) - page->m_NetOption->SetSelection( 1 ); - - page->m_LeftBoxSizer->Add( page->m_NetOption, 0, wxGROW | wxALL, 5 ); - page->m_LowBoxSizer->Add( new wxStaticText( page, -1, _( "Simulator command:" ) ), 0, wxGROW | wxLEFT | wxRIGHT | wxTOP, 5 ); @@ -438,11 +423,6 @@ void NETLIST_DIALOG::NetlistUpdateOpt() if( m_PanelNetType[ii]->m_IsCurrentFormat->GetValue() == true ) m_Parent->SetNetListFormatName( m_PanelNetType[ii]->GetPageNetFmtName() ); } - - m_spiceNetlistUseNames = true; // Used for pspice, gnucap - - if( m_PanelNetType[PANELSPICE]->m_NetOption->GetSelection() == 1 ) - m_spiceNetlistUseNames = false; } @@ -475,8 +455,6 @@ void NETLIST_DIALOG::GenNetlist( wxCommandEvent& event ) { case NET_TYPE_SPICE: // Set spice netlist options: - if( m_spiceNetlistUseNames ) - netlist_opt |= NET_USE_NETNAMES; if( currPage->m_AddSubPrefix->GetValue() ) netlist_opt |= NET_USE_X_PREFIX; break; @@ -647,13 +625,10 @@ void NETLIST_DIALOG::RunSimulator( wxCommandEvent& event ) NETLIST_PAGE_DIALOG* currPage; currPage = (NETLIST_PAGE_DIALOG*) m_NoteBook->GetCurrentPage(); - m_spiceNetlistUseNames = currPage->m_NetOption->GetSelection() == 0; // Set spice netlist options: unsigned netlist_opt = 0; - if( m_spiceNetlistUseNames ) - netlist_opt |= NET_USE_NETNAMES; if( currPage->m_AddSubPrefix && currPage->m_AddSubPrefix->GetValue() ) netlist_opt |= NET_USE_X_PREFIX; @@ -676,7 +651,6 @@ void NETLIST_DIALOG::WriteCurrentNetlistSetup( void ) NetlistUpdateOpt(); m_config->Write( NETLIST_USE_DEFAULT_NETNAME, GetUseDefaultNetlistName() ); - m_config->Write( NETLIST_PSPICE_USE_NETNAME, m_spiceNetlistUseNames ); // Update the new titles for( int ii = 0; ii < CUSTOMPANEL_COUNTMAX; ii++ ) diff --git a/eeschema/dialogs/dialog_netlist.h b/eeschema/dialogs/dialog_netlist.h index 686cbceef5..33311e4750 100644 --- a/eeschema/dialogs/dialog_netlist.h +++ b/eeschema/dialogs/dialog_netlist.h @@ -110,7 +110,6 @@ public: // Options for Spice netlist generation (OR'ed bits enum netlistOptions { - NET_USE_NETNAMES = 1, // for Spice netlist : use netnames instead of numbers NET_USE_X_PREFIX = 2, // for Spice netlist : change "U" and "IC" reference prefix to "X" NET_PCBNEW_USE_NEW_FORMAT = 1, // For Pcbnew use the new format (S expression and SWEET) }; @@ -125,8 +124,6 @@ public: private: wxConfig* m_config; - bool m_spiceNetlistUseNames; /* true to use names rather than net - * numbers (PSPICE netlist only) */ public: diff --git a/eeschema/events_called_functions_for_edit.cpp b/eeschema/events_called_functions_for_edit.cpp index dda4c0e193..2939d28da8 100644 --- a/eeschema/events_called_functions_for_edit.cpp +++ b/eeschema/events_called_functions_for_edit.cpp @@ -32,10 +32,9 @@ void SCH_EDIT_FRAME::OnCopySchematicItemRequest( wxCommandEvent& event ) newitem->SetTimeStamp( GetNewTimeStamp() ); newitem->ClearAnnotation( NULL ); newitem->SetFlags( IS_NEW ); - MoveItem( (SCH_ITEM*) newitem, &dc ); - - // Redraw the original part, because StartMovePart() erased it from screen. - curr_item->Draw( m_canvas, &dc, wxPoint( 0, 0 ), g_XorMode ); + // Draw the new part, MoveItem() expects it to be already on screen. + newitem->Draw( m_canvas, &dc, wxPoint( 0, 0 ), g_XorMode ); + MoveItem( newitem, &dc ); } break; @@ -46,10 +45,9 @@ void SCH_EDIT_FRAME::OnCopySchematicItemRequest( wxCommandEvent& event ) { SCH_TEXT* newitem = (SCH_TEXT*) curr_item->Clone(); newitem->SetFlags( IS_NEW ); - MoveItem( (SCH_ITEM*) newitem, &dc ); - - /* Redraw the original part in XOR mode */ - curr_item->Draw( m_canvas, &dc, wxPoint( 0, 0 ), g_XorMode ); + // Draw the new item, MoveItem() expects it to be already on screen. + newitem->Draw( m_canvas, &dc, wxPoint( 0, 0 ), g_XorMode ); + MoveItem( newitem, &dc ); } break; diff --git a/eeschema/netform.cpp b/eeschema/netform.cpp index 9a39af7109..1d5e1ae7b8 100644 --- a/eeschema/netform.cpp +++ b/eeschema/netform.cpp @@ -298,12 +298,10 @@ public: * .-PSpice or .-gnucap put at beginning of the netlist * .+PSpice or .-genucap are put at end of the netList * @param f = the file to write to - * @param use_netnames = true, to use netnames in netlist, - * false to use net number. * @param aUsePrefix = true, adds an 'X' prefix to any reference designator starting with "U" or "IC", * false to leave reference designator unchanged. */ - bool WriteNetListPspice( FILE* f, bool use_netnames, bool aUsePrefix ); + bool WriteNetListPspice( FILE* f, bool aUsePrefix ); /** * Function MakeCommandLine @@ -360,8 +358,6 @@ wxString NETLIST_EXPORT_TOOL::MakeCommandLine( const wxString& aFormatString, * param aFullFileName = full netlist file name * param aNetlistOptions = netlist options using OR'ed bits. * For SPICE netlist only: - * if NET_USE_NETNAMES is set, use net names from labels in schematic - * else use net numbers (net codes) * if NET_USE_X_PREFIX is set : change "U" and "IC" refernce prefix to "X" * return true if success. */ @@ -381,7 +377,7 @@ bool SCH_EDIT_FRAME::WriteNetListFile( int aFormat, const wxString& aFullFileNam if( ( f = wxFopen( aFullFileName, wxT( "wt" ) ) ) == NULL ) { wxString msg; - msg.Printf( _( "Failed to create file <%s>" ), + msg.Printf( _( "Failed to create file <%s>" ), GetChars( aFullFileName ) ); DisplayError( this, msg ); return false; @@ -413,9 +409,7 @@ bool SCH_EDIT_FRAME::WriteNetListFile( int aFormat, const wxString& aFullFileNam break; case NET_TYPE_SPICE: - ret = helper.WriteNetListPspice( f, - aNetlistOptions & NET_USE_NETNAMES, - aNetlistOptions & NET_USE_X_PREFIX ); + ret = helper.WriteNetListPspice( f, aNetlistOptions & NET_USE_X_PREFIX ); fclose( f ); break; @@ -1086,110 +1080,16 @@ bool NETLIST_EXPORT_TOOL::WriteGENERICNetList( const wxString& aOutFileName ) for( unsigned ii = 0; ii < g_NetObjectslist.size(); ii++ ) g_NetObjectslist[ii]->m_Flag = 0; -#if 1 // output the XML format netlist. wxXmlDocument xdoc; xdoc.SetRoot( makeGenericRoot() ); return xdoc.Save( aOutFileName, 2 /* indent bug, today was ignored by wxXml lib */ ); - -#else // output the well established/old generic net list format which was not XML. - - wxString field; - wxString footprint; - wxString netname; - FILE* out; - int ret = 0; // OR on each call, test sign bit at very end. - - if( ( out = wxFopen( aOutFileName, wxT( "wt" ) ) ) == NULL ) - { - wxString msg; - msg.Printf( _( "Failed to create file <%s>" ), GetChars( aOutFileName ) ); - DisplayError( NULL, msg ); - return false; - } - - m_ReferencesAlreadyFound.Clear(); - - ret |= fprintf( out, "$BeginNetlist\n" ); - - // Create netlist module section - ret |= fprintf( out, "$BeginComponentList\n" ); - - SCH_SHEET_LIST sheetList; - - for( SCH_SHEET_PATH* path = sheetList.GetFirst(); path; path = sheetList.GetNext() ) - { - for( EDA_ITEM* schItem = path->LastDrawList(); schItem; schItem = schItem->Next() ) - { - SCH_COMPONENT* comp = findNextComponentAndCreatePinList( schItem, path ); - if( !comp ) - break; // No component left - - schItem = comp; - - footprint.Empty(); - if( !comp->GetField( FOOTPRINT )->IsVoid() ) - { - footprint = comp->GetField( FOOTPRINT )->m_Text; - footprint.Replace( wxT( " " ), wxT( "_" ) ); - } - - ret |= fprintf( out, "\n$BeginComponent\n" ); - ret |= fprintf( out, "TimeStamp=%8.8lX\n", comp->m_TimeStamp ); - ret |= fprintf( out, "Footprint=%s\n", TO_UTF8( footprint ) ); - - field = wxT( "Reference=" ) + comp->GetRef( path ) + wxT( "\n" ); - field.Replace( wxT( " " ), wxT( "_" ) ); - ret |= fputs( TO_UTF8( field ), out ); - - field = comp->GetField( VALUE )->m_Text; - field.Replace( wxT( " " ), wxT( "_" ) ); - ret |= fprintf( out, "Value=%s\n", TO_UTF8( field ) ); - - field = comp->GetLibName(); - field.Replace( wxT( " " ), wxT( "_" ) ); - ret |= fprintf( out, "Libref=%s\n", TO_UTF8( field ) ); - - // Write pin list: - ret |= fprintf( out, "$BeginPinList\n" ); - for( unsigned ii = 0; ii < m_SortedComponentPinList.size(); ii++ ) - { - NETLIST_OBJECT* Pin = m_SortedComponentPinList[ii]; - if( !Pin ) - continue; - - sprintPinNetName( &netname, wxT( "$-%.6d" ), Pin ); - if( netname.IsEmpty() ) - netname = wxT( "?" ); - - ret |= fprintf( out, "%.4s=%s\n", (char*) &Pin->m_PinNum, TO_UTF8( netname ) ); - } - - ret |= fprintf( out, "$EndPinList\n" ); - ret |= fprintf( out, "$EndComponent\n" ); - } - } - - ret |= fprintf( out, "$EndComponentList\n" ); - - ret |= fprintf( out, "\n$BeginNets\n" ); - - if( !writeGENERICListOfNets( out, g_NetObjectslist ) ) - ret = -1; - - ret |= fprintf( out, "$EndNets\n" ); - - ret |= fprintf( out, "\n$EndNetlist\n" ); - ret |= fclose( out ); - - return ret >= 0; -#endif } -bool NETLIST_EXPORT_TOOL::WriteNetListPspice( FILE* f, bool use_netnames, bool aUsePrefix ) +bool NETLIST_EXPORT_TOOL::WriteNetListPspice( FILE* f, bool aUsePrefix ) { int ret = 0; int nbitems; @@ -1406,17 +1306,8 @@ bool NETLIST_EXPORT_TOOL::WriteNetListPspice( FILE* f, bool use_netnames, bool a if( netName.IsEmpty() ) netName = wxT( "?" ); - if( use_netnames ) - ret |= fprintf( f, " %s", TO_UTF8( netName ) ); + ret |= fprintf( f, " %s", TO_UTF8( netName ) ); - else // Use number for net names (net number = 0 for "GND") - { - // NetName = "0" is "GND" net for Spice - if( netName == wxT( "0" ) || netName == wxT( "GND" ) ) - ret |= fprintf( f, " 0" ); - else - ret |= fprintf( f, " %d", pin->GetNet() ); - } } // Get Component Value Name: diff --git a/eeschema/schedit.cpp b/eeschema/schedit.cpp index 605c28cbfc..3f509a6b55 100644 --- a/eeschema/schedit.cpp +++ b/eeschema/schedit.cpp @@ -1,9 +1,9 @@ /* * This program source code file is part of KiCad, a free EDA CAD application. * - * Copyright (C) 2004 Jean-Pierre Charras, jaen-pierre.charras@gipsa-lab.inpg.com - * Copyright (C) 2008-2011 Wayne Stambaugh - * Copyright (C) 2004-2011 KiCad Developers, see change_log.txt for contributors. + * Copyright (C) 2013 Jean-Pierre Charras, jp.charras at wanadoo.fr + * Copyright (C) 2008-2013 Wayne Stambaugh + * Copyright (C) 2004-2013 KiCad Developers, see change_log.txt for contributors. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License diff --git a/pcbnew/class_pcb_layer_widget.cpp b/pcbnew/class_pcb_layer_widget.cpp index e60e8129ba..a4dc99df80 100644 --- a/pcbnew/class_pcb_layer_widget.cpp +++ b/pcbnew/class_pcb_layer_widget.cpp @@ -209,9 +209,14 @@ void PCB_LAYER_WIDGET::ReFillRender() ClearRenderRows(); // Add "Render" tab rows to LAYER_WIDGET, after setting color and checkbox state. + // Because s_render_rows is created static, we must explicitely call + // wxGetTranslation for texts which are internationalized (tool tips + // and item names) for( unsigned row=0; rowGetLayerName( layer ), layer, brd->GetLayerColor( layer ), dsc, true ) ); + brd->GetLayerName( layer ), layer, brd->GetLayerColor( layer ), + dsc, true ) ); } } // technical layers are shown in this order: + // Because they are static, wxGetTranslation must be explicitely + // called for tooltips. static const struct { LAYER_NUM layerId; wxString tooltip; @@ -322,7 +330,7 @@ void PCB_LAYER_WIDGET::ReFill() AppendLayerRow( LAYER_WIDGET::ROW( brd->GetLayerName( layer ), layer, brd->GetLayerColor( layer ), - techLayerSeq[i].tooltip, true ) ); + wxGetTranslation( techLayerSeq[i].tooltip ), true ) ); } installRightLayerClickHandler();