summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKrzysztof Kosi??ski <tweenk.pl@gmail.com>2010-01-20 19:31:57 +0000
committerKrzysztof Kosiński <tweenk.pl@gmail.com>2010-01-20 19:31:57 +0000
commit906f78949458732f138e4e2b79843c75e9d52f87 (patch)
tree2643ad24eb96a1999f29c7eb606992b4ffcc93eb /src
parentMake Ctrl+Alt+click delete nodes. (diff)
downloadinkscape-906f78949458732f138e4e2b79843c75e9d52f87.tar.gz
inkscape-906f78949458732f138e4e2b79843c75e9d52f87.zip
Go back to using TR1 unordered containers to fix warnings. Add configure
code to detect the broken header and display Wiki page URL. (bzr r9006)
Diffstat (limited to 'src')
-rw-r--r--src/libnrtype/FontFactory.cpp14
-rw-r--r--src/libnrtype/FontInstance.cpp8
-rw-r--r--src/libnrtype/font-instance.h4
-rw-r--r--src/ui/tool/control-point-selection.h22
-rw-r--r--src/ui/tool/multi-path-manipulator.cpp18
-rw-r--r--src/ui/tool/node.cpp2
-rw-r--r--src/util/hash.h6
7 files changed, 24 insertions, 50 deletions
diff --git a/src/libnrtype/FontFactory.cpp b/src/libnrtype/FontFactory.cpp
index 761da7756..09d9e2c4f 100644
--- a/src/libnrtype/FontFactory.cpp
+++ b/src/libnrtype/FontFactory.cpp
@@ -26,11 +26,9 @@
/* Freetype2 */
# include <pango/pangoft2.h>
-//#include <tr1/unordered_map>
-#include <ext/hash_map>
+#include <tr1/unordered_map>
-
-typedef __gnu_cxx::hash_map<PangoFontDescription*, font_instance*, font_descr_hash, font_descr_equal> FaceMapType;
+typedef std::tr1::unordered_map<PangoFontDescription*, font_instance*, font_descr_hash, font_descr_equal> FaceMapType;
// need to avoid using the size field
size_t font_descr_hash::operator()( PangoFontDescription *const &x) const {
@@ -826,9 +824,11 @@ font_instance *font_factory::Face(PangoFontDescription *descr, bool canFail)
if ( nFace ) {
// duplicate FcPattern, the hard way
res = new font_instance();
- // store the descr of the font we asked for, since this is the key where we intend to put the font_instance at
- // in the hash_map. the descr of the returned pangofont may differ from what was asked, so we don't know (at this
- // point) whether loadedFaces[that_descr] is free or not (and overwriting an entry will bring deallocation problems)
+ // store the descr of the font we asked for, since this is the key where we intend
+ // to put the font_instance at in the unordered_map. the descr of the returned
+ // pangofont may differ from what was asked, so we don't know (at this
+ // point) whether loadedFaces[that_descr] is free or not (and overwriting
+ // an entry will bring deallocation problems)
res->descr = pango_font_description_copy(descr);
res->daddy = this;
res->InstallFace(nFace);
diff --git a/src/libnrtype/FontInstance.cpp b/src/libnrtype/FontInstance.cpp
index 8b8eb8bbe..628e3cba0 100644
--- a/src/libnrtype/FontInstance.cpp
+++ b/src/libnrtype/FontInstance.cpp
@@ -29,12 +29,9 @@
# include FT_TRUETYPE_TABLES_H
# include <pango/pangoft2.h>
-//#include <tr1/unordered_map>
-#include <ext/hash_map>
+#include <tr1/unordered_map>
-// the various raster_font in use at a given time are held in a hash_map whose indices are the
-// styles, hence the 2 following 'classes'
struct font_style_hash : public std::unary_function<font_style, size_t> {
size_t operator()(font_style const &x) const;
};
@@ -43,8 +40,7 @@ struct font_style_equal : public std::binary_function<font_style, font_style, bo
bool operator()(font_style const &a, font_style const &b) const;
};
-
-typedef __gnu_cxx::hash_map<font_style, raster_font*, font_style_hash, font_style_equal> StyleMap;
+typedef std::tr1::unordered_map<font_style, raster_font*, font_style_hash, font_style_equal> StyleMap;
diff --git a/src/libnrtype/font-instance.h b/src/libnrtype/font-instance.h
index 521c9a424..d52bd723f 100644
--- a/src/libnrtype/font-instance.h
+++ b/src/libnrtype/font-instance.h
@@ -25,7 +25,7 @@ public:
// depending on the rendering backend, different temporary data
// that's the font's fingerprint; this particular PangoFontDescription gives the entry at which this font_instance
- // resides in the font_factory loadedFaces hash_map
+ // resides in the font_factory loadedFaces unordered_map
PangoFontDescription* descr;
// refcount
int refCount;
@@ -86,7 +86,7 @@ private:
void FreeTheFace();
// hashmap to get the raster_font for a given style
- void* loadedPtr; // Pointer to a hash_map. Moved into .cpp to not expose use of __gnu_cxx extension.
+ void* loadedPtr;
#ifdef USE_PANGO_WIN32
HFONT theFace;
diff --git a/src/ui/tool/control-point-selection.h b/src/ui/tool/control-point-selection.h
index dce685575..54d724f00 100644
--- a/src/ui/tool/control-point-selection.h
+++ b/src/ui/tool/control-point-selection.h
@@ -13,11 +13,8 @@
#define SEEN_UI_TOOL_NODE_SELECTION_H
#include <memory>
-// those are broken beyond hope on OSX.
-//#include <tr1/unordered_map>
-//#include <tr1/unordered_set>
-#include <ext/hash_map>
-#include <ext/hash_set>
+#include <tr1/unordered_map>
+#include <tr1/unordered_set>
#include <boost/shared_ptr.hpp>
#include <boost/weak_ptr.hpp>
#include <boost/optional.hpp>
@@ -30,8 +27,6 @@
#include "ui/tool/commit-events.h"
#include "ui/tool/manipulator.h"
-namespace std { using namespace __gnu_cxx; }
-
class SPDesktop;
namespace Inkscape {
@@ -41,15 +36,6 @@ class SelectableControlPoint;
}
}
-namespace __gnu_cxx {
-template<>
-struct hash<Inkscape::UI::SelectableControlPoint*> {
- size_t operator()(Inkscape::UI::SelectableControlPoint *p) const {
- return reinterpret_cast<size_t>(p);
- }
-};
-} // namespace __gnu_cxx
-
namespace Inkscape {
namespace UI {
@@ -58,9 +44,9 @@ public:
ControlPointSelection(SPDesktop *d, SPCanvasGroup *th_group);
~ControlPointSelection();
typedef std::list<sigc::connection> connlist_type;
- typedef std::hash_map< SelectableControlPoint *,
+ typedef std::tr1::unordered_map< SelectableControlPoint *,
boost::shared_ptr<connlist_type> > map_type;
- typedef std::hash_set< SelectableControlPoint * > set_type;
+ typedef std::tr1::unordered_set< SelectableControlPoint * > set_type;
typedef set_type Set; // convenience alias
typedef map_type::iterator iterator;
diff --git a/src/ui/tool/multi-path-manipulator.cpp b/src/ui/tool/multi-path-manipulator.cpp
index c05b71cd4..d1138abd5 100644
--- a/src/ui/tool/multi-path-manipulator.cpp
+++ b/src/ui/tool/multi-path-manipulator.cpp
@@ -1,5 +1,5 @@
/** @file
- * Path manipulator - implementation
+ * Multi path manipulator - implementation
*/
/* Authors:
* Krzysztof Kosiński <tweenk.pl@gmail.com>
@@ -8,8 +8,7 @@
* Released under GNU GPL, read the file 'COPYING' for more information
*/
-//#include <tr1/unordered_set>
-#include <ext/hash_set>
+#include <tr1/unordered_set>
#include <boost/shared_ptr.hpp>
#include <glib.h>
#include <glibmm/i18n.h>
@@ -26,16 +25,7 @@
#include "ui/tool/multi-path-manipulator.h"
#include "ui/tool/path-manipulator.h"
-namespace std { using namespace __gnu_cxx; }
-
-namespace __gnu_cxx {
-template<>
-struct hash<Inkscape::UI::NodeList::iterator> {
- size_t operator()(Inkscape::UI::NodeList::iterator const &n) const {
- return reinterpret_cast<size_t>(n.ptr());
- }
-};
-}
+namespace std { using namespace tr1; }
namespace Inkscape {
namespace UI {
@@ -43,7 +33,7 @@ namespace UI {
namespace {
typedef std::pair<NodeList::iterator, NodeList::iterator> IterPair;
typedef std::vector<IterPair> IterPairList;
-typedef std::hash_set<NodeList::iterator> IterSet;
+typedef std::unordered_set<NodeList::iterator> IterSet;
typedef std::multimap<double, IterPair> DistanceMap;
typedef std::pair<double, IterPair> DistanceMapItem;
diff --git a/src/ui/tool/node.cpp b/src/ui/tool/node.cpp
index c1dfcdeaa..ef98e7c84 100644
--- a/src/ui/tool/node.cpp
+++ b/src/ui/tool/node.cpp
@@ -955,7 +955,7 @@ Glib::ustring Node::_getTip(unsigned state)
if (state_held_control(state)) {
if (state_held_alt(state)) {
- return C_("Path node tip", "<b>Ctrl+Alt:</b> move along handle lines");
+ return C_("Path node tip", "<b>Ctrl+Alt:</b> move along handle lines, click to delete node");
}
return C_("Path node tip",
"<b>Ctrl:</b> move along axes, click to change node type");
diff --git a/src/util/hash.h b/src/util/hash.h
index 33af9222d..d5abeff5a 100644
--- a/src/util/hash.h
+++ b/src/util/hash.h
@@ -13,7 +13,8 @@
#include <boost/shared_ptr.hpp>
-namespace __gnu_cxx {
+namespace std {
+namespace tr1 {
/** Hash function for Boost shared pointers */
template <typename T>
@@ -23,7 +24,8 @@ struct hash< boost::shared_ptr<T> > : public std::unary_function<boost::shared_p
}
};
-} // namespace __gnu_cxx
+} // namespace tr1
+} // namespace std
#endif