summaryrefslogtreecommitdiffstats
path: root/src/document.h
diff options
context:
space:
mode:
authorJabier Arraiza Cenoz <jabier.arraiza@marker.es>2016-03-14 16:37:50 +0000
committerJabiertxof <jtx@jtx.marker.es>2016-03-14 16:37:50 +0000
commitb8d22beef5345210ad27cdc2685083aeae6f8f3b (patch)
treed69b8bfd19d3627a8425a1b265c2abf229b05354 /src/document.h
parentfixes for update to trunk (diff)
parent"Relative to" option for node alignment. (diff)
downloadinkscape-b8d22beef5345210ad27cdc2685083aeae6f8f3b.tar.gz
inkscape-b8d22beef5345210ad27cdc2685083aeae6f8f3b.zip
update to trunk
(bzr r13708.1.39)
Diffstat (limited to 'src/document.h')
-rw-r--r--src/document.h15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/document.h b/src/document.h
index dd1e295a2..825049cd5 100644
--- a/src/document.h
+++ b/src/document.h
@@ -27,6 +27,8 @@
#include <glibmm/ustring.h>
#include <boost/ptr_container/ptr_list.hpp>
#include <vector>
+#include <set>
+#include <deque>
namespace Avoid {
class Router;
@@ -121,7 +123,7 @@ public:
// Instance of the connector router
Avoid::Router *router;
- GSList *_collection_queue;
+ std::vector<SPObject *> _collection_queue;
bool oldSignalsConnected;
@@ -258,11 +260,11 @@ public:
int ensureUpToDate();
bool addResource(char const *key, SPObject *object);
bool removeResource(char const *key, SPObject *object);
- const GSList *getResourceList(char const *key) const;
- std::vector<SPItem*> getItemsInBox(unsigned int dkey, Geom::Rect const &box) const;
- std::vector<SPItem*> getItemsPartiallyInBox(unsigned int dkey, Geom::Rect const &box) const;
+ const std::set<SPObject *> getResourceList(char const *key) const;
+ std::vector<SPItem*> getItemsInBox(unsigned int dkey, Geom::Rect const &box, bool into_groups = false) const;
+ std::vector<SPItem*> getItemsPartiallyInBox(unsigned int dkey, Geom::Rect const &box, bool into_groups = false) const;
SPItem *getItemAtPoint(unsigned int key, Geom::Point const &p, bool into_groups, SPItem *upto = NULL) const;
- std::vector<SPItem*> getItemsAtPoints(unsigned const key, std::vector<Geom::Point> points) const;
+ std::vector<SPItem*> getItemsAtPoints(unsigned const key, std::vector<Geom::Point> points, bool all_layers = true, size_t limit = 0) const ;
SPItem *getGroupAtPoint(unsigned int key, Geom::Point const &p) const;
void changeUriAndHrefs(char const *uri);
@@ -276,6 +278,9 @@ private:
void do_change_uri(char const *const filename, bool const rebase);
void setupViewport(SPItemCtx *ctx);
void importDefsNode(SPDocument *source, Inkscape::XML::Node *defs, Inkscape::XML::Node *target_defs);
+ void build_flat_item_list(unsigned int dkey, SPGroup *group, gboolean into_groups) const;
+ mutable std::deque<SPItem*> _node_cache;
+ mutable bool _node_cache_valid;
};
/*