diff options
| author | chr <chr> | 2017-05-18 17:58:59 +0000 |
|---|---|---|
| committer | chr <chr> | 2017-05-18 17:58:59 +0000 |
| commit | 3329985ec81c08006b6a5fe7c9fe0b81d956ad3f (patch) | |
| tree | 1b58b56c5ffed671c5bfc435cce8525ec5d6d972 /src | |
| parent | stroke-style: fix preloading no-marker (diff) | |
| download | inkscape-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.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; }; |
