Removed BOM functionality
- Removed ability to generate BOM to file - Removed Save/Cancel window when closing table - No longer updates table <after> table is closed - Bugfix for field names (previously comparison was case insensitive)
This commit is contained in:
parent
48893ab2b1
commit
29e3e55ad3
|
@ -25,8 +25,8 @@ set( EESCHEMA_DLGS
|
||||||
dialogs/dialog_annotate_base.cpp
|
dialogs/dialog_annotate_base.cpp
|
||||||
dialogs/dialog_bom.cpp
|
dialogs/dialog_bom.cpp
|
||||||
dialogs/dialog_bom_base.cpp
|
dialogs/dialog_bom_base.cpp
|
||||||
dialogs/dialog_bom_editor.cpp
|
dialogs/dialog_bom_editor.cpp
|
||||||
dialogs/dialog_bom_editor_base.cpp
|
dialogs/dialog_bom_editor_base.cpp
|
||||||
dialogs/dialog_bom_cfg_keywords.cpp
|
dialogs/dialog_bom_cfg_keywords.cpp
|
||||||
dialogs/dialog_choose_component.cpp
|
dialogs/dialog_choose_component.cpp
|
||||||
dialogs/dialog_lib_edit_text.cpp
|
dialogs/dialog_lib_edit_text.cpp
|
||||||
|
@ -87,7 +87,6 @@ set( EESCHEMA_SRCS
|
||||||
backanno.cpp
|
backanno.cpp
|
||||||
block.cpp
|
block.cpp
|
||||||
block_libedit.cpp
|
block_libedit.cpp
|
||||||
bom_exporter.cpp
|
|
||||||
bom_table_model.cpp
|
bom_table_model.cpp
|
||||||
bom_table_column.cpp
|
bom_table_column.cpp
|
||||||
busentry.cpp
|
busentry.cpp
|
||||||
|
|
|
@ -1,420 +0,0 @@
|
||||||
/*
|
|
||||||
* This program source code file is part of KiCad, a free EDA CAD application.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2017 Oliver Walters
|
|
||||||
* Copyright (C) 2017 KiCad Developers, see CHANGELOG.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 "bom_exporter.h"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* BOM_FILE_WRITER class (pure virtual)
|
|
||||||
*/
|
|
||||||
BOM_FILE_WRITER::BOM_FILE_WRITER() :
|
|
||||||
m_includeExtraData( true ),
|
|
||||||
m_showRowNumbers( true )
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void BOM_FILE_WRITER::SetHeader( const wxArrayString aHeader )
|
|
||||||
{
|
|
||||||
m_bomHeader = aHeader;
|
|
||||||
}
|
|
||||||
|
|
||||||
void BOM_FILE_WRITER::AddLine( wxArrayString aLine )
|
|
||||||
{
|
|
||||||
m_bomLines.push_back( aLine );
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Function ExtraDataPairs
|
|
||||||
* Format extra data for writing to file
|
|
||||||
*/
|
|
||||||
wxArrayString BOM_FILE_WRITER::ExtraDataPairs()
|
|
||||||
{
|
|
||||||
wxArrayString pairs;
|
|
||||||
|
|
||||||
if( m_groupCount != m_componentCount )
|
|
||||||
{
|
|
||||||
pairs.Add( DataPair( _( "Group Count" ), m_groupCount ) );
|
|
||||||
}
|
|
||||||
|
|
||||||
pairs.Add( DataPair( _( "Component Count" ), m_componentCount ) );
|
|
||||||
pairs.Add( DataPair( _( "Schematic Title" ), m_schematicTitle ) );
|
|
||||||
pairs.Add( DataPair( _( "Schematic Date" ), m_schematicDate ) );
|
|
||||||
pairs.Add( DataPair( _( "Schematic Version" ), m_schematicVersion ) );
|
|
||||||
pairs.Add( DataPair( _( "KiCad Version" ), m_kicadVersion ) );
|
|
||||||
|
|
||||||
return pairs;
|
|
||||||
}
|
|
||||||
|
|
||||||
BOM_CSV_WRITER::BOM_CSV_WRITER( wxChar aDelim ) :
|
|
||||||
BOM_FILE_WRITER()
|
|
||||||
{
|
|
||||||
m_delim = aDelim;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Function WriteToFile
|
|
||||||
* Write delimited data to file
|
|
||||||
*/
|
|
||||||
bool BOM_CSV_WRITER::WriteToFile( wxFile& aFile )
|
|
||||||
{
|
|
||||||
|
|
||||||
// Generate table header
|
|
||||||
wxString line = wxJoin( EscapeLine( m_bomHeader ), m_delim )+ "\n";
|
|
||||||
|
|
||||||
if( m_showRowNumbers )
|
|
||||||
{
|
|
||||||
line = m_delim + line;
|
|
||||||
}
|
|
||||||
|
|
||||||
if( !aFile.Write( line ))
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Write each line in the file
|
|
||||||
for( unsigned int ii=0; ii<m_bomLines.size(); ii++ )
|
|
||||||
{
|
|
||||||
line = wxJoin( EscapeLine( m_bomLines[ii]), m_delim ) + "\n";
|
|
||||||
|
|
||||||
if( m_showRowNumbers )
|
|
||||||
{
|
|
||||||
line = wxString::Format( _( "%i" ), ii+1 ) + m_delim + line;
|
|
||||||
}
|
|
||||||
|
|
||||||
if( !aFile.Write( line ) )
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Write extra options
|
|
||||||
if( m_includeExtraData )
|
|
||||||
{
|
|
||||||
wxString extra;
|
|
||||||
|
|
||||||
extra += "\n\n";
|
|
||||||
|
|
||||||
for( wxString pair : ExtraDataPairs() )
|
|
||||||
{
|
|
||||||
extra += pair;
|
|
||||||
extra += "\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
if( !aFile.Write( extra ) )
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// File writing successful
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Function DataPair
|
|
||||||
* Combine two items into a delimited pair
|
|
||||||
*/
|
|
||||||
wxString BOM_CSV_WRITER::DataPair( const wxString& aFirst, const wxString& aSecond )
|
|
||||||
{
|
|
||||||
wxArrayString pair;
|
|
||||||
|
|
||||||
pair.Add( aFirst );
|
|
||||||
pair.Add( aSecond );
|
|
||||||
|
|
||||||
return wxJoin( pair, m_delim );
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Function EscapeLine
|
|
||||||
* Any values that contain the delimiter are escaped with quotes
|
|
||||||
*/
|
|
||||||
wxArrayString BOM_CSV_WRITER::EscapeLine( wxArrayString line )
|
|
||||||
{
|
|
||||||
wxArrayString escaped;
|
|
||||||
|
|
||||||
for( wxString item : line )
|
|
||||||
{
|
|
||||||
if( item.Contains( m_delim ) &&
|
|
||||||
!item.StartsWith( "\"" ) &&
|
|
||||||
!item.EndsWith( "\"" ) )
|
|
||||||
{
|
|
||||||
item = "\"" + item + "\"";
|
|
||||||
}
|
|
||||||
|
|
||||||
escaped.Add( item );
|
|
||||||
}
|
|
||||||
|
|
||||||
return escaped;
|
|
||||||
}
|
|
||||||
|
|
||||||
BOM_HTML_WRITER::BOM_HTML_WRITER() :
|
|
||||||
BOM_FILE_WRITER()
|
|
||||||
{
|
|
||||||
// Strings to check for hyperlinkable text
|
|
||||||
m_linkChecks.Add( "http:*" );
|
|
||||||
m_linkChecks.Add( "https:* " );
|
|
||||||
m_linkChecks.Add( "ftp:*" );
|
|
||||||
m_linkChecks.Add( "www.*" );
|
|
||||||
m_linkChecks.Add( "*.pdf" );
|
|
||||||
m_linkChecks.Add( "*.html" );
|
|
||||||
m_linkChecks.Add( "*.htm" );
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Function WriteToFile
|
|
||||||
* Write HTML BoM Data
|
|
||||||
*/
|
|
||||||
bool BOM_HTML_WRITER::WriteToFile( wxFile& aFile )
|
|
||||||
{
|
|
||||||
// Write HTML header
|
|
||||||
if( !aFile.Write( HtmlHeader() ) )
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if( m_includeExtraData )
|
|
||||||
{
|
|
||||||
if( !aFile.Write( ExtraData() ) )
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Table data
|
|
||||||
wxString tableTitle = "<h2>";
|
|
||||||
|
|
||||||
tableTitle += _( "Bill of Materials" );
|
|
||||||
tableTitle += "</h2>\n";
|
|
||||||
|
|
||||||
if( !aFile.Write( tableTitle ) )
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if( !aFile.Write( "<table border=\"1\">\n" ) )
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if( !aFile.Write( TableHeader( m_bomHeader ) ) )
|
|
||||||
return false;
|
|
||||||
|
|
||||||
// Write each line of the BOM
|
|
||||||
for( unsigned int ii=0; ii<m_bomLines.size(); ii++ )
|
|
||||||
{
|
|
||||||
if( !aFile.Write( TableRow( ii+1, m_bomLines[ii] ) ) )
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if( !aFile.Write( "</table>\n" ) )
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if( !aFile.Write( HtmlFooter() ) )
|
|
||||||
return false;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
wxString BOM_HTML_WRITER::HtmlHeader()
|
|
||||||
{
|
|
||||||
wxString header = wxEmptyString;
|
|
||||||
|
|
||||||
header += "<html>\n<head>\n";
|
|
||||||
//TODO - Project title
|
|
||||||
header += "<title>";
|
|
||||||
header += m_schematicTitle;
|
|
||||||
header += "</title>\n";
|
|
||||||
|
|
||||||
header += HtmlMetaTag( "charset", "UTF-8" ) + "\n";
|
|
||||||
|
|
||||||
//TODO - KiCad reference data here
|
|
||||||
|
|
||||||
header += "</head>\n\n";
|
|
||||||
|
|
||||||
header += "<body>\n";
|
|
||||||
|
|
||||||
return header;
|
|
||||||
}
|
|
||||||
|
|
||||||
wxString BOM_HTML_WRITER::HtmlFooter()
|
|
||||||
{
|
|
||||||
wxString footer = wxEmptyString;
|
|
||||||
|
|
||||||
footer += "</body>\n\n";
|
|
||||||
footer += "</html>\n";
|
|
||||||
|
|
||||||
return footer;
|
|
||||||
}
|
|
||||||
|
|
||||||
wxString BOM_HTML_WRITER::HtmlMetaTag( const wxString aTitle, const wxString aData )
|
|
||||||
{
|
|
||||||
wxString tag = "<meta name=\"";
|
|
||||||
|
|
||||||
tag += aTitle + "\"";
|
|
||||||
tag += " content=\"";
|
|
||||||
tag += aData + "\"";
|
|
||||||
|
|
||||||
tag += ">";
|
|
||||||
|
|
||||||
return tag;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Function ExtraData
|
|
||||||
* Write extra project information
|
|
||||||
*/
|
|
||||||
wxString BOM_HTML_WRITER::ExtraData()
|
|
||||||
{
|
|
||||||
wxString extra;
|
|
||||||
|
|
||||||
extra += "<h2>";
|
|
||||||
extra += _( "Project details" );
|
|
||||||
extra += "</h2>\n";
|
|
||||||
|
|
||||||
extra += "<table border=\"1\">\n";
|
|
||||||
|
|
||||||
for( wxString pair : ExtraDataPairs() )
|
|
||||||
{
|
|
||||||
extra += pair + "\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
extra += "</table>\n";
|
|
||||||
|
|
||||||
return extra;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Function LinkText
|
|
||||||
* Automatically detect linkable text, and wrap it in <a> tag
|
|
||||||
* @aText - Text to (potentially) link
|
|
||||||
*/
|
|
||||||
wxString BOM_HTML_WRITER::LinkText( const wxString& aText )
|
|
||||||
{
|
|
||||||
// Should we provide a link to the text?
|
|
||||||
wxString lower = aText.Lower();
|
|
||||||
|
|
||||||
bool found = false;
|
|
||||||
|
|
||||||
for( wxString check : m_linkChecks )
|
|
||||||
{
|
|
||||||
if( lower.Matches( check ) )
|
|
||||||
{
|
|
||||||
found = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if( found )
|
|
||||||
{
|
|
||||||
wxString link = "<a href=\"";
|
|
||||||
|
|
||||||
link += aText;
|
|
||||||
link += "\">";
|
|
||||||
link += aText;
|
|
||||||
link += "</a>";
|
|
||||||
|
|
||||||
return link;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return aText;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
wxString BOM_HTML_WRITER::TableHeader( const wxArrayString& aHeaderData )
|
|
||||||
{
|
|
||||||
wxString header = "<tr>\n";
|
|
||||||
|
|
||||||
if( m_showRowNumbers )
|
|
||||||
{
|
|
||||||
header += "<th></th>\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
for( wxString item : aHeaderData )
|
|
||||||
{
|
|
||||||
header += "<th align=\"center\">";
|
|
||||||
header += item;
|
|
||||||
header += "</th>";
|
|
||||||
header += "\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
header += "</tr>\n";
|
|
||||||
|
|
||||||
return header;
|
|
||||||
}
|
|
||||||
|
|
||||||
wxString BOM_HTML_WRITER::DataPair( const wxString& aFirst, const wxString& aSecond )
|
|
||||||
{
|
|
||||||
wxString html = "<tr>\n";
|
|
||||||
|
|
||||||
html += TableEntry( aFirst ) + "\n";
|
|
||||||
html += TableEntry( aSecond ) + "\n";
|
|
||||||
|
|
||||||
html += "</tr>\n";
|
|
||||||
|
|
||||||
return html;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Function TableRow
|
|
||||||
* Generate a single row of BOM data
|
|
||||||
* @aRowNum is the number of the row
|
|
||||||
* @aRowData is the array of data for the given row
|
|
||||||
*/
|
|
||||||
wxString BOM_HTML_WRITER::TableRow( const int& aRowNum, const wxArrayString& aRowData )
|
|
||||||
{
|
|
||||||
wxString row = wxEmptyString;
|
|
||||||
|
|
||||||
row += "<tr>\n";
|
|
||||||
|
|
||||||
if( m_showRowNumbers )
|
|
||||||
{
|
|
||||||
row += "<td>";
|
|
||||||
row += wxString::Format( "%i", aRowNum );
|
|
||||||
row += "</td>\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
for( wxString data : aRowData )
|
|
||||||
{
|
|
||||||
row += TableEntry( data );
|
|
||||||
row += "\n";
|
|
||||||
}
|
|
||||||
|
|
||||||
row += "</tr>\n";
|
|
||||||
|
|
||||||
return row;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Function TableEntry
|
|
||||||
* Wrap a string in <td> tags
|
|
||||||
* @aData is the text to be wrapped
|
|
||||||
* @aColor is an (optional) HTML background color
|
|
||||||
*/
|
|
||||||
wxString BOM_HTML_WRITER::TableEntry( wxString aData, wxString aColor )
|
|
||||||
{
|
|
||||||
wxString cell = "<td align=\"center\"";
|
|
||||||
|
|
||||||
if( !aColor.IsEmpty() )
|
|
||||||
{
|
|
||||||
cell += " bgcolor=\"" + aColor + "\"";
|
|
||||||
}
|
|
||||||
|
|
||||||
cell += ">";
|
|
||||||
|
|
||||||
cell += LinkText( aData );
|
|
||||||
|
|
||||||
cell += "</td>";
|
|
||||||
|
|
||||||
return cell;
|
|
||||||
}
|
|
|
@ -1,123 +0,0 @@
|
||||||
/*
|
|
||||||
* This program source code file is part of KiCad, a free EDA CAD application.
|
|
||||||
*
|
|
||||||
* Copyright (C) 2017 Oliver Walters
|
|
||||||
* Copyright (C) 2017 KiCad Developers, see CHANGELOG.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
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef EESCHEMA_BOM_EXPORTER_H_
|
|
||||||
#define EESCHEMA_BOM_EXPORTER_H_
|
|
||||||
|
|
||||||
#include <vector>
|
|
||||||
#include <wx/file.h>
|
|
||||||
|
|
||||||
#include "bom_table_column.h"
|
|
||||||
#include "bom_table_model.h"
|
|
||||||
|
|
||||||
enum BOM_EXPORT_TYPE
|
|
||||||
{
|
|
||||||
BOM_EXPORT_CSV = 0,
|
|
||||||
BOM_EXPORT_HTML
|
|
||||||
};
|
|
||||||
|
|
||||||
class BOM_FILE_WRITER
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
BOM_FILE_WRITER();
|
|
||||||
virtual ~BOM_FILE_WRITER() {};
|
|
||||||
|
|
||||||
virtual bool WriteToFile( wxFile& aFile ) = 0;
|
|
||||||
|
|
||||||
void SetHeader( const wxArrayString aHeader );
|
|
||||||
void AddLine( const wxArrayString aLine );
|
|
||||||
|
|
||||||
void IncludeExtraData( bool aInclude = true ) { m_includeExtraData = aInclude; }
|
|
||||||
void ShowRowNumbers( bool aShow = true ) { m_showRowNumbers = aShow; }
|
|
||||||
|
|
||||||
// Project information
|
|
||||||
void SetKicadVersion( const wxString aVersion ) { m_kicadVersion = aVersion; }
|
|
||||||
void SetSchematicTitle( const wxString aProject ) { m_schematicTitle = aProject; }
|
|
||||||
void SetSchematicVersion( const wxString aVersion ) { m_schematicVersion = aVersion; }
|
|
||||||
void SetSchematicDate( const wxString aDate ) { m_schematicDate = aDate; }
|
|
||||||
|
|
||||||
void SetGroupCount( unsigned int aCount ) { m_groupCount = wxString::Format( "%u", aCount ); }
|
|
||||||
void SetComponentCount( unsigned int aCount ) { m_componentCount = wxString::Format( "%u", aCount ); }
|
|
||||||
|
|
||||||
protected:
|
|
||||||
wxArrayString ExtraDataPairs();
|
|
||||||
virtual wxString DataPair( const wxString& aFirst, const wxString& aSecond ) = 0;
|
|
||||||
|
|
||||||
wxArrayString m_bomHeader;
|
|
||||||
std::vector< wxArrayString > m_bomLines;
|
|
||||||
|
|
||||||
bool m_includeExtraData;
|
|
||||||
bool m_showRowNumbers;
|
|
||||||
|
|
||||||
// Extra details for BOM file
|
|
||||||
wxString m_kicadVersion;
|
|
||||||
wxString m_schematicTitle;
|
|
||||||
wxString m_schematicVersion;
|
|
||||||
wxString m_schematicDate;
|
|
||||||
|
|
||||||
wxString m_componentCount;
|
|
||||||
wxString m_groupCount;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
class BOM_CSV_WRITER : public BOM_FILE_WRITER
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
BOM_CSV_WRITER( wxChar aDelim=',' );
|
|
||||||
|
|
||||||
virtual bool WriteToFile( wxFile& aFile ) override;
|
|
||||||
|
|
||||||
protected:
|
|
||||||
wxArrayString EscapeLine( wxArrayString line );
|
|
||||||
virtual wxString DataPair( const wxString& aFirst, const wxString& aSecond ) override;
|
|
||||||
|
|
||||||
wxChar m_delim;
|
|
||||||
};
|
|
||||||
|
|
||||||
class BOM_HTML_WRITER : public BOM_FILE_WRITER
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
BOM_HTML_WRITER();
|
|
||||||
|
|
||||||
virtual bool WriteToFile( wxFile& aFile ) override;
|
|
||||||
|
|
||||||
protected:
|
|
||||||
virtual wxString DataPair( const wxString& aFirst, const wxString& aSecond ) override;
|
|
||||||
|
|
||||||
wxString HtmlHeader();
|
|
||||||
wxString HtmlFooter();
|
|
||||||
wxString HtmlMetaTag( const wxString aTitle, const wxString aData );
|
|
||||||
|
|
||||||
wxString ExtraData();
|
|
||||||
|
|
||||||
wxString LinkText( const wxString& aText );
|
|
||||||
|
|
||||||
wxString TableHeader( const wxArrayString& aHeaderData );
|
|
||||||
wxString TableRow( const int& aRowNum, const wxArrayString& aRowData );
|
|
||||||
wxString TableEntry( wxString aData, wxString aColor = wxEmptyString );
|
|
||||||
|
|
||||||
wxArrayString m_linkChecks;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif /* EESCHEMA_BOM_EXPORTER_H_ */
|
|
|
@ -86,7 +86,7 @@ BOM_COLUMN* BOM_COLUMN_LIST::GetColumnByTitle( wxString aColTitle )
|
||||||
{
|
{
|
||||||
for( unsigned int ii=0; ii<Columns.size(); ii++ )
|
for( unsigned int ii=0; ii<Columns.size(); ii++ )
|
||||||
{
|
{
|
||||||
if( Columns[ii] && Columns[ii]->Title().CmpNoCase( aColTitle ) == 0 )
|
if( Columns[ii] && Columns[ii]->Title().Cmp( aColTitle ) == 0 )
|
||||||
return Columns[ii];
|
return Columns[ii];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -682,6 +682,7 @@ void BOM_TABLE_COMPONENT::ApplyFieldChanges()
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// New field needs to be added?
|
||||||
if( !field && !value.IsEmpty() )
|
if( !field && !value.IsEmpty() )
|
||||||
{
|
{
|
||||||
SCH_FIELD newField( wxPoint( 0, 0 ), -1, cmp, column->Title() );
|
SCH_FIELD newField( wxPoint( 0, 0 ), -1, cmp, column->Title() );
|
||||||
|
@ -1396,8 +1397,6 @@ void BOM_TABLE_MODEL::ApplyFieldChanges()
|
||||||
if( !group )
|
if( !group )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
bool changed = false;
|
|
||||||
|
|
||||||
for( auto& component : group->Components )
|
for( auto& component : group->Components )
|
||||||
{
|
{
|
||||||
if( !component )
|
if( !component )
|
||||||
|
@ -1406,15 +1405,8 @@ void BOM_TABLE_MODEL::ApplyFieldChanges()
|
||||||
if( component->HasChanged() )
|
if( component->HasChanged() )
|
||||||
{
|
{
|
||||||
component->ApplyFieldChanges();
|
component->ApplyFieldChanges();
|
||||||
ItemChanged( RowToItem( &*component ) );
|
|
||||||
changed = true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if( changed )
|
|
||||||
{
|
|
||||||
ItemChanged( RowToItem( &*group ) );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -35,8 +35,6 @@
|
||||||
#include <general.h>
|
#include <general.h>
|
||||||
#include <class_library.h>
|
#include <class_library.h>
|
||||||
|
|
||||||
#include <bom_exporter.h>
|
|
||||||
|
|
||||||
#include "dialog_bom_editor.h"
|
#include "dialog_bom_editor.h"
|
||||||
#include <bom_table_model.h>
|
#include <bom_table_model.h>
|
||||||
|
|
||||||
|
@ -112,31 +110,9 @@ typedef struct
|
||||||
*/
|
*/
|
||||||
bool DIALOG_BOM_EDITOR::TransferDataFromWindow()
|
bool DIALOG_BOM_EDITOR::TransferDataFromWindow()
|
||||||
{
|
{
|
||||||
bool saveChanges = false;
|
|
||||||
|
|
||||||
// If there are changed values, warn the user first
|
|
||||||
if( m_bom->HaveFieldsChanged() )
|
if( m_bom->HaveFieldsChanged() )
|
||||||
{
|
{
|
||||||
int result = DisplayExitDialog( this, _( "Changes exist in component table" ) );
|
/**
|
||||||
|
|
||||||
switch( result )
|
|
||||||
{
|
|
||||||
// Save and exit
|
|
||||||
case wxID_YES:
|
|
||||||
saveChanges = true;
|
|
||||||
break;
|
|
||||||
// Cancel (do not exit)
|
|
||||||
case wxID_CANCEL:
|
|
||||||
return false;
|
|
||||||
// Do not save, exit
|
|
||||||
default:
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if( saveChanges )
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* As we may be saving changes across multiple sheets,
|
* As we may be saving changes across multiple sheets,
|
||||||
* we need to first determine which changes need to be made to which sheet.
|
* we need to first determine which changes need to be made to which sheet.
|
||||||
* To this end, we perform the following:
|
* To this end, we perform the following:
|
||||||
|
@ -144,7 +120,7 @@ bool DIALOG_BOM_EDITOR::TransferDataFromWindow()
|
||||||
* 2. Create a MAP of <SheetPath:ChangeList> changes that need to be made
|
* 2. Create a MAP of <SheetPath:ChangeList> changes that need to be made
|
||||||
* 3. Push UNDO actions to appropriate sheets
|
* 3. Push UNDO actions to appropriate sheets
|
||||||
* 4. Perform all the update actions
|
* 4. Perform all the update actions
|
||||||
* 5. Reset the sheet view to the current sheet
|
* 5. Reset the view to the current sheet
|
||||||
*/
|
*/
|
||||||
|
|
||||||
auto currentSheet = m_parent->GetCurrentSheet();
|
auto currentSheet = m_parent->GetCurrentSheet();
|
||||||
|
@ -169,7 +145,6 @@ bool DIALOG_BOM_EDITOR::TransferDataFromWindow()
|
||||||
picker = ITEM_PICKER( cmp, UR_CHANGED );
|
picker = ITEM_PICKER( cmp, UR_CHANGED );
|
||||||
picker.SetFlags( cmp->GetFlags() );
|
picker.SetFlags( cmp->GetFlags() );
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If there is not currently an undo list for the given sheet,
|
* If there is not currently an undo list for the given sheet,
|
||||||
* create an empty one
|
* create an empty one
|
||||||
|
@ -199,7 +174,7 @@ bool DIALOG_BOM_EDITOR::TransferDataFromWindow()
|
||||||
m_parent->OnModify();
|
m_parent->OnModify();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Apply all the field changes
|
// Make all component changes
|
||||||
m_bom->ApplyFieldChanges();
|
m_bom->ApplyFieldChanges();
|
||||||
|
|
||||||
// Redraw the current sheet and mark as dirty
|
// Redraw the current sheet and mark as dirty
|
||||||
|
@ -209,7 +184,6 @@ bool DIALOG_BOM_EDITOR::TransferDataFromWindow()
|
||||||
// Reset the view to where we left the user
|
// Reset the view to where we left the user
|
||||||
m_parent->SetCurrentSheet(currentSheet);
|
m_parent->SetCurrentSheet(currentSheet);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -352,131 +326,6 @@ void DIALOG_BOM_EDITOR::OnUpdateUI( wxUpdateUIEvent& event )
|
||||||
UpdateTitle();
|
UpdateTitle();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Called when the "Export BOM" button is pressed
|
|
||||||
* Extract row data from the component table,
|
|
||||||
* and export it to a BOM file
|
|
||||||
*/
|
|
||||||
void DIALOG_BOM_EDITOR::OnExportBOM( wxCommandEvent& event )
|
|
||||||
{
|
|
||||||
// Allowable BOM file formats
|
|
||||||
static const wxString wildcard = _( "BOM Files" ) + wxString( " *.csv, *.tsv, *.html)|*.csv;*.tsv;*.htm;*.html" );
|
|
||||||
|
|
||||||
wxFileDialog bomFileDialog(this, _("Select BOM file"),
|
|
||||||
Prj().GetProjectPath(),
|
|
||||||
wxEmptyString,
|
|
||||||
wildcard,
|
|
||||||
wxFD_SAVE | wxFD_OVERWRITE_PROMPT );
|
|
||||||
|
|
||||||
|
|
||||||
if( bomFileDialog.ShowModal() == wxID_CANCEL )
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Ensure the component groups are correct
|
|
||||||
m_bom->ReloadTable();
|
|
||||||
|
|
||||||
wxString msg;
|
|
||||||
|
|
||||||
wxFileName filename = bomFileDialog.GetPath();
|
|
||||||
|
|
||||||
// Ensure correct file format
|
|
||||||
BOM_FILE_WRITER* writer;
|
|
||||||
|
|
||||||
wxString fn = filename.GetFullPath().Lower();
|
|
||||||
|
|
||||||
// CSV File
|
|
||||||
if( fn.EndsWith( ".csv" ) )
|
|
||||||
{
|
|
||||||
writer = new BOM_CSV_WRITER();
|
|
||||||
}
|
|
||||||
// TSV file
|
|
||||||
else if( fn.EndsWith( ".tsv" ) )
|
|
||||||
{
|
|
||||||
writer = new BOM_CSV_WRITER( '\t' );
|
|
||||||
}
|
|
||||||
// HTML file
|
|
||||||
else if( fn.EndsWith( ".html" ) || fn.EndsWith( ".htm" ) )
|
|
||||||
{
|
|
||||||
writer = new BOM_HTML_WRITER();
|
|
||||||
}
|
|
||||||
// Unknown file!
|
|
||||||
else
|
|
||||||
{
|
|
||||||
msg.Printf("%s:\n%s",
|
|
||||||
_( "Unsupported file type" ),
|
|
||||||
filename.GetExt() );
|
|
||||||
|
|
||||||
wxMessageBox( msg );
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set export preferences
|
|
||||||
writer->IncludeExtraData( m_includeProjectData->GetValue() );
|
|
||||||
writer->ShowRowNumbers( m_showRowNumbers->GetValue() );
|
|
||||||
|
|
||||||
// Project information
|
|
||||||
writer->SetKicadVersion( GetBuildVersion() );
|
|
||||||
|
|
||||||
// Extract sheet info from top-level sheet
|
|
||||||
if( g_RootSheet )
|
|
||||||
{
|
|
||||||
const TITLE_BLOCK& tb = g_RootSheet->GetScreen()->GetTitleBlock();
|
|
||||||
|
|
||||||
writer->SetSchematicDate( tb.GetDate() );
|
|
||||||
writer->SetSchematicVersion( tb.GetRevision() );
|
|
||||||
writer->SetSchematicTitle( tb.GetTitle() );
|
|
||||||
}
|
|
||||||
|
|
||||||
std::vector<BOM_COLUMN*> columns;
|
|
||||||
wxArrayString headings;
|
|
||||||
|
|
||||||
// Extract the visible column data
|
|
||||||
for( auto column : m_bom->ColumnList.Columns )
|
|
||||||
{
|
|
||||||
if( column && column->IsVisible() )
|
|
||||||
{
|
|
||||||
columns.push_back( column );
|
|
||||||
headings.push_back( column->Title() );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
writer->SetHeader( headings );
|
|
||||||
|
|
||||||
// Extract the row data
|
|
||||||
for( unsigned int row=0; row<m_bom->GroupCount(); row++ )
|
|
||||||
{
|
|
||||||
writer->AddLine( m_bom->GetRowData( row, columns ) );
|
|
||||||
}
|
|
||||||
|
|
||||||
writer->SetGroupCount( m_bom->GroupCount() );
|
|
||||||
writer->SetComponentCount( m_bom->ComponentCount() );
|
|
||||||
|
|
||||||
// Open the BOM file for writing
|
|
||||||
wxFile bomFile( filename.GetFullPath(), wxFile::write );
|
|
||||||
|
|
||||||
if( bomFile.IsOpened() )
|
|
||||||
{
|
|
||||||
if( !writer->WriteToFile( bomFile ) )
|
|
||||||
{
|
|
||||||
msg.Printf( "%s:\n%s",
|
|
||||||
_( "Error writing BOM file" ),
|
|
||||||
filename.GetFullPath() );
|
|
||||||
}
|
|
||||||
|
|
||||||
bomFile.Close();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
msg.Printf( "%s:\n%s",
|
|
||||||
_( "Error opening BOM file" ),
|
|
||||||
filename.GetFullPath() );
|
|
||||||
|
|
||||||
wxMessageBox( msg );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void DIALOG_BOM_EDITOR::OnTableValueChanged( wxDataViewEvent& event )
|
void DIALOG_BOM_EDITOR::OnTableValueChanged( wxDataViewEvent& event )
|
||||||
{
|
{
|
||||||
Update();
|
Update();
|
||||||
|
@ -499,3 +348,24 @@ void DIALOG_BOM_EDITOR::OnRevertFieldChanges( wxCommandEvent& event )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Called when a cell is left-clicked
|
||||||
|
void DIALOG_BOM_EDITOR::OnTableItemActivated( wxDataViewEvent& event )
|
||||||
|
{
|
||||||
|
/* TODO
|
||||||
|
* - Focus on component selected in SCH_FRAME
|
||||||
|
*/
|
||||||
|
|
||||||
|
event.Skip();
|
||||||
|
}
|
||||||
|
// Called when a cell is right-clicked
|
||||||
|
void DIALOG_BOM_EDITOR::OnTableItemContextMenu( wxDataViewEvent& event )
|
||||||
|
{
|
||||||
|
/* TODO
|
||||||
|
* - Display contect menu
|
||||||
|
* - Option to revert local changes if changes have been made
|
||||||
|
* - Option to select footprint if FOOTPRINT column selected
|
||||||
|
*/
|
||||||
|
|
||||||
|
event.Skip();
|
||||||
|
}
|
||||||
|
|
|
@ -69,8 +69,6 @@ private:
|
||||||
virtual void OnColumnItemToggled( wxDataViewEvent& event ) override;
|
virtual void OnColumnItemToggled( wxDataViewEvent& event ) override;
|
||||||
virtual void OnGroupComponentsToggled( wxCommandEvent& event ) override;
|
virtual void OnGroupComponentsToggled( wxCommandEvent& event ) override;
|
||||||
|
|
||||||
virtual void OnExportBOM( wxCommandEvent& event ) override;
|
|
||||||
|
|
||||||
virtual void OnRevertFieldChanges( wxCommandEvent& event ) override;
|
virtual void OnRevertFieldChanges( wxCommandEvent& event ) override;
|
||||||
|
|
||||||
virtual void OnRegroupComponents( wxCommandEvent& event ) override;
|
virtual void OnRegroupComponents( wxCommandEvent& event ) override;
|
||||||
|
@ -78,6 +76,12 @@ private:
|
||||||
// Called after a value in the table has changed
|
// Called after a value in the table has changed
|
||||||
virtual void OnTableValueChanged( wxDataViewEvent& event ) override;
|
virtual void OnTableValueChanged( wxDataViewEvent& event ) override;
|
||||||
|
|
||||||
|
// Called when a cell is left-clicked
|
||||||
|
virtual void OnTableItemActivated( wxDataViewEvent& event ) override;
|
||||||
|
|
||||||
|
// Called when a cell is right-clicked
|
||||||
|
virtual void OnTableItemContextMenu( wxDataViewEvent& event ) override;
|
||||||
|
|
||||||
void UpdateTitle( void );
|
void UpdateTitle( void );
|
||||||
|
|
||||||
virtual void OnUpdateUI( wxUpdateUIEvent& event ) override;
|
virtual void OnUpdateUI( wxUpdateUIEvent& event ) override;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
// C++ code generated with wxFormBuilder (version Mar 22 2017)
|
// C++ code generated with wxFormBuilder (version Apr 1 2017)
|
||||||
// http://www.wxformbuilder.org/
|
// http://www.wxformbuilder.org/
|
||||||
//
|
//
|
||||||
// PLEASE DO "NOT" EDIT THIS FILE!
|
// PLEASE DO "NOT" EDIT THIS FILE!
|
||||||
|
@ -15,9 +15,10 @@ BEGIN_EVENT_TABLE( DIALOG_BOM_EDITOR_BASE, DIALOG_SHIM )
|
||||||
EVT_BUTTON( ID_BUTTON_REGROUP, DIALOG_BOM_EDITOR_BASE::_wxFB_OnRegroupComponents )
|
EVT_BUTTON( ID_BUTTON_REGROUP, DIALOG_BOM_EDITOR_BASE::_wxFB_OnRegroupComponents )
|
||||||
EVT_BUTTON( ID_BUTTON_REVERT_CHANGES, DIALOG_BOM_EDITOR_BASE::_wxFB_OnRevertFieldChanges )
|
EVT_BUTTON( ID_BUTTON_REVERT_CHANGES, DIALOG_BOM_EDITOR_BASE::_wxFB_OnRevertFieldChanges )
|
||||||
EVT_DATAVIEW_ITEM_VALUE_CHANGED( wxID_ANY, DIALOG_BOM_EDITOR_BASE::_wxFB_OnColumnItemToggled )
|
EVT_DATAVIEW_ITEM_VALUE_CHANGED( wxID_ANY, DIALOG_BOM_EDITOR_BASE::_wxFB_OnColumnItemToggled )
|
||||||
EVT_BUTTON( wxID_BOM_BUTTON_EXPORT, DIALOG_BOM_EDITOR_BASE::_wxFB_OnExportBOM )
|
|
||||||
EVT_DATAVIEW_COLUMN_REORDERED( wxID_ANY, DIALOG_BOM_EDITOR_BASE::_wxFB_OnBomColumReordered )
|
EVT_DATAVIEW_COLUMN_REORDERED( wxID_ANY, DIALOG_BOM_EDITOR_BASE::_wxFB_OnBomColumReordered )
|
||||||
EVT_DATAVIEW_COLUMN_SORTED( wxID_ANY, DIALOG_BOM_EDITOR_BASE::_wxFB_OnBomColumnSorted )
|
EVT_DATAVIEW_COLUMN_SORTED( wxID_ANY, DIALOG_BOM_EDITOR_BASE::_wxFB_OnBomColumnSorted )
|
||||||
|
EVT_DATAVIEW_ITEM_ACTIVATED( wxID_ANY, DIALOG_BOM_EDITOR_BASE::_wxFB_OnTableItemActivated )
|
||||||
|
EVT_DATAVIEW_ITEM_CONTEXT_MENU( wxID_ANY, DIALOG_BOM_EDITOR_BASE::_wxFB_OnTableItemContextMenu )
|
||||||
EVT_DATAVIEW_ITEM_EDITING_DONE( wxID_ANY, DIALOG_BOM_EDITOR_BASE::_wxFB_OnTableValueChanged )
|
EVT_DATAVIEW_ITEM_EDITING_DONE( wxID_ANY, DIALOG_BOM_EDITOR_BASE::_wxFB_OnTableValueChanged )
|
||||||
EVT_DATAVIEW_SELECTION_CHANGED( wxID_ANY, DIALOG_BOM_EDITOR_BASE::_wxFB_OnSelectionChanged )
|
EVT_DATAVIEW_SELECTION_CHANGED( wxID_ANY, DIALOG_BOM_EDITOR_BASE::_wxFB_OnSelectionChanged )
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
|
@ -79,39 +80,6 @@ DIALOG_BOM_EDITOR_BASE::DIALOG_BOM_EDITOR_BASE( wxWindow* parent, wxWindowID id,
|
||||||
|
|
||||||
bSizer6->Add( 0, 0, 0, wxEXPAND, 5 );
|
bSizer6->Add( 0, 0, 0, wxEXPAND, 5 );
|
||||||
|
|
||||||
wxStaticBoxSizer* sbSizer2;
|
|
||||||
sbSizer2 = new wxStaticBoxSizer( new wxStaticBox( m_leftPanel, wxID_ANY, _("Export options") ), wxVERTICAL );
|
|
||||||
|
|
||||||
m_includeProjectData = new wxCheckBox( sbSizer2->GetStaticBox(), wxID_BOM_OPT_INC_PRJ_DATA, _("Include project data"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
m_includeProjectData->SetValue(true);
|
|
||||||
m_includeProjectData->SetToolTip( _("Include project information in BOM file") );
|
|
||||||
|
|
||||||
sbSizer2->Add( m_includeProjectData, 0, wxALL|wxEXPAND, 5 );
|
|
||||||
|
|
||||||
m_showRowNumbers = new wxCheckBox( sbSizer2->GetStaticBox(), wxID_BOM_OPT_SHOW_ROW_NUMS, _("Show row numbers"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
m_showRowNumbers->SetValue(true);
|
|
||||||
m_showRowNumbers->SetToolTip( _("Show BOM row numbers ") );
|
|
||||||
|
|
||||||
sbSizer2->Add( m_showRowNumbers, 0, wxALL|wxEXPAND, 5 );
|
|
||||||
|
|
||||||
|
|
||||||
sbSizer2->Add( 0, 0, 1, wxEXPAND, 5 );
|
|
||||||
|
|
||||||
wxBoxSizer* bSizer13;
|
|
||||||
bSizer13 = new wxBoxSizer( wxHORIZONTAL );
|
|
||||||
|
|
||||||
|
|
||||||
bSizer13->Add( 0, 0, 1, wxEXPAND, 5 );
|
|
||||||
|
|
||||||
m_exportButton = new wxButton( sbSizer2->GetStaticBox(), wxID_BOM_BUTTON_EXPORT, _("Export BOM"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
bSizer13->Add( m_exportButton, 0, wxALL, 5 );
|
|
||||||
|
|
||||||
|
|
||||||
sbSizer2->Add( bSizer13, 0, wxEXPAND, 5 );
|
|
||||||
|
|
||||||
|
|
||||||
bSizer6->Add( sbSizer2, 0, wxEXPAND, 5 );
|
|
||||||
|
|
||||||
wxStaticBoxSizer* sbSizer4;
|
wxStaticBoxSizer* sbSizer4;
|
||||||
sbSizer4 = new wxStaticBoxSizer( new wxStaticBox( m_leftPanel, wxID_ANY, _("Apply changes") ), wxVERTICAL );
|
sbSizer4 = new wxStaticBoxSizer( new wxStaticBox( m_leftPanel, wxID_ANY, _("Apply changes") ), wxVERTICAL );
|
||||||
|
|
||||||
|
|
|
@ -727,316 +727,6 @@
|
||||||
<property name="width">0</property>
|
<property name="width">0</property>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="sizeritem" expanded="1">
|
|
||||||
<property name="border">5</property>
|
|
||||||
<property name="flag">wxEXPAND</property>
|
|
||||||
<property name="proportion">0</property>
|
|
||||||
<object class="wxStaticBoxSizer" expanded="0">
|
|
||||||
<property name="id">wxID_ANY</property>
|
|
||||||
<property name="label">Export options</property>
|
|
||||||
<property name="minimum_size"></property>
|
|
||||||
<property name="name">sbSizer2</property>
|
|
||||||
<property name="orient">wxVERTICAL</property>
|
|
||||||
<property name="parent">1</property>
|
|
||||||
<property name="permission">none</property>
|
|
||||||
<event name="OnUpdateUI"></event>
|
|
||||||
<object class="sizeritem" expanded="0">
|
|
||||||
<property name="border">5</property>
|
|
||||||
<property name="flag">wxALL|wxEXPAND</property>
|
|
||||||
<property name="proportion">0</property>
|
|
||||||
<object class="wxCheckBox" expanded="0">
|
|
||||||
<property name="BottomDockable">1</property>
|
|
||||||
<property name="LeftDockable">1</property>
|
|
||||||
<property name="RightDockable">1</property>
|
|
||||||
<property name="TopDockable">1</property>
|
|
||||||
<property name="aui_layer"></property>
|
|
||||||
<property name="aui_name"></property>
|
|
||||||
<property name="aui_position"></property>
|
|
||||||
<property name="aui_row"></property>
|
|
||||||
<property name="best_size"></property>
|
|
||||||
<property name="bg"></property>
|
|
||||||
<property name="caption"></property>
|
|
||||||
<property name="caption_visible">1</property>
|
|
||||||
<property name="center_pane">0</property>
|
|
||||||
<property name="checked">1</property>
|
|
||||||
<property name="close_button">1</property>
|
|
||||||
<property name="context_help"></property>
|
|
||||||
<property name="context_menu">1</property>
|
|
||||||
<property name="default_pane">0</property>
|
|
||||||
<property name="dock">Dock</property>
|
|
||||||
<property name="dock_fixed">0</property>
|
|
||||||
<property name="docking">Left</property>
|
|
||||||
<property name="enabled">1</property>
|
|
||||||
<property name="fg"></property>
|
|
||||||
<property name="floatable">1</property>
|
|
||||||
<property name="font"></property>
|
|
||||||
<property name="gripper">0</property>
|
|
||||||
<property name="hidden">0</property>
|
|
||||||
<property name="id">wxID_BOM_OPT_INC_PRJ_DATA</property>
|
|
||||||
<property name="label">Include project data</property>
|
|
||||||
<property name="max_size"></property>
|
|
||||||
<property name="maximize_button">0</property>
|
|
||||||
<property name="maximum_size"></property>
|
|
||||||
<property name="min_size"></property>
|
|
||||||
<property name="minimize_button">0</property>
|
|
||||||
<property name="minimum_size"></property>
|
|
||||||
<property name="moveable">1</property>
|
|
||||||
<property name="name">m_includeProjectData</property>
|
|
||||||
<property name="pane_border">1</property>
|
|
||||||
<property name="pane_position"></property>
|
|
||||||
<property name="pane_size"></property>
|
|
||||||
<property name="permission">protected</property>
|
|
||||||
<property name="pin_button">1</property>
|
|
||||||
<property name="pos"></property>
|
|
||||||
<property name="resize">Resizable</property>
|
|
||||||
<property name="show">1</property>
|
|
||||||
<property name="size"></property>
|
|
||||||
<property name="style"></property>
|
|
||||||
<property name="subclass"></property>
|
|
||||||
<property name="toolbar_pane">0</property>
|
|
||||||
<property name="tooltip">Include project information in BOM file</property>
|
|
||||||
<property name="validator_data_type"></property>
|
|
||||||
<property name="validator_style">wxFILTER_NONE</property>
|
|
||||||
<property name="validator_type">wxDefaultValidator</property>
|
|
||||||
<property name="validator_variable"></property>
|
|
||||||
<property name="window_extra_style"></property>
|
|
||||||
<property name="window_name"></property>
|
|
||||||
<property name="window_style"></property>
|
|
||||||
<event name="OnChar"></event>
|
|
||||||
<event name="OnCheckBox"></event>
|
|
||||||
<event name="OnEnterWindow"></event>
|
|
||||||
<event name="OnEraseBackground"></event>
|
|
||||||
<event name="OnKeyDown"></event>
|
|
||||||
<event name="OnKeyUp"></event>
|
|
||||||
<event name="OnKillFocus"></event>
|
|
||||||
<event name="OnLeaveWindow"></event>
|
|
||||||
<event name="OnLeftDClick"></event>
|
|
||||||
<event name="OnLeftDown"></event>
|
|
||||||
<event name="OnLeftUp"></event>
|
|
||||||
<event name="OnMiddleDClick"></event>
|
|
||||||
<event name="OnMiddleDown"></event>
|
|
||||||
<event name="OnMiddleUp"></event>
|
|
||||||
<event name="OnMotion"></event>
|
|
||||||
<event name="OnMouseEvents"></event>
|
|
||||||
<event name="OnMouseWheel"></event>
|
|
||||||
<event name="OnPaint"></event>
|
|
||||||
<event name="OnRightDClick"></event>
|
|
||||||
<event name="OnRightDown"></event>
|
|
||||||
<event name="OnRightUp"></event>
|
|
||||||
<event name="OnSetFocus"></event>
|
|
||||||
<event name="OnSize"></event>
|
|
||||||
<event name="OnUpdateUI"></event>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="sizeritem" expanded="0">
|
|
||||||
<property name="border">5</property>
|
|
||||||
<property name="flag">wxALL|wxEXPAND</property>
|
|
||||||
<property name="proportion">0</property>
|
|
||||||
<object class="wxCheckBox" expanded="0">
|
|
||||||
<property name="BottomDockable">1</property>
|
|
||||||
<property name="LeftDockable">1</property>
|
|
||||||
<property name="RightDockable">1</property>
|
|
||||||
<property name="TopDockable">1</property>
|
|
||||||
<property name="aui_layer"></property>
|
|
||||||
<property name="aui_name"></property>
|
|
||||||
<property name="aui_position"></property>
|
|
||||||
<property name="aui_row"></property>
|
|
||||||
<property name="best_size"></property>
|
|
||||||
<property name="bg"></property>
|
|
||||||
<property name="caption"></property>
|
|
||||||
<property name="caption_visible">1</property>
|
|
||||||
<property name="center_pane">0</property>
|
|
||||||
<property name="checked">1</property>
|
|
||||||
<property name="close_button">1</property>
|
|
||||||
<property name="context_help"></property>
|
|
||||||
<property name="context_menu">1</property>
|
|
||||||
<property name="default_pane">0</property>
|
|
||||||
<property name="dock">Dock</property>
|
|
||||||
<property name="dock_fixed">0</property>
|
|
||||||
<property name="docking">Left</property>
|
|
||||||
<property name="enabled">1</property>
|
|
||||||
<property name="fg"></property>
|
|
||||||
<property name="floatable">1</property>
|
|
||||||
<property name="font"></property>
|
|
||||||
<property name="gripper">0</property>
|
|
||||||
<property name="hidden">0</property>
|
|
||||||
<property name="id">wxID_BOM_OPT_SHOW_ROW_NUMS</property>
|
|
||||||
<property name="label">Show row numbers</property>
|
|
||||||
<property name="max_size"></property>
|
|
||||||
<property name="maximize_button">0</property>
|
|
||||||
<property name="maximum_size"></property>
|
|
||||||
<property name="min_size"></property>
|
|
||||||
<property name="minimize_button">0</property>
|
|
||||||
<property name="minimum_size"></property>
|
|
||||||
<property name="moveable">1</property>
|
|
||||||
<property name="name">m_showRowNumbers</property>
|
|
||||||
<property name="pane_border">1</property>
|
|
||||||
<property name="pane_position"></property>
|
|
||||||
<property name="pane_size"></property>
|
|
||||||
<property name="permission">protected</property>
|
|
||||||
<property name="pin_button">1</property>
|
|
||||||
<property name="pos"></property>
|
|
||||||
<property name="resize">Resizable</property>
|
|
||||||
<property name="show">1</property>
|
|
||||||
<property name="size"></property>
|
|
||||||
<property name="style"></property>
|
|
||||||
<property name="subclass"></property>
|
|
||||||
<property name="toolbar_pane">0</property>
|
|
||||||
<property name="tooltip">Show BOM row numbers </property>
|
|
||||||
<property name="validator_data_type"></property>
|
|
||||||
<property name="validator_style">wxFILTER_NONE</property>
|
|
||||||
<property name="validator_type">wxDefaultValidator</property>
|
|
||||||
<property name="validator_variable"></property>
|
|
||||||
<property name="window_extra_style"></property>
|
|
||||||
<property name="window_name"></property>
|
|
||||||
<property name="window_style"></property>
|
|
||||||
<event name="OnChar"></event>
|
|
||||||
<event name="OnCheckBox"></event>
|
|
||||||
<event name="OnEnterWindow"></event>
|
|
||||||
<event name="OnEraseBackground"></event>
|
|
||||||
<event name="OnKeyDown"></event>
|
|
||||||
<event name="OnKeyUp"></event>
|
|
||||||
<event name="OnKillFocus"></event>
|
|
||||||
<event name="OnLeaveWindow"></event>
|
|
||||||
<event name="OnLeftDClick"></event>
|
|
||||||
<event name="OnLeftDown"></event>
|
|
||||||
<event name="OnLeftUp"></event>
|
|
||||||
<event name="OnMiddleDClick"></event>
|
|
||||||
<event name="OnMiddleDown"></event>
|
|
||||||
<event name="OnMiddleUp"></event>
|
|
||||||
<event name="OnMotion"></event>
|
|
||||||
<event name="OnMouseEvents"></event>
|
|
||||||
<event name="OnMouseWheel"></event>
|
|
||||||
<event name="OnPaint"></event>
|
|
||||||
<event name="OnRightDClick"></event>
|
|
||||||
<event name="OnRightDown"></event>
|
|
||||||
<event name="OnRightUp"></event>
|
|
||||||
<event name="OnSetFocus"></event>
|
|
||||||
<event name="OnSize"></event>
|
|
||||||
<event name="OnUpdateUI"></event>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="sizeritem" expanded="0">
|
|
||||||
<property name="border">5</property>
|
|
||||||
<property name="flag">wxEXPAND</property>
|
|
||||||
<property name="proportion">1</property>
|
|
||||||
<object class="spacer" expanded="0">
|
|
||||||
<property name="height">0</property>
|
|
||||||
<property name="permission">protected</property>
|
|
||||||
<property name="width">0</property>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="sizeritem" expanded="0">
|
|
||||||
<property name="border">5</property>
|
|
||||||
<property name="flag">wxEXPAND</property>
|
|
||||||
<property name="proportion">0</property>
|
|
||||||
<object class="wxBoxSizer" expanded="0">
|
|
||||||
<property name="minimum_size"></property>
|
|
||||||
<property name="name">bSizer13</property>
|
|
||||||
<property name="orient">wxHORIZONTAL</property>
|
|
||||||
<property name="permission">none</property>
|
|
||||||
<object class="sizeritem" expanded="0">
|
|
||||||
<property name="border">5</property>
|
|
||||||
<property name="flag">wxEXPAND</property>
|
|
||||||
<property name="proportion">1</property>
|
|
||||||
<object class="spacer" expanded="0">
|
|
||||||
<property name="height">0</property>
|
|
||||||
<property name="permission">protected</property>
|
|
||||||
<property name="width">0</property>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="sizeritem" expanded="0">
|
|
||||||
<property name="border">5</property>
|
|
||||||
<property name="flag">wxALL</property>
|
|
||||||
<property name="proportion">0</property>
|
|
||||||
<object class="wxButton" expanded="0">
|
|
||||||
<property name="BottomDockable">1</property>
|
|
||||||
<property name="LeftDockable">1</property>
|
|
||||||
<property name="RightDockable">1</property>
|
|
||||||
<property name="TopDockable">1</property>
|
|
||||||
<property name="aui_layer"></property>
|
|
||||||
<property name="aui_name"></property>
|
|
||||||
<property name="aui_position"></property>
|
|
||||||
<property name="aui_row"></property>
|
|
||||||
<property name="best_size"></property>
|
|
||||||
<property name="bg"></property>
|
|
||||||
<property name="caption"></property>
|
|
||||||
<property name="caption_visible">1</property>
|
|
||||||
<property name="center_pane">0</property>
|
|
||||||
<property name="close_button">1</property>
|
|
||||||
<property name="context_help"></property>
|
|
||||||
<property name="context_menu">1</property>
|
|
||||||
<property name="default">0</property>
|
|
||||||
<property name="default_pane">0</property>
|
|
||||||
<property name="dock">Dock</property>
|
|
||||||
<property name="dock_fixed">0</property>
|
|
||||||
<property name="docking">Left</property>
|
|
||||||
<property name="enabled">1</property>
|
|
||||||
<property name="fg"></property>
|
|
||||||
<property name="floatable">1</property>
|
|
||||||
<property name="font"></property>
|
|
||||||
<property name="gripper">0</property>
|
|
||||||
<property name="hidden">0</property>
|
|
||||||
<property name="id">wxID_BOM_BUTTON_EXPORT</property>
|
|
||||||
<property name="label">Export BOM</property>
|
|
||||||
<property name="max_size"></property>
|
|
||||||
<property name="maximize_button">0</property>
|
|
||||||
<property name="maximum_size"></property>
|
|
||||||
<property name="min_size"></property>
|
|
||||||
<property name="minimize_button">0</property>
|
|
||||||
<property name="minimum_size"></property>
|
|
||||||
<property name="moveable">1</property>
|
|
||||||
<property name="name">m_exportButton</property>
|
|
||||||
<property name="pane_border">1</property>
|
|
||||||
<property name="pane_position"></property>
|
|
||||||
<property name="pane_size"></property>
|
|
||||||
<property name="permission">protected</property>
|
|
||||||
<property name="pin_button">1</property>
|
|
||||||
<property name="pos"></property>
|
|
||||||
<property name="resize">Resizable</property>
|
|
||||||
<property name="show">1</property>
|
|
||||||
<property name="size"></property>
|
|
||||||
<property name="style"></property>
|
|
||||||
<property name="subclass"></property>
|
|
||||||
<property name="toolbar_pane">0</property>
|
|
||||||
<property name="tooltip"></property>
|
|
||||||
<property name="validator_data_type"></property>
|
|
||||||
<property name="validator_style">wxFILTER_NONE</property>
|
|
||||||
<property name="validator_type">wxDefaultValidator</property>
|
|
||||||
<property name="validator_variable"></property>
|
|
||||||
<property name="window_extra_style"></property>
|
|
||||||
<property name="window_name"></property>
|
|
||||||
<property name="window_style"></property>
|
|
||||||
<event name="OnButtonClick">OnExportBOM</event>
|
|
||||||
<event name="OnChar"></event>
|
|
||||||
<event name="OnEnterWindow"></event>
|
|
||||||
<event name="OnEraseBackground"></event>
|
|
||||||
<event name="OnKeyDown"></event>
|
|
||||||
<event name="OnKeyUp"></event>
|
|
||||||
<event name="OnKillFocus"></event>
|
|
||||||
<event name="OnLeaveWindow"></event>
|
|
||||||
<event name="OnLeftDClick"></event>
|
|
||||||
<event name="OnLeftDown"></event>
|
|
||||||
<event name="OnLeftUp"></event>
|
|
||||||
<event name="OnMiddleDClick"></event>
|
|
||||||
<event name="OnMiddleDown"></event>
|
|
||||||
<event name="OnMiddleUp"></event>
|
|
||||||
<event name="OnMotion"></event>
|
|
||||||
<event name="OnMouseEvents"></event>
|
|
||||||
<event name="OnMouseWheel"></event>
|
|
||||||
<event name="OnPaint"></event>
|
|
||||||
<event name="OnRightDClick"></event>
|
|
||||||
<event name="OnRightDown"></event>
|
|
||||||
<event name="OnRightUp"></event>
|
|
||||||
<event name="OnSetFocus"></event>
|
|
||||||
<event name="OnSize"></event>
|
|
||||||
<event name="OnUpdateUI"></event>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="sizeritem" expanded="1">
|
<object class="sizeritem" expanded="1">
|
||||||
<property name="border">5</property>
|
<property name="border">5</property>
|
||||||
<property name="flag">wxEXPAND</property>
|
<property name="flag">wxEXPAND</property>
|
||||||
|
@ -1191,11 +881,11 @@
|
||||||
<event name="OnDataViewCtrlColumnHeaderRightClick"></event>
|
<event name="OnDataViewCtrlColumnHeaderRightClick"></event>
|
||||||
<event name="OnDataViewCtrlColumnReordered">OnBomColumReordered</event>
|
<event name="OnDataViewCtrlColumnReordered">OnBomColumReordered</event>
|
||||||
<event name="OnDataViewCtrlColumnSorted">OnBomColumnSorted</event>
|
<event name="OnDataViewCtrlColumnSorted">OnBomColumnSorted</event>
|
||||||
<event name="OnDataViewCtrlItemActivated"></event>
|
<event name="OnDataViewCtrlItemActivated">OnTableItemActivated</event>
|
||||||
<event name="OnDataViewCtrlItemBeginDrag"></event>
|
<event name="OnDataViewCtrlItemBeginDrag"></event>
|
||||||
<event name="OnDataViewCtrlItemCollapsed"></event>
|
<event name="OnDataViewCtrlItemCollapsed"></event>
|
||||||
<event name="OnDataViewCtrlItemCollapsing"></event>
|
<event name="OnDataViewCtrlItemCollapsing"></event>
|
||||||
<event name="OnDataViewCtrlItemContextMenu"></event>
|
<event name="OnDataViewCtrlItemContextMenu">OnTableItemContextMenu</event>
|
||||||
<event name="OnDataViewCtrlItemDrop"></event>
|
<event name="OnDataViewCtrlItemDrop"></event>
|
||||||
<event name="OnDataViewCtrlItemDropPossible"></event>
|
<event name="OnDataViewCtrlItemDropPossible"></event>
|
||||||
<event name="OnDataViewCtrlItemEditingDone">OnTableValueChanged</event>
|
<event name="OnDataViewCtrlItemEditingDone">OnTableValueChanged</event>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
// C++ code generated with wxFormBuilder (version Mar 22 2017)
|
// C++ code generated with wxFormBuilder (version Apr 1 2017)
|
||||||
// http://www.wxformbuilder.org/
|
// http://www.wxformbuilder.org/
|
||||||
//
|
//
|
||||||
// PLEASE DO "NOT" EDIT THIS FILE!
|
// PLEASE DO "NOT" EDIT THIS FILE!
|
||||||
|
@ -33,9 +33,6 @@ class DIALOG_SHIM;
|
||||||
#define OPT_GROUP_COMPONENTS 1000
|
#define OPT_GROUP_COMPONENTS 1000
|
||||||
#define ID_BUTTON_REGROUP 1001
|
#define ID_BUTTON_REGROUP 1001
|
||||||
#define ID_BUTTON_REVERT_CHANGES 1002
|
#define ID_BUTTON_REVERT_CHANGES 1002
|
||||||
#define wxID_BOM_OPT_INC_PRJ_DATA 1003
|
|
||||||
#define wxID_BOM_OPT_SHOW_ROW_NUMS 1004
|
|
||||||
#define wxID_BOM_BUTTON_EXPORT 1005
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
/// Class DIALOG_BOM_EDITOR_BASE
|
/// Class DIALOG_BOM_EDITOR_BASE
|
||||||
|
@ -51,9 +48,10 @@ class DIALOG_BOM_EDITOR_BASE : public DIALOG_SHIM
|
||||||
void _wxFB_OnRegroupComponents( wxCommandEvent& event ){ OnRegroupComponents( event ); }
|
void _wxFB_OnRegroupComponents( wxCommandEvent& event ){ OnRegroupComponents( event ); }
|
||||||
void _wxFB_OnRevertFieldChanges( wxCommandEvent& event ){ OnRevertFieldChanges( event ); }
|
void _wxFB_OnRevertFieldChanges( wxCommandEvent& event ){ OnRevertFieldChanges( event ); }
|
||||||
void _wxFB_OnColumnItemToggled( wxDataViewEvent& event ){ OnColumnItemToggled( event ); }
|
void _wxFB_OnColumnItemToggled( wxDataViewEvent& event ){ OnColumnItemToggled( event ); }
|
||||||
void _wxFB_OnExportBOM( wxCommandEvent& event ){ OnExportBOM( event ); }
|
|
||||||
void _wxFB_OnBomColumReordered( wxDataViewEvent& event ){ OnBomColumReordered( event ); }
|
void _wxFB_OnBomColumReordered( wxDataViewEvent& event ){ OnBomColumReordered( event ); }
|
||||||
void _wxFB_OnBomColumnSorted( wxDataViewEvent& event ){ OnBomColumnSorted( event ); }
|
void _wxFB_OnBomColumnSorted( wxDataViewEvent& event ){ OnBomColumnSorted( event ); }
|
||||||
|
void _wxFB_OnTableItemActivated( wxDataViewEvent& event ){ OnTableItemActivated( event ); }
|
||||||
|
void _wxFB_OnTableItemContextMenu( wxDataViewEvent& event ){ OnTableItemContextMenu( event ); }
|
||||||
void _wxFB_OnTableValueChanged( wxDataViewEvent& event ){ OnTableValueChanged( event ); }
|
void _wxFB_OnTableValueChanged( wxDataViewEvent& event ){ OnTableValueChanged( event ); }
|
||||||
void _wxFB_OnSelectionChanged( wxDataViewEvent& event ){ OnSelectionChanged( event ); }
|
void _wxFB_OnSelectionChanged( wxDataViewEvent& event ){ OnSelectionChanged( event ); }
|
||||||
|
|
||||||
|
@ -66,9 +64,6 @@ class DIALOG_BOM_EDITOR_BASE : public DIALOG_SHIM
|
||||||
wxButton* m_regroupComponentsButton;
|
wxButton* m_regroupComponentsButton;
|
||||||
wxButton* m_reloadTableButton;
|
wxButton* m_reloadTableButton;
|
||||||
wxDataViewListCtrl* m_columnListCtrl;
|
wxDataViewListCtrl* m_columnListCtrl;
|
||||||
wxCheckBox* m_includeProjectData;
|
|
||||||
wxCheckBox* m_showRowNumbers;
|
|
||||||
wxButton* m_exportButton;
|
|
||||||
wxStdDialogButtonSizer* m_sdbSizer1;
|
wxStdDialogButtonSizer* m_sdbSizer1;
|
||||||
wxButton* m_sdbSizer1OK;
|
wxButton* m_sdbSizer1OK;
|
||||||
wxButton* m_sdbSizer1Cancel;
|
wxButton* m_sdbSizer1Cancel;
|
||||||
|
@ -81,9 +76,10 @@ class DIALOG_BOM_EDITOR_BASE : public DIALOG_SHIM
|
||||||
virtual void OnRegroupComponents( wxCommandEvent& event ) { event.Skip(); }
|
virtual void OnRegroupComponents( wxCommandEvent& event ) { event.Skip(); }
|
||||||
virtual void OnRevertFieldChanges( wxCommandEvent& event ) { event.Skip(); }
|
virtual void OnRevertFieldChanges( wxCommandEvent& event ) { event.Skip(); }
|
||||||
virtual void OnColumnItemToggled( wxDataViewEvent& event ) { event.Skip(); }
|
virtual void OnColumnItemToggled( wxDataViewEvent& event ) { event.Skip(); }
|
||||||
virtual void OnExportBOM( wxCommandEvent& event ) { event.Skip(); }
|
|
||||||
virtual void OnBomColumReordered( wxDataViewEvent& event ) { event.Skip(); }
|
virtual void OnBomColumReordered( wxDataViewEvent& event ) { event.Skip(); }
|
||||||
virtual void OnBomColumnSorted( wxDataViewEvent& event ) { event.Skip(); }
|
virtual void OnBomColumnSorted( wxDataViewEvent& event ) { event.Skip(); }
|
||||||
|
virtual void OnTableItemActivated( wxDataViewEvent& event ) { event.Skip(); }
|
||||||
|
virtual void OnTableItemContextMenu( wxDataViewEvent& event ) { event.Skip(); }
|
||||||
virtual void OnTableValueChanged( wxDataViewEvent& event ) { event.Skip(); }
|
virtual void OnTableValueChanged( wxDataViewEvent& event ) { event.Skip(); }
|
||||||
virtual void OnSelectionChanged( wxDataViewEvent& event ) { event.Skip(); }
|
virtual void OnSelectionChanged( wxDataViewEvent& event ) { event.Skip(); }
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue