mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-10-25 02:07:09 -06:00
Merge pull request #3075 from nrq6993-a11y/stream/vc-feat3-g5-key-color-eyedropper
G5: Pattern brush Key Color eyedropper in Brush Options
This commit is contained in:
@@ -11,6 +11,9 @@
|
||||
//! The Gradient panel's eyedropper sets the `stop` option (the tool to return to): the next click
|
||||
//! samples the colour under the cursor into the selected gradient stop (`paint.sampleColor
|
||||
//! {stop}`) and switches back to that tool.
|
||||
//!
|
||||
//! Brush Options' Key Color eyedropper sets `brushKeyColor` and `stop`: the next click samples into
|
||||
//! the open dialog (`brushKeyColor` UI request) and switches back.
|
||||
|
||||
use serde_json::{Value, json};
|
||||
use vectorcraft_color::{Color, Paint};
|
||||
@@ -26,6 +29,8 @@ use crate::{Action, Cursor, Mods, PointerEvent, PointerKind, Tool, ToolContext};
|
||||
pub struct EyedropperTool {
|
||||
/// Sampling for the selected gradient stop: the tool to switch back to afterwards.
|
||||
stop: Option<String>,
|
||||
/// Brush Options › Key Color (Hue Shift): sample into the dialog, then [`Self::stop`].
|
||||
brush_key_color: bool,
|
||||
}
|
||||
|
||||
/// The colour of `paint` at `p` (gradients are sampled along their vector, radial ones honouring
|
||||
@@ -83,6 +88,19 @@ impl Tool for EyedropperTool {
|
||||
// A click inside a fill or among characters samples it too, whatever Object and Type
|
||||
// Object Selection by Path Only say.
|
||||
let opts = vectorcraft_doc::hit::HitOptions { path_only: false, type_path_only: false, ..cx.hit_options() };
|
||||
if self.brush_key_color {
|
||||
let h = hit_test_visible(cx.doc, ev.pos, opts);
|
||||
let Some(h) = h else { return vec![] };
|
||||
let src = paint_owner(cx.doc, h.leaf);
|
||||
let Some(n) = cx.doc.node(src) else { return vec![] };
|
||||
let image = matches!(n.kind, NodeKind::Image(_));
|
||||
let sampled = if image { image_color_at(cx, n, ev.pos) } else { paint_sample(n, h.kind == HitKind::Stroke, ev.pos) };
|
||||
let Some(c) = sampled else { return vec![] };
|
||||
let back = self.stop.clone().unwrap_or_else(|| "selection".to_string());
|
||||
self.brush_key_color = false;
|
||||
self.stop = None;
|
||||
return vec![Action::Dialog("brushKeyColor".into(), json!({ "color": color_json(&c) })), Action::SwitchTool(back)];
|
||||
}
|
||||
let stop = self.stop.as_ref().zip(cx.gradient_stop);
|
||||
// Reading a source is independent of its editability. Only Alt's reverse operation
|
||||
// writes to the clicked object; Shift+Alt appends its appearance to the selection.
|
||||
@@ -108,12 +126,14 @@ impl Tool for EyedropperTool {
|
||||
}
|
||||
|
||||
fn options(&self) -> Value {
|
||||
json!({ "stop": self.stop })
|
||||
json!({ "stop": self.stop, "brushKeyColor": self.brush_key_color })
|
||||
}
|
||||
|
||||
fn set_option(&mut self, key: &str, value: &Value) {
|
||||
if key == "stop" {
|
||||
self.stop = value.as_str().map(str::to_string);
|
||||
match key {
|
||||
"stop" => self.stop = value.as_str().map(str::to_string),
|
||||
"brushKeyColor" => self.brush_key_color = value.as_bool().unwrap_or(false),
|
||||
_ => {}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -175,7 +195,7 @@ mod tests {
|
||||
let mut cx = cx(&d, &s, &p);
|
||||
let mut t = EyedropperTool::default();
|
||||
t.set_option("stop", &json!("gradient"));
|
||||
assert_eq!(t.options(), json!({"stop": "gradient"}));
|
||||
assert_eq!(t.options(), json!({"stop": "gradient", "brushKeyColor": false}));
|
||||
// Without a selected stop the click copies the appearance as usual.
|
||||
let a = t.pointer(&cx, &PointerEvent::new(PointerKind::Down, 150.0, 150.0));
|
||||
assert!(matches!(&a[0], Action::Exec(c, _) if c == "appearance.copyFrom"));
|
||||
@@ -190,7 +210,24 @@ mod tests {
|
||||
Action::SwitchTool("gradient".into())
|
||||
]
|
||||
);
|
||||
assert_eq!(t.options(), json!({"stop": null}), "one sample only");
|
||||
assert_eq!(t.options(), json!({"stop": null, "brushKeyColor": false}), "one sample only");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn brush_key_color_samples_into_the_dialog_then_switches_back() {
|
||||
let (d, _) = doc_with_rect();
|
||||
let s = Selection::default();
|
||||
let p = paint();
|
||||
let cx = cx(&d, &s, &p);
|
||||
let mut t = EyedropperTool::default();
|
||||
t.set_option("brushKeyColor", &json!(true));
|
||||
t.set_option("stop", &json!("selection"));
|
||||
let a = t.pointer(&cx, &PointerEvent::new(PointerKind::Down, 150.0, 150.0));
|
||||
assert_eq!(
|
||||
a,
|
||||
vec![Action::Dialog("brushKeyColor".into(), json!({ "color": color_json(&Color::WHITE) })), Action::SwitchTool("selection".into())]
|
||||
);
|
||||
assert_eq!(t.options(), json!({ "stop": null, "brushKeyColor": false }));
|
||||
}
|
||||
|
||||
/// The hex of the colour a `paint.sampleColor` action samples.
|
||||
|
||||
@@ -25,6 +25,7 @@ use vectorcraft_color::{Color, Paint};
|
||||
use vectorcraft_doc::{Appearance, Document, Node, NodeId};
|
||||
|
||||
use super::brush_options::{clamped, mode_key, stroke_preview};
|
||||
use crate::VectorcraftApp;
|
||||
use crate::state::Dialog;
|
||||
use crate::theme::Tokens;
|
||||
use crate::widgets;
|
||||
@@ -199,14 +200,14 @@ pub(super) fn params(d: &Dialog) -> Value {
|
||||
|
||||
// ---------- body ----------
|
||||
|
||||
pub(super) fn body(ui: &mut egui::Ui, d: &mut Dialog) {
|
||||
pub(super) fn body(app: &mut VectorcraftApp, ui: &mut egui::Ui, d: &mut Dialog) {
|
||||
match d.str("__type").as_str() {
|
||||
"scatter" => scatter_body(ui, d),
|
||||
"art" => art_body(ui, d),
|
||||
_ => pattern_body(ui, d),
|
||||
}
|
||||
ui.add_space(6.0);
|
||||
colorization_body(ui, d);
|
||||
colorization_body(app, ui, d);
|
||||
ui.add_space(10.0);
|
||||
// The brush as OK would make it, on a sample stroke.
|
||||
let ty = d.str("__type");
|
||||
@@ -479,7 +480,15 @@ fn tile_doc(art: &Node, w: f64, h: f64) -> Option<Document> {
|
||||
Some(doc)
|
||||
}
|
||||
|
||||
fn colorization_body(ui: &mut egui::Ui, d: &mut Dialog) {
|
||||
/// Key Color eyedropper: sample the next click on the art into this dialog's `keyColor`.
|
||||
fn key_color_eyedropper(app: &mut VectorcraftApp) {
|
||||
let back = app.session.tool_id();
|
||||
app.select_tool("eyedropper");
|
||||
app.session.set_tool_option("brushKeyColor", &json!(true));
|
||||
app.session.set_tool_option("stop", &json!(back));
|
||||
}
|
||||
|
||||
fn colorization_body(app: &mut VectorcraftApp, ui: &mut egui::Ui, d: &mut Dialog) {
|
||||
widgets::section_header(ui, tl!("Colorization"));
|
||||
let methods = [tl!("None"), tl!("Tints"), tl!("Tints and Shades"), tl!("Hue Shift")];
|
||||
let cur = d.str("colorization");
|
||||
@@ -513,6 +522,19 @@ fn colorization_body(ui: &mut egui::Ui, d: &mut Dialog) {
|
||||
d.fields.insert("keyColor".into(), serde_json::to_value(c).unwrap_or_default());
|
||||
}
|
||||
}
|
||||
if widgets::icon_button(ui, "pipette", tl!("Eyedropper: click the art to sample the key color"), false, 22.0).clicked() {
|
||||
key_color_eyedropper(app);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/// Apply a sampled colour to the open Brush Options dialog (`brushKeyColor` tool request).
|
||||
pub(super) fn apply_key_color_sample(app: &mut VectorcraftApp, color: &Value) {
|
||||
let Some(d) = app.ui.dialog.as_mut().filter(|d| d.kind == super::brush_options::KIND) else { return };
|
||||
if d.str("colorization") != "hueShift" {
|
||||
return;
|
||||
}
|
||||
let Some(c) = vectorcraft_engine::cmd::color_value(color) else { return };
|
||||
d.fields.insert("keyColor".into(), serde_json::to_value(c).unwrap_or_default());
|
||||
}
|
||||
|
||||
@@ -242,7 +242,7 @@ fn body(app: &mut VectorcraftApp, ui: &mut egui::Ui, d: &mut Dialog) -> bool {
|
||||
match d.str("__type").as_str() {
|
||||
"bristle" => bristle_body(app, ui, d),
|
||||
"calligraphic" => calligraphic_body(ui, d),
|
||||
_ => brush_art_options::body(ui, d),
|
||||
_ => brush_art_options::body(app, ui, d),
|
||||
}
|
||||
false
|
||||
}
|
||||
@@ -521,6 +521,25 @@ mod tests {
|
||||
assert_eq!((d.str("sizeMode"), d.str("spacingMode"), d.str("colorization")), ("fixed".into(), "pressure".into(), "hueShift".into()));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn brush_key_color_eyedropper_updates_the_open_dialog() {
|
||||
use vectorcraft_tools::{PointerEvent, PointerKind};
|
||||
let mut app = app();
|
||||
app.run("paint.setFill", json!({"color": "#336699"})).unwrap();
|
||||
app.run("shape.rectangle", json!({"x": 40, "y": 40, "width": 80, "height": 60})).unwrap();
|
||||
app.run("ui.brushOptions", json!({"name": "Confetti"})).unwrap();
|
||||
set(&mut app, json!({"colorization": "hueShift"}));
|
||||
let back = app.session.tool_id();
|
||||
app.select_tool("eyedropper");
|
||||
app.session.set_tool_option("brushKeyColor", &json!(true));
|
||||
app.session.set_tool_option("stop", &json!(back));
|
||||
let view = app.view_info();
|
||||
crate::canvas::dispatch(&mut app, &PointerEvent::new(PointerKind::Down, 80.0, 70.0), view);
|
||||
let key = app.ui.dialog.as_ref().unwrap().fields.get("keyColor").cloned().unwrap();
|
||||
assert_eq!(vectorcraft_engine::cmd::color_value(&key).unwrap().to_hex(), "#336699");
|
||||
assert_eq!(app.session.tool_id(), back);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn art_options_set_width_scale_direction_flips_and_colorization() {
|
||||
let mut app = app();
|
||||
|
||||
@@ -68,6 +68,13 @@ pub fn open_tool_dialog(app: &mut VectorcraftApp, kind: &str, p: Value) {
|
||||
}
|
||||
// Double-clicking a stop on the gradient annotator: its popover, next to the stop's chip.
|
||||
"gradientStop" => Dialog::new(kind, json!({"index": p.get("index").cloned().unwrap_or(json!(0)), "x": x, "y": y, "tab": "color"})),
|
||||
// Brush Options › Key Color eyedropper: update the open dialog, do not replace it.
|
||||
"brushKeyColor" => {
|
||||
if let Some(c) = p.get("color") {
|
||||
super::brush_art_options::apply_key_color_sample(app, c);
|
||||
}
|
||||
return;
|
||||
}
|
||||
// Double-clicking a width point with the Width tool: Width Point Edit.
|
||||
super::width_point::KIND => {
|
||||
if let Err(e) = super::width_point::open(app, &p) {
|
||||
|
||||
@@ -1033,6 +1033,7 @@
|
||||
Eyedropper Picks Up: Пипетата взема:
|
||||
Eyedropper Tool Инструмент „Пипета“
|
||||
Eyedropper: click the art to sample the stop's colour Пипета: щракнете върху графиката, за да вземете мостра от цвета на стъпката
|
||||
Eyedropper: click the art to sample the key color Пипета: щракнете върху графиката, за да вземете мостра от основния цвят
|
||||
Favorites Любими
|
||||
Feather… Раздробяване…
|
||||
Feet Футове
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -1494,6 +1494,7 @@ lighting Light Světlo
|
||||
Edit the selected point's colour in the Color panel Upravit barvu vybraného bodu v panelu Barva
|
||||
Edit the stop Upravit zarážku
|
||||
Eyedropper: click the art to sample the stop's colour Kapátko: kliknutím na kresbu naberete barvu zarážky
|
||||
Eyedropper: click the art to sample the key color Kapátko: kliknutím na kresbu naberete klíčovou barvu
|
||||
Gradient across stroke Přechod napříč tahem
|
||||
Gradient along stroke Přechod podél tahu
|
||||
Gradient Fill: click to apply, drag onto art Přechodová výplň: kliknutím použijete, přetáhněte na kresbu
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -1411,6 +1411,7 @@ lighting Light Lys
|
||||
Edit the selected point's colour in the Color panel Redigér det markerede punkts farve i farvepanelet
|
||||
Edit the stop Redigér stoppet
|
||||
Eyedropper: click the art to sample the stop's colour Pipette: klik på grafikken for at prøvetage stoppets farve
|
||||
Eyedropper: click the art to sample the key color Pipette: klik på grafikken for at prøvetage nøglefarven
|
||||
Gradient across stroke Gradient på tværs af konturen
|
||||
Gradient along stroke Gradient langs konturen
|
||||
Gradient Fill: click to apply, drag onto art Gradientfyld: klik for at anvende, træk hen over grafikken
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -1037,6 +1037,7 @@
|
||||
Eyedropper Picks Up: Pipette nimmt auf:
|
||||
Eyedropper Tool Pipette-Werkzeug
|
||||
Eyedropper: click the art to sample the stop's colour Pipette: Klicken Sie auf die Grafik, um die Farbe für den Farbstopp aufzunehmen
|
||||
Eyedropper: click the art to sample the key color Pipette: Klicken Sie auf die Grafik, um die Hauptfarbe aufzunehmen
|
||||
Favorites Favoriten
|
||||
Feather… Weiche Kante…
|
||||
Feet Fuß
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -999,6 +999,7 @@
|
||||
Eyedropper Picks Up: Το σταγονόμετρο λαμβάνει:
|
||||
Eyedropper Tool Σταγονόμετρο (Eyedropper Tool)
|
||||
Eyedropper: click the art to sample the stop's colour Σταγονόμετρο: κλικ στα γραφικά για δειγματοληψία χρώματος σημείου διακοπής
|
||||
Eyedropper: click the art to sample the key color Σταγονόμετρο: κλικ στα γραφικά για δειγματοληψία βασικού χρώματος
|
||||
Favorites Αγαπημένα
|
||||
Feather… Απαλό περίγραμμα…
|
||||
Feet Πόδια
|
||||
|
||||
|
@@ -1053,6 +1053,7 @@
|
||||
Eyedropper Picks Up: El cuentagotas toma:
|
||||
Eyedropper Tool Herramienta Cuentagotas
|
||||
Eyedropper: click the art to sample the stop's colour Cuentagotas: haz clic en la ilustración para tomar el color de la parada
|
||||
Eyedropper: click the art to sample the key color Cuentagotas: haz clic en la ilustración para tomar el color clave
|
||||
Favorites Favoritos
|
||||
Feather… Desvanecer…
|
||||
Feet Pies
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -1468,6 +1468,7 @@ lighting Light Valo
|
||||
Edit the selected point's colour in the Color panel Muokkaa valitun pisteen väriä Väri-paneelissa
|
||||
Edit the stop Muokkaa väripistettä
|
||||
Eyedropper: click the art to sample the stop's colour Pipetti: ota väripisteen väri näytteeksi napsauttamalla kuvitusta
|
||||
Eyedropper: click the art to sample the key color Pipetti: ota avainväri näytteeksi napsauttamalla kuvitusta
|
||||
Gradient across stroke Liukuväri viivan poikki
|
||||
Gradient along stroke Liukuväri viivaa pitkin
|
||||
Gradient Fill: click to apply, drag onto art Liukuväritäyttö: käytä napsauttamalla, vedä kuvituksen päälle
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -1053,6 +1053,7 @@
|
||||
Eyedropper Picks Up: La pipette prélève :
|
||||
Eyedropper Tool Outil Pipette
|
||||
Eyedropper: click the art to sample the stop's colour Pipette : cliquez sur l’illustration pour prélever la couleur de l’étape de dégradé
|
||||
Eyedropper: click the art to sample the key color Pipette : cliquez sur l’illustration pour prélever la couleur clé
|
||||
Favorites Favoris
|
||||
Feather… Contour progressif…
|
||||
Feet Pieds
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -1342,6 +1342,7 @@
|
||||
Eyedropper Picks Up: A pipetta felveszi:
|
||||
Eyedropper Tool Pipetta
|
||||
Eyedropper: click the art to sample the stop's colour Pipetta: kattints a grafikára a pont színének mintavételéhez
|
||||
Eyedropper: click the art to sample the key color Pipetta: kattints a grafikára a kulcsszín mintavételéhez
|
||||
Farsi Perzsa
|
||||
Favorites Kedvencek
|
||||
Feather Tollazat
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -1411,6 +1411,7 @@ lighting Light Cahaya
|
||||
Edit the selected point's colour in the Color panel Edit warna titik terpilih di panel Warna
|
||||
Edit the stop Edit stop
|
||||
Eyedropper: click the art to sample the stop's colour Pipet: klik karya seni untuk mengambil sampel warna stop
|
||||
Eyedropper: click the art to sample the key color Pipet: klik karya seni untuk mengambil sampel warna kunci
|
||||
Gradient across stroke Gradien melintasi stroke
|
||||
Gradient along stroke Gradien sepanjang stroke
|
||||
Gradient Fill: click to apply, drag onto art Isian gradien: klik untuk menerapkan, seret ke karya seni
|
||||
|
||||
|
@@ -1053,6 +1053,7 @@
|
||||
Eyedropper Picks Up: Il contagocce preleva:
|
||||
Eyedropper Tool Strumento Contagocce
|
||||
Eyedropper: click the art to sample the stop's colour Contagocce: fai clic sulla grafica per campionare il colore del cursore
|
||||
Eyedropper: click the art to sample the key color Contagocce: fai clic sulla grafica per campionare il colore chiave
|
||||
Favorites Preferiti
|
||||
Feather… Sfuma bordi…
|
||||
Feet Piedi
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -1468,6 +1468,7 @@
|
||||
Eyedropper Picks Up: スポイトの抽出:
|
||||
Eyedropper Tool スポイトツール
|
||||
Eyedropper: click the art to sample the stop's colour スポイト: アートをクリックして分岐点のカラーをサンプル
|
||||
Eyedropper: click the art to sample the key color スポイト: アートをクリックしてキーカラーをサンプル
|
||||
Feet フィート
|
||||
Feet & Inches フィート・インチ
|
||||
Fewer <tspan> Elements <tspan>要素を減らす
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -1326,6 +1326,7 @@ lighting Light სინათლე
|
||||
Edit the selected point's colour in the Color panel მონიშნული წერტილის ფერის რედაქტირება ფერის პანელში
|
||||
Edit the stop გადასვლის წერტილის რედაქტირება
|
||||
Eyedropper: click the art to sample the stop's colour პიპეტი: დაწკაპეთ ნახატზე გადასვლის წერტილის ფერის ასაღებად
|
||||
Eyedropper: click the art to sample the key color პიპეტი: დაწკაპეთ ნახატზე საკვანძო ფერის ასაღებად
|
||||
Gradient across stroke გრადიენტი კონტურის განივად
|
||||
Gradient along stroke გრადიენტი კონტურის სიგრძეზე
|
||||
Gradient Fill: click to apply, drag onto art გრადიენტული შევსება: დაწკაპეთ გამოსაყენებლად, ჩაავლეთ ნახატზე
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -1463,6 +1463,7 @@
|
||||
Eyedropper Picks Up: 스포이드 추출 대상:
|
||||
Eyedropper Tool 스포이드 도구
|
||||
Eyedropper: click the art to sample the stop's colour 스포이드: 아트웍을 클릭해 정지점의 색상 추출
|
||||
Eyedropper: click the art to sample the key color 스포이드: 아트웍을 클릭해 키 색상 추출
|
||||
Feet 피트
|
||||
Feet & Inches 피트 및 인치
|
||||
Fewer <tspan> Elements <tspan> 요소 줄이기
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -1425,6 +1425,7 @@ lighting Light Licht
|
||||
Edit the selected point's colour in the Color panel Bewerk de kleur van het geselecteerde punt in het Kleur-paneel
|
||||
Edit the stop Stoppunt bewerken
|
||||
Eyedropper: click the art to sample the stop's colour Pipet: klik op de illustratie om de kleur van het stoppunt over te nemen
|
||||
Eyedropper: click the art to sample the key color Pipet: klik op de illustratie om de sleutelkleur over te nemen
|
||||
Gradient across stroke Verloop over de lijn
|
||||
Gradient along stroke Verloop langs de lijn
|
||||
Gradient Fill: click to apply, drag onto art Verloopvulling: klik om toe te passen, sleep naar de illustratie
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -1408,6 +1408,7 @@ lighting Light Światło
|
||||
Edit the selected point's colour in the Color panel Edytuj kolor zaznaczonego punktu w panelu Kolor
|
||||
Edit the stop Edytuj punkt koloru
|
||||
Eyedropper: click the art to sample the stop's colour Kroplomierz: kliknij kompozycję, aby pobrać kolor punktu
|
||||
Eyedropper: click the art to sample the key color Kroplomierz: kliknij kompozycję, aby pobrać kolor kluczowy
|
||||
Gradient across stroke Gradient w poprzek obrysu
|
||||
Gradient along stroke Gradient wzdłuż obrysu
|
||||
Gradient Fill: click to apply, drag onto art Wypełnienie gradientem: kliknij, aby zastosować, przeciągnij na kompozycję
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -938,6 +938,7 @@
|
||||
Eyedropper Picks Up: O Conta-gotas Capta:
|
||||
Eyedropper Tool Ferramenta Conta-gotas
|
||||
Eyedropper: click the art to sample the stop's colour Conta-gotas: clique na arte para colher a cor da parada
|
||||
Eyedropper: click the art to sample the key color Conta-gotas: clique na arte para colher a cor-chave
|
||||
Feather… Penugem…
|
||||
Feet Pés
|
||||
Feet & Inches Pés e Polegadas
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 6 and column 47.
|
@@ -1051,6 +1051,7 @@
|
||||
Eyedropper Picks Up: Пипетка берёт:
|
||||
Eyedropper Tool Инструмент «Пипетка»
|
||||
Eyedropper: click the art to sample the stop's colour Пипетка: щёлкните рисунок, чтобы взять цвет точки перехода
|
||||
Eyedropper: click the art to sample the key color Пипетка: щёлкните рисунок, чтобы взять ключевой цвет
|
||||
Favorites Избранное
|
||||
Feather… Растушёвка…
|
||||
Feet Футы
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -1035,6 +1035,7 @@
|
||||
Eyedropper Picks Up: Pipetten hämtar:
|
||||
Eyedropper Tool Pipettverktyg
|
||||
Eyedropper: click the art to sample the stop's colour Pipett: klicka på grafiken för att hämta stoppets färg
|
||||
Eyedropper: click the art to sample the key color Pipett: klicka på grafiken för att hämta nyckelfärgen
|
||||
Favorites Favoriter
|
||||
Feather… Fjädring…
|
||||
Feet Fot
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 5 and column 25.
|
@@ -1047,6 +1047,7 @@
|
||||
Eyedropper Picks Up: Піпетка бере:
|
||||
Eyedropper Tool Інструмент «Піпетка»
|
||||
Eyedropper: click the art to sample the stop's colour Піпетка: натисніть на малюнок, щоб взяти колір точки переходу
|
||||
Eyedropper: click the art to sample the key color Піпетка: натисніть на малюнок, щоб взяти ключовий колір
|
||||
Favorites Вибране
|
||||
Feather… Розтушування…
|
||||
Feet Фути
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 726 and column 40.
|
@@ -1220,6 +1220,7 @@
|
||||
Eyedropper Picks Up: Ống hút màu lấy mẫu:
|
||||
Eyedropper Tool Công cụ Ống hút màu
|
||||
Eyedropper: click the art to sample the stop's colour Ống hút màu: bấm vào tác phẩm để lấy mẫu màu điểm dừng
|
||||
Eyedropper: click the art to sample the key color Ống hút màu: bấm vào tác phẩm để lấy mẫu màu chủ
|
||||
Farsi Farsi
|
||||
Favorites Yêu thích
|
||||
Feather… Làm mờ dần…
|
||||
|
||||
|
@@ -1002,6 +1002,7 @@
|
||||
Eyedropper Picks Up: 吸管拾取:
|
||||
Eyedropper Tool 吸管工具
|
||||
Eyedropper: click the art to sample the stop's colour 吸管:点击图稿以取样色标的颜色
|
||||
Eyedropper: click the art to sample the key color 吸管:点击图稿以取样主色
|
||||
Feather… 羽化…
|
||||
Feet 英尺
|
||||
Feet & Inches 英尺和英寸
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 2 and column 73.
|
@@ -1024,6 +1024,7 @@
|
||||
Eyedropper Picks Up: 滴管擷取:
|
||||
Eyedropper Tool 滴管工具
|
||||
Eyedropper: click the art to sample the stop's colour 滴管:點擊圖稿以取樣色標的顏色
|
||||
Eyedropper: click the art to sample the key color 滴管:點擊圖稿以取樣主要顏色
|
||||
Favorites 我的最愛
|
||||
Feather… 羽化…
|
||||
Feet 英呎
|
||||
|
||||
|
Can't render this file because it contains an unexpected character in line 6 and column 47.
|
@@ -1119,6 +1119,6 @@ mod tests {
|
||||
let texts = Panel::new().frame(&mut app, vec![], Modifiers::NONE);
|
||||
assert!(texts.iter().any(|(t, _)| t == "#FFFFFF"), "the stop's colour row: {texts:?}");
|
||||
stop_eyedropper(&mut app);
|
||||
assert_eq!((app.session.tool_id(), app.session.tool_options()), ("eyedropper", json!({"stop": "gradient"})));
|
||||
assert_eq!((app.session.tool_id(), app.session.tool_options()), ("eyedropper", json!({"stop": "gradient", "brushKeyColor": false})));
|
||||
}
|
||||
}
|
||||
|
||||
+3
-2
@@ -275,9 +275,10 @@ from G14 and the budget run of G15: **~170–270 h** one agent, ~50–80 h wall
|
||||
Export Type (Graphic or Movie Clip; default Movie Clip; `symbol.new` / `symbol.options` / Symbols panel;
|
||||
canvas placement unchanged; Animate / Flash handoff metadata); Symbol Options › Enable Guides for 9-Slice
|
||||
Scaling (four guides as fractions of the symbol size, `nineSlice` / `nineSliceGuides` on `symbol.new` /
|
||||
`symbol.options`, stored per symbol; handoff metadata, not drawn on the canvas, #2342).
|
||||
`symbol.options`, stored per symbol; handoff metadata, not drawn on the canvas, #2342); Brush Options › Key
|
||||
Color eyedropper for scatter, art and pattern brushes (Hue Shift colorization; samples canvas art).
|
||||
- **Missing:** the Art brush's Overlap, auto-generated Pattern brush corners, new tile art in Pattern Brush
|
||||
Options, the Key Color eyedropper; original brush, symbol and graphic-style libraries generated in code (never
|
||||
Options; original brush, symbol and graphic-style libraries generated in code (never
|
||||
Adobe's); dynamic symbols; Start Global Edit; drawing the 9-slice guides on the canvas in symbol edit mode and scaling by them.
|
||||
- **Estimate:** 15–26 h.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user