Commit 2d2c73ef authored by jean-pierre charras's avatar jean-pierre charras
Browse files

Eeschema: fix a bug that prevents duplicate timestamps to be corrected by annotate function.

very minor enhancement in netlist dialog.
Gerbview: remove useless  code I wrote specific to Windows in BOARD::Draw()  function, because Wayne has fixed the bug.
common_plotPS_functions.cpp: remove a potential bug.
Rename some classes according to coding style policy.
parents e01f8967 e3637dd3
Loading
Loading
Loading
Loading
+7 −6
Original line number Diff line number Diff line
@@ -426,16 +426,17 @@ void PS_PLOTTER::flash_pad_circle( wxPoint pos, int diametre,
                                   GRTraceMode modetrace )
{
    wxASSERT( output_file );
    if( modetrace == FILLED )
    {

    set_current_line_width( -1 );
    if( current_pen_width >= diametre )
        set_current_line_width( diametre );

    if( modetrace == FILLED )
        circle( pos, diametre - current_pen_width, FILLED_SHAPE );
    }
    else
    {
        set_current_line_width( -1 );
        circle( pos, diametre - current_pen_width, NO_FILL );
    }

    set_current_line_width( -1 );
}


+1 −2
Original line number Diff line number Diff line
@@ -1149,8 +1149,7 @@ bool SortItemsbyNetcode( const NETLIST_OBJECT* Objet1,
}


/* Comparison routine for sorting by NumSheet table of elements
 * connected (TabPinSort) by qsort ()
/* Comparison routine for sorting items by Sheet Number ( used by qsort )
 */

bool SortItemsBySheet( const NETLIST_OBJECT* Objet1,
+55 −48
Original line number Diff line number Diff line
@@ -65,15 +65,15 @@ wxString ReturnUserNetlistTypeName( bool first_item )
}


BEGIN_EVENT_TABLE( WinEDA_NetlistFrame, wxDialog )
    EVT_BUTTON( wxID_CANCEL, WinEDA_NetlistFrame::OnCancelClick )
    EVT_BUTTON( ID_CREATE_NETLIST, WinEDA_NetlistFrame::GenNetlist )
    EVT_BUTTON( ID_SETUP_PLUGIN, WinEDA_NetlistFrame::SetupPluginData )
    EVT_BUTTON( ID_DELETE_PLUGIN, WinEDA_NetlistFrame::DeletePluginPanel )
    EVT_BUTTON( ID_VALIDATE_PLUGIN, WinEDA_NetlistFrame::ValidatePluginPanel )
BEGIN_EVENT_TABLE( NETLIST_DIALOG, wxDialog )
    EVT_BUTTON( wxID_CANCEL, NETLIST_DIALOG::OnCancelClick )
    EVT_BUTTON( ID_CREATE_NETLIST, NETLIST_DIALOG::GenNetlist )
    EVT_BUTTON( ID_SETUP_PLUGIN, NETLIST_DIALOG::AddNewPluginPanel )
    EVT_BUTTON( ID_DELETE_PLUGIN, NETLIST_DIALOG::DeletePluginPanel )
    EVT_BUTTON( ID_VALIDATE_PLUGIN, NETLIST_DIALOG::ValidatePluginPanel )
    EVT_CHECKBOX( ID_CURRENT_FORMAT_IS_DEFAULT,
                  WinEDA_NetlistFrame::SelectNetlistType )
    EVT_BUTTON( ID_RUN_SIMULATOR, WinEDA_NetlistFrame::RunSimulator )
                  NETLIST_DIALOG::SelectNetlistType )
    EVT_BUTTON( ID_RUN_SIMULATOR, NETLIST_DIALOG::RunSimulator )
END_EVENT_TABLE()


@@ -85,7 +85,7 @@ END_EVENT_TABLE()
/* Contructor to create a setup page for one netlist format.
 * Used in Netlist format Dialog box creation
 */
