summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 9d30357)
raw | patch | inline | side by side (parent: 9d30357)
author | gustav_b <gustav_b@users.sourceforge.net> | |
Sun, 1 Oct 2006 18:57:05 +0000 (18:57 +0000) | ||
committer | gustav_b <gustav_b@users.sourceforge.net> | |
Sun, 1 Oct 2006 18:57:05 +0000 (18:57 +0000) |
created when Inkscape is started in non-gui mode. Fixes a critical
assertion caused by creation of a Gtk::TreeStore.
assertion caused by creation of a Gtk::TreeStore.
diff --git a/src/desktop.cpp b/src/desktop.cpp
index 57d89c5bcb4a47550b502d78daa5d4e92a201369..722aa81e9b61e2bf71324e04ee297eab224bd610 100644 (file)
--- a/src/desktop.cpp
+++ b/src/desktop.cpp
#include "xml/repr.h"
#include "message-context.h"
#include "layer-manager.h"
#include "xml/repr.h"
#include "message-context.h"
#include "layer-manager.h"
+#include "event-log.h"
namespace Inkscape { namespace XML { class Node; }}
namespace Inkscape { namespace XML { class Node; }}
/* setup LayerManager */
// (Setting up after the connections are all in place, as it may use some of them)
layer_manager = new Inkscape::LayerManager( this );
/* setup LayerManager */
// (Setting up after the connections are all in place, as it may use some of them)
layer_manager = new Inkscape::LayerManager( this );
+
+ /* setup EventLog */
+ event_log = new Inkscape::EventLog(document);
+ document->addUndoObserver(*event_log);
}
}
diff --git a/src/desktop.h b/src/desktop.h
index c9484f2fe1d446d298dce5317b72a0d9593cf5c1..948fd53bc304a4310a04402eb751001917045f42 100644 (file)
--- a/src/desktop.h
+++ b/src/desktop.h
class Selection;
class ObjectHierarchy;
class LayerManager;
class Selection;
class ObjectHierarchy;
class LayerManager;
+ class EventLog;
namespace UI {
namespace Dialog {
class DialogManager;
namespace UI {
namespace Dialog {
class DialogManager;
Inkscape::Selection *selection;
SPEventContext *event_context;
Inkscape::LayerManager *layer_manager;
Inkscape::Selection *selection;
SPEventContext *event_context;
Inkscape::LayerManager *layer_manager;
+ Inkscape::EventLog *event_log;
SPCanvasItem *acetate;
SPCanvasGroup *main;
SPCanvasItem *acetate;
SPCanvasGroup *main;
diff --git a/src/document-private.h b/src/document-private.h
index 64b1174fdbe0a3656db2112ab53a4c204bcb5143..c89948290974a14c155a182e8ec401faf1471c9f 100644 (file)
--- a/src/document-private.h
+++ b/src/document-private.h
/* Undo listener */
Inkscape::CompositeUndoStackObserver undoStackObservers;
/* Undo listener */
Inkscape::CompositeUndoStackObserver undoStackObservers;
- /* Event log */
- Inkscape::EventLog event_log;
-
// XXX only for testing!
Inkscape::ConsoleOutputUndoObserver console_output_undo_observer;
};
// XXX only for testing!
Inkscape::ConsoleOutputUndoObserver console_output_undo_observer;
};
diff --git a/src/document.cpp b/src/document.cpp
index f403f3aad1ef91811a76b987c69e2a1dab407a66..8731ee71c798919a1fe9be694837a17b18629d46 100644 (file)
--- a/src/document.cpp
+++ b/src/document.cpp
p->undo = NULL;
p->redo = NULL;
p->undo = NULL;
p->redo = NULL;
- p->undoStackObservers.add(p->event_log);
- p->event_log.setDocument(this);
-
priv = p;
// XXX only for testing!
priv = p;
// XXX only for testing!
this->priv->undoStackObservers.remove(observer);
}
this->priv->undoStackObservers.remove(observer);
}
-Inkscape::EventLog&
-SPDocument::getEventLog() const
-{
- return priv->event_log;
-}
-
SPObject *SPDocument::getObjectById(gchar const *id) {
g_return_val_if_fail(id != NULL, NULL);
SPObject *SPDocument::getObjectById(gchar const *id) {
g_return_val_if_fail(id != NULL, NULL);
diff --git a/src/document.h b/src/document.h
index f957239c16eb4c37a70f0b158d86d060f93f2947..12848aa68f469442a75d50be0448ed805d031588 100644 (file)
--- a/src/document.h
+++ b/src/document.h
void addUndoObserver(Inkscape::UndoStackObserver& observer);
void removeUndoObserver(Inkscape::UndoStackObserver& observer);
void addUndoObserver(Inkscape::UndoStackObserver& observer);
void removeUndoObserver(Inkscape::UndoStackObserver& observer);
- Inkscape::EventLog& getEventLog() const;
-
bool _updateDocument();
private:
bool _updateDocument();
private:
diff --git a/src/event-log.cpp b/src/event-log.cpp
index 4960943186dd18fc34bd57083a31f22a2503da8d..751616d30635c56f85f6de6aa863295dcb81722f 100644 (file)
--- a/src/event-log.cpp
+++ b/src/event-log.cpp
namespace Inkscape {
namespace Inkscape {
-EventLog::EventLog() :
+EventLog::EventLog(SPDocument* document) :
UndoStackObserver(),
_connected (false),
UndoStackObserver(),
_connected (false),
- _document (NULL),
+ _document (document),
_event_list_store (Gtk::TreeStore::create(_columns)),
_event_list_selection (NULL),
_event_list_view (NULL),
_event_list_store (Gtk::TreeStore::create(_columns)),
_event_list_selection (NULL),
_event_list_view (NULL),
updateUndoVerbs();
}
updateUndoVerbs();
}
-
-void
-EventLog::setDocument(SPDocument *document)
-{
- _document = document;
- updateUndoVerbs();
-}
-
-
void
EventLog::connectWithDialog(Gtk::TreeView *event_list_view, CallbackMap *callback_connections)
{
void
EventLog::connectWithDialog(Gtk::TreeView *event_list_view, CallbackMap *callback_connections)
{
diff --git a/src/event-log.h b/src/event-log.h
index 16ecfd5558c4d77b66627d6ed92ea624e546c033..259731de2611097b7713c0f748b97092195f0f85 100644 (file)
--- a/src/event-log.h
+++ b/src/event-log.h
typedef Gtk::TreeModel::iterator iterator;
typedef Gtk::TreeModel::const_iterator const_iterator;
typedef Gtk::TreeModel::iterator iterator;
typedef Gtk::TreeModel::const_iterator const_iterator;
- EventLog();
+ EventLog(SPDocument* document);
~EventLog();
/**
~EventLog();
/**
void setCurrEventParent(iterator event) { _curr_event_parent = event; }
void blockNotifications(bool status=true) { _notifications_blocked = status; }
void setCurrEventParent(iterator event) { _curr_event_parent = event; }
void blockNotifications(bool status=true) { _notifications_blocked = status; }
- void setDocument(SPDocument *document);
-
/*
* Callback types for TreeView changes.
*/
/*
* Callback types for TreeView changes.
*/
diff --git a/src/sp-namedview.cpp b/src/sp-namedview.cpp
index 54805f8725944cfd1de6d23a3691384da1124979..fe6b805bc9b4558dd2e47f5d4b144258a08f43ff 100644 (file)
--- a/src/sp-namedview.cpp
+++ b/src/sp-namedview.cpp
}
// FIXME: find a better place to do this
}
// FIXME: find a better place to do this
- sp_desktop_document(desktop)->getEventLog().updateUndoVerbs();
+ desktop->event_log->updateUndoVerbs();
}
void sp_namedview_document_from_window(SPDesktop *desktop)
}
void sp_namedview_document_from_window(SPDesktop *desktop)
index e1b60f3150f7257b427d9f13efcef66f122c7f75..5cfba60f60dfd6a3e4fbd0315f847927be8695e7 100644 (file)
UndoHistory::UndoHistory()
: Dialog ("dialogs.undo-history", SP_VERB_DIALOG_UNDO_HISTORY),
UndoHistory::UndoHistory()
: Dialog ("dialogs.undo-history", SP_VERB_DIALOG_UNDO_HISTORY),
+ _desktop (SP_ACTIVE_DESKTOP),
_document (SP_ACTIVE_DOCUMENT),
_document (SP_ACTIVE_DOCUMENT),
- _event_log (_document ? &_document->getEventLog() : NULL),
+ _event_log (_desktop ? _desktop->event_log : NULL),
_columns (_event_log ? &_event_log->getColumns() : NULL),
_event_list_selection (_event_list_view.get_selection())
{
_columns (_event_log ? &_event_log->getColumns() : NULL),
_event_list_selection (_event_list_view.get_selection())
{
index 19c5740a42c7a121355cd721507dafd712c9e6d8..2857fb88a5e4c160f65ead579a4c427f2c197d41 100644 (file)
#include <functional>
#include <sstream>
#include <functional>
#include <sstream>
+#include "desktop.h"
#include "dialog.h"
#include "event-log.h"
#include "dialog.h"
#include "event-log.h"
protected:
protected:
+ SPDesktop *_desktop;
SPDocument *_document;
EventLog *_event_log;
SPDocument *_document;
EventLog *_event_log;