diff --git a/src/main.cpp b/src/main.cpp
index 49df2f3cd22e64dc06708e3ce0bfb12f29e465ad..f7be7d9400d86f3a4a1a044972d0d8d1c7726f30 100644 (file)
--- a/src/main.cpp
+++ b/src/main.cpp
#include "application/application.h"
+#include "main-cmdlineact.h"
+
enum {
SP_ARG_NONE,
SP_ARG_NOGUI,
SP_ARG_QUERY_ID,
SP_ARG_VERSION,
SP_ARG_VACUUM_DEFS,
+ SP_ARG_VERB_LIST,
+ SP_ARG_VERB,
+ SP_ARG_SELECT,
SP_ARG_LAST
};
N_("Export files with the bounding box set to the page size (EPS)"),
NULL},
- /*
- {"fit-page-to-drawing", 'S',
- POPT_ARG_NONE, &sp_export_bbox_page, SP_ARG_FIT_PAGE_TO_DRAWING,
- N_("Fits page to drawing and saves changes in place"),
- NULL},
- */
{"query-x", 'X',
POPT_ARG_NONE, &sp_query_x, SP_ARG_QUERY_X,
// TRANSLATORS: "--query-id" is an Inkscape command line option; see "inkscape --help"
N_("Remove unused definitions from the defs section(s) of the document"),
NULL},
+ {"verb-list", 0,
+ POPT_ARG_NONE, NULL, SP_ARG_VERB_LIST,
+ N_("List the IDs of all the verbs in Inkscape"),
+ NULL},
+
+ {"verb", 0,
+ POPT_ARG_STRING, NULL, SP_ARG_VERB,
+ N_("Verb to call when Inkscape opens."),
+ N_("VERB-ID")},
+
+ {"select", 0,
+ POPT_ARG_STRING, NULL, SP_ARG_SELECT,
+ N_("Object ID to select when Inkscape opens."),
+ N_("OBJECT-ID")},
+
POPT_AUTOHELP POPT_TABLEEND
};
bindtextdomain(GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR);
#endif
#endif
+ // Allow the user to override the locale directory by setting
+ // the environment variable INKSCAPE_LOCALEDIR.
+ char *inkscape_localedir = getenv("INKSCAPE_LOCALEDIR");
+ if (inkscape_localedir != NULL) {
+ bindtextdomain(GETTEXT_PACKAGE, inkscape_localedir);
+ }
#endif
bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
}
}
+ Glib::signal_idle().connect(sigc::ptr_fun(&Inkscape::CmdLineAction::idle));
main_instance.run();
#ifdef WIN32
do_query_dimension (doc, false, sp_query_x? NR::X : NR::Y, sp_query_id);
}
}
+
fl = g_slist_remove(fl, fl->data);
}
exit(0);
break;
}
+ case SP_ARG_VERB_LIST: {
+ // This really shouldn't go here, we should init the app.
+ // But, since we're just exiting in this path, there is
+ // no harm, and this is really a better place to put
+ // everything else.
+ Inkscape::Extension::init();
+ Inkscape::Verb::list();
+ exit(0);
+ break;
+ }
+ case SP_ARG_VERB:
+ case SP_ARG_SELECT: {
+ gchar const *arg = poptGetOptArg(ctx);
+ if (arg != NULL) {
+ // printf("Adding in: %s\n", arg);
+ new Inkscape::CmdLineAction((a == SP_ARG_VERB), arg);
+ }
+ break;
+ }
default: {
break;
}