From b2fa2f81b2d8d6deea3d18075b2a777fef8fac78 Mon Sep 17 00:00:00 2001 From: Jeff Young Date: Tue, 9 Nov 2021 23:17:44 +0000 Subject: [PATCH] Paste code expects a fully formed worksheet. (And we may need the version later, so it's better to have it than to not.) Fixes https://gitlab.com/kicad/code/kicad/issues/9590 --- common/drawing_sheet/ds_data_model_io.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/common/drawing_sheet/ds_data_model_io.cpp b/common/drawing_sheet/ds_data_model_io.cpp index 3fb87910a9..6879176abc 100644 --- a/common/drawing_sheet/ds_data_model_io.cpp +++ b/common/drawing_sheet/ds_data_model_io.cpp @@ -54,6 +54,7 @@ class DS_DATA_MODEL_IO public: void Format( DS_DATA_MODEL* aSheet ) const; + void Format( DS_DATA_MODEL* aModel, std::vector& aItemsList ) const; void Format( DS_DATA_MODEL* aModel, DS_DATA_ITEM* aItem, int aNestLevel ) const; protected: @@ -150,11 +151,21 @@ void DS_DATA_MODEL::SaveInString( wxString* aOutputString ) void DS_DATA_MODEL::SaveInString( std::vector& aItemsList, wxString* aOutputString ) { DS_DATA_MODEL_STRINGIO writer( aOutputString ); + writer.Format( this, aItemsList ); +} + +void DS_DATA_MODEL_IO::Format( DS_DATA_MODEL* aModel, std::vector& aItemsList ) const +{ LOCALE_IO toggle; // switch on/off the locale "C" notation + m_out->Print( 0, "(kicad_wks (version %d) (generator pl_editor)\n", + SEXPR_WORKSHEET_FILE_VERSION ); + for( DS_DATA_ITEM* item : aItemsList ) - writer.Format( this, item, 0 ); + Format( aModel, item, 1 ); + + m_out->Print( 0, ")\n" ); }