diff options
| author | Jabiertxo Arraiza Cenoz <jtx@jtx-desktop.markerlab.es> | 2017-11-03 19:14:13 +0000 |
|---|---|---|
| committer | Jabiertxo Arraiza Cenoz <jtx@jtx-desktop.markerlab.es> | 2017-11-03 19:14:13 +0000 |
| commit | d7bcf583dbc0689772a0be8071453116295ba3ea (patch) | |
| tree | 019cfc9ecf58a91a57a615a1ad1e9270c85caadc /src | |
| parent | Merge branch 'master' into powerMaskImprovements (diff) | |
| parent | Minor tweak to symbols search UX (diff) | |
| download | inkscape-d7bcf583dbc0689772a0be8071453116295ba3ea.tar.gz inkscape-d7bcf583dbc0689772a0be8071453116295ba3ea.zip | |
Merge branch 'master' into powerMaskImprovements
Diffstat (limited to 'src')
| -rw-r--r-- | src/display/nr-filter-blend.h | 2 | ||||
| -rw-r--r-- | src/display/nr-filter-colormatrix.h | 2 | ||||
| -rw-r--r-- | src/display/nr-filter-component-transfer.h | 2 | ||||
| -rw-r--r-- | src/display/nr-filter-composite.cpp | 3 | ||||
| -rw-r--r-- | src/display/nr-filter-composite.h | 2 | ||||
| -rw-r--r-- | src/display/nr-filter-convolve-matrix.h | 2 | ||||
| -rw-r--r-- | src/display/nr-filter-diffuselighting.h | 2 | ||||
| -rw-r--r-- | src/display/nr-filter-displacement-map.h | 2 | ||||
| -rw-r--r-- | src/display/nr-filter-flood.h | 2 | ||||
| -rw-r--r-- | src/display/nr-filter-gaussian.h | 2 | ||||
| -rw-r--r-- | src/display/nr-filter-image.h | 2 | ||||
| -rw-r--r-- | src/display/nr-filter-merge.cpp | 3 | ||||
| -rw-r--r-- | src/display/nr-filter-merge.h | 2 | ||||
| -rw-r--r-- | src/display/nr-filter-morphology.h | 2 | ||||
| -rw-r--r-- | src/display/nr-filter-offset.h | 2 | ||||
| -rw-r--r-- | src/display/nr-filter-primitive.h | 5 | ||||
| -rw-r--r-- | src/display/nr-filter-specularlighting.h | 2 | ||||
| -rw-r--r-- | src/display/nr-filter-tile.cpp | 7 | ||||
| -rw-r--r-- | src/display/nr-filter-tile.h | 2 | ||||
| -rw-r--r-- | src/display/nr-filter-turbulence.h | 3 | ||||
| -rw-r--r-- | src/ui/dialog/symbols.cpp | 8 | ||||
| -rw-r--r-- | src/ui/dialog/symbols.h | 2 |
22 files changed, 53 insertions, 8 deletions
diff --git a/src/display/nr-filter-blend.h b/src/display/nr-filter-blend.h index 5b1295c88..cdabb469b 100644 --- a/src/display/nr-filter-blend.h +++ b/src/display/nr-filter-blend.h @@ -59,6 +59,8 @@ public: virtual void set_input(int input, int slot); void set_mode(FilterBlendMode mode); + virtual Glib::ustring name() { return Glib::ustring("Blend"); } + private: static const std::set<FilterBlendMode> _valid_modes; FilterBlendMode _blend_mode; diff --git a/src/display/nr-filter-colormatrix.h b/src/display/nr-filter-colormatrix.h index cc43f4914..a6ba3693e 100644 --- a/src/display/nr-filter-colormatrix.h +++ b/src/display/nr-filter-colormatrix.h @@ -46,6 +46,8 @@ public: virtual void set_value(double value); virtual void set_values(std::vector<double> const &values); + virtual Glib::ustring name() { return Glib::ustring("Color Matrix"); } + public: struct ColorMatrixMatrix { ColorMatrixMatrix(std::vector<double> const &values); diff --git a/src/display/nr-filter-component-transfer.h b/src/display/nr-filter-component-transfer.h index 7019dde37..dae230f24 100644 --- a/src/display/nr-filter-component-transfer.h +++ b/src/display/nr-filter-component-transfer.h @@ -46,6 +46,8 @@ public: double amplitude[4]; double exponent[4]; double offset[4]; + + virtual Glib::ustring name() { return Glib::ustring("Component Transfer"); } }; } /* namespace Filters */ diff --git a/src/display/nr-filter-composite.cpp b/src/display/nr-filter-composite.cpp index dc5e4278f..04f81f857 100644 --- a/src/display/nr-filter-composite.cpp +++ b/src/display/nr-filter-composite.cpp @@ -79,6 +79,9 @@ void FilterComposite::render_cairo(FilterSlot &slot) cairo_surface_t *out = ink_cairo_surface_create_output(input1, input2); set_cairo_surface_ci(out, ci_fp ); + Geom::Rect vp = filter_primitive_area( slot.get_units() ); + slot.set_primitive_area(_output, vp); // Needed for tiling + if (op == COMPOSITE_ARITHMETIC) { ink_cairo_surface_blend(input1, input2, out, ComposeArithmetic(k1, k2, k3, k4)); } else { diff --git a/src/display/nr-filter-composite.h b/src/display/nr-filter-composite.h index 35756383b..74806ad5e 100644 --- a/src/display/nr-filter-composite.h +++ b/src/display/nr-filter-composite.h @@ -36,6 +36,8 @@ public: void set_operator(FeCompositeOperator op); void set_arithmetic(double k1, double k2, double k3, double k4); + virtual Glib::ustring name() { return Glib::ustring("Composite"); } + private: FeCompositeOperator op; double k1, k2, k3, k4; diff --git a/src/display/nr-filter-convolve-matrix.h b/src/display/nr-filter-convolve-matrix.h index d2e38eb95..3d86129ba 100644 --- a/src/display/nr-filter-convolve-matrix.h +++ b/src/display/nr-filter-convolve-matrix.h @@ -47,6 +47,8 @@ public: void set_edgeMode(FilterConvolveMatrixEdgeMode mode); void set_preserveAlpha(bool pa); + virtual Glib::ustring name() { return Glib::ustring("Convolve Matrix"); } + private: std::vector<double> kernelMatrix; int targetX, targetY; diff --git a/src/display/nr-filter-diffuselighting.h b/src/display/nr-filter-diffuselighting.h index 5ce505979..ef7a3011b 100644 --- a/src/display/nr-filter-diffuselighting.h +++ b/src/display/nr-filter-diffuselighting.h @@ -47,6 +47,8 @@ public: double surfaceScale; guint32 lighting_color; + virtual Glib::ustring name() { return Glib::ustring("Diffuse Lighting"); } + private: SVGICCColor *icc; }; diff --git a/src/display/nr-filter-displacement-map.h b/src/display/nr-filter-displacement-map.h index c4e2400fe..c469f4ced 100644 --- a/src/display/nr-filter-displacement-map.h +++ b/src/display/nr-filter-displacement-map.h @@ -35,6 +35,8 @@ public: virtual void set_scale(double s); virtual void set_channel_selector(int s, FilterDisplacementMapChannelSelector channel); + virtual Glib::ustring name() { return Glib::ustring("Displacement Map"); } + private: double scale; int _input2; diff --git a/src/display/nr-filter-flood.h b/src/display/nr-filter-flood.h index 826aa981a..1752a4ca4 100644 --- a/src/display/nr-filter-flood.h +++ b/src/display/nr-filter-flood.h @@ -35,6 +35,8 @@ public: virtual void set_color(guint32 c); virtual void set_icc(SVGICCColor *icc_color); + virtual Glib::ustring name() { return Glib::ustring("Flood"); } + private: double opacity; guint32 color; diff --git a/src/display/nr-filter-gaussian.h b/src/display/nr-filter-gaussian.h index 88c38247f..c8314b633 100644 --- a/src/display/nr-filter-gaussian.h +++ b/src/display/nr-filter-gaussian.h @@ -56,6 +56,8 @@ public: */ void set_deviation(double x, double y); + virtual Glib::ustring name() { return Glib::ustring("Gaussian Blur"); } + private: double _deviation_x; double _deviation_y; diff --git a/src/display/nr-filter-image.h b/src/display/nr-filter-image.h index 147a8ba6c..0ae6ac6ce 100644 --- a/src/display/nr-filter-image.h +++ b/src/display/nr-filter-image.h @@ -40,6 +40,8 @@ public: bool from_element; SPItem* SVGElem; + virtual Glib::ustring name() { return Glib::ustring("Image"); } + private: SPDocument *document; char *feImageHref; diff --git a/src/display/nr-filter-merge.cpp b/src/display/nr-filter-merge.cpp index 2b9a24f25..fc2ce408f 100644 --- a/src/display/nr-filter-merge.cpp +++ b/src/display/nr-filter-merge.cpp @@ -38,6 +38,9 @@ void FilterMerge::render_cairo(FilterSlot &slot) ci_fp = (SPColorInterpolation)_style->color_interpolation_filters.computed; } + Geom::Rect vp = filter_primitive_area( slot.get_units() ); + slot.set_primitive_area(_output, vp); // Needed for tiling + // output is RGBA if at least one input is RGBA bool rgba32 = false; cairo_surface_t *out = NULL; diff --git a/src/display/nr-filter-merge.h b/src/display/nr-filter-merge.h index b20d663ab..26ef42e4d 100644 --- a/src/display/nr-filter-merge.h +++ b/src/display/nr-filter-merge.h @@ -32,6 +32,8 @@ public: virtual void set_input(int input); virtual void set_input(int input, int slot); + virtual Glib::ustring name() { return Glib::ustring("Merge"); } + private: std::vector<int> _input_image; }; diff --git a/src/display/nr-filter-morphology.h b/src/display/nr-filter-morphology.h index cd7dfe775..97d91b1a6 100644 --- a/src/display/nr-filter-morphology.h +++ b/src/display/nr-filter-morphology.h @@ -39,6 +39,8 @@ public: void set_xradius(double x); void set_yradius(double y); + virtual Glib::ustring name() { return Glib::ustring("Morphology"); } + private: FilterMorphologyOperator Operator; double xradius; diff --git a/src/display/nr-filter-offset.h b/src/display/nr-filter-offset.h index c1ee1d82a..6e02bc1d7 100644 --- a/src/display/nr-filter-offset.h +++ b/src/display/nr-filter-offset.h @@ -33,6 +33,8 @@ public: void set_dx(double amount); void set_dy(double amount); + virtual Glib::ustring name() { return Glib::ustring("Offset"); } + private: double dx, dy; }; diff --git a/src/display/nr-filter-primitive.h b/src/display/nr-filter-primitive.h index a1339cc6c..cba1fdf20 100644 --- a/src/display/nr-filter-primitive.h +++ b/src/display/nr-filter-primitive.h @@ -14,6 +14,8 @@ #include <2geom/forward.h> #include <2geom/rect.h> +#include <glibmm/ustring.h> + #include "display/nr-filter-types.h" #include "svg/svg-length.h" @@ -121,6 +123,9 @@ public: */ void setStyle(SPStyle *style); + // Useful for debugging + virtual Glib::ustring name() { return Glib::ustring("No name"); } + protected: int _input; int _output; diff --git a/src/display/nr-filter-specularlighting.h b/src/display/nr-filter-specularlighting.h index ff9cda450..833b2ac3d 100644 --- a/src/display/nr-filter-specularlighting.h +++ b/src/display/nr-filter-specularlighting.h @@ -49,6 +49,8 @@ public: double specularExponent; guint32 lighting_color; + virtual Glib::ustring name() { return Glib::ustring("Specular Lighting"); } + private: SVGICCColor *icc; }; diff --git a/src/display/nr-filter-tile.cpp b/src/display/nr-filter-tile.cpp index c151c8537..ad4e64768 100644 --- a/src/display/nr-filter-tile.cpp +++ b/src/display/nr-filter-tile.cpp @@ -114,8 +114,11 @@ void FilterTile::render_cairo(FilterSlot &slot) void FilterTile::area_enlarge(Geom::IntRect &area, Geom::Affine const &trans) { - // Set to infinite rectangle so we get tile source. It will be clipped later. - area = Geom::IntRect::infinite(); + // Set to very large rectangle so we get tile source. It will be clipped later. + + // Note, setting to infinite using Geom::IntRect::infinite() causes overflow/underflow problems. + Geom::IntCoord max = std::numeric_limits<Geom::IntCoord>::max()/4; + area = Geom::IntRect(-max,-max,max,max); } double FilterTile::complexity(Geom::Affine const &) diff --git a/src/display/nr-filter-tile.h b/src/display/nr-filter-tile.h index 239ecff4b..c76302033 100644 --- a/src/display/nr-filter-tile.h +++ b/src/display/nr-filter-tile.h @@ -28,6 +28,8 @@ public: virtual void render_cairo(FilterSlot &slot); virtual void area_enlarge(Geom::IntRect &area, Geom::Affine const &trans); virtual double complexity(Geom::Affine const &ctm); + + virtual Glib::ustring name() { return Glib::ustring("Tile"); } }; } /* namespace Filters */ diff --git a/src/display/nr-filter-turbulence.h b/src/display/nr-filter-turbulence.h index ee8079133..3960c2f8e 100644 --- a/src/display/nr-filter-turbulence.h +++ b/src/display/nr-filter-turbulence.h @@ -54,6 +54,9 @@ public: void set_stitchTiles(bool st); void set_type(FilterTurbulenceType t); void set_updated(bool u); + + virtual Glib::ustring name() { return Glib::ustring("Turbulence"); } + private: TurbulenceGenerator *gen; diff --git a/src/ui/dialog/symbols.cpp b/src/ui/dialog/symbols.cpp index 082993158..2380ba56f 100644 --- a/src/ui/dialog/symbols.cpp +++ b/src/ui/dialog/symbols.cpp @@ -168,7 +168,7 @@ SymbolsDialog::SymbolsDialog( gchar const* prefsPath ) : icon_view->set_pixbuf_column( columns->symbol_image ); // Giving the iconview a small minimum size will help users understand // What the dialog does. - icon_view->set_size_request( 100, 200 ); + icon_view->set_size_request( 100, 250 ); std::vector< Gtk::TargetEntry > targets; targets.push_back(Gtk::TargetEntry( "application/x-inkscape-paste")); @@ -191,6 +191,7 @@ SymbolsDialog::SymbolsDialog( gchar const* prefsPath ) : overlay->set_hexpand(); overlay->set_vexpand(); overlay->add(* scroller); + scroller->set_size_request(100, 250); table->attach(*Gtk::manage(overlay),0,row,2,1); ++row; @@ -327,7 +328,7 @@ SymbolsDialog::SymbolsDialog( gchar const* prefsPath ) : iconsize = Gtk::IconSize().register_new(Glib::ustring("ICON_SIZE_DIALOG_EXTRA"), 110, 110); overlay_icon = new Gtk::Image(); overlay_icon->set_from_icon_name("none", iconsize); - overlay_icon = new Gtk::Image(noresults_icon); + overlay_icon = new Gtk::Image(); overlay_icon->set_halign(Gtk::ALIGN_CENTER ); overlay_icon->set_valign(Gtk::ALIGN_START ); overlay_icon->set_margin_top(45); @@ -364,11 +365,11 @@ SymbolsDialog::SymbolsDialog( gchar const* prefsPath ) : Glib::signal_idle().connect( sigc::mem_fun(*this, &SymbolsDialog::callbackSymbols)); addSymbolsInDoc(current_document); /* Defaults to current document */ - sigc::connection desktopChangeConn = desk_track.connectDesktopChanged( sigc::mem_fun(*this, &SymbolsDialog::setTargetDesktop) ); instanceConns.push_back( desktopChangeConn ); desk_track.connect(GTK_WIDGET(gobj())); + overlay->hide(); } SymbolsDialog::~SymbolsDialog() @@ -820,7 +821,6 @@ void SymbolsDialog::symbolsInDocRecursive (SPObject *r, std::vector<std::pair<Gl if ( dynamic_cast<SPSymbol *>(r) ) { l.push_back(std::make_pair(doc_title,dynamic_cast<SPSymbol *>(r))); } - for (auto& child: r->children) { symbolsInDocRecursive(&child, l, doc_title); } diff --git a/src/ui/dialog/symbols.h b/src/ui/dialog/symbols.h index 1bddc5b2c..13ba9caf9 100644 --- a/src/ui/dialog/symbols.h +++ b/src/ui/dialog/symbols.h @@ -105,8 +105,6 @@ private: std::map<Glib::ustring, SPDocument*> symbol_sets; std::vector<std::pair<Glib::ustring, SPSymbol*> > l; // Index into sizes which is selected - Glib::RefPtr<Gdk::Pixbuf> noresults_icon; - Glib::RefPtr<Gdk::Pixbuf> search_icon; int pack_size; // Scale factor int scale_factor; |
