summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJabiertxo Arraiza Cenoz <jtx@jtx-desktop.markerlab.es>2017-11-03 19:14:13 +0000
committerJabiertxo Arraiza Cenoz <jtx@jtx-desktop.markerlab.es>2017-11-03 19:14:13 +0000
commitd7bcf583dbc0689772a0be8071453116295ba3ea (patch)
tree019cfc9ecf58a91a57a615a1ad1e9270c85caadc /src
parentMerge branch 'master' into powerMaskImprovements (diff)
parentMinor tweak to symbols search UX (diff)
downloadinkscape-d7bcf583dbc0689772a0be8071453116295ba3ea.tar.gz
inkscape-d7bcf583dbc0689772a0be8071453116295ba3ea.zip
Merge branch 'master' into powerMaskImprovements
Diffstat (limited to 'src')
-rw-r--r--src/display/nr-filter-blend.h2
-rw-r--r--src/display/nr-filter-colormatrix.h2
-rw-r--r--src/display/nr-filter-component-transfer.h2
-rw-r--r--src/display/nr-filter-composite.cpp3
-rw-r--r--src/display/nr-filter-composite.h2
-rw-r--r--src/display/nr-filter-convolve-matrix.h2
-rw-r--r--src/display/nr-filter-diffuselighting.h2
-rw-r--r--src/display/nr-filter-displacement-map.h2
-rw-r--r--src/display/nr-filter-flood.h2
-rw-r--r--src/display/nr-filter-gaussian.h2
-rw-r--r--src/display/nr-filter-image.h2
-rw-r--r--src/display/nr-filter-merge.cpp3
-rw-r--r--src/display/nr-filter-merge.h2
-rw-r--r--src/display/nr-filter-morphology.h2
-rw-r--r--src/display/nr-filter-offset.h2
-rw-r--r--src/display/nr-filter-primitive.h5
-rw-r--r--src/display/nr-filter-specularlighting.h2
-rw-r--r--src/display/nr-filter-tile.cpp7
-rw-r--r--src/display/nr-filter-tile.h2
-rw-r--r--src/display/nr-filter-turbulence.h3
-rw-r--r--src/ui/dialog/symbols.cpp8
-rw-r--r--src/ui/dialog/symbols.h2
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;