move testing for no options to back-end
authorH.G. Muller <h.g.muller@hccnet.nl>
Sun, 14 Oct 2012 10:14:07 +0000 (12:14 +0200)
committerH.G. Muller <h.g.muller@hccnet.nl>
Tue, 6 Nov 2012 11:45:08 +0000 (12:45 +0100)
The test if an engine has options and display a note instead of
the Engine Settings dialog when this is not the case is moved
to outside of GenericPopUp, to make the later independent of calling
other routines.

dialogs.c
xaw/xoptions.c
xoptions.c

index c4971d4..6287a91 100644 (file)
--- a/dialogs.c
+++ b/dialogs.c
@@ -48,6 +48,7 @@ extern char *getenv();
 #include <stdint.h>
 
 #include "common.h"
 #include <stdint.h>
 
 #include "common.h"
+#include "frontend.h"
 #include "backend.h"
 #include "xboard.h"
 #include "menus.h"
 #include "backend.h"
 #include "xboard.h"
 #include "menus.h"
@@ -1173,6 +1174,7 @@ BoxAutoPopUp (char *buf)
 void
 SettingsPopUp (ChessProgramState *cps)
 {
 void
 SettingsPopUp (ChessProgramState *cps)
 {
+   if(!cps->nrOptions) { DisplayNote(_("Engine has no options")); return; }
    currentCps = cps;
    GenericPopUp(cps->option, _("Engine Settings"), TransientDlg, BoardWindow, MODAL, 0);
 }
    currentCps = cps;
    GenericPopUp(cps->option, _("Engine Settings"), TransientDlg, BoardWindow, MODAL, 0);
 }
index 21281d2..7bbff9b 100644 (file)
@@ -791,7 +791,6 @@ GenericPopUp (Option *option, char *title, DialogClass dlgNr, DialogClass parent
 
     if(engineDlg) { // Settings popup for engine: format through heuristic
        int n = currentCps->nrOptions;
 
     if(engineDlg) { // Settings popup for engine: format through heuristic
        int n = currentCps->nrOptions;
-       if(!n) { DisplayNote(_("Engine has no options")); currentCps = NULL; return 0; }
        if(n > 50) width = 4; else if(n>24) width = 2; else width = 1;
        height = n / width + 1;
        if(n && (currentOption[n-1].type == Button || currentOption[n-1].type == SaveButton)) currentOption[n].min = SAME_ROW; // OK on same line
        if(n > 50) width = 4; else if(n>24) width = 2; else width = 1;
        height = n / width + 1;
        if(n && (currentOption[n-1].type == Button || currentOption[n-1].type == SaveButton)) currentOption[n].min = SAME_ROW; // OK on same line
index a475c58..7ed256a 100644 (file)
@@ -781,7 +781,6 @@ GenericPopUp (Option *option, char *title, DialogClass dlgNr, DialogClass parent
 
     if(engineDlg) { // Settings popup for engine: format through heuristic
        int n = currentCps->nrOptions;
 
     if(engineDlg) { // Settings popup for engine: format through heuristic
        int n = currentCps->nrOptions;
-       if(!n) { DisplayNote(_("Engine has no options")); currentCps = NULL; return 0; }
        if(n > 50) width = 4; else if(n>24) width = 2; else width = 1;
        height = n / width + 1;
        if(n && (currentOption[n-1].type == Button || currentOption[n-1].type == SaveButton)) currentOption[n].min = SAME_ROW; // OK on same line
        if(n > 50) width = 4; else if(n>24) width = 2; else width = 1;
        height = n / width + 1;
        if(n && (currentOption[n-1].type == Button || currentOption[n-1].type == SaveButton)) currentOption[n].min = SAME_ROW; // OK on same line