summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorchr <chr>2017-05-18 17:58:59 +0000
committerchr <chr>2017-05-18 17:58:59 +0000
commit3329985ec81c08006b6a5fe7c9fe0b81d956ad3f (patch)
tree1b58b56c5ffed671c5bfc435cce8525ec5d6d972 /src
parentstroke-style: fix preloading no-marker (diff)
downloadinkscape-3329985ec81c08006b6a5fe7c9fe0b81d956ad3f.tar.gz
inkscape-3329985ec81c08006b6a5fe7c9fe0b81d956ad3f.zip
object manager panel: fix clip/mask icons
missing icon delayed inkscape startup of about 3-5 seconds (bzr r15698.1.4)
Diffstat (limited to 'src')
-rw-r--r--src/ui/dialog/objects.cpp10
-rw-r--r--src/ui/widget/clipmaskicon.cpp24
-rw-r--r--src/ui/widget/clipmaskicon.h4
3 files changed, 22 insertions, 16 deletions
diff --git a/src/ui/dialog/objects.cpp b/src/ui/dialog/objects.cpp
index c7c696cdc..6b28c3b2f 100644
--- a/src/ui/dialog/objects.cpp
+++ b/src/ui/dialog/objects.cpp
@@ -350,7 +350,10 @@ void ObjectsPanel::_addObject(SPObject* obj, Gtk::TreeModel::Row* parentRow)
row[_model->_colLocked] = !item->isSensitive();
row[_model->_colType] = group ? (group->layerMode() == SPGroup::LAYER ? 2 : 1) : 0;
row[_model->_colHighlight] = item->isHighlightSet() ? item->highlight_color() : item->highlight_color() & 0xffffff00;
- row[_model->_colClipMask] = item->clip_ref && item->clip_ref->getObject() ? 1 : (item->mask_ref && item->mask_ref->getObject() ? 2 : 0);
+ row[_model->_colClipMask] = item ? (
+ (item->clip_ref && item->clip_ref->getObject() ? 1 : 0) |
+ (item->mask_ref && item->mask_ref->getObject() ? 2 : 0)
+ ) : 0;
//row[_model->_colInsertOrder] = group ? (group->insertBottom() ? 2 : 1) : 0;
//If our parent object is a group and it's expanded, expand the tree
@@ -413,7 +416,10 @@ bool ObjectsPanel::_checkForUpdated(const Gtk::TreeIter& iter, SPObject* obj)
row[_model->_colLocked] = item ? !item->isSensitive() : false;
row[_model->_colType] = group ? (group->layerMode() == SPGroup::LAYER ? 2 : 1) : 0;
row[_model->_colHighlight] = item ? (item->isHighlightSet() ? item->highlight_color() : item->highlight_color() & 0xffffff00) : 0;
- row[_model->_colClipMask] = item ? (item->clip_ref && item->clip_ref->getObject() ? 1 : (item->mask_ref && item->mask_ref->getObject() ? 2 : 0)) : 0;
+ row[_model->_colClipMask] = item ? (
+ (item->clip_ref && item->clip_ref->getObject() ? 1 : 0) |
+ (item->mask_ref && item->mask_ref->getObject() ? 2 : 0)
+ ) : 0;
//row[_model->_colInsertOrder] = group ? (group->insertBottom() ? 2 : 1) : 0;
return true;
diff --git a/src/ui/widget/clipmaskicon.cpp b/src/ui/widget/clipmaskicon.cpp
index 4f791042a..a1e3eaf82 100644
--- a/src/ui/widget/clipmaskicon.cpp
+++ b/src/ui/widget/clipmaskicon.cpp
@@ -27,13 +27,13 @@ namespace Widget {
ClipMaskIcon::ClipMaskIcon() :
Glib::ObjectBase(typeid(ClipMaskIcon)),
Gtk::CellRendererPixbuf(),
- _pixClipName(INKSCAPE_ICON("path-intersection")),
- _pixInverseName(INKSCAPE_ICON("path-difference")),
- _pixMaskName(INKSCAPE_ICON("mask-intersection")),
+ _pixClipName(INKSCAPE_ICON("path-cut")),
+ _pixMaskName(INKSCAPE_ICON("path-difference")),
+ _pixBothName(INKSCAPE_ICON("bitmap-trace")),
_property_active(*this, "active", 0),
_property_pixbuf_clip(*this, "pixbuf_on", Glib::RefPtr<Gdk::Pixbuf>(0)),
- _property_pixbuf_inverse(*this, "pixbuf_on", Glib::RefPtr<Gdk::Pixbuf>(0)),
- _property_pixbuf_mask(*this, "pixbuf_off", Glib::RefPtr<Gdk::Pixbuf>(0))
+ _property_pixbuf_mask(*this, "pixbuf_off", Glib::RefPtr<Gdk::Pixbuf>(0)),
+ _property_pixbuf_both(*this, "pixbuf_on", Glib::RefPtr<Gdk::Pixbuf>(0))
{
property_mode() = Gtk::CELL_RENDERER_MODE_ACTIVATABLE;
@@ -43,22 +43,22 @@ ClipMaskIcon::ClipMaskIcon() :
if (!icon_theme->has_icon(_pixClipName)) {
Inkscape::queueIconPrerender( INKSCAPE_ICON(_pixClipName.data()), Inkscape::ICON_SIZE_DECORATION );
}
- if (!icon_theme->has_icon(_pixInverseName)) {
- Inkscape::queueIconPrerender( INKSCAPE_ICON(_pixInverseName.data()), Inkscape::ICON_SIZE_DECORATION );
- }
if (!icon_theme->has_icon(_pixMaskName)) {
Inkscape::queueIconPrerender( INKSCAPE_ICON(_pixMaskName.data()), Inkscape::ICON_SIZE_DECORATION );
}
+ if (!icon_theme->has_icon(_pixBothName)) {
+ Inkscape::queueIconPrerender( INKSCAPE_ICON(_pixBothName.data()), Inkscape::ICON_SIZE_DECORATION );
+ }
if (icon_theme->has_icon(_pixClipName)) {
_property_pixbuf_clip = icon_theme->load_icon(_pixClipName, phys, (Gtk::IconLookupFlags)0);
}
- if (icon_theme->has_icon(_pixInverseName)) {
- _property_pixbuf_inverse = icon_theme->load_icon(_pixInverseName, phys, (Gtk::IconLookupFlags)0);
- }
if (icon_theme->has_icon(_pixMaskName)) {
_property_pixbuf_mask = icon_theme->load_icon(_pixMaskName, phys, (Gtk::IconLookupFlags)0);
}
+ if (icon_theme->has_icon(_pixBothName)) {
+ _property_pixbuf_both = icon_theme->load_icon(_pixBothName, phys, (Gtk::IconLookupFlags)0);
+ }
property_pixbuf() = Glib::RefPtr<Gdk::Pixbuf>(0);
}
@@ -108,7 +108,7 @@ void ClipMaskIcon::render_vfunc( const Cairo::RefPtr<Cairo::Context>& cr,
property_pixbuf() = _property_pixbuf_mask;
break;
case 3:
- property_pixbuf() = _property_pixbuf_inverse;
+ property_pixbuf() = _property_pixbuf_both;
break;
default:
property_pixbuf() = Glib::RefPtr<Gdk::Pixbuf>(0);
diff --git a/src/ui/widget/clipmaskicon.h b/src/ui/widget/clipmaskicon.h
index 0d149edb8..deb4554df 100644
--- a/src/ui/widget/clipmaskicon.h
+++ b/src/ui/widget/clipmaskicon.h
@@ -58,13 +58,13 @@ private:
int phys;
Glib::ustring _pixClipName;
- Glib::ustring _pixInverseName;
Glib::ustring _pixMaskName;
+ Glib::ustring _pixBothName;
Glib::Property<int> _property_active;
Glib::Property< Glib::RefPtr<Gdk::Pixbuf> > _property_pixbuf_clip;
- Glib::Property< Glib::RefPtr<Gdk::Pixbuf> > _property_pixbuf_inverse;
Glib::Property< Glib::RefPtr<Gdk::Pixbuf> > _property_pixbuf_mask;
+ Glib::Property< Glib::RefPtr<Gdk::Pixbuf> > _property_pixbuf_both;
};