summaryrefslogtreecommitdiffstats
path: root/src/file.cpp
diff options
context:
space:
mode:
authorMartin Owens <doctormo@gmail.com>2013-07-05 11:28:36 +0000
committerMartin Owens <doctormo@gmail.com>2013-07-05 11:28:36 +0000
commitead55a54d3ca8f822969180cadcb2b14f78aec93 (patch)
tree6422564d837d9d4b8aa4762703c9eb8ef2bc44ae /src/file.cpp
parentMake handle colour a configurable property. (diff)
parentFix for builds without --enable-dbusapi (missing #ifdef) (diff)
downloadinkscape-ead55a54d3ca8f822969180cadcb2b14f78aec93.tar.gz
inkscape-ead55a54d3ca8f822969180cadcb2b14f78aec93.zip
Merge: Command-line and DBus refactoring to improve inkscapes ability to be run headless.
(bzr r12402)
Diffstat (limited to 'src/file.cpp')
-rw-r--r--src/file.cpp33
1 files changed, 20 insertions, 13 deletions
diff --git a/src/file.cpp b/src/file.cpp
index 5b4110253..5007cd901 100644
--- a/src/file.cpp
+++ b/src/file.cpp
@@ -68,6 +68,7 @@
#include "ui/dialog/font-substitution.h"
#include <gtk/gtk.h>
+#include <gtkmm/main.h>
#include <glibmm/convert.h>
#include <glibmm/i18n.h>
@@ -209,8 +210,13 @@ SPDesktop* sp_file_new_default()
void
sp_file_exit()
{
- sp_ui_close_all();
- // no need to call inkscape_exit here; last document being closed will take care of that
+ if (SP_ACTIVE_DESKTOP == NULL) {
+ // We must be in console mode
+ Gtk::Main::quit();
+ } else {
+ sp_ui_close_all();
+ // no need to call inkscape_exit here; last document being closed will take care of that
+ }
}
@@ -582,24 +588,25 @@ sp_file_open_dialog(Gtk::Window &parentWindow, gpointer /*object*/, gpointer /*d
/**
* Remove unreferenced defs from the defs section of the document.
*/
-void sp_file_vacuum()
+void sp_file_vacuum(SPDocument *doc)
{
- SPDocument *doc = SP_ACTIVE_DOCUMENT;
-
unsigned int diff = doc->vacuumDocument();
DocumentUndo::done(doc, SP_VERB_FILE_VACUUM,
_("Clean up document"));
SPDesktop *dt = SP_ACTIVE_DESKTOP;
- if (diff > 0) {
- dt->messageStack()->flashF(Inkscape::NORMAL_MESSAGE,
- ngettext("Removed <b>%i</b> unused definition in &lt;defs&gt;.",
- "Removed <b>%i</b> unused definitions in &lt;defs&gt;.",
- diff),
- diff);
- } else {
- dt->messageStack()->flash(Inkscape::NORMAL_MESSAGE, _("No unused definitions in &lt;defs&gt;."));
+ if (dt != NULL) {
+ // Show status messages when in GUI mode
+ if (diff > 0) {
+ dt->messageStack()->flashF(Inkscape::NORMAL_MESSAGE,
+ ngettext("Removed <b>%i</b> unused definition in &lt;defs&gt;.",
+ "Removed <b>%i</b> unused definitions in &lt;defs&gt;.",
+ diff),
+ diff);
+ } else {
+ dt->messageStack()->flash(Inkscape::NORMAL_MESSAGE, _("No unused definitions in &lt;defs&gt;."));
+ }
}
}