Permalink
Browse files

Update SVG-Edit

  • Loading branch information...
distler committed Feb 27, 2018
1 parent e9afd4b commit a89b60821956c1ab27fdcbd7c6af8453169990f4
@@ -150,7 +150,15 @@ var supportsNativeSVGTransformLists_ = (function() {
var rxform = rect.transform.baseVal;
var t1 = svg.createSVGTransform();
rxform.appendItem(t1);
return rxform.getItem(0) == t1;
var r1 = rxform.getItem(0);
return r1 instanceof SVGTransform && t1 instanceof SVGTransform &&
r1.type == t1.type && r1.angle == t1.angle &&
r1.matrix.a == t1.matrix.a &&
r1.matrix.b == t1.matrix.b &&
r1.matrix.c == t1.matrix.c &&
r1.matrix.d == t1.matrix.d &&
r1.matrix.e == t1.matrix.e &&
r1.matrix.f == t1.matrix.f;
}());
// Public API
@@ -167,12 +167,25 @@ svgEditor.addExtension("Connector", function(S) {
add_this = true;
}
}
var start = elData(this, "c_start");
var end = elData(this, "c_end");
var parts = [getElem(start), getElem(end)];
// Grab the ends
var parts = [];
['start', 'end'].forEach(function (pos, i) {
var key = 'c_' + pos;
var part = elData(this, key);
if(part == null) {
part = document.getElementById(
this.attributes['se:connector'].value.split(' ')[i]
);
elData(this, 'c_'+pos, part.id);
elData(this, pos+'_bb', svgCanvas.getStrokedBBox([part]));
} else part = document.getElementById(part);
parts.push(part);
}.bind(this));
for (i = 0; i < 2; i++) {
var c_elem = parts[i];
add_this = false;
// The connected element might be part of a selected group
$(c_elem).parents().each(add);
@@ -261,7 +274,6 @@ svgEditor.addExtension("Connector", function(S) {
var mse = svgCanvas.moveSelectedElements;
svgCanvas.moveSelectedElements = function() {
svgCanvas.removeFromSelection($(conn_sel).toArray());
var cmd = mse.apply(this, arguments);
updateConnectors();
return cmd;
@@ -580,6 +592,21 @@ svgEditor.addExtension("Connector", function(S) {
updateConnectors();
}
},
IDsUpdated: function(input) {
var remove = [];
input.elems.forEach(function(elem){
if('se:connector' in elem.attr) {
elem.attr['se:connector'] = elem.attr['se:connector'].split(' ')
.map(function(oldID){ return input.changes[oldID] }).join(' ');
// Check validity - the field would be something like 'svg_21 svg_22', but
// if one end is missing, it would be 'svg_21' and therefore fail this test
if(!/. ./.test(elem.attr['se:connector']))
remove.push(elem.attr.id);
}
});
return {remove: remove};
},
toolButtonStateUpdate: function(opts) {
if (opts.nostroke) {
if ($('#mode_connect').hasClass('tool_button_current')) {
@@ -9,36 +9,36 @@ svgEditor.readLang({
"key_del": "Löschen",
"key_down": "nach unten",
"key_up": "nach oben",
"more_opts": "More Options",
"more_opts": "Mehr Optionen",
"url": "URL",
"width": "Breite",
"height": "Höhe"
},
misc: {
"powered_by": "angetrieben durch"
"powered_by": "powered by"
},
ui: {
"toggle_stroke_tools": "Zeige/Verberge weitere Linien Werkzeuge",
"toggle_stroke_tools": "Zeige/Verberge weitere Linien-Werkzeuge",
"palette_info": "Klick zum Ändern der Füllfarbe, Shift-Klick zum Ändern der Linienfarbe",
"zoom_level": "vergrößern",
"panel_drag": "Drag left/right to resize side panel"
"panel_drag": "Nach links/rechts ziehen, um die Größe vom Seitenpanel zu ändern"
},
properties: {
"id": "Identify the element",
"id": "Element identifizieren",
"fill_color": "Füllfarbe ändern",
"stroke_color": "Linienfarbe ändern",
"stroke_style": "Linienstil ändern",
"stroke_width": "Linienbreite ändern",
"pos_x": "Ändere die X Koordinate",
"pos_y": "Ändere die Y Koordinate",
"pos_x": "Ändere die X-Koordinate",
"pos_y": "Ändere die Y-Koordinate",
"linecap_butt": "Form der Linienendung: Stumpf",
"linecap_round": "Form der Linienendung: Rund",
"linecap_square": "Form der Linienendung: Rechteckig",
"linejoin_bevel": "Zusammentreffen von zwei Linien: abgeschrägte Kante",
"linejoin_miter": "Zusammentreffen von zwei Linien: Gehrung",
"linejoin_round": "Zusammentreffen von zwei Linien: Rund",
"angle": "Drehwinkel ändern",
"blur": "Ändere Gaußschen Weichzeichner Wert",
"blur": "Ändere Wert des Gaußschen Weichzeichners",
"opacity": "Opazität des ausgewählten Objekts ändern",
"circle_cx": "Kreiszentrum (cx) ändern",
"circle_cy": "Kreiszentrum (cy) ändern",
@@ -57,8 +57,8 @@ svgEditor.readLang({
"image_width": "Bildbreite ändern",
"image_height": "Bildhöhe ändern",
"image_url": "URL ändern",
"node_x": "Ändere die X Koordinate des Knoten",
"node_y": "Ändere die Y Koordinate des Knoten",
"node_x": "Ändere die X-Koordinate des Knoten",
"node_y": "Ändere die Y-Koordinate des Knoten",
"seg_type": "Ändere den Typ des Segments",
"straight_segments": "Gerade",
"curve_segments": "Kurve",
@@ -77,7 +77,7 @@ svgEditor.readLang({
"fit_to_canvas": "An die Zeichenfläche anpassen",
"fit_to_layer_content": "An Inhalt der Ebene anpassen",
"fit_to_sel": "An die Auswahl anpassen",
"align_relative_to": "Relativ zu einem anderem Objekt ausrichten ...",
"align_relative_to": "Relativ zu einem anderem Objekt ausrichten ",
"relativeTo": "im Vergleich zu:",
"page": "Seite",
"largest_object": "größtes Objekt",
@@ -88,7 +88,7 @@ svgEditor.readLang({
"export_img": "Export",
"save_doc": "Bild speichern",
"import_doc": "Importiere SVG",
"align_to_page": "Align Element to Page",
"align_to_page": "Element an Seite ausrichten",
"align_bottom": "Unten ausrichten",
"align_center": "Zentriert ausrichten",
"align_left": "Linksbündig ausrichten",
@@ -99,52 +99,52 @@ svgEditor.readLang({
"mode_fhpath": "Freihandlinien zeichnen",
"mode_line": "Linien zeichnen",
"mode_connect": "Verbinde zwei Objekte",
"mode_rect": "Rectangle Tool",
"mode_square": "Square Tool",
"mode_fhrect": "Freihand Rechteck",
"mode_rect": "Rechteck-Werkzeug",
"mode_square": "Quadrat-Werkzeug",
"mode_fhrect": "Freihand-Rechteck",
"mode_ellipse": "Ellipse",
"mode_circle": "Kreis",
"mode_fhellipse": "Freihand Ellipse",
"mode_fhellipse": "Freihand-Ellipse",
"mode_path": "Pfad zeichnen",
"mode_shapelib": "Form-Bibliothek",
"mode_text": "Text erstellen und bearbeiten",
"mode_image": "Bild einfügen",
"mode_zoom": "Zoomfaktor vergrößern oder verringern",
"mode_eyedropper": "Ableger",
"mode_eyedropper": "Eye Dropper Werkzeug",
"no_embed": "Hinweis: Dieses Bild kann nicht eingebettet werden. Eine Anzeige hängt von diesem Pfad ab.",
"undo": "Rückgängig",
"redo": "Wiederherstellen",
"tool_source": "Quellecode bearbeiten",
"wireframe_mode": "Drahtmodell Modus",
"tool_source": "Quellcode bearbeiten",
"wireframe_mode": "Drahtmodell-Modus",
"toggle_grid": "Zeige/Verstecke Gitternetz",
"clone": "Klone Element(e)",
"del": "Lösche Element(e)",
"group_elements": "Gruppieren Element(e)",
"make_link": "Make (hyper)link",
"set_link_url": "Set link URL (leave empty to remove)",
"clone": "Element(e) klonen",
"del": "Element(e) löschen",
"group_elements": "Element(e) gruppieren",
"make_link": "Link erstellen",
"set_link_url": "Link setzen (leer lassen zum Entfernen)",
"to_path": "Gewähltes Objekt in einen Pfad konvertieren",
"reorient_path": "Neuausrichtung des Pfades",
"ungroup": "Gruppierung aufheben",
"docprops": "Dokument-Eigenschaften",
"imagelib": "Bilder-Bibliothek",
"move_bottom": "Die gewählten Objekte nach ganz unten schieben",
"move_top": "Die gewählten Objekte nach ganz oben anheben",
"move_bottom": "Die gewählten Objekte nach ganz unten verschieben",
"move_top": "Die gewählten Objekte nach ganz oben verschieben",
"node_clone": "Klone den Knoten",
"node_delete": "Lösche den Knoten",
"node_link": "Gekoppelte oder separate Kontroll Punkte für die Bearbeitung des Pfades",
"node_link": "Gekoppelte oder separate Kontrollpunkte für die Bearbeitung des Pfades",
"add_subpath": "Teilpfad hinzufügen",
"openclose_path": "Öffne/Verbinde Unterpfad",
"source_save": "Änderungen akzeptieren",
"cut": "Ausschneiden",
"copy": "Kopieren",
"paste": "Einfügen",
"paste_in_place": "An Originalposition einfügen",
"paste_in_place": "Bei Originalposition einfügen",
"delete": "Löschen",
"group": "Gruppieren",
"move_front": "Nach ganz oben anheben",
"move_up": "Anheben",
"move_down": "Absenken",
"move_back": "Nach ganz unten absenken"
"move_front": "Nach ganz oben verschieben",
"move_up": "Hochschieben",
"move_down": "Herunterschieben",
"move_back": "Nach ganz unten verschieben"
},
layers: {
"layer": "Ebene",
@@ -154,9 +154,9 @@ svgEditor.readLang({
"new": "Neue Ebene",
"rename": "Ebene umbenennen",
"move_up": "Ebene nach oben verschieben",
"dupe": "Duplicate Layer",
"merge_down": "Merge Down",
"merge_all": "Merge All",
"dupe": "Ebene duplizieren",
"merge_down": "Nach unten zusammenführen",
"merge_all": "Alle zusammenführen",
"move_elems_to": "Verschiebe ausgewählte Objekte:",
"move_selected": "Verschiebe ausgewählte Objekte auf eine andere Ebene"
},
@@ -166,13 +166,13 @@ svgEditor.readLang({
"doc_dims": "Dimension der Zeichenfläche",
"included_images": "Eingefügte Bilder",
"image_opt_embed": "Daten einbetten (lokale Dateien)",
"image_opt_ref": "Benutze die Datei Referenz",
"editor_prefs": "Editor Einstellungen",
"icon_size": "Symbol Abmessungen",
"image_opt_ref": "Benutze die Dateireferenz",
"editor_prefs": "Editor-Einstellungen",
"icon_size": "Symbol-Abmessungen",
"language": "Sprache",
"background": "Editor Hintergrund",
"editor_img_url": "Image URL",
"editor_bg_note": "Anmerkung: Der Hintergrund wird mit der Speicherung des Bildes nicht gespeichert.",
"background": "Editor-Hintergrund",
"editor_img_url": "Bild-URL",
"editor_bg_note": "Anmerkung: Der Hintergrund wird mit dem Bild nicht gespeichert.",
"icon_large": "Groß",
"icon_medium": "Mittel",
"icon_small": "Klein",
@@ -183,8 +183,8 @@ svgEditor.readLang({
"base_unit": "Basiseinheit:",
"grid": "Gitternetz",
"snapping_onoff": "Einrasten an/aus",
"snapping_stepsize": "Einrastungs Abstand:",
"grid_color": "Grid color"
"snapping_stepsize": "Einrastabstand:",
"grid_color": "Gitterfarbe"
},
shape_cats: {
"basic": "Standard",
@@ -203,48 +203,48 @@ svgEditor.readLang({
"raphael_2": "raphaeljs.com set 2"
},
imagelib: {
"select_lib": "Select an image library",
"show_list": "Show library list",
"import_single": "Import single",
"import_multi": "Import multiple",
"open": "Open as new document"
"select_lib": "Wähle eine Bild-Bibliothek aus",
"show_list": "Zeige Bibliotheksliste",
"import_single": "Einzelnes importieren",
"import_multi": "Mehrere importieren",
"open": "Als neues Dokument öffnen"
},
notification: {
"invalidAttrValGiven":"Fehlerhafter Wert",
"noContentToFitTo":"Kein Inhalt anzupassen",
"dupeLayerName":"Eine Ebene hat bereits diesen Namen!",
"dupeLayerName":"Eine Ebene hat bereits diesen Namen",
"enterUniqueLayerName":"Verwenden Sie einen eindeutigen Namen für die Ebene",
"enterNewLayerName":"Geben Sie bitte einen neuen Namen für die Ebene ein",
"layerHasThatName":"Eine Ebene hat bereits diesen Namen",
"QmoveElemsToLayer":"Verschiebe ausgewählte Objekte in die Ebene '%s'?",
"QwantToClear":"Möchten Sie die Zeichnung löschen?\nDadurch wird auch die Rückgängig Funktion zurückgesetzt!",
"QwantToOpen":"Do you want to open a new file?\nThis will also erase your undo history!",
"QerrorsRevertToSource":"Die Syntaxanalyse Ihrer SVG Quelle enthält Fehler.\nOriginal SVG wiederherstellen?",
"QignoreSourceChanges":"Soll die Änderung am SVG Quelltext ignoriert werden?",
"QwantToClear":"Möchten Sie die Zeichnung löschen?\nDadurch wird auch die Rückgängig-Funktion zurückgesetzt!",
"QwantToOpen":"Möchten Sie eine neue Datei öffnen?\nDadurch wird auch die Rückgängig-Funktion zurückgesetzt!",
"QerrorsRevertToSource":"Es gibt Parser-Fehler in der SVG-Quelle.\nDie Original-SVG wiederherstellen?",
"QignoreSourceChanges":"Sollen die Änderungen an der SVG-Quelle ignoriert werden?",
"featNotSupported":"Diese Eigenschaft wird nicht unterstützt",
"enterNewImgURL":"Geben Sie die URL für das neue Bild an",
"defsFailOnSave": "Hinweis: Aufgrund eines Fehlers in Ihrem Browser, kann dieses Bild falsch angezeigt werden (fehlende Gradienten oder Elemente). Es wird jedoch richtig angezeigt sobald es tatsächlich gespeichert wird.",
"defsFailOnSave": "Hinweis: Aufgrund eines Fehlers in Ihrem Browser kann dieses Bild falsch angezeigt werden (fehlende Gradienten oder Elemente). Es wird jedoch richtig angezeigt, sobald es gespeichert wird.",
"loadingImage":"Bild wird geladen, bitte warten ...",
"saveFromBrowser": "Wählen Sie \"Speichern unter ...\" in Ihrem Browser, um das Bild als Datei %s zu speichern.",
"noteTheseIssues": "Beachten Sie außerdem die folgenden Probleme: ",
"unsavedChanges": "There are unsaved changes.",
"enterNewLinkURL": "Enter the new hyperlink URL",
"errorLoadingSVG": "Error: Unable to load SVG data",
"URLloadFail": "Unable to load from URL",
"retrieving": "Retrieving \"%s\"..."
"unsavedChanges": "Es sind nicht-gespeicherte Änderungen vorhanden.",
"enterNewLinkURL": "Geben Sie die neue URL ein",
"errorLoadingSVG": "Fehler: Kann SVG-Daten nicht laden",
"URLloadFail": "Kann von dieser URL nicht laden",
"retrieving": "Empfange \"%s\"..."
},
confirmSetStorage: {
message: "By default and where supported, SVG-Edit can store your editor "+
"preferences and SVG content locally on your machine so you do not "+
"need to add these back each time you load SVG-Edit. If, for privacy "+
"reasons, you do not wish to store this information on your machine, "+
"you can change away from the default option below.",
storagePrefsAndContent: "Store preferences and SVG content locally",
storagePrefsOnly: "Only store preferences locally",
storagePrefs: "Store preferences locally",
storageNoPrefsOrContent: "Do not store my preferences or SVG content locally",
storageNoPrefs: "Do not store my preferences locally",
rememberLabel: "Remember this choice?",
rememberTooltip: "If you choose to opt out of storage while remembering this choice, the URL will change so as to avoid asking again."
message: "Standardmäßig kann SVG-Edit Ihre Editor-Einstellungen "+
"und die SVG-Inhalte lokal auf Ihrem Gerät abspeichern. So brauchen Sie "+
"nicht jedes Mal die SVG neu laden. Falls Sie aus Datenschutzgründen "+
"dies nicht wollen, "+
"können Sie die Standardeinstellung im Folgenden ändern.",
storagePrefsAndContent: "Editor-Einstellungen und SVG-Inhalt lokal speichern",
storagePrefsOnly: "Nur Editor-Einstellungen lokal speichern",
storagePrefs: "Editor-Einstellungen lokal speichern",
storageNoPrefsOrContent: "Meine Editor-Einstellungen und die SVG-Inhalte nicht lokal speichern",
storageNoPrefs: "Meine Editor-Einstellungen nicht lokal speichern",
rememberLabel: "Auswahl merken?",
rememberTooltip: "Wenn Sie die Einstellungen nicht speichern, wird sich die URL ändern, damit sie nicht noch einmal gefragt werden."
}
});
Oops, something went wrong.

0 comments on commit a89b608

Please sign in to comment.