summaryrefslogtreecommitdiffstats
path: root/src/extension
diff options
context:
space:
mode:
Diffstat (limited to 'src/extension')
-rw-r--r--src/extension/extension.cpp8
-rw-r--r--src/extension/internal/bluredge.cpp4
-rw-r--r--src/extension/internal/cairo-png-out.cpp4
-rw-r--r--src/extension/internal/cairo-ps-out.cpp7
-rw-r--r--src/extension/internal/cairo-renderer-pdf-out.cpp4
-rw-r--r--src/extension/internal/cdr-input.cpp13
-rw-r--r--src/extension/internal/emf-inout.cpp21
-rw-r--r--src/extension/internal/emf-print.cpp4
-rw-r--r--src/extension/internal/javafx-out.cpp9
-rw-r--r--src/extension/internal/latex-pstricks-out.cpp2
-rw-r--r--src/extension/internal/metafile-print.cpp27
-rw-r--r--src/extension/internal/odf.cpp9
-rw-r--r--src/extension/internal/pov-out.cpp13
-rw-r--r--src/extension/internal/vsd-input.cpp15
-rw-r--r--src/extension/internal/wmf-inout.cpp23
-rw-r--r--src/extension/param/bool.cpp15
-rw-r--r--src/extension/param/bool.h8
-rw-r--r--src/extension/param/color.cpp12
-rw-r--r--src/extension/param/color.h8
-rw-r--r--src/extension/param/description.cpp74
-rw-r--r--src/extension/param/description.h11
-rw-r--r--src/extension/param/enum.cpp48
-rw-r--r--src/extension/param/enum.h12
-rw-r--r--src/extension/param/float.cpp17
-rw-r--r--src/extension/param/float.h8
-rw-r--r--src/extension/param/int.cpp18
-rw-r--r--src/extension/param/int.h8
-rw-r--r--src/extension/param/notebook.cpp87
-rw-r--r--src/extension/param/notebook.h8
-rw-r--r--src/extension/param/parameter.cpp128
-rw-r--r--src/extension/param/parameter.h42
-rw-r--r--src/extension/param/radiobutton.cpp40
-rw-r--r--src/extension/param/radiobutton.h8
-rw-r--r--src/extension/param/string.cpp14
-rw-r--r--src/extension/param/string.h8
-rw-r--r--src/extension/prefdialog.cpp2
36 files changed, 340 insertions, 399 deletions
diff --git a/src/extension/extension.cpp b/src/extension/extension.cpp
index 6c6e2d71e..497f98431 100644
--- a/src/extension/extension.cpp
+++ b/src/extension/extension.cpp
@@ -701,7 +701,7 @@ public:
#endif
this->pack_start(*widg, false, false, 0);
if (tooltip) {
- widg->set_tooltip_text(_(tooltip));
+ widg->set_tooltip_text(tooltip);
} else {
widg->set_tooltip_text("");
widg->set_has_tooltip(false);
@@ -718,7 +718,7 @@ public:
a Gtk::VBox, which is then returned to the calling function.
If there are no visible parameters, this function just returns NULL.
- If all parameters are gui_visible = false NULL is returned as well.
+ If all parameters are gui_hidden = true NULL is returned as well.
*/
Gtk::Widget *
Extension::autogui (SPDocument * doc, Inkscape::XML::Node * node, sigc::signal<void> * changeSignal)
@@ -732,7 +732,7 @@ Extension::autogui (SPDocument * doc, Inkscape::XML::Node * node, sigc::signal<v
//go through the list of parameters to see if there are any non-hidden ones
for (GSList * list = parameters; list != NULL; list = g_slist_next(list)) {
Parameter * param = reinterpret_cast<Parameter *>(list->data);
- if (param->get_gui_hidden()) continue; //Ignore hidden parameters
+ if (param->get_hidden()) continue; //Ignore hidden parameters
Gtk::Widget * widg = param->get_widget(doc, node, changeSignal);
gchar const * tip = param->get_tooltip();
int indent = param->get_indent();
@@ -837,7 +837,7 @@ unsigned int Extension::param_visible_count ( )
unsigned int _visible_count = 0;
for (GSList * list = parameters; list != NULL; list = g_slist_next(list)) {
Parameter * param = reinterpret_cast<Parameter *>(list->data);
- if (!param->get_gui_hidden()) _visible_count++;
+ if (!param->get_hidden()) _visible_count++;
}
return _visible_count;
}
diff --git a/src/extension/internal/bluredge.cpp b/src/extension/internal/bluredge.cpp
index 8aa982810..d1fe357da 100644
--- a/src/extension/internal/bluredge.cpp
+++ b/src/extension/internal/bluredge.cpp
@@ -131,8 +131,8 @@ BlurEdge::init (void)
"<inkscape-extension xmlns=\"" INKSCAPE_EXTENSION_URI "\">\n"
"<name>" N_("Inset/Outset Halo") "</name>\n"
"<id>org.inkscape.effect.bluredge</id>\n"
- "<param name=\"blur-width\" _gui-text=\"" N_("Width:") "\" gui-description=\"" N_("Width in px of the halo") "\" scope=\"document\" type=\"float\" min=\"1.0\" max=\"50.0\">1.0</param>\n"
- "<param name=\"num-steps\" _gui-text=\"" N_("Number of steps:") "\" gui-description=\"" N_("Number of inset/outset copies of the object to make") "\" scope=\"document\" type=\"int\" min=\"5\" max=\"100\">11</param>\n"
+ "<param name=\"blur-width\" _gui-text=\"" N_("Width:") "\" gui-description=\"" N_("Width in px of the halo") "\" type=\"float\" min=\"1.0\" max=\"50.0\">1.0</param>\n"
+ "<param name=\"num-steps\" _gui-text=\"" N_("Number of steps:") "\" gui-description=\"" N_("Number of inset/outset copies of the object to make") "\" type=\"int\" min=\"5\" max=\"100\">11</param>\n"
"<effect>\n"
"<object-type>all</object-type>\n"
"<effects-menu>\n"
diff --git a/src/extension/internal/cairo-png-out.cpp b/src/extension/internal/cairo-png-out.cpp
index 5859a82da..956fcce9a 100644
--- a/src/extension/internal/cairo-png-out.cpp
+++ b/src/extension/internal/cairo-png-out.cpp
@@ -53,10 +53,11 @@ png_render_document_to_file(SPDocument *doc, gchar const *filename)
{
CairoRenderer *renderer;
CairoRenderContext *ctx;
- doc->getRoot()->c2p = doc->getRoot()->rotation.inverse() * doc->getRoot()->c2p;
+
doc->ensureUpToDate();
/* Start */
+
SPItem *base = doc->getRoot();
Inkscape::Drawing drawing;
unsigned dkey = SPItem::display_key_new(1);
@@ -76,7 +77,6 @@ png_render_document_to_file(SPDocument *doc, gchar const *filename)
renderer->destroyContext(ctx);
base->invoke_hide(dkey);
- doc->getRoot()->c2p *= doc->getRoot()->rotation;
/* end */
delete renderer;
diff --git a/src/extension/internal/cairo-ps-out.cpp b/src/extension/internal/cairo-ps-out.cpp
index 809125266..e8f47e79e 100644
--- a/src/extension/internal/cairo-ps-out.cpp
+++ b/src/extension/internal/cairo-ps-out.cpp
@@ -68,7 +68,6 @@ static bool
ps_print_document_to_file(SPDocument *doc, gchar const *filename, unsigned int level, bool texttopath, bool omittext,
bool filtertobitmap, int resolution, const gchar * const exportId, bool exportDrawing, bool exportCanvas, float bleedmargin_px, bool eps = false)
{
- doc->getRoot()->c2p = doc->getRoot()->rotation.inverse() * doc->getRoot()->c2p;
doc->ensureUpToDate();
SPItem *base = NULL;
@@ -85,10 +84,9 @@ ps_print_document_to_file(SPDocument *doc, gchar const *filename, unsigned int l
pageBoundingBox = !exportDrawing;
}
- if (!base) {
- doc->getRoot()->c2p *= doc->getRoot()->rotation;
+ if (!base)
return false;
- }
+
Inkscape::Drawing drawing;
unsigned dkey = SPItem::display_key_new(1);
base->invoke_show(drawing, dkey, SP_ITEM_SHOW_DISPLAY);
@@ -117,7 +115,6 @@ ps_print_document_to_file(SPDocument *doc, gchar const *filename, unsigned int l
renderer->destroyContext(ctx);
delete renderer;
- doc->getRoot()->c2p *= doc->getRoot()->rotation;
return ret;
}
diff --git a/src/extension/internal/cairo-renderer-pdf-out.cpp b/src/extension/internal/cairo-renderer-pdf-out.cpp
index 5558fe1ad..5576676b2 100644
--- a/src/extension/internal/cairo-renderer-pdf-out.cpp
+++ b/src/extension/internal/cairo-renderer-pdf-out.cpp
@@ -61,7 +61,6 @@ pdf_render_document_to_file(SPDocument *doc, gchar const *filename, unsigned int
bool texttopath, bool omittext, bool filtertobitmap, int resolution,
const gchar * const exportId, bool exportDrawing, bool exportCanvas, float bleedmargin_px)
{
- doc->getRoot()->c2p = doc->getRoot()->rotation.inverse() * doc->getRoot()->c2p;
doc->ensureUpToDate();
/* Start */
@@ -81,7 +80,6 @@ pdf_render_document_to_file(SPDocument *doc, gchar const *filename, unsigned int
}
if (!base) {
- doc->getRoot()->c2p *= doc->getRoot()->rotation;
return false;
}
@@ -114,7 +112,7 @@ pdf_render_document_to_file(SPDocument *doc, gchar const *filename, unsigned int
renderer->destroyContext(ctx);
delete renderer;
- doc->getRoot()->c2p *= doc->getRoot()->rotation;
+
return ret;
}
diff --git a/src/extension/internal/cdr-input.cpp b/src/extension/internal/cdr-input.cpp
index 70bf84ef4..b94408b36 100644
--- a/src/extension/internal/cdr-input.cpp
+++ b/src/extension/internal/cdr-input.cpp
@@ -210,6 +210,19 @@ void CdrImportDialog::_setPreviewPage()
}
SPDocument *doc = SPDocument::createNewDocFromMem(_vec[_current_page-1].cstr(), strlen(_vec[_current_page-1].cstr()), 0);
+ if(!doc) {
+ g_warning("CDR import: Could not create preview for page %d", _current_page);
+ gchar const *no_preview_template =
+ "<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'>"
+ " <path style='fill:none;stroke:#ff0000;stroke-width:2px;' d='M 82,10 18,74 m 0,-64 64,64' />"
+ " <rect style='fill:none;stroke:#000000;stroke-width:1.5px;' width='64' height='64' x='18' y='10' />"
+ " <text x='50' y='92' style='font-size:10px;text-anchor:middle;font-family:sans-serif;'>%s</text>"
+ "</svg>";
+ gchar * no_preview = g_strdup_printf(no_preview_template, _("No preview"));
+ doc = SPDocument::createNewDocFromMem(no_preview, strlen(no_preview), 0);
+ g_free(no_preview);
+ }
+
Gtk::Widget * tmpPreviewArea = Glib::wrap(sp_svg_view_widget_new(doc));
std::swap(_previewArea, tmpPreviewArea);
delete tmpPreviewArea;
diff --git a/src/extension/internal/emf-inout.cpp b/src/extension/internal/emf-inout.cpp
index 198c18ff2..92deb2e19 100644
--- a/src/extension/internal/emf-inout.cpp
+++ b/src/extension/internal/emf-inout.cpp
@@ -94,7 +94,7 @@ Emf::print_document_to_file(SPDocument *doc, const gchar *filename)
const gchar *oldconst;
gchar *oldoutput;
unsigned int ret;
- doc->getRoot()->c2p = doc->getRoot()->rotation.inverse() * doc->getRoot()->c2p;
+
doc->ensureUpToDate();
mod = Inkscape::Extension::get_print(PRINT_EMF);
@@ -114,7 +114,6 @@ Emf::print_document_to_file(SPDocument *doc, const gchar *filename)
/* Print document */
ret = mod->begin(doc);
if (ret) {
- doc->getRoot()->c2p *= doc->getRoot()->rotation;
g_free(oldoutput);
throw Inkscape::Extension::Output::save_failed();
}
@@ -128,7 +127,7 @@ Emf::print_document_to_file(SPDocument *doc, const gchar *filename)
mod->set_param_string("destination", oldoutput);
g_free(oldoutput);
- doc->getRoot()->c2p *= doc->getRoot()->rotation;
+
return;
}
@@ -166,8 +165,16 @@ Emf::save(Inkscape::Extension::Output *mod, SPDocument *doc, gchar const *filena
ext->set_param_bool("FixImageRot",new_FixImageRot);
ext->set_param_bool("textToPath", new_val);
+ // ensure usage of dot as decimal separator in scanf/printf functions (indepentendly of current locale)
+ char *oldlocale = g_strdup(setlocale(LC_NUMERIC, NULL));
+ setlocale(LC_NUMERIC, "C");
+
print_document_to_file(doc, filename);
+ // restore decimal separator used in scanf/printf functions to initial value
+ setlocale(LC_NUMERIC, oldlocale);
+ g_free(oldlocale);
+
return;
}
@@ -3525,6 +3532,10 @@ Emf::open( Inkscape::Extension::Input * /*mod*/, const gchar *uri )
return NULL;
}
+ // ensure usage of dot as decimal separator in scanf/printf functions (indepentendly of current locale)
+ char *oldlocale = g_strdup(setlocale(LC_NUMERIC, NULL));
+ setlocale(LC_NUMERIC, "C");
+
EMF_CALLBACK_DATA d;
d.n_obj = 0; //these might not be set otherwise if the input file is corrupt
@@ -3589,6 +3600,10 @@ Emf::open( Inkscape::Extension::Input * /*mod*/, const gchar *uri )
// in earlier versions no viewbox was generated and a call to setViewBoxIfMissing() was needed here.
+ // restore decimal separator used in scanf/printf functions to initial value
+ setlocale(LC_NUMERIC, oldlocale);
+ g_free(oldlocale);
+
return doc;
}
diff --git a/src/extension/internal/emf-print.cpp b/src/extension/internal/emf-print.cpp
index 826176bc0..147324b4f 100644
--- a/src/extension/internal/emf-print.cpp
+++ b/src/extension/internal/emf-print.cpp
@@ -251,11 +251,7 @@ unsigned int PrintEmf::begin(Inkscape::Extension::Print *mod, SPDocument *doc)
g_error("Fatal programming error in PrintEmf::begin at textcomment_set 1");
}
- char *oldlocale = g_strdup(setlocale(LC_NUMERIC, NULL));
- setlocale(LC_NUMERIC, "C");
snprintf(buff, sizeof(buff) - 1, "Drawing=%.1fx%.1fpx, %.1fx%.1fmm", _width, _height, Inkscape::Util::Quantity::convert(dwInchesX, "in", "mm"), Inkscape::Util::Quantity::convert(dwInchesY, "in", "mm"));
- setlocale(LC_NUMERIC, oldlocale);
- g_free(oldlocale);
rec = textcomment_set(buff);
if (!rec || emf_append((PU_ENHMETARECORD)rec, et, U_REC_FREE)) {
g_error("Fatal programming error in PrintEmf::begin at textcomment_set 1");
diff --git a/src/extension/internal/javafx-out.cpp b/src/extension/internal/javafx-out.cpp
index c95434939..d7ad7e6f7 100644
--- a/src/extension/internal/javafx-out.cpp
+++ b/src/extension/internal/javafx-out.cpp
@@ -843,8 +843,7 @@ void JavaFXOutput::reset()
bool JavaFXOutput::saveDocument(SPDocument *doc, gchar const *filename_utf8)
{
reset();
- doc->getRoot()->c2p = doc->getRoot()->rotation.inverse() * doc->getRoot()->c2p;
- doc->ensureUpToDate();
+
name = Glib::path_get_basename(filename_utf8);
int pos = name.find('.');
@@ -857,14 +856,12 @@ bool JavaFXOutput::saveDocument(SPDocument *doc, gchar const *filename_utf8)
//# Lets do the curves first, to get the stats
if (!doTree(doc)) {
- doc->getRoot()->c2p *= doc->getRoot()->rotation;
return false;
}
String curveBuf = outbuf;
outbuf.clear();
if (!doHeader()) {
- doc->getRoot()->c2p *= doc->getRoot()->rotation;
return false;
}
@@ -878,7 +875,6 @@ bool JavaFXOutput::saveDocument(SPDocument *doc, gchar const *filename_utf8)
doBody(doc, doc->getRoot());
if (!doTail()) {
- doc->getRoot()->c2p *= doc->getRoot()->rotation;
return false;
}
@@ -888,7 +884,6 @@ bool JavaFXOutput::saveDocument(SPDocument *doc, gchar const *filename_utf8)
FILE *f = Inkscape::IO::fopen_utf8name(filename_utf8, "w");
if (!f)
{
- doc->getRoot()->c2p *= doc->getRoot()->rotation;
err("Could open JavaFX file '%s' for writing", filename_utf8);
return false;
}
@@ -899,7 +894,7 @@ bool JavaFXOutput::saveDocument(SPDocument *doc, gchar const *filename_utf8)
}
fclose(f);
- doc->getRoot()->c2p *= doc->getRoot()->rotation;
+
return true;
}
diff --git a/src/extension/internal/latex-pstricks-out.cpp b/src/extension/internal/latex-pstricks-out.cpp
index aa6ea6963..3ce2c5531 100644
--- a/src/extension/internal/latex-pstricks-out.cpp
+++ b/src/extension/internal/latex-pstricks-out.cpp
@@ -49,7 +49,6 @@ bool LatexOutput::check(Inkscape::Extension::Extension * /*module*/)
void LatexOutput::save(Inkscape::Extension::Output * /*mod2*/, SPDocument *doc, gchar const *filename)
{
SPPrintContext context;
- doc->getRoot()->c2p = doc->getRoot()->rotation.inverse() * doc->getRoot()->c2p;
doc->ensureUpToDate();
Inkscape::Extension::Print *mod = Inkscape::Extension::get_print(SP_MODULE_KEY_PRINT_LATEX);
@@ -77,7 +76,6 @@ void LatexOutput::save(Inkscape::Extension::Output * /*mod2*/, SPDocument *doc,
mod->set_param_string("destination", oldoutput);
g_free(oldoutput);
- doc->getRoot()->c2p *= doc->getRoot()->rotation;
}
#include "clear-n_.h"
diff --git a/src/extension/internal/metafile-print.cpp b/src/extension/internal/metafile-print.cpp
index 11567ceb3..68a425d85 100644
--- a/src/extension/internal/metafile-print.cpp
+++ b/src/extension/internal/metafile-print.cpp
@@ -355,27 +355,6 @@ int PrintMetafile::hold_gradient(void *gr, int mode)
return 1;
}
-/* behaves like snprintf() but makes sure decimal separators are formatted as dots
- otherwise invalid strings can be produced depending on the set locale
-*/
-int PrintMetafile::snprintf_dots(char * s, size_t n, const char * format, ...)
-{
- int nChars;
-
- char *oldlocale = g_strdup(setlocale(LC_NUMERIC, NULL));
- setlocale(LC_NUMERIC, "C");
-
- va_list argptr;
- va_start(argptr, format);
- nChars = vsnprintf(s, n, format, argptr);
- va_end(argptr);
-
- setlocale(LC_NUMERIC, oldlocale);
- g_free(oldlocale);
-
- return nChars;
-}
-
/* convert from center ellipse to SVGEllipticalArc ellipse
From:
@@ -411,7 +390,7 @@ Geom::PathVector PrintMetafile::center_ellipse_as_SVG_PathV(Geom::Point ctr, dou
y2 = ctr[Y] + sin(F) * rx * cos(M_PI) + cos(F) * ry * sin(M_PI);
char text[256];
- snprintf_dots(text, 256, " M %f,%f A %f %f %f 0 0 %f %f A %f %f %f 0 0 %f %f z",
+ snprintf(text, 256, " M %f,%f A %f %f %f 0 0 %f %f A %f %f %f 0 0 %f %f z",
x1, y1, rx, ry, F * 360. / (2.*M_PI), x2, y2, rx, ry, F * 360. / (2.*M_PI), x1, y1);
Geom::PathVector outres = Geom::parse_svg_path(text);
return outres;
@@ -440,7 +419,7 @@ Geom::PathVector PrintMetafile::center_elliptical_ring_as_SVG_PathV(Geom::Point
y22 = ctr[Y] + sin(F) * rx2 * cos(M_PI) + cos(F) * ry2 * sin(M_PI);
char text[512];
- snprintf_dots(text, 512, " M %f,%f A %f %f %f 0 1 %f %f A %f %f %f 0 1 %f %f z M %f,%f A %f %f %f 0 0 %f %f A %f %f %f 0 0 %f %f z",
+ snprintf(text, 512, " M %f,%f A %f %f %f 0 1 %f %f A %f %f %f 0 1 %f %f z M %f,%f A %f %f %f 0 0 %f %f A %f %f %f 0 0 %f %f z",
x11, y11, rx1, ry1, degrot, x12, y12, rx1, ry1, degrot, x11, y11,
x21, y21, rx2, ry2, degrot, x22, y22, rx2, ry2, degrot, x21, y21);
Geom::PathVector outres = Geom::parse_svg_path(text);
@@ -462,7 +441,7 @@ Geom::PathVector PrintMetafile::center_elliptical_hole_as_SVG_PathV(Geom::Point
y2 = ctr[Y] + sin(F) * rx * cos(M_PI) + cos(F) * ry * sin(M_PI);
char text[256];
- snprintf_dots(text, 256, " M %f,%f A %f %f %f 0 0 %f %f A %f %f %f 0 0 %f %f z M 50000,50000 50000,-50000 -50000,-50000 -50000,50000 z",
+ snprintf(text, 256, " M %f,%f A %f %f %f 0 0 %f %f A %f %f %f 0 0 %f %f z M 50000,50000 50000,-50000 -50000,-50000 -50000,50000 z",
x1, y1, rx, ry, F * 360. / (2.*M_PI), x2, y2, rx, ry, F * 360. / (2.*M_PI), x1, y1);
Geom::PathVector outres = Geom::parse_svg_path(text);
return outres;
diff --git a/src/extension/internal/odf.cpp b/src/extension/internal/odf.cpp
index 66d370357..f885ef5e5 100644
--- a/src/extension/internal/odf.cpp
+++ b/src/extension/internal/odf.cpp
@@ -72,7 +72,6 @@
#include "sp-path.h"
#include "sp-text.h"
#include "sp-flowtext.h"
-#include "sp-root.h"
#include "svg/svg.h"
#include "text-editing.h"
#include "util/units.h"
@@ -2096,8 +2095,7 @@ void OdfOutput::reset()
void OdfOutput::save(Inkscape::Extension::Output */*mod*/, SPDocument *doc, gchar const *filename)
{
reset();
- doc->getRoot()->c2p = doc->getRoot()->rotation.inverse() * doc->getRoot()->c2p;
- doc->ensureUpToDate();
+
documentUri = Inkscape::URI(filename);
ZipFile zf;
@@ -2106,30 +2104,25 @@ void OdfOutput::save(Inkscape::Extension::Output */*mod*/, SPDocument *doc, gcha
if (!writeManifest(zf))
{
g_warning("Failed to write manifest");
- doc->getRoot()->c2p *= doc->getRoot()->rotation;
return;
}
if (!writeContent(zf, doc->rroot))
{
g_warning("Failed to write content");
- doc->getRoot()->c2p *= doc->getRoot()->rotation;
return;
}
if (!writeMeta(zf))
{
g_warning("Failed to write metafile");
- doc->getRoot()->c2p *= doc->getRoot()->rotation;
return;
}
if (!zf.writeFile(filename))
{
- doc->getRoot()->c2p *= doc->getRoot()->rotation;
return;
}
- doc->getRoot()->c2p *= doc->getRoot()->rotation;
}
diff --git a/src/extension/internal/pov-out.cpp b/src/extension/internal/pov-out.cpp
index 03a2ecd62..8df883069 100644
--- a/src/extension/internal/pov-out.cpp
+++ b/src/extension/internal/pov-out.cpp
@@ -616,13 +616,11 @@ void PovOutput::reset()
void PovOutput::saveDocument(SPDocument *doc, gchar const *filename_utf8)
{
reset();
- doc->getRoot()->c2p = doc->getRoot()->rotation.inverse() * doc->getRoot()->c2p;
- doc->ensureUpToDate();
+
//###### SAVE IN POV FORMAT TO BUFFER
//# Lets do the curves first, to get the stats
if (!doTree(doc))
{
- doc->getRoot()->c2p *= doc->getRoot()->rotation;
err("Could not output curves for %s", filename_utf8);
return;
}
@@ -632,7 +630,6 @@ void PovOutput::saveDocument(SPDocument *doc, gchar const *filename_utf8)
if (!doHeader())
{
- doc->getRoot()->c2p *= doc->getRoot()->rotation;
err("Could not write header for %s", filename_utf8);
return;
}
@@ -641,7 +638,6 @@ void PovOutput::saveDocument(SPDocument *doc, gchar const *filename_utf8)
if (!doTail())
{
- doc->getRoot()->c2p *= doc->getRoot()->rotation;
err("Could not write footer for %s", filename_utf8);
return;
}
@@ -652,11 +648,9 @@ void PovOutput::saveDocument(SPDocument *doc, gchar const *filename_utf8)
//###### WRITE TO FILE
Inkscape::IO::dump_fopen_call(filename_utf8, "L");
FILE *f = Inkscape::IO::fopen_utf8name(filename_utf8, "w");
- if (!f){
- doc->getRoot()->c2p *= doc->getRoot()->rotation;
+ if (!f)
return;
- }
-
+
for (String::iterator iter = outbuf.begin() ; iter!=outbuf.end(); ++iter)
{
int ch = *iter;
@@ -664,7 +658,6 @@ void PovOutput::saveDocument(SPDocument *doc, gchar const *filename_utf8)
}
fclose(f);
- doc->getRoot()->c2p *= doc->getRoot()->rotation;
}
diff --git a/src/extension/internal/vsd-input.cpp b/src/extension/internal/vsd-input.cpp
index b7277b99e..c1cfb5cc6 100644
--- a/src/extension/internal/vsd-input.cpp
+++ b/src/extension/internal/vsd-input.cpp
@@ -146,7 +146,7 @@ VsdImportDialog::VsdImportDialog(const std::vector<RVNGString> &vec)
_page_selector_box->pack_start(*_labelTotalPages, Gtk::PACK_SHRINK);
vbox1->pack_end(*_page_selector_box, Gtk::PACK_SHRINK);
-
+
// Buttons
cancelbutton = Gtk::manage(new Gtk::Button(_("_Cancel"), true));
okbutton = Gtk::manage(new Gtk::Button(_("_OK"), true));
@@ -211,6 +211,19 @@ void VsdImportDialog::_setPreviewPage()
}
SPDocument *doc = SPDocument::createNewDocFromMem(_vec[_current_page-1].cstr(), strlen(_vec[_current_page-1].cstr()), 0);
+ if(!doc) {
+ g_warning("VSD import: Could not create preview for page %d", _current_page);
+ gchar const *no_preview_template =
+ "<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'>"
+ " <path style='fill:none;stroke:#ff0000;stroke-width:2px;' d='M 82,10 18,74 m 0,-64 64,64' />"
+ " <rect style='fill:none;stroke:#000000;stroke-width:1.5px;' width='64' height='64' x='18' y='10' />"
+ " <text x='50' y='92' style='font-size:10px;text-anchor:middle;font-family:sans-serif;'>%s</text>"
+ "</svg>";
+ gchar * no_preview = g_strdup_printf(no_preview_template, _("No preview"));
+ doc = SPDocument::createNewDocFromMem(no_preview, strlen(no_preview), 0);
+ g_free(no_preview);
+ }
+
Gtk::Widget * tmpPreviewArea = Glib::wrap(sp_svg_view_widget_new(doc));
std::swap(_previewArea, tmpPreviewArea);
delete tmpPreviewArea;
diff --git a/src/extension/internal/wmf-inout.cpp b/src/extension/internal/wmf-inout.cpp
index 42ec2f2bb..e2d1433e4 100644
--- a/src/extension/internal/wmf-inout.cpp
+++ b/src/extension/internal/wmf-inout.cpp
@@ -95,7 +95,7 @@ Wmf::print_document_to_file(SPDocument *doc, const gchar *filename)
SPPrintContext context;
const gchar *oldconst;
gchar *oldoutput;
- doc->getRoot()->c2p = doc->getRoot()->rotation.inverse() * doc->getRoot()->c2p;
+
doc->ensureUpToDate();
mod = Inkscape::Extension::get_print(PRINT_WMF);
@@ -115,7 +115,6 @@ Wmf::print_document_to_file(SPDocument *doc, const gchar *filename)
/* Print document */
if (mod->begin(doc)) {
g_free(oldoutput);
- doc->getRoot()->c2p *= doc->getRoot()->rotation;
throw Inkscape::Extension::Output::save_failed();
}
mod->base->invoke_print(&context);
@@ -128,7 +127,7 @@ Wmf::print_document_to_file(SPDocument *doc, const gchar *filename)
mod->set_param_string("destination", oldoutput);
g_free(oldoutput);
- doc->getRoot()->c2p *= doc->getRoot()->rotation;
+
return;
}
@@ -136,8 +135,6 @@ Wmf::print_document_to_file(SPDocument *doc, const gchar *filename)
void
Wmf::save(Inkscape::Extension::Output *mod, SPDocument *doc, gchar const *filename)
{
- doc->getRoot()->c2p = doc->getRoot()->rotation.inverse() * doc->getRoot()->c2p;
- doc->ensureUpToDate();
Inkscape::Extension::Extension * ext;
ext = Inkscape::Extension::db.get(PRINT_WMF);
@@ -164,8 +161,16 @@ Wmf::save(Inkscape::Extension::Output *mod, SPDocument *doc, gchar const *filena
ext->set_param_bool("FixPPTPatternAsHatch",new_FixPPTPatternAsHatch);
ext->set_param_bool("textToPath", new_val);
+ // ensure usage of dot as decimal separator in scanf/printf functions (indepentendly of current locale)
+ char *oldlocale = g_strdup(setlocale(LC_NUMERIC, NULL));
+ setlocale(LC_NUMERIC, "C");
+
print_document_to_file(doc, filename);
+ // restore decimal separator used in scanf/printf functions to initial value
+ setlocale(LC_NUMERIC, oldlocale);
+ g_free(oldlocale);
+
return;
}
@@ -3100,6 +3105,10 @@ Wmf::open( Inkscape::Extension::Input * /*mod*/, const gchar *uri )
return NULL;
}
+ // ensure usage of dot as decimal separator in scanf/printf functions (indepentendly of current locale)
+ char *oldlocale = g_strdup(setlocale(LC_NUMERIC, NULL));
+ setlocale(LC_NUMERIC, "C");
+
WMF_CALLBACK_DATA d;
d.n_obj = 0; //these might not be set otherwise if the input file is corrupt
@@ -3180,6 +3189,10 @@ Wmf::open( Inkscape::Extension::Input * /*mod*/, const gchar *uri )
// in earlier versions no viewbox was generated and a call to setViewBoxIfMissing() was needed here.
+ // restore decimal separator used in scanf/printf functions to initial value
+ setlocale(LC_NUMERIC, oldlocale);
+ g_free(oldlocale);
+
return doc;
}
diff --git a/src/extension/param/bool.cpp b/src/extension/param/bool.cpp
index 9f8d3dcc0..2c7e32480 100644
--- a/src/extension/param/bool.cpp
+++ b/src/extension/param/bool.cpp
@@ -14,7 +14,6 @@
#include <gtkmm/box.h>
#include <gtkmm/spinbutton.h>
#include <gtkmm/checkbutton.h>
-#include <glib/gi18n.h>
#include "xml/node.h"
#include "../extension.h"
@@ -25,15 +24,13 @@ namespace Inkscape {
namespace Extension {
ParamBool::ParamBool(const gchar * name,
- const gchar * guitext,
- const gchar * desc,
- const Parameter::_scope_t scope,
- bool gui_hidden,
- const gchar * gui_tip,
+ const gchar * text,
+ const gchar * description,
+ bool hidden,
int indent,
Inkscape::Extension::Extension * ext,
Inkscape::XML::Node * xml)
- : Parameter(name, guitext, desc, scope, gui_hidden, gui_tip, indent, ext)
+ : Parameter(name, text, description, hidden, indent, ext)
, _value(false)
{
const char * defaultval = NULL;
@@ -129,14 +126,14 @@ void ParamBool::string(std::string &string) const
Gtk::Widget *ParamBool::get_widget(SPDocument * doc, Inkscape::XML::Node * node, sigc::signal<void> * changeSignal)
{
- if (_gui_hidden) {
+ if (_hidden) {
return NULL;
}
auto hbox = Gtk::manage(new Gtk::Box(Gtk::ORIENTATION_HORIZONTAL, Parameter::GUI_PARAM_WIDGETS_SPACING));
hbox->set_homogeneous(false);
- Gtk::Label * label = Gtk::manage(new Gtk::Label(_(_text), Gtk::ALIGN_START));
+ Gtk::Label * label = Gtk::manage(new Gtk::Label(_text, Gtk::ALIGN_START));
label->show();
hbox->pack_end(*label, true, true);
diff --git a/src/extension/param/bool.h b/src/extension/param/bool.h
index 0af12b105..826a98927 100644
--- a/src/extension/param/bool.h
+++ b/src/extension/param/bool.h
@@ -33,11 +33,9 @@ public:
* Use the superclass' allocator and set the \c _value.
*/
ParamBool(const gchar * name,
- const gchar * guitext,
- const gchar * desc,
- const Parameter::_scope_t scope,
- bool gui_hidden,
- const gchar * gui_tip,
+ const gchar * text,
+ const gchar * description,
+ bool hidden,
int indent,
Inkscape::Extension::Extension * ext,
Inkscape::XML::Node * xml);
diff --git a/src/extension/param/color.cpp b/src/extension/param/color.cpp
index fd88e9adb..035c43ba8 100644
--- a/src/extension/param/color.cpp
+++ b/src/extension/param/color.cpp
@@ -53,15 +53,13 @@ guint32 ParamColor::set( guint32 in, SPDocument * /*doc*/, Inkscape::XML::Node *
}
ParamColor::ParamColor(const gchar * name,
- const gchar * guitext,
- const gchar * desc,
- const Parameter::_scope_t scope,
- bool gui_hidden,
- const gchar * gui_tip,
+ const gchar * text,
+ const gchar * description,
+ bool hidden,
int indent,
Inkscape::Extension::Extension * ext,
Inkscape::XML::Node * xml)
- : Parameter(name, guitext, desc, scope, gui_hidden, gui_tip, indent, ext)
+ : Parameter(name, text, description, hidden, indent, ext)
, _changeSignal(0)
{
const char * defaulthex = NULL;
@@ -94,7 +92,7 @@ Gtk::Widget *ParamColor::get_widget( SPDocument * /*doc*/, Inkscape::XML::Node *
{
using Inkscape::UI::Widget::ColorNotebook;
- if (_gui_hidden) return NULL;
+ if (_hidden) return NULL;
if (changeSignal) {
_changeSignal = new sigc::signal<void>(*changeSignal);
diff --git a/src/extension/param/color.h b/src/extension/param/color.h
index d6e9d1fbe..890f5ba5f 100644
--- a/src/extension/param/color.h
+++ b/src/extension/param/color.h
@@ -32,11 +32,9 @@ private:
sigc::connection _color_changed;
public:
ParamColor(const gchar * name,
- const gchar * guitext,
- const gchar * desc,
- const Parameter::_scope_t scope,
- bool gui_hidden,
- const gchar * gui_tip,
+ const gchar * text,
+ const gchar * description,
+ bool hidden,
int indent,
Inkscape::Extension::Extension * ext,
Inkscape::XML::Node * xml);
diff --git a/src/extension/param/description.cpp b/src/extension/param/description.cpp
index 3c29b7c49..cf94918f7 100644
--- a/src/extension/param/description.cpp
+++ b/src/extension/param/description.cpp
@@ -17,6 +17,7 @@
#include <gtkmm/label.h>
#include <glibmm/i18n.h>
#include <glibmm/markup.h>
+#include <glibmm/regex.h>
#include "xml/node.h"
#include "extension/extension.h"
@@ -28,30 +29,59 @@ namespace Extension {
/** \brief Initialize the object, to do that, copy the data. */
ParamDescription::ParamDescription(const gchar * name,
- const gchar * guitext,
- const gchar * desc,
- const Parameter::_scope_t scope,
- bool gui_hidden,
- const gchar * gui_tip,
+ const gchar * text,
+ const gchar * description,
+ bool hidden,
int indent,
Inkscape::Extension::Extension * ext,
Inkscape::XML::Node * xml,
AppearanceMode mode)
- : Parameter(name, guitext, desc, scope, gui_hidden, gui_tip, indent, ext)
+ : Parameter(name, text, description, hidden, indent, ext)
, _value(NULL)
, _mode(mode)
{
- // printf("Building Description\n");
- const char * defaultval = NULL;
- if (xml->firstChild() != NULL) {
- defaultval = xml->firstChild()->content();
+ // construct the text content by concatenating all (non-empty) text nodes,
+ // removing all other nodes (e.g. comment nodes) and replacing <extension:br> elements with "<br/>"
+ Glib::ustring value;
+ Inkscape::XML::Node * cur_child = xml->firstChild();
+ while (cur_child != NULL) {
+ if (cur_child->type() == XML::TEXT_NODE && cur_child->content() != NULL) {
+ value += cur_child->content();
+ } else if (cur_child->type() == XML::ELEMENT_NODE && !g_strcmp0(cur_child->name(), "extension:br")) {
+ value += "<br/>";
+ }
+ cur_child = cur_child->next();
}
- if (defaultval != NULL) {
- _value = g_strdup(defaultval);
+ // if there is no text content we can return immediately (the description will be invisible)
+ if (value == Glib::ustring("")) {
+ return;
}
- _context = xml->attribute("msgctxt");
+ // do replacements in the source string to account for the attribute xml:space="preserve"
+ // (those should match replacements potentially performed by xgettext to allow for proper translation)
+ if (g_strcmp0(xml->attribute("xml:space"), "preserve") == 0) {
+ // xgettext copies the source string verbatim in this case, so no changes needed
+ } else {
+ // remove all whitespace from start/end of string and replace intermediate whitespace with a single space
+ value = Glib::Regex::create("^\\s+|\\s+$")->replace_literal(value, 0, "", (Glib::RegexMatchFlags)0);
+ value = Glib::Regex::create("\\s+")->replace_literal(value, 0, " ", (Glib::RegexMatchFlags)0);
+ }
+
+ // translate if underscored version (_param) was used
+ if (g_str_has_prefix(xml->name(), "extension:_")) {
+ const gchar * context = xml->attribute("msgctxt");
+ if (context != NULL) {
+ value = g_dpgettext2(NULL, context, value.c_str());
+ } else {
+ value = _(value.c_str());
+ }
+ }
+
+ // finally replace all remaining <br/> with a real newline character
+ value = Glib::Regex::create("<br/>")->replace_literal(value, 0, "\n", (Glib::RegexMatchFlags)0);
+
+ _value = g_strdup(value.c_str());
return;
}
@@ -60,31 +90,25 @@ ParamDescription::ParamDescription(const gchar * name,
Gtk::Widget *
ParamDescription::get_widget (SPDocument * /*doc*/, Inkscape::XML::Node * /*node*/, sigc::signal<void> * /*changeSignal*/)
{
- if (_gui_hidden) {
+ if (_hidden) {
return NULL;
}
if (_value == NULL) {
return NULL;
}
- Glib::ustring newguitext;
-
- if (_context != NULL) {
- newguitext = g_dpgettext2(NULL, _context, _value);
- } else {
- newguitext = _(_value);
- }
+ Glib::ustring newtext = _value;
Gtk::Label * label = Gtk::manage(new Gtk::Label());
if (_mode == HEADER) {
- label->set_markup(Glib::ustring("<b>") + Glib::Markup::escape_text(newguitext) + Glib::ustring("</b>"));
+ label->set_markup(Glib::ustring("<b>") + Glib::Markup::escape_text(newtext) + Glib::ustring("</b>"));
label->set_margin_top(5);
label->set_margin_bottom(5);
} else if (_mode == URL) {
- Glib::ustring escaped_url = Glib::Markup::escape_text(newguitext);
+ Glib::ustring escaped_url = Glib::Markup::escape_text(newtext);
label->set_markup(Glib::ustring::compose("<a href='%1'>%1</a>", escaped_url));
} else {
- label->set_text(newguitext);
+ label->set_text(newtext);
}
label->set_line_wrap();
#if (GTKMM_MAJOR_VERSION == 3 && GTKMM_MINOR_VERSION >= 16)
@@ -101,7 +125,7 @@ ParamDescription::get_widget (SPDocument * /*doc*/, Inkscape::XML::Node * /*node
// - Here we set a lower limit of GUI_MAX_LINE_LENGTH characters per line that long texts will always use
// This means texts can not shrink anymore (they can still grow, though) and it's also necessary
// to prevent https://bugzilla.gnome.org/show_bug.cgi?id=773572
- int len = newguitext.length();
+ int len = newtext.length();
label->set_width_chars(len > Parameter::GUI_MAX_LINE_LENGTH ? Parameter::GUI_MAX_LINE_LENGTH : len);
label->show();
diff --git a/src/extension/param/description.h b/src/extension/param/description.h
index c6c5f4013..599c4db78 100644
--- a/src/extension/param/description.h
+++ b/src/extension/param/description.h
@@ -27,14 +27,12 @@ namespace Extension {
class ParamDescription : public Parameter {
public:
enum AppearanceMode {
- DESC, HEADER, URL
+ DESCRIPTION, HEADER, URL
};
ParamDescription(const gchar * name,
- const gchar * guitext,
- const gchar * desc,
- const Parameter::_scope_t scope,
- bool gui_hidden,
- const gchar * gui_tip,
+ const gchar * text,
+ const gchar * description,
+ bool hidden,
int indent,
Inkscape::Extension::Extension * ext,
Inkscape::XML::Node * xml,
@@ -45,7 +43,6 @@ private:
/** \brief Internal value. */
gchar * _value;
AppearanceMode _mode;
- const gchar* _context;
};
} /* namespace Extension */
diff --git a/src/extension/param/enum.cpp b/src/extension/param/enum.cpp
index a26458c35..7cd860465 100644
--- a/src/extension/param/enum.cpp
+++ b/src/extension/param/enum.cpp
@@ -33,29 +33,27 @@ namespace Inkscape {
namespace Extension {
/* For internal use only.
- Note that value and guitext MUST be non-NULL. This is ensured by newing only at one location in the code where non-NULL checks are made. */
+ Note that value and text MUST be non-NULL. This is ensured by newing only at one location in the code where non-NULL checks are made. */
class enumentry {
public:
enumentry (Glib::ustring &val, Glib::ustring &text) :
value(val),
- guitext(text)
+ text(text)
{}
Glib::ustring value;
- Glib::ustring guitext;
+ Glib::ustring text;
};
ParamComboBox::ParamComboBox(const gchar * name,
- const gchar * guitext,
- const gchar * desc,
- const Parameter::_scope_t scope,
- bool gui_hidden,
- const gchar * gui_tip,
+ const gchar * text,
+ const gchar * description,
+ bool hidden,
int indent,
Inkscape::Extension::Extension * ext,
Inkscape::XML::Node * xml)
- : Parameter(name, guitext, desc, scope, gui_hidden, gui_tip, indent, ext)
+ : Parameter(name, text, description, hidden, indent, ext)
, _value(NULL)
, choices(NULL)
{
@@ -66,7 +64,7 @@ ParamComboBox::ParamComboBox(const gchar * name,
for (Inkscape::XML::Node *node = xml->firstChild(); node; node = node->next()) {
char const * chname = node->name();
if (!strcmp(chname, INKSCAPE_EXTENSION_NS "item") || !strcmp(chname, INKSCAPE_EXTENSION_NS "_item")) {
- Glib::ustring newguitext, newvalue;
+ Glib::ustring newtext, newvalue;
const char * contents = NULL;
if (node->firstChild()) {
contents = node->firstChild()->content();
@@ -77,12 +75,12 @@ ParamComboBox::ParamComboBox(const gchar * name,
// still need to include if are to be localized
if (!strcmp(chname, INKSCAPE_EXTENSION_NS "_item")) {
if (node->attribute("msgctxt") != NULL) {
- newguitext = g_dpgettext2(NULL, node->attribute("msgctxt"), contents);
+ newtext = g_dpgettext2(NULL, node->attribute("msgctxt"), contents);
} else {
- newguitext = _(contents);
+ newtext = _(contents);
}
} else {
- newguitext = contents;
+ newtext = contents;
}
} else
continue;
@@ -94,8 +92,8 @@ ParamComboBox::ParamComboBox(const gchar * name,
newvalue = contents;
}
- if ( (!newguitext.empty()) && (!newvalue.empty()) ) { // logical error if this is not true here
- choices = g_slist_append( choices, new enumentry(newvalue, newguitext) );
+ if ( (!newtext.empty()) && (!newvalue.empty()) ) { // logical error if this is not true here
+ choices = g_slist_append( choices, new enumentry(newvalue, newtext) );
}
}
}
@@ -155,7 +153,7 @@ const gchar *ParamComboBox::set(const gchar * in, SPDocument * /*doc*/, Inkscape
Glib::ustring settext;
for (GSList * list = choices; list != NULL; list = g_slist_next(list)) {
enumentry * entr = reinterpret_cast<enumentry *>(list->data);
- if ( !entr->guitext.compare(in) ) {
+ if ( !entr->text.compare(in) ) {
settext = entr->value;
break; // break out of for loop
}
@@ -175,20 +173,20 @@ const gchar *ParamComboBox::set(const gchar * in, SPDocument * /*doc*/, Inkscape
}
/**
- * function to test if \c guitext is selectable
+ * function to test if \c text is selectable
*/
-bool ParamComboBox::contains(const gchar * guitext, SPDocument const * /*doc*/, Inkscape::XML::Node const * /*node*/) const
+bool ParamComboBox::contains(const gchar * text, SPDocument const * /*doc*/, Inkscape::XML::Node const * /*node*/) const
{
- if (guitext == NULL) {
+ if (text == NULL) {
return false; /* Can't have NULL string */
}
for (GSList * list = choices; list != NULL; list = g_slist_next(list)) {
enumentry * entr = reinterpret_cast<enumentry *>(list->data);
- if ( !entr->guitext.compare(guitext) )
+ if ( !entr->text.compare(text) )
return true;
}
- // if we did not find the guitext in this ParamComboBox:
+ // if we did not find the text in this ParamComboBox:
return false;
}
@@ -246,12 +244,12 @@ ParamComboBoxEntry::changed (void)
*/
Gtk::Widget *ParamComboBox::get_widget(SPDocument * doc, Inkscape::XML::Node * node, sigc::signal<void> * changeSignal)
{
- if (_gui_hidden) {
+ if (_hidden) {
return NULL;
}
Gtk::HBox * hbox = Gtk::manage(new Gtk::HBox(false, Parameter::GUI_PARAM_WIDGETS_SPACING));
- Gtk::Label * label = Gtk::manage(new Gtk::Label(_(_text), Gtk::ALIGN_START));
+ Gtk::Label * label = Gtk::manage(new Gtk::Label(_text, Gtk::ALIGN_START));
label->show();
hbox->pack_start(*label, false, false);
@@ -260,11 +258,11 @@ Gtk::Widget *ParamComboBox::get_widget(SPDocument * doc, Inkscape::XML::Node * n
Glib::ustring settext;
for (GSList * list = choices; list != NULL; list = g_slist_next(list)) {
enumentry * entr = reinterpret_cast<enumentry *>(list->data);
- Glib::ustring text = entr->guitext;
+ Glib::ustring text = entr->text;
combo->append(text);
if ( _value && !entr->value.compare(_value) ) {
- settext = entr->guitext;
+ settext = entr->text;
}
}
if (!settext.empty()) {
diff --git a/src/extension/param/enum.h b/src/extension/param/enum.h
index f9d3d75f7..143a648d7 100644
--- a/src/extension/param/enum.h
+++ b/src/extension/param/enum.h
@@ -38,11 +38,9 @@ private:
public:
ParamComboBox(const gchar * name,
- const gchar * guitext,
- const gchar * desc,
- const Parameter::_scope_t scope,
- bool gui_hidden,
- const gchar * gui_tip,
+ const gchar * text,
+ const gchar * description,
+ bool hidden,
int indent,
Inkscape::Extension::Extension * ext,
Inkscape::XML::Node * xml);
@@ -60,9 +58,9 @@ public:
const gchar * set (const gchar * in, SPDocument * doc, Inkscape::XML::Node * node);
/**
- * @returns true if guitext is part of this enum
+ * @returns true if text is part of this enum
*/
- bool contains(const gchar * guitext, SPDocument const * /*doc*/, Inkscape::XML::Node const * /*node*/) const;
+ bool contains(const gchar * text, SPDocument const * /*doc*/, Inkscape::XML::Node const * /*node*/) const;
void changed (void);
}; /* class ParamComboBox */
diff --git a/src/extension/param/float.cpp b/src/extension/param/float.cpp
index e3fdba826..69283a572 100644
--- a/src/extension/param/float.cpp
+++ b/src/extension/param/float.cpp
@@ -15,7 +15,6 @@
#include <gtkmm/scale.h>
#include "ui/widget/spinbutton.h"
#include "ui/widget/spin-scale.h"
-#include <glib/gi18n.h>
#include "xml/node.h"
#include "extension/extension.h"
@@ -28,16 +27,14 @@ namespace Extension {
/** Use the superclass' allocator and set the \c _value. */
ParamFloat::ParamFloat(const gchar * name,
- const gchar * guitext,
- const gchar * desc,
- const Parameter::_scope_t scope,
- bool gui_hidden,
- const gchar * gui_tip,
+ const gchar * text,
+ const gchar * description,
+ bool hidden,
int indent,
Inkscape::Extension::Extension * ext,
Inkscape::XML::Node * xml,
AppearanceMode mode)
- : Parameter(name, guitext, desc, scope, gui_hidden, gui_tip, indent, ext)
+ : Parameter(name, text, description, hidden, indent, ext)
, _value(0.0)
, _mode(mode)
, _min(0.0)
@@ -170,7 +167,7 @@ void ParamFloatAdjustment::val_changed(void)
*/
Gtk::Widget * ParamFloat::get_widget(SPDocument * doc, Inkscape::XML::Node * node, sigc::signal<void> * changeSignal)
{
- if (_gui_hidden) {
+ if (_hidden) {
return NULL;
}
@@ -181,7 +178,7 @@ Gtk::Widget * ParamFloat::get_widget(SPDocument * doc, Inkscape::XML::Node * nod
if (_mode == FULL) {
- UI::Widget::SpinScale *scale = new UI::Widget::SpinScale(_(_text), fadjust, _precision);
+ UI::Widget::SpinScale *scale = new UI::Widget::SpinScale(_text, fadjust, _precision);
scale->set_size_request(400, -1);
scale->show();
hbox->pack_start(*scale, true, true);
@@ -189,7 +186,7 @@ Gtk::Widget * ParamFloat::get_widget(SPDocument * doc, Inkscape::XML::Node * nod
}
else if (_mode == MINIMAL) {
- Gtk::Label * label = Gtk::manage(new Gtk::Label(_(_text), Gtk::ALIGN_START));
+ Gtk::Label * label = Gtk::manage(new Gtk::Label(_text, Gtk::ALIGN_START));
label->show();
hbox->pack_start(*label, true, true);
diff --git a/src/extension/param/float.h b/src/extension/param/float.h
index 7fd86cea7..d58253ccb 100644
--- a/src/extension/param/float.h
+++ b/src/extension/param/float.h
@@ -30,11 +30,9 @@ public:
FULL, MINIMAL
};
ParamFloat(const gchar * name,
- const gchar * guitext,
- const gchar * desc,
- const Parameter::_scope_t scope,
- bool gui_hidden,
- const gchar * gui_tip,
+ const gchar * text,
+ const gchar * description,
+ bool hidden,
int indent,
Inkscape::Extension::Extension * ext,
Inkscape::XML::Node * xml,
diff --git a/src/extension/param/int.cpp b/src/extension/param/int.cpp
index 538ddc08d..357f98590 100644
--- a/src/extension/param/int.cpp
+++ b/src/extension/param/int.cpp
@@ -15,7 +15,6 @@
#include <gtkmm/scale.h>
#include "ui/widget/spinbutton.h"
#include "ui/widget/spin-scale.h"
-#include <glib/gi18n.h>
#include "xml/node.h"
#include "extension/extension.h"
@@ -28,16 +27,14 @@ namespace Extension {
/** Use the superclass' allocator and set the \c _value. */
ParamInt::ParamInt(const gchar * name,
- const gchar * guitext,
- const gchar * desc,
- const Parameter::_scope_t scope,
- bool gui_hidden,
- const gchar * gui_tip,
+ const gchar * text,
+ const gchar * description,
+ bool hidden,
int indent,
Inkscape::Extension::Extension * ext,
Inkscape::XML::Node * xml,
AppearanceMode mode)
- : Parameter(name, guitext, desc, scope, gui_hidden, gui_tip, indent, ext)
+ : Parameter(name, text, description, hidden, indent, ext)
, _value(0)
, _mode(mode)
, _min(0)
@@ -151,7 +148,7 @@ void ParamIntAdjustment::val_changed(void)
Gtk::Widget *
ParamInt::get_widget (SPDocument * doc, Inkscape::XML::Node * node, sigc::signal<void> * changeSignal)
{
- if (_gui_hidden) {
+ if (_hidden) {
return NULL;
}
@@ -162,14 +159,13 @@ ParamInt::get_widget (SPDocument * doc, Inkscape::XML::Node * node, sigc::signal
if (_mode == FULL) {
- UI::Widget::SpinScale *scale = new UI::Widget::SpinScale(_(_text), fadjust, 0);
+ UI::Widget::SpinScale *scale = new UI::Widget::SpinScale(_text, fadjust, 0);
scale->set_size_request(400, -1);
scale->show();
hbox->pack_start(*scale, true, true);
}
else if (_mode == MINIMAL) {
-
- Gtk::Label * label = Gtk::manage(new Gtk::Label(_(_text), Gtk::ALIGN_START));
+ Gtk::Label * label = Gtk::manage(new Gtk::Label(_text, Gtk::ALIGN_START));
label->show();
hbox->pack_start(*label, true, true);
diff --git a/src/extension/param/int.h b/src/extension/param/int.h
index 40c0395ec..fcb1ef3f1 100644
--- a/src/extension/param/int.h
+++ b/src/extension/param/int.h
@@ -30,11 +30,9 @@ public:
FULL, MINIMAL
};
ParamInt(const gchar * name,
- const gchar * guitext,
- const gchar * desc,
- const Parameter::_scope_t scope,
- bool gui_hidden,
- const gchar * gui_tip,
+ const gchar * text,
+ const gchar * description,
+ bool hidden,
int indent,
Inkscape::Extension::Extension * ext,
Inkscape::XML::Node * xml,
diff --git a/src/extension/param/notebook.cpp b/src/extension/param/notebook.cpp
index de86d1005..4e94b5216 100644
--- a/src/extension/param/notebook.cpp
+++ b/src/extension/param/notebook.cpp
@@ -55,31 +55,27 @@ public:
static ParamNotebookPage * makepage (Inkscape::XML::Node * in_repr, Inkscape::Extension::Extension * in_ext);
ParamNotebookPage(const gchar * name,
- const gchar * guitext,
- const gchar * desc,
- const Parameter::_scope_t scope,
- bool gui_hidden,
- const gchar * gui_tip,
+ const gchar * text,
+ const gchar * description,
+ bool hidden,
Inkscape::Extension::Extension * ext,
Inkscape::XML::Node * xml);
~ParamNotebookPage(void);
Gtk::Widget * get_widget(SPDocument * doc, Inkscape::XML::Node * node, sigc::signal<void> * changeSignal);
void paramString (std::list <std::string> &list);
- gchar * get_guitext (void) {return _text;};
+ gchar * get_text (void) {return _text;};
Parameter * get_param (const gchar * name);
}; /* class ParamNotebookPage */
ParamNotebookPage::ParamNotebookPage(const gchar * name,
- const gchar * guitext,
- const gchar * desc,
- const Parameter::_scope_t scope,
- bool gui_hidden,
- const gchar * gui_tip,
+ const gchar * text,
+ const gchar * description,
+ bool hidden,
Inkscape::Extension::Extension * ext,
Inkscape::XML::Node * xml)
- : Parameter(name, guitext, desc, scope, gui_hidden, gui_tip, /*indent*/ 0, ext)
+ : Parameter(name, text, description, hidden, /*indent*/ 0, ext)
{
parameters = NULL;
@@ -151,30 +147,23 @@ ParamNotebookPage *
ParamNotebookPage::makepage (Inkscape::XML::Node * in_repr, Inkscape::Extension::Extension * in_ext)
{
const char * name;
- const char * guitext;
- const char * desc;
- const char * scope_str;
- Parameter::_scope_t scope = Parameter::SCOPE_USER;
- bool gui_hidden = false;
- const char * gui_hide;
- const char * gui_tip;
+ const char * text;
+ const char * description;
+ bool hidden = false;
+ const char * hide;
name = in_repr->attribute("name");
- guitext = in_repr->attribute("gui-text");
- if (guitext == NULL)
- guitext = in_repr->attribute("_gui-text");
- gui_tip = in_repr->attribute("gui-tip");
- if (gui_tip == NULL)
- gui_tip = in_repr->attribute("_gui-tip");
- desc = in_repr->attribute("gui-description");
- if (desc == NULL)
- desc = in_repr->attribute("_gui-description");
- scope_str = in_repr->attribute("scope");
- gui_hide = in_repr->attribute("gui-hidden");
- if (gui_hide != NULL) {
- if (strcmp(gui_hide, "1") == 0 ||
- strcmp(gui_hide, "true") == 0) {
- gui_hidden = true;
+ text = in_repr->attribute("gui-text");
+ if (text == NULL)
+ text = in_repr->attribute("_gui-text");
+ description = in_repr->attribute("gui-description");
+ if (description == NULL)
+ description = in_repr->attribute("_gui-description");
+ hide = in_repr->attribute("gui-hidden");
+ if (hide != NULL) {
+ if (strcmp(hide, "1") == 0 ||
+ strcmp(hide, "true") == 0) {
+ hidden = true;
}
/* else stays false */
}
@@ -184,17 +173,7 @@ ParamNotebookPage::makepage (Inkscape::XML::Node * in_repr, Inkscape::Extension:
return NULL;
}
- if (scope_str != NULL) {
- if (!strcmp(scope_str, "user")) {
- scope = Parameter::SCOPE_USER;
- } else if (!strcmp(scope_str, "document")) {
- scope = Parameter::SCOPE_DOCUMENT;
- } else if (!strcmp(scope_str, "node")) {
- scope = Parameter::SCOPE_NODE;
- }
- }
-
- ParamNotebookPage * page = new ParamNotebookPage(name, guitext, desc, scope, gui_hidden, gui_tip, in_ext, in_repr);
+ ParamNotebookPage * page = new ParamNotebookPage(name, text, description, hidden, in_ext, in_repr);
/* Note: page could equal NULL */
return page;
@@ -209,7 +188,7 @@ ParamNotebookPage::makepage (Inkscape::XML::Node * in_repr, Inkscape::Extension:
*/
Gtk::Widget * ParamNotebookPage::get_widget(SPDocument * doc, Inkscape::XML::Node * node, sigc::signal<void> * changeSignal)
{
- if (_gui_hidden) {
+ if (_hidden) {
return NULL;
}
@@ -232,7 +211,7 @@ Gtk::Widget * ParamNotebookPage::get_widget(SPDocument * doc, Inkscape::XML::Nod
gchar const * tip = param->get_tooltip();
if (tip) {
- widg->set_tooltip_text(_(tip));
+ widg->set_tooltip_text(tip);
} else {
widg->set_tooltip_text("");
widg->set_has_tooltip(false);
@@ -247,15 +226,13 @@ Gtk::Widget * ParamNotebookPage::get_widget(SPDocument * doc, Inkscape::XML::Nod
ParamNotebook::ParamNotebook(const gchar * name,
- const gchar * guitext,
- const gchar * desc,
- const Parameter::_scope_t scope,
- bool gui_hidden,
- const gchar * gui_tip,
+ const gchar * text,
+ const gchar * description,
+ bool hidden,
int indent,
Inkscape::Extension::Extension * ext,
Inkscape::XML::Node * xml)
- : Parameter(name, guitext, desc, scope, gui_hidden, gui_tip, indent, ext)
+ : Parameter(name, text, description, hidden, indent, ext)
{
pages = NULL;
@@ -446,7 +423,7 @@ Parameter *ParamNotebookPage::get_param(const gchar * name)
*/
Gtk::Widget * ParamNotebook::get_widget(SPDocument * doc, Inkscape::XML::Node * node, sigc::signal<void> * changeSignal)
{
- if (_gui_hidden) {
+ if (_hidden) {
return NULL;
}
@@ -459,7 +436,7 @@ Gtk::Widget * ParamNotebook::get_widget(SPDocument * doc, Inkscape::XML::Node *
i++;
ParamNotebookPage * page = reinterpret_cast<ParamNotebookPage *>(list->data);
Gtk::Widget * widg = page->get_widget(doc, node, changeSignal);
- nb->append_page(*widg, _(page->get_guitext()));
+ nb->append_page(*widg, _(page->get_text()));
if (!strcmp(_value, page->name())) {
pagenr = i; // this is the page to be displayed?
}
diff --git a/src/extension/param/notebook.h b/src/extension/param/notebook.h
index 278c4de12..8475de61d 100644
--- a/src/extension/param/notebook.h
+++ b/src/extension/param/notebook.h
@@ -42,11 +42,9 @@ private:
notebook */
public:
ParamNotebook(const gchar * name,
- const gchar * guitext,
- const gchar * desc,
- const Parameter::_scope_t scope,
- bool gui_hidden,
- const gchar * gui_tip,
+ const gchar * text,
+ const gchar * description,
+ bool hidden,
int indent,
Inkscape::Extension::Extension * ext,
Inkscape::XML::Node * xml);
diff --git a/src/extension/param/parameter.cpp b/src/extension/param/parameter.cpp
index 0eb491078..5c4fe591f 100644
--- a/src/extension/param/parameter.cpp
+++ b/src/extension/param/parameter.cpp
@@ -62,25 +62,39 @@ Parameter *Parameter::make(Inkscape::XML::Node *in_repr, Inkscape::Extension::Ex
}
}
- const char *guitext = in_repr->attribute("gui-text");
- if (guitext == NULL) {
- guitext = in_repr->attribute("_gui-text");
- }
- const char *gui_tip = in_repr->attribute("gui-tip");
- if (gui_tip == NULL) {
- gui_tip = in_repr->attribute("_gui-tip");
+ const char *text = in_repr->attribute("gui-text");
+ if (text == NULL) {
+ text = in_repr->attribute("_gui-text");
+ if (text == NULL) {
+ // text = ""; // propably better to require devs to explicitly set an empty gui-text if this is what they want
+ } else {
+ const char *context = in_repr->attribute("msgctxt");
+ if (context != NULL) {
+ text = g_dpgettext2(NULL, context, text);
+ } else {
+ text = _(text);
+ }
+ }
}
- const char *desc = in_repr->attribute("gui-description");
- if (desc == NULL) {
- desc = in_repr->attribute("_gui-description");
+ const char *description = in_repr->attribute("gui-description");
+ if (description == NULL) {
+ description = in_repr->attribute("_gui-description");
+ if (description != NULL) {
+ const char *context = in_repr->attribute("msgctxt");
+ if (context != NULL) {
+ description = g_dpgettext2(NULL, context, description);
+ } else {
+ description = _(description);
+ }
+ }
}
- bool gui_hidden = false;
+ bool hidden = false;
{
const char *gui_hide = in_repr->attribute("gui-hidden");
if (gui_hide != NULL) {
if (strcmp(gui_hide, "1") == 0 ||
strcmp(gui_hide, "true") == 0) {
- gui_hidden = true;
+ hidden = true;
}
/* else stays false */
}
@@ -98,44 +112,30 @@ Parameter *Parameter::make(Inkscape::XML::Node *in_repr, Inkscape::Extension::Ex
}
const gchar* appearance = in_repr->attribute("appearance");
- Parameter::_scope_t scope = Parameter::SCOPE_USER;
- {
- const char *scope_str = in_repr->attribute("scope");
- if (scope_str != NULL) {
- if (!strcmp(scope_str, "user")) {
- scope = Parameter::SCOPE_USER;
- } else if (!strcmp(scope_str, "document")) {
- scope = Parameter::SCOPE_DOCUMENT;
- } else if (!strcmp(scope_str, "node")) {
- scope = Parameter::SCOPE_NODE;
- }
- }
- }
-
Parameter * param = NULL;
if (!strcmp(type, "boolean")) {
- param = new ParamBool(name, guitext, desc, scope, gui_hidden, gui_tip, indent, in_ext, in_repr);
+ param = new ParamBool(name, text, description, hidden, indent, in_ext, in_repr);
} else if (!strcmp(type, "int")) {
if (appearance && !strcmp(appearance, "full")) {
- param = new ParamInt(name, guitext, desc, scope, gui_hidden, gui_tip, indent, in_ext, in_repr, ParamInt::FULL);
+ param = new ParamInt(name, text, description, hidden, indent, in_ext, in_repr, ParamInt::FULL);
} else {
- param = new ParamInt(name, guitext, desc, scope, gui_hidden, gui_tip, indent, in_ext, in_repr, ParamInt::MINIMAL);
+ param = new ParamInt(name, text, description, hidden, indent, in_ext, in_repr, ParamInt::MINIMAL);
}
} else if (!strcmp(type, "float")) {
if (appearance && !strcmp(appearance, "full")) {
- param = new ParamFloat(name, guitext, desc, scope, gui_hidden, gui_tip, indent, in_ext, in_repr, ParamFloat::FULL);
+ param = new ParamFloat(name, text, description, hidden, indent, in_ext, in_repr, ParamFloat::FULL);
} else {
- param = new ParamFloat(name, guitext, desc, scope, gui_hidden, gui_tip, indent, in_ext, in_repr, ParamFloat::MINIMAL);
+ param = new ParamFloat(name, text, description, hidden, indent, in_ext, in_repr, ParamFloat::MINIMAL);
}
} else if (!strcmp(type, "string")) {
- param = new ParamString(name, guitext, desc, scope, gui_hidden, gui_tip, indent, in_ext, in_repr);
+ param = new ParamString(name, text, description, hidden, indent, in_ext, in_repr);
gchar const * max_length = in_repr->attribute("max_length");
if (max_length != NULL) {
ParamString * ps = dynamic_cast<ParamString *>(param);
ps->setMaxLength(atoi(max_length));
}
} else if (!strcmp(type, "description")) {
- ParamDescription::AppearanceMode appearance_mode = ParamDescription::DESC;
+ ParamDescription::AppearanceMode appearance_mode = ParamDescription::DESCRIPTION;
if (appearance) {
if (!strcmp(appearance, "header")) {
appearance_mode = ParamDescription::HEADER;
@@ -143,19 +143,19 @@ Parameter *Parameter::make(Inkscape::XML::Node *in_repr, Inkscape::Extension::Ex
appearance_mode = ParamDescription::URL;
}
}
- param = new ParamDescription(name, guitext, desc, scope, gui_hidden, gui_tip, indent, in_ext, in_repr, appearance_mode);
+ param = new ParamDescription(name, text, description, hidden, indent, in_ext, in_repr, appearance_mode);
} else if (!strcmp(type, "enum")) {
- param = new ParamComboBox(name, guitext, desc, scope, gui_hidden, gui_tip, indent, in_ext, in_repr);
+ param = new ParamComboBox(name, text, description, hidden, indent, in_ext, in_repr);
} else if (!strcmp(type, "notebook")) {
- param = new ParamNotebook(name, guitext, desc, scope, gui_hidden, gui_tip, indent, in_ext, in_repr);
+ param = new ParamNotebook(name, text, description, hidden, indent, in_ext, in_repr);
} else if (!strcmp(type, "optiongroup")) {
if (appearance && !strcmp(appearance, "minimal")) {
- param = new ParamRadioButton(name, guitext, desc, scope, gui_hidden, gui_tip, indent, in_ext, in_repr, ParamRadioButton::MINIMAL);
+ param = new ParamRadioButton(name, text, description, hidden, indent, in_ext, in_repr, ParamRadioButton::MINIMAL);
} else {
- param = new ParamRadioButton(name, guitext, desc, scope, gui_hidden, gui_tip, indent, in_ext, in_repr, ParamRadioButton::FULL);
+ param = new ParamRadioButton(name, text, description, hidden, indent, in_ext, in_repr, ParamRadioButton::FULL);
}
} else if (!strcmp(type, "color")) {
- param = new ParamColor(name, guitext, desc, scope, gui_hidden, gui_tip, indent, in_ext, in_repr);
+ param = new ParamColor(name, text, description, hidden, indent, in_ext, in_repr);
}
// Note: param could equal NULL
@@ -302,29 +302,24 @@ Parameter::set_color (guint32 in, SPDocument * doc, Inkscape::XML::Node * node)
/** Oop, now that we need a parameter, we need it's name. */
-Parameter::Parameter(gchar const * name, gchar const * guitext, gchar const * desc, const Parameter::_scope_t scope, bool gui_hidden, gchar const * gui_tip, int indent, Inkscape::Extension::Extension * ext) :
- _desc(0),
- _scope(scope),
+Parameter::Parameter(gchar const * name, gchar const * text, gchar const * description, bool hidden, int indent, Inkscape::Extension::Extension * ext) :
+ _description(0),
_text(0),
- _gui_hidden(gui_hidden),
- _gui_tip(0),
+ _hidden(hidden),
_indent(indent),
- extension(ext),
+ _extension(ext),
_name(0)
{
if (name != NULL) {
_name = g_strdup(name);
}
- if (desc != NULL) {
- _desc = g_strdup(desc);
-// printf("Adding description: '%s' on '%s'\n", _desc, _name);
- }
- if (gui_tip != NULL) {
- _gui_tip = g_strdup(gui_tip);
+
+ if (description != NULL) {
+ _description = g_strdup(description);
}
- if (guitext != NULL) {
- _text = g_strdup(guitext);
+ if (text != NULL) {
+ _text = g_strdup(text);
} else {
_text = g_strdup(name);
}
@@ -333,21 +328,19 @@ Parameter::Parameter(gchar const * name, gchar const * guitext, gchar const * de
}
/** Oop, now that we need a parameter, we need it's name. */
-Parameter::Parameter (gchar const * name, gchar const * guitext, Inkscape::Extension::Extension * ext) :
- _desc(0),
- _scope(Parameter::SCOPE_USER),
+Parameter::Parameter (gchar const * name, gchar const * text, Inkscape::Extension::Extension * ext) :
+ _description(0),
_text(0),
- _gui_hidden(false),
- _gui_tip(0),
+ _hidden(false),
_indent(0),
- extension(ext),
+ _extension(ext),
_name(0)
{
if (name != NULL) {
_name = g_strdup(name);
}
- if (guitext != NULL) {
- _text = g_strdup(guitext);
+ if (text != NULL) {
+ _text = g_strdup(text);
} else {
_text = g_strdup(name);
}
@@ -363,16 +356,13 @@ Parameter::~Parameter(void)
g_free(_text);
_text = 0;
- g_free(_gui_tip);
- _gui_tip = 0;
-
- g_free(_desc);
- _desc = 0;
+ g_free(_description);
+ _description = 0;
}
gchar *Parameter::pref_name(void) const
{
- return g_strdup_printf("%s.%s", extension->get_id(), _name);
+ return g_strdup_printf("%s.%s", _extension->get_id(), _name);
}
Inkscape::XML::Node *
@@ -405,7 +395,7 @@ Inkscape::XML::Node *Parameter::document_param_node(SPDocument * doc)
child != NULL;
child = child->next()) {
if ((GQuark)child->code() == name_quark &&
- !strcmp(child->attribute("extension"), extension->get_id())) {
+ !strcmp(child->attribute("extension"), _extension->get_id())) {
params = child;
break;
}
@@ -413,7 +403,7 @@ Inkscape::XML::Node *Parameter::document_param_node(SPDocument * doc)
if (params == NULL) {
params = xml_doc->createElement("inkscape:extension-param");
- params->setAttribute("extension", extension->get_id());
+ params->setAttribute("extension", _extension->get_id());
defs->appendChild(params);
Inkscape::GC::release(params);
}
diff --git a/src/extension/param/parameter.h b/src/extension/param/parameter.h
index c107f24f9..96cc055d8 100644
--- a/src/extension/param/parameter.h
+++ b/src/extension/param/parameter.h
@@ -47,26 +47,16 @@ extern Glib::ustring const extension_pref_root;
*/
class Parameter {
-protected:
- /** List of possible scopes. */
- typedef enum {
- SCOPE_USER, /**< Parameter value is saved in the user's configuration file. (default) */
- SCOPE_DOCUMENT, /**< Parameter value is saved in the document. */
- SCOPE_NODE /**< Parameter value is attached to the node. */
- } _scope_t;
-
public:
Parameter(gchar const *name,
- gchar const *guitext,
- gchar const *desc,
- const Parameter::_scope_t scope,
- bool gui_hidden,
- gchar const *gui_tip,
+ gchar const *text,
+ gchar const *description,
+ bool hidden,
int indent,
Inkscape::Extension::Extension * ext);
Parameter(gchar const *name,
- gchar const *guitext,
+ gchar const *text,
Inkscape::Extension::Extension * ext);
virtual ~Parameter(void);
@@ -140,10 +130,10 @@ public:
virtual Gtk::Widget * get_widget(SPDocument * doc, Inkscape::XML::Node * node, sigc::signal<void> * changeSignal);
- gchar const * get_tooltip(void) const { return _desc; }
+ gchar const * get_tooltip(void) const { return _description; }
/** Indicates if the GUI for this parameter is hidden or not */
- bool get_gui_hidden() const { return _gui_hidden; }
+ bool get_hidden() const { return _hidden; }
/** Indentation level of the parameter */
int get_indent() const { return _indent; }
@@ -173,20 +163,14 @@ public:
protected:
- /** Description of the parameter. */
- gchar * _desc;
-
- /** Scope of the parameter. */
- _scope_t _scope;
-
- /** Text for the GUI selection of this. */
- gchar * _text;
+ /** Parameter text to show as the GUI label. */
+ gchar * _text;
- /** Whether the GUI is visible. */
- bool _gui_hidden;
+ /** Extended description of the parameter (crrently shown as tooltip on hover). */
+ gchar * _description;
- /** A tip for the GUI if there is one. */
- gchar * _gui_tip;
+ /** Whether the parameter is visible. */
+ bool _hidden;
/** Indentation level of the parameter. */
int _indent;
@@ -207,7 +191,7 @@ protected:
private:
/** Which extension is this parameter attached to. */
- Inkscape::Extension::Extension *extension;
+ Inkscape::Extension::Extension *_extension;
/** The name of this parameter. */
gchar *_name;
diff --git a/src/extension/param/radiobutton.cpp b/src/extension/param/radiobutton.cpp
index 178dc20e8..a08ba6860 100644
--- a/src/extension/param/radiobutton.cpp
+++ b/src/extension/param/radiobutton.cpp
@@ -41,33 +41,31 @@ namespace Inkscape {
namespace Extension {
/* For internal use only.
- Note that value and guitext MUST be non-NULL. This is ensured by newing only at one location in the code where non-NULL checks are made. */
+ Note that value and text MUST be non-NULL. This is ensured by newing only at one location in the code where non-NULL checks are made. */
class optionentry {
public:
- optionentry (Glib::ustring * val, Glib::ustring * text) {
+ optionentry (Glib::ustring * val, Glib::ustring * txt) {
value = val;
- guitext = text;
+ text = txt;
}
~optionentry() {
delete value;
- delete guitext;
+ delete text;
}
Glib::ustring * value;
- Glib::ustring * guitext;
+ Glib::ustring * text;
};
ParamRadioButton::ParamRadioButton(const gchar * name,
- const gchar * guitext,
- const gchar * desc,
- const Parameter::_scope_t scope,
- bool gui_hidden,
- const gchar * gui_tip,
+ const gchar * text,
+ const gchar * description,
+ bool hidden,
int indent,
Inkscape::Extension::Extension * ext,
Inkscape::XML::Node * xml,
AppearanceMode mode)
- : Parameter(name, guitext, desc, scope, gui_hidden, gui_tip, indent, ext)
+ : Parameter(name, text, description, hidden, indent, ext)
, _value(0)
, _mode(mode)
, choices(0)
@@ -79,7 +77,7 @@ ParamRadioButton::ParamRadioButton(const gchar * name,
while (child_repr != NULL) {
char const * chname = child_repr->name();
if (!strcmp(chname, INKSCAPE_EXTENSION_NS "option") || !strcmp(chname, INKSCAPE_EXTENSION_NS "_option")) {
- Glib::ustring * newguitext = NULL;
+ Glib::ustring * newtext = NULL;
Glib::ustring * newvalue = NULL;
const char * contents = child_repr->firstChild()->content();
@@ -87,12 +85,12 @@ ParamRadioButton::ParamRadioButton(const gchar * name,
// don't translate when 'item' but do translate when '_option'
if (!strcmp(chname, INKSCAPE_EXTENSION_NS "_option")) {
if (child_repr->attribute("msgctxt") != NULL) {
- newguitext = new Glib::ustring(g_dpgettext2(NULL, child_repr->attribute("msgctxt"), contents));
+ newtext = new Glib::ustring(g_dpgettext2(NULL, child_repr->attribute("msgctxt"), contents));
} else {
- newguitext = new Glib::ustring(_(contents));
+ newtext = new Glib::ustring(_(contents));
}
} else {
- newguitext = new Glib::ustring(contents);
+ newtext = new Glib::ustring(contents);
}
} else {
continue;
@@ -106,8 +104,8 @@ ParamRadioButton::ParamRadioButton(const gchar * name,
newvalue = new Glib::ustring(contents);
}
- if ( (newguitext) && (newvalue) ) { // logical error if this is not true here
- choices = g_slist_append( choices, new optionentry(newvalue, newguitext) );
+ if ( (newtext) && (newvalue) ) { // logical error if this is not true here
+ choices = g_slist_append( choices, new optionentry(newvalue, newtext) );
}
}
child_repr = child_repr->next();
@@ -282,7 +280,7 @@ Glib::ustring ParamRadioButton::value_from_label(const Glib::ustring label)
for (GSList * list = choices; list != NULL; list = g_slist_next(list)) {
optionentry * entr = reinterpret_cast<optionentry *>(list->data);
- if ( !entr->guitext->compare(label) ) {
+ if ( !entr->text->compare(label) ) {
value = *(entr->value);
break;
}
@@ -297,7 +295,7 @@ Glib::ustring ParamRadioButton::value_from_label(const Glib::ustring label)
*/
Gtk::Widget * ParamRadioButton::get_widget(SPDocument * doc, Inkscape::XML::Node * node, sigc::signal<void> * changeSignal)
{
- if (_gui_hidden) {
+ if (_hidden) {
return NULL;
}
@@ -306,7 +304,7 @@ Gtk::Widget * ParamRadioButton::get_widget(SPDocument * doc, Inkscape::XML::Node
auto vbox = Gtk::manage(new Gtk::Box(Gtk::ORIENTATION_VERTICAL, 0));
vbox->set_homogeneous(false);
- Gtk::Label * label = Gtk::manage(new Gtk::Label(_(_text), Gtk::ALIGN_START, Gtk::ALIGN_START));
+ Gtk::Label * label = Gtk::manage(new Gtk::Label(_text, Gtk::ALIGN_START, Gtk::ALIGN_START));
label->show();
hbox->pack_start(*label, false, false);
@@ -323,7 +321,7 @@ Gtk::Widget * ParamRadioButton::get_widget(SPDocument * doc, Inkscape::XML::Node
Gtk::RadioButtonGroup group;
for (GSList * list = choices; list != NULL; list = g_slist_next(list)) {
optionentry * entr = reinterpret_cast<optionentry *>(list->data);
- Glib::ustring * text = entr->guitext;
+ Glib::ustring * text = entr->text;
switch ( _mode ) {
case MINIMAL:
{
diff --git a/src/extension/param/radiobutton.h b/src/extension/param/radiobutton.h
index 5e15dcb57..b91b11ea3 100644
--- a/src/extension/param/radiobutton.h
+++ b/src/extension/param/radiobutton.h
@@ -35,11 +35,9 @@ public:
};
ParamRadioButton(const gchar * name,
- const gchar * guitext,
- const gchar * desc,
- const Parameter::_scope_t scope,
- bool gui_hidden,
- const gchar * gui_tip,
+ const gchar * text,
+ const gchar * description,
+ bool hidden,
int indent,
Inkscape::Extension::Extension * ext,
Inkscape::XML::Node * xml,
diff --git a/src/extension/param/string.cpp b/src/extension/param/string.cpp
index 0c5238f99..51b5dfdf3 100644
--- a/src/extension/param/string.cpp
+++ b/src/extension/param/string.cpp
@@ -77,15 +77,13 @@ void ParamString::string(std::string &string) const
/** Initialize the object, to do that, copy the data. */
ParamString::ParamString(const gchar * name,
- const gchar * guitext,
- const gchar * desc,
- const Parameter::_scope_t scope,
- bool gui_hidden,
- const gchar * gui_tip,
+ const gchar * text,
+ const gchar * description,
+ bool hidden,
int indent,
Inkscape::Extension::Extension * ext,
Inkscape::XML::Node * xml)
- : Parameter(name, guitext, desc, scope, gui_hidden, gui_tip, indent, ext)
+ : Parameter(name, text, description, hidden, indent, ext)
, _value(NULL)
{
const char * defaultval = NULL;
@@ -164,12 +162,12 @@ void ParamStringEntry::changed_text(void)
*/
Gtk::Widget * ParamString::get_widget(SPDocument * doc, Inkscape::XML::Node * node, sigc::signal<void> * changeSignal)
{
- if (_gui_hidden) {
+ if (_hidden) {
return NULL;
}
Gtk::HBox * hbox = Gtk::manage(new Gtk::HBox(false, Parameter::GUI_PARAM_WIDGETS_SPACING));
- Gtk::Label * label = Gtk::manage(new Gtk::Label(_(_text), Gtk::ALIGN_START));
+ Gtk::Label * label = Gtk::manage(new Gtk::Label(_text, Gtk::ALIGN_START));
label->show();
hbox->pack_start(*label, false, false);
diff --git a/src/extension/param/string.h b/src/extension/param/string.h
index f5412ebcc..d338f83b9 100644
--- a/src/extension/param/string.h
+++ b/src/extension/param/string.h
@@ -24,11 +24,9 @@ private:
gint _max_length;
public:
ParamString(const gchar * name,
- const gchar * guitext,
- const gchar * desc,
- const Parameter::_scope_t scope,
- bool gui_hidden,
- const gchar * gui_tip,
+ const gchar * text,
+ const gchar * description,
+ bool hidden,
int indent,
Inkscape::Extension::Extension * ext,
Inkscape::XML::Node * xml);
diff --git a/src/extension/prefdialog.cpp b/src/extension/prefdialog.cpp
index 2bdbb081e..92ddd3050 100644
--- a/src/extension/prefdialog.cpp
+++ b/src/extension/prefdialog.cpp
@@ -246,7 +246,7 @@ PrefDialog::on_response (int signal) {
#include "internal/clear-n_.h"
-const char * PrefDialog::live_param_xml = "<param name=\"__live_effect__\" type=\"boolean\" _gui-text=\"" N_("Live preview") "\" gui-description=\"" N_("Is the effect previewed live on canvas?") "\" scope=\"user\">false</param>";
+const char * PrefDialog::live_param_xml = "<param name=\"__live_effect__\" type=\"boolean\" _gui-text=\"" N_("Live preview") "\" gui-description=\"" N_("Is the effect previewed live on canvas?") "\">false</param>";
}; }; /* namespace Inkscape, Extension */