Re: [Kicad-developers] [PATCH] Various GerbView fixes

2018-02-28 Thread Maciej SumiƄski
For the record: merged.

On 02/28/2018 03:33 AM, Jon Evans wrote:
> Hi all,
> 
> Attached are three patches to fix a few issues noted by JP and Clemens.
> These need to be applied after my patches from yesterday which are not yet
> merged.
> 
> Best,
> Jon
> 
> 
> 
> ___
> Mailing list: https://launchpad.net/~kicad-developers
> Post to : kicad-developers@lists.launchpad.net
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp
> 




signature.asc
Description: OpenPGP digital signature
___
Mailing list: https://launchpad.net/~kicad-developers
Post to : kicad-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp


[Kicad-developers] [PATCH] Various GerbView fixes

2018-02-27 Thread Jon Evans
Hi all,

Attached are three patches to fix a few issues noted by JP and Clemens.
These need to be applied after my patches from yesterday which are not yet
merged.

Best,
Jon
From 0d0a6cb24f14e3da98d7d941a7a4cf96dcab8e12 Mon Sep 17 00:00:00 2001
From: Jon Evans 
Date: Tue, 27 Feb 2018 21:33:41 -0500
Subject: [PATCH 3/3] GerbView: Fix DCode reordering; ensure loaded layers are
 visible

---
 gerbview/files.cpp |  5 +
 gerbview/gerbview_frame.cpp| 21 +
 gerbview/gerbview_frame.h  |  2 ++
 gerbview/gerbview_layer_widget.cpp | 15 +--
 gerbview/job_file_reader.cpp   | 14 +-
 5 files changed, 30 insertions(+), 27 deletions(-)

diff --git a/gerbview/files.cpp b/gerbview/files.cpp
index d19c18f25..2ed1945db 100644
--- a/gerbview/files.cpp
+++ b/gerbview/files.cpp
@@ -231,6 +231,7 @@ bool GERBVIEW_FRAME::loadListOfGerberFiles( const wxString& aPath,
 // Read gerber files: each file is loaded on a new GerbView layer
 bool success = true;
 int layer = GetActiveLayer();
+int visibility = GetVisibleLayers();
 
 // Manage errors when loading files
 wxString msg;
@@ -265,6 +266,8 @@ bool GERBVIEW_FRAME::loadListOfGerberFiles( const wxString& aPath,
 
 SetActiveLayer( layer, false );
 
+visibility |= ( 1 << layer );
+
 if( Read_GERBER_File( filename.GetFullPath() ) )
 {
 UpdateFileHistory( m_lastFileName );
@@ -305,6 +308,8 @@ bool GERBVIEW_FRAME::loadListOfGerberFiles( const wxString& aPath,
 mbox.ShowModal();
 }
 
+SetVisibleLayers( visibility );
+
 Zoom_Automatique( false );
 
 // Synchronize layers tools with actual active layer:
diff --git a/gerbview/gerbview_frame.cpp b/gerbview/gerbview_frame.cpp
index f73e2afd2..26babda31 100644
--- a/gerbview/gerbview_frame.cpp
+++ b/gerbview/gerbview_frame.cpp
@@ -668,6 +668,27 @@ void GERBVIEW_FRAME::Liste_D_Codes()
 }
 
 
+void GERBVIEW_FRAME::SortLayersByX2Attributes()
+{
+auto remapping = GetImagesList()->SortImagesByZOrder();
+
+ReFillLayerWidget();
+syncLayerBox( true );
+
+std::unordered_map view_remapping;
+
+for( auto it : remapping )
+{
+view_remapping[ GERBER_DRAW_LAYER( it.first) ] = GERBER_DRAW_LAYER( it.second );
+view_remapping[ GERBER_DCODE_LAYER( GERBER_DRAW_LAYER( it.first) ) ] =
+GERBER_DCODE_LAYER( GERBER_DRAW_LAYER( it.second ) );
+}
+
+GetGalCanvas()->GetView()->ReorderLayerData( view_remapping );
+GetCanvas()->Refresh();
+}
+
+
 void GERBVIEW_FRAME::UpdateTitleAndInfo()
 {
 GERBER_FILE_IMAGE* gerber = GetGbrImage( GetActiveLayer() );
diff --git a/gerbview/gerbview_frame.h b/gerbview/gerbview_frame.h
index ca7e35d12..244f76464 100644
--- a/gerbview/gerbview_frame.h
+++ b/gerbview/gerbview_frame.h
@@ -701,6 +701,8 @@ public:
 boolClear_DrawLayers( bool query );
 voidErase_Current_DrawLayer( bool query );
 
+voidSortLayersByX2Attributes();
+
 // Conversion function
 voidExportDataInPcbnewFormat( wxCommandEvent& event );
 
diff --git a/gerbview/gerbview_layer_widget.cpp b/gerbview/gerbview_layer_widget.cpp
index 4b7407a86..20e2cd2d1 100644
--- a/gerbview/gerbview_layer_widget.cpp
+++ b/gerbview/gerbview_layer_widget.cpp
@@ -209,20 +209,7 @@ void GERBER_LAYER_WIDGET::onPopupSelection( wxCommandEvent& event )
 break;
 
 case ID_SORT_GBR_LAYERS:
-auto remapping = GetImagesList()->SortImagesByZOrder();
-myframe->ReFillLayerWidget();
-myframe->syncLayerBox( true );
-
-std::unordered_map view_remapping;
-
-for( auto it : remapping )
-{
-view_remapping[ GERBER_DRAW_LAYER( it.first) ] = GERBER_DRAW_LAYER( it.second );
-}
-
-myframe->GetGalCanvas()->GetView()->ReorderLayerData( view_remapping );
-
-myframe->GetCanvas()->Refresh();
+myframe->SortLayersByX2Attributes();
 break;
 }
 }
diff --git a/gerbview/job_file_reader.cpp b/gerbview/job_file_reader.cpp
index f6a4b470f..93a1eb226 100644
--- a/gerbview/job_file_reader.cpp
+++ b/gerbview/job_file_reader.cpp
@@ -197,19 +197,7 @@ bool GERBVIEW_FRAME::LoadGerberJobFile( const wxString& aFullFileName )
 
 Zoom_Automatique( false );
 
-auto remapping = GetImagesList()->SortImagesByZOrder();
-
-ReFillLayerWidget();
-syncLayerBox( true );
-
-std::unordered_map view_remapping;
-
-for( auto it : remapping )
-{
-view_remapping[ GERBER_DRAW_LAYER( it.first) ] = GERBER_DRAW_LAYER( it.second );
-}
-
-GetGalCanvas()->GetView()->ReorderLayerData( view_remapping );
+SortLayersByX2Attributes();
 
 if( !msg.IsEmpty() )
 {
-- 
2.14.1

From 4f01cfacd1699daf5c4627cd48632966af5d6262 Mon Sep 17 00:00:00 2001
From: Jon Evans 
Date: Tue, 27 Feb 2018 20:59:47 -0500
Subject: [PATCH 2/3]