Code

copyedit
[inkscape.git] / src / ui / widget / filter-effect-chooser.cpp
index bf71c33d158263c96d00c6bdf656d8c6f12a3506..70db2284359786970ffe8594eff26d235a880ee1 100644 (file)
 #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();