summaryrefslogtreecommitdiffstats
path: root/src/desktop-style.cpp
diff options
context:
space:
mode:
authorbulia byak <buliabyak@gmail.com>2006-10-04 21:36:10 +0000
committerbuliabyak <buliabyak@users.sourceforge.net>2006-10-04 21:36:10 +0000
commit54d1cdab87a17a6d1f61f763af76e8ac8f964b8d (patch)
tree010cf99f1304b47cbd0461f8ff1018a902232e94 /src/desktop-style.cpp
parentadd a member for gaussian blur deviation (perhaps will need to duplicate othe... (diff)
downloadinkscape-54d1cdab87a17a6d1f61f763af76e8ac8f964b8d.tar.gz
inkscape-54d1cdab87a17a6d1f61f763af76e8ac8f964b8d.zip
simplify style-querying for blur radius; move Blur slider above Opacity, cleanup
(bzr r1766)
Diffstat (limited to 'src/desktop-style.cpp')
-rw-r--r--src/desktop-style.cpp32
1 files changed, 11 insertions, 21 deletions
diff --git a/src/desktop-style.cpp b/src/desktop-style.cpp
index 66953aae7..7dbbfd5e8 100644
--- a/src/desktop-style.cpp
+++ b/src/desktop-style.cpp
@@ -1026,12 +1026,15 @@ objects_query_blur (GSList *objects, SPStyle *style_res)
float blur_prev = -1;
bool same_blur = true;
guint blur_items = 0;
+ guint items = 0;
for (GSList const *i = objects; i != NULL; i = i->next) {
SPObject *obj = SP_OBJECT (i->data);
SPStyle *style = SP_OBJECT_STYLE (obj);
if (!style) continue;
+ items ++;
+
//if object has a filter
if (style->filter.set && style->filter.filter) {
//cycle through filter primitives
@@ -1039,8 +1042,7 @@ objects_query_blur (GSList *objects, SPStyle *style_res)
{
SPFilterPrimitive *primitive = style->filter.filter->_primitives[i];
//if primitive is gaussianblur
- // if(SP_IS_GAUSSIANBLUR(primitive))
- {
+ if(SP_IS_GAUSSIANBLUR(primitive)) {
SPGaussianBlur * spblur = SP_GAUSSIANBLUR(primitive);
float num = spblur->stdDeviation.getNumber();
blur_sum += num;
@@ -1054,28 +1056,16 @@ objects_query_blur (GSList *objects, SPStyle *style_res)
}
}
- if (blur_items > 0)
- {
- blur_sum /= blur_items;
- style_res->filter.set = true;
- style_res->filter.filter = new SPFilter();
- //TODO: this SPFilter attributes should be set on sp-filter.cpp
- // when a new SPFilter is created, not here
- style_res->filter.filter->_primitive_count=0;
- style_res->filter.filter->_primitive_table_size = 1;
- style_res->filter.filter->_primitives = new SPFilterPrimitive*[1];
- style_res->filter.filter->_primitives[0] = NULL;
-
- SPGaussianBlur * b = new SPGaussianBlur();
- add_primitive(style_res->filter.filter, b);
- sp_gaussianBlur_setDeviation(b, blur_sum);
- }
-
+ if (items > 0) {
+ if (blur_items > 0)
+ blur_sum /= blur_items;
+ style_res->filter_gaussianBlur_deviation.value = blur_sum;
+ }
- if (blur_items == 0) {
+ if (items == 0) {
return QUERY_STYLE_NOTHING;
- } else if (blur_items == 1) {
+ } else if (items == 1) {
return QUERY_STYLE_SINGLE;
} else {
if (same_blur)