r4991 - in trunk/gta02-core: . kicad-patches
werner at docs.openmoko.org
werner at docs.openmoko.org
Fri May 15 21:16:59 CEST 2009
Author: werner
Date: 2009-05-15 21:16:59 +0200 (Fri, 15 May 2009)
New Revision: 4991
Added:
trunk/gta02-core/kicad-patches/
trunk/gta02-core/kicad-patches/eeschema-plot-only-mode.patch
Log:
A patch to add batch-mode plotting to eeschema:
eeschema --plot file.sch
Added: trunk/gta02-core/kicad-patches/eeschema-plot-only-mode.patch
===================================================================
--- trunk/gta02-core/kicad-patches/eeschema-plot-only-mode.patch (rev 0)
+++ trunk/gta02-core/kicad-patches/eeschema-plot-only-mode.patch 2009-05-15 19:16:59 UTC (rev 4991)
@@ -0,0 +1,92 @@
+This patch adds a command-line option --plot to eeschema that makes it
+run File -> Plot -> Plot PostScript -> Plot ALL on the specified file.
+It also prevents eeschema from opening a window and from checking for
+concurrent instances.
+
+This lets shell scripts generate plots, i.e., of schematics that have
+been processed by these scripts.
+
+Known issue: if there is an error that causes a dialog to be brought
+up, eeschema will just hang, waiting for the user to click the dialog
+away on the invisible window.
+
+This patch is for KiCad SVN revision 1768.
+
+Signed-off-by: Werner Almesberger <werner at openmoko.org>
+
+---
+
+Index: kicad/eeschema/eeschema.cpp
+===================================================================
+--- kicad.orig/eeschema/eeschema.cpp 2009-05-15 15:53:27.000000000 -0300
++++ kicad/eeschema/eeschema.cpp 2009-05-15 16:08:53.000000000 -0300
+@@ -12,6 +12,7 @@
+ #include "general.h"
+ #include "bitmaps.h"
+ #include "eda_dde.h"
++#include "plotps.h"
+
+ #include "libcmp.h"
+ #include "protos.h"
+@@ -137,12 +138,23 @@
+ {
+ wxFileName fn;
+ WinEDA_SchematicFrame* frame = NULL;
++ bool plot_only = FALSE;
+
+ g_DebugLevel = 0; // Debug level */
+
+ InitEDA_Appl( wxT( "EESchema" ), APP_TYPE_EESCHEMA );
+
+- if( m_Checker && m_Checker->IsAnotherRunning() )
++ if (argc > 1 && !wxStrcmp(argv[1], wxT("--plot"))) {
++ if (argc < 3) {
++ fprintf(stderr, "usage: %ls [[--plot] filename]\n", *argv);
++ exit(1);
++ }
++ plot_only = TRUE;
++ argc--;
++ argv++;
++ }
++
++ if( !plot_only && m_Checker && m_Checker->IsAnotherRunning() )
+ {
+ if( !IsOK( NULL, _( "Eeschema is already running, Continue?" ) ) )
+ return false;
+@@ -164,9 +176,9 @@
+ wxPoint( 0, 0 ), wxSize( 600, 400 ) );
+
+ SetTopWindow( frame );
+- frame->Show( TRUE );
++ frame->Show( !plot_only );
+
+- if( CreateServer( frame, KICAD_SCH_PORT_SERVICE_NUMBER ) )
++ if( !plot_only && CreateServer( frame, KICAD_SCH_PORT_SERVICE_NUMBER ) )
+ {
+ // RemoteCommand is in controle.cpp and is called when PCBNEW
+ // sends EESCHEMA a command
+@@ -185,6 +197,15 @@
+ if( frame->DrawPanel
+ && frame->LoadOneEEProject( fn.GetFullPath(), false ) <= 0 )
+ frame->DrawPanel->Refresh( true );
++ else {
++ if (plot_only) {
++ WinEDA_PlotPSFrame* Ps_frame = new WinEDA_PlotPSFrame( frame );
++ wxCommandEvent dummy;
++
++ Ps_frame->OnPlotPsAllExecuteClick(dummy);
++ exit(0);
++ }
++ }
+ }
+ else
+ {
+@@ -194,5 +215,8 @@
+ frame->DrawPanel->Refresh( TRUE );
+ }
+
++ if (plot_only)
++ exit(1);
++
+ return TRUE;
+ }
More information about the commitlog
mailing list