EDA_NoteBookPage::EDA_NoteBookPage( wxNotebook*     parent,
NETLIST_PAGE_DIALOG::NETLIST_PAGE_DIALOG( wxNotebook*     parent,
                                    const wxString& title,
                                    int             id_NetType,
                                    int             idCheckBox,
@@ -163,7 +163,7 @@ EDA_NoteBookPage::EDA_NoteBookPage( wxNotebook* parent,


/*************************************************************************************/
WinEDA_NetlistFrame::WinEDA_NetlistFrame( SCH_EDIT_FRAME* parent ) :
NETLIST_DIALOG::NETLIST_DIALOG( SCH_EDIT_FRAME* parent ) :
    wxDialog( parent, -1, _( "Netlist" ), wxDefaultPosition,
              wxDefaultSize, DIALOG_STYLE | MAYBE_RESIZE_BORDER )
/*************************************************************************************/
@@ -193,7 +193,7 @@ WinEDA_NetlistFrame::WinEDA_NetlistFrame( SCH_EDIT_FRAME* parent ) :

    // Add Panel FORMAT PCBNEW
    m_PanelNetType[PANELPCBNEW] =
        new EDA_NoteBookPage( m_NoteBook,
        new NETLIST_PAGE_DIALOG( m_NoteBook,
                              wxT( "Pcbnew" ),
                              NET_TYPE_PCBNEW,
                              ID_CURRENT_FORMAT_IS_DEFAULT,
@@ -202,7 +202,7 @@ WinEDA_NetlistFrame::WinEDA_NetlistFrame( SCH_EDIT_FRAME* parent ) :

    // Add Panel FORMAT ORCADPCB2
    m_PanelNetType[PANELORCADPCB2] =
        new EDA_NoteBookPage( m_NoteBook,
        new NETLIST_PAGE_DIALOG( m_NoteBook,
                              wxT( "OrcadPCB2" ),
                              NET_TYPE_ORCADPCB2,
                              ID_CURRENT_FORMAT_IS_DEFAULT,
@@ -211,7 +211,7 @@ WinEDA_NetlistFrame::WinEDA_NetlistFrame( SCH_EDIT_FRAME* parent ) :

    // Add Panel FORMAT CADSTAR
    m_PanelNetType[PANELCADSTAR] =
        new EDA_NoteBookPage( m_NoteBook,
        new NETLIST_PAGE_DIALOG( m_NoteBook,
                              wxT( "CadStar" ),
                              NET_TYPE_CADSTAR,
                              ID_CURRENT_FORMAT_IS_DEFAULT,
@@ -232,17 +232,17 @@ WinEDA_NetlistFrame::WinEDA_NetlistFrame( SCH_EDIT_FRAME* parent ) :


/*************************************************/
void WinEDA_NetlistFrame::InstallPageSpice()
void NETLIST_DIALOG::InstallPageSpice()
/*************************************************/

/* Create the spice page
 */
{
    wxButton*         Button;
    EDA_NoteBookPage* page;
    NETLIST_PAGE_DIALOG* page;

    page = m_PanelNetType[PANELSPICE] =
               new EDA_NoteBookPage( m_NoteBook,
               new NETLIST_PAGE_DIALOG( m_NoteBook,
                                     wxT( "Spice" ),
                                     NET_TYPE_SPICE,
                                     0, 0,
@@ -282,7 +282,7 @@ void WinEDA_NetlistFrame::InstallPageSpice()


/*************************************************/
void WinEDA_NetlistFrame::InstallCustomPages()
void NETLIST_DIALOG::InstallCustomPages()
/*************************************************/

/* create the pages for custom netlist format selection:
@@ -291,7 +291,7 @@ void WinEDA_NetlistFrame::InstallCustomPages()
    bool              selected;
    int               ii, CustomCount;
    wxString          title, previoustitle, msg;
    EDA_NoteBookPage* CurrPage;
    NETLIST_PAGE_DIALOG* CurrPage;

    CustomCount   = CUSTOMPANEL_COUNTMAX;
    previoustitle = wxT( "dummy_title" );
@@ -310,7 +310,7 @@ void WinEDA_NetlistFrame::InstallCustomPages()
        if( title.IsEmpty() )
            CurrPage =
                m_PanelNetType[PANELCUSTOMBASE + ii] =
                    new EDA_NoteBookPage( m_NoteBook,
                    new NETLIST_PAGE_DIALOG( m_NoteBook,
                                          _( "Add Plugin" ),
                                          NET_TYPE_CUSTOM1 + ii,
                                          ID_CURRENT_FORMAT_IS_DEFAULT,
@@ -319,7 +319,7 @@ void WinEDA_NetlistFrame::InstallCustomPages()
        else  /* Install a plugin panel */
            CurrPage =
                m_PanelNetType[PANELCUSTOMBASE + ii] =
                    new EDA_NoteBookPage( m_NoteBook,
                    new NETLIST_PAGE_DIALOG( m_NoteBook,
                                          title,
                                          NET_TYPE_CUSTOM1 + ii,
                                          ID_CURRENT_FORMAT_IS_DEFAULT,
@@ -344,12 +344,11 @@ void WinEDA_NetlistFrame::InstallCustomPages()
}


/***********************************************************/
void WinEDA_NetlistFrame::SetupPluginData( wxCommandEvent& event )
/***********************************************************/

/* Browse the plugin files and set the m_CommandStringCtrl field
/*
 * Browse plugin files, add a new panel
 * and set m_CommandStringCtrl field
 */
void NETLIST_DIALOG::AddNewPluginPanel( wxCommandEvent& event )
{
    wxString FullFileName, Mask, Path;

@@ -367,15 +366,23 @@ void WinEDA_NetlistFrame::SetupPluginData( wxCommandEvent& event )
    if( FullFileName.IsEmpty() )
        return;

    EDA_NoteBookPage* CurrPage;
    CurrPage = (EDA_NoteBookPage*) m_NoteBook->GetCurrentPage();
    NETLIST_PAGE_DIALOG* CurrPage;
    CurrPage = (NETLIST_PAGE_DIALOG*) m_NoteBook->GetCurrentPage();
    if( CurrPage == NULL )
        return;

    // Creates a default command line, suitable for external tool xslproc:
    // TODO: build better default command lines depending on plugin extension
    // try to build a default command line depending on plugin extension
    wxString cmdLine;
    cmdLine.Printf(wxT("xsltproc -o %%O %s %%I"), GetChars(FullFileName) );
    wxFileName fn( FullFileName );
    wxString ext = fn.GetExt();
    if( ext == wxT("xsl" ) )
        cmdLine.Printf(wxT("xsltproc -o %%O \"%s\" %%I"), GetChars(FullFileName) );
    else if( ext == wxT("exe" ) || ext.IsEmpty() )
        cmdLine.Printf(wxT("\"%s\" > %%O < %%I"), GetChars(FullFileName) );
    else
        cmdLine.Printf(wxT("\"%s\""), GetChars(FullFileName) );

    CurrPage->m_CommandStringCtrl->SetValue( cmdLine );

    /* Get a title for this page */
@@ -388,20 +395,20 @@ netlist control page"


/*****************************************************************/
void WinEDA_NetlistFrame::SelectNetlistType( wxCommandEvent& event )
void NETLIST_DIALOG::SelectNetlistType( wxCommandEvent& event )
/*****************************************************************/

/* Called when the check box "default format" is clicked
 */
{
    int ii;
    EDA_NoteBookPage* CurrPage;
    NETLIST_PAGE_DIALOG* CurrPage;

    for( ii = 0; ii < PANELCUSTOMBASE + CUSTOMPANEL_COUNTMAX; ii++ )
        if( m_PanelNetType[ii] )
            m_PanelNetType[ii]->m_IsCurrentFormat->SetValue( FALSE );

    CurrPage = (EDA_NoteBookPage*) m_NoteBook->GetCurrentPage();
    CurrPage = (NETLIST_PAGE_DIALOG*) m_NoteBook->GetCurrentPage();
    if( CurrPage == NULL )
        return;

@@ -411,7 +418,7 @@ void WinEDA_NetlistFrame::SelectNetlistType( wxCommandEvent& event )


/***********************************************/
void WinEDA_NetlistFrame::NetlistUpdateOpt()
void NETLIST_DIALOG::NetlistUpdateOpt()
/***********************************************/
{
    int ii;
@@ -435,7 +442,7 @@ void WinEDA_NetlistFrame::NetlistUpdateOpt()


/**********************************************************/
void WinEDA_NetlistFrame::GenNetlist( wxCommandEvent& event )
void NETLIST_DIALOG::GenNetlist( wxCommandEvent& event )
/**********************************************************/

/**
@@ -452,8 +459,8 @@ void WinEDA_NetlistFrame::GenNetlist( wxCommandEvent& event )

    NetlistUpdateOpt();

    EDA_NoteBookPage* CurrPage;
    CurrPage = (EDA_NoteBookPage*) m_NoteBook->GetCurrentPage();
    NETLIST_PAGE_DIALOG* CurrPage;
    CurrPage = (NETLIST_PAGE_DIALOG*) m_NoteBook->GetCurrentPage();

    /* Calculate the netlist filename */
    fn = g_RootSheet->GetScreen()->GetFileName();
@@ -556,13 +563,13 @@ Do you want to annotate schematic?" ) ) )
}


void WinEDA_NetlistFrame::OnCancelClick( wxCommandEvent& event )
void NETLIST_DIALOG::OnCancelClick( wxCommandEvent& event )
{
    EndModal( NET_ABORT );
}


void WinEDA_NetlistFrame::RunSimulator( wxCommandEvent& event )
void NETLIST_DIALOG::RunSimulator( wxCommandEvent& event )
{
    wxFileName fn;
    wxString   ExecFile, CommandLine;
@@ -580,8 +587,8 @@ void WinEDA_NetlistFrame::RunSimulator( wxCommandEvent& event )
    CommandLine += wxT( " \"" ) + fn.GetFullPath() + wxT( "\"" );

    g_OptNetListUseNames = m_UseNetNamesInNetlist->GetSelection() == 0;
    EDA_NoteBookPage* CurrPage;
    CurrPage = (EDA_NoteBookPage*) m_NoteBook->GetCurrentPage();
    NETLIST_PAGE_DIALOG* CurrPage;
    CurrPage = (NETLIST_PAGE_DIALOG*) m_NoteBook->GetCurrentPage();

    if( ! m_Parent->CreateNetlist( CurrPage->m_IdNetType, fn.GetFullPath(), g_OptNetListUseNames ) )
        return;
@@ -591,7 +598,7 @@ void WinEDA_NetlistFrame::RunSimulator( wxCommandEvent& event )


/*********************************************************/
void WinEDA_NetlistFrame::WriteCurrentNetlistSetup( void )
void NETLIST_DIALOG::WriteCurrentNetlistSetup( void )
/*********************************************************/

/**
@@ -607,7 +614,7 @@ void WinEDA_NetlistFrame::WriteCurrentNetlistSetup( void )
    // Update the new titles
    for( int ii = 0; ii < CUSTOMPANEL_COUNTMAX; ii++ )
    {
        EDA_NoteBookPage* CurrPage = m_PanelNetType[ii + PANELCUSTOMBASE];
        NETLIST_PAGE_DIALOG* CurrPage = m_PanelNetType[ii + PANELCUSTOMBASE];
        if( CurrPage == NULL )
            break;
        msg = wxT( "Custom" );
@@ -635,7 +642,7 @@ void WinEDA_NetlistFrame::WriteCurrentNetlistSetup( void )


/******************************************************************/
void WinEDA_NetlistFrame::DeletePluginPanel( wxCommandEvent& event )
void NETLIST_DIALOG::DeletePluginPanel( wxCommandEvent& event )
/******************************************************************/

/**
@@ -643,8 +650,8 @@ void WinEDA_NetlistFrame::DeletePluginPanel( wxCommandEvent& event )
 * Remove a panel relative to a netlist plugin
 */
{
    EDA_NoteBookPage* CurrPage =
        (EDA_NoteBookPage*) m_NoteBook->GetCurrentPage();
    NETLIST_PAGE_DIALOG* CurrPage =
        (NETLIST_PAGE_DIALOG*) m_NoteBook->GetCurrentPage();

    CurrPage->m_CommandStringCtrl->SetValue( wxEmptyString );
    CurrPage->m_TitleStringCtrl->SetValue( wxEmptyString );
@@ -659,7 +666,7 @@ void WinEDA_NetlistFrame::DeletePluginPanel( wxCommandEvent& event )


/******************************************************************/
void WinEDA_NetlistFrame::ValidatePluginPanel( wxCommandEvent& event )
void NETLIST_DIALOG::ValidatePluginPanel( wxCommandEvent& event )
/******************************************************************/

/**
@@ -667,8 +674,8 @@ void WinEDA_NetlistFrame::ValidatePluginPanel( wxCommandEvent& event )
 * Validate the panel info relative to a new netlist plugin
 */
{
    EDA_NoteBookPage* CurrPage =
        (EDA_NoteBookPage*) m_NoteBook->GetCurrentPage();
    NETLIST_PAGE_DIALOG* CurrPage =
        (NETLIST_PAGE_DIALOG*) m_NoteBook->GetCurrentPage();

    if( CurrPage->m_CommandStringCtrl->GetValue() == wxEmptyString )
    {
+8 −8
Original line number Diff line number Diff line
@@ -40,7 +40,7 @@ enum gen_netlist_diag {


/* wxPanels for creating the NoteBook pages for each netlist format: */
class EDA_NoteBookPage : public wxPanel
class NETLIST_PAGE_DIALOG : public wxPanel
{
public:
    int               m_IdNetType;
@@ -63,10 +63,10 @@ public:
     * @param selected = true to have this notebook page selected when the dialog is opened
     *    Only one page can be created with selected = true.
     */
    EDA_NoteBookPage( wxNotebook* parent, const wxString& title,
    NETLIST_PAGE_DIALOG( wxNotebook* parent, const wxString& title,
                      int id_NetType, int idCheckBox, int idCreateFile,
                      bool selected );
    ~EDA_NoteBookPage() { };
    ~NETLIST_PAGE_DIALOG() { };
};


@@ -89,19 +89,19 @@ enum TypeNetForm {


/* Dialog frame for creating netlists */
class WinEDA_NetlistFrame : public wxDialog
class NETLIST_DIALOG : public wxDialog
{
public:
    SCH_EDIT_FRAME*   m_Parent;
    wxNotebook*       m_NoteBook;
    EDA_NoteBookPage* m_PanelNetType[4 + CUSTOMPANEL_COUNTMAX];
    NETLIST_PAGE_DIALOG* m_PanelNetType[4 + CUSTOMPANEL_COUNTMAX];
    wxRadioBox*       m_UseNetNamesInNetlist;

public:

    // Constructor and destructor
    WinEDA_NetlistFrame( SCH_EDIT_FRAME* parent );
    ~WinEDA_NetlistFrame() { };
    NETLIST_DIALOG( SCH_EDIT_FRAME* parent );
    ~NETLIST_DIALOG() { };

private:
    void    InstallCustomPages();
@@ -111,7 +111,7 @@ private:
    void    NetlistUpdateOpt();
    void    OnCancelClick( wxCommandEvent& event );
    void    SelectNetlistType( wxCommandEvent& event );
    void    SetupPluginData( wxCommandEvent& event );
    void    AddNewPluginPanel( wxCommandEvent& event );
    void    DeletePluginPanel( wxCommandEvent& event );
    void    ValidatePluginPanel( wxCommandEvent& event );

+2 −3
Original line number Diff line number Diff line
@@ -548,7 +548,7 @@ void SCH_SCREEN::ClearAnnotation( SCH_SHEET_PATH* aSheetPath )
}


void SCH_SCREEN::GetHierarchicalItems( std::vector <SCH_ITEM*> aItems )
void SCH_SCREEN::GetHierarchicalItems( std::vector <SCH_ITEM*>& aItems )
{
    SCH_ITEM* item = GetDrawItems();

@@ -786,7 +786,7 @@ static bool SortByTimeStamp( const SCH_ITEM* item1, const SCH_ITEM* item2 )
    int ii = item1->m_TimeStamp - item2->m_TimeStamp;

    /* If the time stamps are the same, compare type in order to have component objects
     * before sheet object. This is done because the changing the sheet time stamp
     * before sheet object. This is done because changing the sheet time stamp
     * before the component time stamp could cause the current annotation to be lost.
     */
    if( ( ii == 0 && ( item1->Type() != item2->Type() ) ) && ( item1->Type() == SCH_SHEET_T ) )
@@ -918,7 +918,6 @@ int SCH_SCREENS::ReplaceDuplicateTimeStamps()
        item = items[ii];

        SCH_ITEM* nextItem = items[ii + 1];

        if( item->m_TimeStamp == nextItem->m_TimeStamp )
        {
            count++;
Loading