Commit 61b4f8a9 authored by Wayne Stambaugh's avatar Wayne Stambaugh
Browse files

Pcbnew NETLIST_READER improvements.

* Create separate NETLIST object to hold contents of netlist files.
* Read entire netlist and footprint link files before making applying
  changes to board.
* Add BOARD::ReplaceNetlist() function to eliminate the calls between the
  NETLIST_READER, PCB_EDIT_FRAME, and BOARD objects.
* Change placement of new components below the center of the current board
  or in the center of the page if the BOARD is empty.
* Add dry run option to netlist dialog to print changes to message control
  without making changes.
* Add button to netlist dialog to allow saving contents of message control
  to a file.
* Eliminate the need to compile netlist_reader_*.cpp in both CvPcb and Pcbnew.
* Add netlist_reader_*.cpp to the pcbcommon library.
* Remove redundant load component link file code from CvPcb.
* Modify CvPcb new to work with the new NETLIST_READER object.
* Add compare() function and < and == operators to FPID object.
* Add REPORTER class to hide an underlying string writing implementation for
  use in low level objects.  Thank you Dick for the idea.
* Lots of minor coding policy, Doxygen comment, and missing license fixes.
parent d8ba7b3a
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -112,7 +112,8 @@ public:
     * Function GetNodeProperties
     * Collects all node properties to map.
     *
     * @param aProps contains map of found properties
     * @param aNode is an XML node.
     * @param aProps contains map of found properties.
     */
    static void GetNodeProperties( wxXmlNode* aNode, PROPERTY_MAP& aProps );

+5 −4
Original line number Diff line number Diff line
@@ -10,7 +10,7 @@ WXMAC Platform
Common
------
* Grep for @TODO or TODO for sourcecode tasks
* Use doxygen compatible comments on member functions (.h files)
* Use Doxygen compatible comments on member functions (.h files)
* Add tooltip text to all non-obvious controls in every dialog window.
  Use wxFormBuilder.
* Component and module search displays in which library the
@@ -113,9 +113,9 @@ const wxString FP_LIB_TABLE::ExpandSubtitutions( const wxString aString )



EESchema
Eeschema
--------
* Drag and drop between two EESchema windows.
* Drag and drop between two Eeschema windows.

Wayne:
E3)  Hook up perform last library search hot key to replace search libraries for
@@ -159,5 +159,6 @@ PCBNew
    of PLUGIN::Footprint*() functions.  At least LEGACY and KICAD are both needed
    concurrently.


*)  Add a hot key to toggle the 45 degree constraint on and off so that it can be
    changed when drawing a trace.
+4 −0
Original line number Diff line number Diff line
@@ -72,6 +72,7 @@ set(COMMON_SRCS
    newstroke_font.cpp
    projet_config.cpp
    ptree.cpp
    reporter.cpp
    richio.cpp
    selcolor.cpp
    string.cpp
@@ -116,6 +117,9 @@ set(PCB_COMMON_SRCS
    ../pcbnew/class_zone_settings.cpp
    ../pcbnew/classpcb.cpp
    ../pcbnew/collectors.cpp
    ../pcbnew/netlist_reader_common.cpp
    ../pcbnew/netlist_reader_firstformat.cpp
    ../pcbnew/netlist_reader_kicad.cpp
    ../pcbnew/sel_layer.cpp
    ../pcbnew/pcb_plot_params.cpp
    ../pcbnew/io_mgr.cpp
+20 −0
Original line number Diff line number Diff line
@@ -310,6 +310,26 @@ std::string FPID::Format( const std::string& aLogicalLib, const std::string& aFo
}


int FPID::compare( const FPID& aFPID ) const
{
    // Don't bother comparing the same object.
    if( this == &aFPID )
        return 0;

    int retv = nickname.compare( aFPID.nickname );

    if( retv != 0 )
        return retv;

    retv = footprint.compare( aFPID.footprint );

    if( retv != 0 )
        return retv;

    return revision.compare( aFPID.revision );
}


#if 0 && defined(DEBUG)

// build this with Debug CMAKE_BUILD_TYPE

common/reporter.cpp

0 → 100644
+46 −0
Original line number Diff line number Diff line
/**
 * @file reporter.h
 */
/*
 * This program source code file is part of KiCad, a free EDA CAD application.
 *
 * Copyright (C) 2013 Wayne Stambaugh <stambaughw@verizon.net>
 * Copyright (C) 1992-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
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, you may find one here:
 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
 * or you may search the http://www.gnu.org website for the version 2 license,
 * or you may write to the Free Software Foundation, Inc.,
 * 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
 */

#include <macros.h>
#include <reporter.h>


REPORTER& REPORTER::Report( const char *aText )
{
    Report( FROM_UTF8( aText ) );
    return *this;
}


REPORTER& WX_TEXT_CTRL_REPORTER::Report( const wxString& aText )
{
    wxCHECK_MSG( m_textCtrl != NULL, *this,
                 wxT( "No wxTextCtrl object defined in WX_TEXT_CTRL_REPORTER." ) );

    m_textCtrl->AppendText( aText );
    return *this;
}
Loading