Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1b30f2bd26 | ||
|
|
657a5ff16e |
No files matched your search
Generated
+1
-1
@@ -1393,7 +1393,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "ink-notes"
|
name = "ink-notes"
|
||||||
version = "0.27.0"
|
version = "0.27.1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"ab_glyph",
|
"ab_glyph",
|
||||||
"arboard",
|
"arboard",
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "ink-notes"
|
name = "ink-notes"
|
||||||
version = "0.27.0"
|
version = "0.27.1"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
description = "Notizbuch-App für Stift, Touch und Maus unter Linux"
|
description = "Notizbuch-App für Stift, Touch und Maus unter Linux"
|
||||||
repository = "https://gitea.pansi.eu/harald/ink-notes"
|
repository = "https://gitea.pansi.eu/harald/ink-notes"
|
||||||
|
|||||||
@@ -84,6 +84,11 @@
|
|||||||
</branding>
|
</branding>
|
||||||
<content_rating type="oars-1.1" />
|
<content_rating type="oars-1.1" />
|
||||||
<releases>
|
<releases>
|
||||||
|
<release version="0.27.1" date="2026-10-18">
|
||||||
|
<description>
|
||||||
|
<p>The pens in the toolbar are shown as pencils in their own colour, so they are easy to tell apart.</p>
|
||||||
|
</description>
|
||||||
|
</release>
|
||||||
<release version="0.27.0" date="2026-10-18">
|
<release version="0.27.0" date="2026-10-18">
|
||||||
<description>
|
<description>
|
||||||
<p>Pictures keep their proportions when resized. A lock button in the selection tool switches between proportional and free resizing; pictures start locked, other objects free.</p>
|
<p>Pictures keep their proportions when resized. A lock button in the selection tool switches between proportional and free resizing; pictures start locked, other objects free.</p>
|
||||||
|
|||||||
@@ -84,6 +84,11 @@
|
|||||||
</branding>
|
</branding>
|
||||||
<content_rating type="oars-1.1" />
|
<content_rating type="oars-1.1" />
|
||||||
<releases>
|
<releases>
|
||||||
|
<release version="0.27.1" date="2026-10-18">
|
||||||
|
<description>
|
||||||
|
<p>The pens in the toolbar are shown as pencils in their own colour, so they are easy to tell apart.</p>
|
||||||
|
</description>
|
||||||
|
</release>
|
||||||
<release version="0.27.0" date="2026-10-18">
|
<release version="0.27.0" date="2026-10-18">
|
||||||
<description>
|
<description>
|
||||||
<p>Pictures keep their proportions when resized. A lock button in the selection tool switches between proportional and free resizing; pictures start locked, other objects free.</p>
|
<p>Pictures keep their proportions when resized. A lock button in the selection tool switches between proportional and free resizing; pictures start locked, other objects free.</p>
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
Notizbuch-App für Stift, Touch und Maus unter Linux (getestet mit Zorin OS 18 / Ubuntu 24.04).
|
Notizbuch-App für Stift, Touch und Maus unter Linux (getestet mit Zorin OS 18 / Ubuntu 24.04).
|
||||||
|
|
||||||
### Highlights:
|
### Highlights:
|
||||||
|
- **Stifte in ihrer Farbe**: Die Stifte in der Werkzeugleiste erscheinen als Stifte in ihrer eigenen Farbe statt als dünner Strich und sind so auf einen Blick zu unterscheiden
|
||||||
- **Bilder ohne Verzerren skalieren**: Beim Auswahlwerkzeug schaltet ein Schloss unter den Stiftfarben zwischen gleichmäßigem (🔒) und freiem Skalieren (🔓) um. Bilder sind zu Beginn gesperrt, Striche und Formen frei; am Rechner sperrt zusätzlich die Umschalttaste
|
- **Bilder ohne Verzerren skalieren**: Beim Auswahlwerkzeug schaltet ein Schloss unter den Stiftfarben zwischen gleichmäßigem (🔒) und freiem Skalieren (🔓) um. Bilder sind zu Beginn gesperrt, Striche und Formen frei; am Rechner sperrt zusätzlich die Umschalttaste
|
||||||
- **Flüssigeres Scrollen in großen PDFs**: Neu gerenderte PDF-Seiten halten die Anzeige nicht mehr an, und Seiten, über die man schnell hinwegscrollt, werden übersprungen statt der Reihe nach gerendert
|
- **Flüssigeres Scrollen in großen PDFs**: Neu gerenderte PDF-Seiten halten die Anzeige nicht mehr an, und Seiten, über die man schnell hinwegscrollt, werden übersprungen statt der Reihe nach gerendert
|
||||||
- **Screenshots für Flathub**: Die App-Beschreibung (Metainfo) zeigt jetzt drei Screenshots; an der App selbst ändert sich nichts
|
- **Screenshots für Flathub**: Die App-Beschreibung (Metainfo) zeigt jetzt drei Screenshots; an der App selbst ändert sich nichts
|
||||||
|
|||||||
@@ -1187,8 +1187,8 @@ fn color_editor(
|
|||||||
changed
|
changed
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Stift der Werkzeugleiste: ein Strich in Farbe und (angedeuteter) Stärke auf einem
|
/// Stift der Werkzeugleiste: ein schräg liegender Stift in seiner Farbe; die Stärke steht
|
||||||
/// Stück Papier, damit auch schwarze Tinte auf der dunklen Leiste sichtbar ist.
|
/// im Tooltip.
|
||||||
fn pen_preset_swatch(
|
fn pen_preset_swatch(
|
||||||
ui: &mut egui::Ui,
|
ui: &mut egui::Ui,
|
||||||
preset: PenPreset,
|
preset: PenPreset,
|
||||||
@@ -1198,22 +1198,49 @@ fn pen_preset_swatch(
|
|||||||
) -> egui::Response {
|
) -> egui::Response {
|
||||||
let (rect, response) = ui.allocate_exact_size(egui::vec2(size, size), egui::Sense::click());
|
let (rect, response) = ui.allocate_exact_size(egui::vec2(size, size), egui::Sense::click());
|
||||||
if ui.is_rect_visible(rect) {
|
if ui.is_rect_visible(rect) {
|
||||||
let paper = rect.shrink(2.0);
|
// Schräg liegender Stift ganz in seiner Farbe, damit die Stifte auf einen Blick zu
|
||||||
ui.painter().rect_filled(
|
// unterscheiden sind (Issue #31); die helle Kontur hält dunkle Farben sichtbar
|
||||||
paper,
|
|
||||||
egui::Rounding::same(5.0),
|
|
||||||
egui::Color32::from_gray(245),
|
|
||||||
);
|
|
||||||
let [r, g, b, _] = preset.color.map(|c| (c.clamp(0.0, 1.0) * 255.0) as u8);
|
let [r, g, b, _] = preset.color.map(|c| (c.clamp(0.0, 1.0) * 255.0) as u8);
|
||||||
let width = (1.0 + preset.width_mm * 2.5).clamp(1.5, paper.height() * 0.35);
|
let ink = egui::Color32::from_rgb(r, g, b);
|
||||||
let inset = 3.0 + width / 2.0;
|
let c = rect.center();
|
||||||
ui.painter().line_segment(
|
let dir = egui::vec2(1.0, -1.0).normalized();
|
||||||
[
|
let perp = egui::vec2(dir.y, -dir.x);
|
||||||
egui::pos2(paper.left() + inset, paper.bottom() - inset),
|
let half_len = size * 0.44;
|
||||||
egui::pos2(paper.right() - inset, paper.top() + inset),
|
let half_w = size * 0.17;
|
||||||
|
let p = |along: f32, across: f32| c + dir * along + perp * across;
|
||||||
|
let tip_start = -half_len * 0.3;
|
||||||
|
let lead_start = -half_len * 0.72;
|
||||||
|
let lead_w = half_w * (lead_start + half_len) / (tip_start + half_len);
|
||||||
|
let outline = egui::Stroke::new(1.0_f32, egui::Color32::from_gray(200));
|
||||||
|
let painter = ui.painter();
|
||||||
|
painter.add(egui::Shape::convex_polygon(
|
||||||
|
vec![
|
||||||
|
p(tip_start, -half_w),
|
||||||
|
p(half_len, -half_w),
|
||||||
|
p(half_len, half_w),
|
||||||
|
p(tip_start, half_w),
|
||||||
],
|
],
|
||||||
egui::Stroke::new(width, egui::Color32::from_rgb(r, g, b)),
|
ink,
|
||||||
);
|
outline,
|
||||||
|
));
|
||||||
|
painter.add(egui::Shape::convex_polygon(
|
||||||
|
vec![
|
||||||
|
p(-half_len, 0.0),
|
||||||
|
p(tip_start, -half_w),
|
||||||
|
p(tip_start, half_w),
|
||||||
|
],
|
||||||
|
egui::Color32::from_rgb(235, 210, 170),
|
||||||
|
outline,
|
||||||
|
));
|
||||||
|
painter.add(egui::Shape::convex_polygon(
|
||||||
|
vec![
|
||||||
|
p(-half_len, 0.0),
|
||||||
|
p(lead_start, -lead_w),
|
||||||
|
p(lead_start, lead_w),
|
||||||
|
],
|
||||||
|
ink,
|
||||||
|
egui::Stroke::NONE,
|
||||||
|
));
|
||||||
if is_selected {
|
if is_selected {
|
||||||
ui.painter().rect_stroke(
|
ui.painter().rect_stroke(
|
||||||
rect.shrink(0.5),
|
rect.shrink(0.5),
|
||||||
|
|||||||
Reference in new issue
Block a user