diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/ui/dialog/objects.cpp | 10 | ||||
| -rw-r--r-- | src/ui/widget/clipmaskicon.cpp | 24 | ||||
| -rw-r--r-- | src/ui/widget/clipmaskicon.h | 4 |
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; }; |
