You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

88 lines
4.2 KiB

  1. /*
  2. * This program source code file is part of KiCad, a free EDA CAD application.
  3. *
  4. * Copyright (C) 2023 Mark Roszko <mark.roszko@gmail.com>
  5. * Copyright (C) 2023 KiCad Developers, see AUTHORS.txt for contributors.
  6. *
  7. * This program is free software: you can redistribute it and/or modify it
  8. * under the terms of the GNU General Public License as published by the
  9. * Free Software Foundation, either version 3 of the License, or (at your
  10. * option) any later version.
  11. *
  12. * This program is distributed in the hope that it will be useful, but
  13. * WITHOUT ANY WARRANTY; without even the implied warranty of
  14. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  15. * General Public License for more details.
  16. *
  17. * You should have received a copy of the GNU General Public License along
  18. * with this program. If not, see <http://www.gnu.org/licenses/>.
  19. */
  20. #include <jobs/job_export_sch_bom.h>
  21. #include <jobs/job_registry.h>
  22. #include <i18n_utility.h>
  23. JOB_EXPORT_SCH_BOM::JOB_EXPORT_SCH_BOM( bool aIsCli ) :
  24. JOB( "bom", false, aIsCli ),
  25. m_filename(),
  26. m_fieldDelimiter(),
  27. m_stringDelimiter(),
  28. m_refDelimiter(),
  29. m_refRangeDelimiter(),
  30. m_keepTabs( false ),
  31. m_keepLineBreaks( false ),
  32. m_fieldsOrdered(),
  33. m_fieldsLabels(),
  34. m_fieldsGroupBy(),
  35. m_sortField(),
  36. m_sortAsc( true ),
  37. m_filterString(),
  38. m_excludeDNP( false ),
  39. m_includeExcludedFromBOM( false )
  40. {
  41. m_params.emplace_back( new JOB_PARAM<wxString>( "field_delimiter",
  42. &m_fieldDelimiter,
  43. m_fieldDelimiter ) );
  44. m_params.emplace_back( new JOB_PARAM<wxString>( "string_delimiter",
  45. &m_stringDelimiter,
  46. m_stringDelimiter ) );
  47. m_params.emplace_back( new JOB_PARAM<wxString>( "ref_delimiter",
  48. &m_refDelimiter,
  49. m_refDelimiter ) );
  50. m_params.emplace_back( new JOB_PARAM<wxString>( "ref_range_delimiter",
  51. &m_refRangeDelimiter,
  52. m_refRangeDelimiter ) );
  53. m_params.emplace_back( new JOB_PARAM<bool>( "keep_tabs", &m_keepTabs, m_keepTabs ) );
  54. m_params.emplace_back( new JOB_PARAM<bool>( "keep_line_breaks",
  55. &m_keepLineBreaks,
  56. m_keepLineBreaks ) );
  57. m_params.emplace_back( new JOB_PARAM<std::vector<wxString>>( "fields_ordered",
  58. &m_fieldsOrdered,
  59. m_fieldsOrdered ) );
  60. m_params.emplace_back( new JOB_PARAM<std::vector<wxString>>( "fields_labels",
  61. &m_fieldsLabels,
  62. m_fieldsLabels ) );
  63. m_params.emplace_back( new JOB_PARAM<std::vector<wxString>>( "fields_group_by",
  64. &m_fieldsGroupBy,
  65. m_fieldsGroupBy ) );
  66. m_params.emplace_back( new JOB_PARAM<wxString>( "sort_field", &m_sortField, m_sortField ) );
  67. m_params.emplace_back( new JOB_PARAM<bool>( "sort_asc", &m_sortAsc, m_sortAsc ) );
  68. m_params.emplace_back( new JOB_PARAM<wxString>( "filter_string",
  69. &m_filterString,
  70. m_filterString ) );
  71. m_params.emplace_back( new JOB_PARAM<bool>( "exclude_dnp", &m_excludeDNP, m_excludeDNP ) );
  72. m_params.emplace_back( new JOB_PARAM<bool>( "include_excluded_from_bom",
  73. &m_includeExcludedFromBOM,
  74. m_includeExcludedFromBOM ) );
  75. }
  76. wxString JOB_EXPORT_SCH_BOM::GetDescription()
  77. {
  78. return wxString::Format( _( "Schematic BOM export" ) );
  79. }
  80. REGISTER_JOB( sch_export_bom, _HKI( "Schematic: Export BOM" ), KIWAY::FACE_SCH, JOB_EXPORT_SCH_BOM );