X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fui%2Fwidget%2Ffilter-effect-chooser.cpp;h=70db2284359786970ffe8594eff26d235a880ee1;hb=fd5c8954a92eac9af9af21d2a3665e9c673203a2;hp=bf71c33d158263c96d00c6bdf656d8c6f12a3506;hpb=3c67ff5f567c568139c94665518b4e01293feccd;p=inkscape.git diff --git a/src/ui/widget/filter-effect-chooser.cpp b/src/ui/widget/filter-effect-chooser.cpp index bf71c33d1..70db22843 100644 --- a/src/ui/widget/filter-effect-chooser.cpp +++ b/src/ui/widget/filter-effect-chooser.cpp @@ -16,80 +16,27 @@ #include "document.h" #include "filter-effect-chooser.h" #include "inkscape.h" -#include "ui/dialog/dialog-manager.h" namespace Inkscape { namespace UI { namespace Widget { -FilterEffectChooser::FilterEffectChooser() -{ - _model = Gtk::ListStore::create(_columns); - - g_signal_connect(G_OBJECT(INKSCAPE), "activate_desktop", - G_CALLBACK(&FilterEffectChooser::on_activate_desktop), this); - - - on_activate_desktop(INKSCAPE, SP_ACTIVE_DESKTOP, this); -} - -FilterEffectChooser::~FilterEffectChooser() -{ - _resource_changed.disconnect(); - _doc_replaced.disconnect(); -} - -void FilterEffectChooser::on_activate_desktop(Inkscape::Application*, SPDesktop* desktop, FilterEffectChooser* fec) -{ - fec->update_filters(); - - fec->_doc_replaced.disconnect(); - fec->_doc_replaced = desktop->connectDocumentReplaced( - sigc::mem_fun(fec, &FilterEffectChooser::on_document_replaced)); - - fec->_resource_changed.disconnect(); - fec->_resource_changed = - sp_document_resources_changed_connect(sp_desktop_document(desktop), "filter", - sigc::mem_fun(fec, &FilterEffectChooser::update_filters)); -} - -void FilterEffectChooser::on_document_replaced(SPDesktop* desktop, SPDocument* document) -{ - update_filters(); -} - -/* Add all filters in the document to the combobox. - Keeps the same selection if possible, otherwise selects the first element */ -void FilterEffectChooser::update_filters() -{ - SPDesktop* desktop = SP_ACTIVE_DESKTOP; - SPDocument* document = sp_desktop_document(desktop); - const GSList* filters = sp_document_get_resource_list(document, "filter"); - - _model->clear(); - - for(const GSList *l = filters; l; l = l->next) { - Gtk::TreeModel::Row row = *_model->append(); - SPFilter* f = (SPFilter*)l->data; - row[_columns.filter] = f; - const gchar* lbl = f->label(); - const gchar* id = SP_OBJECT_ID(f); - row[_columns.label] = lbl ? lbl : (id ? id : "filter"); - } -} - -SimpleFilterModifier::SimpleFilterModifier() +SimpleFilterModifier::SimpleFilterModifier(int flags) : _lb_blend(_("_Blend mode:")), _lb_blur(_("B_lur:"), Gtk::ALIGN_LEFT), _blend(BlendModeConverter), _blur(0, 0, 100, 1, 0.01, 1) { - add(_hb_blend); - add(_vb_blur); - _hb_blend.pack_start(_lb_blend, false, false); - _hb_blend.pack_start(_blend); - _vb_blur.add(_lb_blur); - _vb_blur.add(_blur); + if (flags & BLEND) { + add(_hb_blend); + _hb_blend.pack_start(_lb_blend, false, false); + _hb_blend.pack_start(_blend); + } + if (flags & BLUR) { + add(_vb_blur); + _vb_blur.add(_lb_blur); + _vb_blur.add(_blur); + } show_all_children();