Skip to content

Commit

Permalink
v0.2.6
Browse files Browse the repository at this point in the history
  • Loading branch information
flxzt committed Jan 29, 2022
1 parent 24061fe commit 18fa26c
Show file tree
Hide file tree
Showing 55 changed files with 824 additions and 954 deletions.
8 changes: 4 additions & 4 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

19 changes: 11 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,16 +45,15 @@ Then the sheets can be exported as an SVG or PDF and can be re-imported into the

## Screenshots

If you have drawn something cool in Rnote and want to share it, let me know so I can include it as a screenshot. :)

![main_window_dark](./resources/screenshots/main_window_dark.png)
![main_window_light](./resources/screenshots/main_window_light.png)
![pdf_annotation](./resources/screenshots/pdf_annotation.png)
![multiple_pages](./resources/screenshots/multiple_pages.png)
![selection](./resources/screenshots/selection.png)

# Images drawn with Rnote

If you have drawn something cool in Rnote and want to share it, submit a PR so it can be showcased here. :)

![tree](./resources/images/tree.svg)

## Pitfalls
Expand All @@ -70,14 +69,15 @@ If you have drawn something cool in Rnote and want to share it, let me know so I
[Precise offsetting of bezier curves](https://blend2d.com/research/precise_offset_curves.pdf))
- [x] Textured brush strokes with tweakable parameters
- [x] Stroke elements drag tool: drag along parts of the selected strokes based on the proximity of a round pen tool
- [x] strokes rotation
- [x] parallelizing rendering and actions which affect many strokes.
- [x] asychronous rendering
- [ ] (partial) Xournal++ .xopp file import and export
- [ ] (implemented: lines, rectangles, ellipses) drawing rough shapes by porting [rough.js](https://roughjs.com/) to Rust
- [ ] cancellable rendering
- [ ] strokes rotation
- [ ] (implemented: lines, rectangles, ellipses) drawing rough shapes by porting [rough.js](https://roughjs.com/) to Rust (see `./src/rough-rs`)
- [ ] export as bitmap picture
- [ ] implement text fields (Plain, Markdown)
- [ ] implement optional stroke smoothing
- [ ] text fields (Plain, Markdown)
- [ ] optional stroke smoothing

## Feature Ideas:
* Stroke Layers
Expand All @@ -93,7 +93,10 @@ If you have drawn something cool in Rnote and want to share it, let me know so I
## File Format
The `.rnote` file format is a gzipped json file. It is (de)compressed with the `flate2` crate and (de)serialized with the `Serde` crate.

So far the first breaking change in the format happened between `v0.1.6` and `v0.2.0`.
So far breaking changes in the format happened in versions:
- `v0.2.0`
- `v0.3.0`


To be able to open and export older files that are incompatible with the newest version, look under **Installation** /**Downgrading** to install older versions of Rnote.

Expand Down
Binary file modified misc/screenshots-pages/main_window.rnote
Binary file not shown.
Binary file modified notetakingfileformats/tests/image.xopp
Binary file not shown.
Binary file added notetakingfileformats/tests/image.xopp~
Binary file not shown.
Binary file modified notetakingfileformats/tests/rnotenative.rnote
Binary file not shown.
2 changes: 1 addition & 1 deletion po/it.po
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ msgstr ""
"Language-Team: Italian <[email protected]>\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

#. Translators: This is the App name, don't translate this.
Expand Down
2 changes: 1 addition & 1 deletion po/rnote.pot
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ msgstr ""
"Language-Team: LANGUAGE <[email protected]>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

#. Translators: This is the App name, don't translate this.
Expand Down
2 changes: 1 addition & 1 deletion resources/app.desktop.in.in
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[Desktop Entry]
# Translators: This is the App name, don't translate this.
Name=@APP_NAME_CAPITALIZED@
Comment=An easy and simple vector-based note taking app
Comment=A simple drawing application to create handwritten notes
# Translators: Do NOT translate or transliterate this text, this is an icon file name!
Icon=@APP_ID@
#DBusActivatable=true
Expand Down
35 changes: 22 additions & 13 deletions resources/app.gschema.xml.in
Original file line number Diff line number Diff line change
Expand Up @@ -57,18 +57,6 @@
<default>true</default>
<summary>enable pdf import as vector image</summary>
</key>
<key name="sheet-format" type="s">
<default>''</default>
<summary>the sheet format</summary>
</key>
<key name="sheet-background" type="s">
<default>''</default>
<summary>the sheet background</summary>
</key>
<key name="pens" type="s">
<default>''</default>
<summary>pen settings</summary>
</key>
<key name="markerpage-selected-color" type="u">
<default>0</default>
<summary>the default selected color row on the marker page</summary>
Expand All @@ -84,6 +72,7 @@
0xFF00EE44,
0x3FBF7044
)</default>
<summary>the marker page colors</summary>
</key>
<key name="brushpage-selected-color" type="u">
<default>0</default>
Expand All @@ -100,6 +89,7 @@
0xff7800ff,
0xe01b24ff
)</default>
<summary>the brush page colors</summary>
</key>
<key name="shaperpage-selected-color" type="u">
<default>0</default>
Expand All @@ -110,6 +100,7 @@
0x000000ff,
0x1a5fb4ff
)</default>
<summary>the shaper page colors</summary>
</key>
<key name="shaperpage-selected-fill" type="u">
<default>0</default>
Expand All @@ -120,7 +111,25 @@
0x000000ff,
0x00000000
)</default>
<summary>the shaper page fill colors</summary>
</key>
<key name="sheet-format" type="s">
<default>'
{"width":1123,"height":1587,"dpi":96.0,"orientation":"portrait"}
'</default>
<summary>the sheet format</summary>
</key>
<key name="sheet-background" type="s">
<default>'
{"color":{"r":1.0,"g":1.0,"b":1.0,"a":1.0},"pattern":"dots","pattern_size":[32.0,32.0],"pattern_color":{"r":0.8,"g":0.9,"b":1.0,"a":1.0}}
'</default>
<summary>the sheet background</summary>
</key>
<key name="pens" type="s">
<default>'
{"current_pen":"brush_style","marker":{"options":{"seed":null,"width":4.400000000000001,"stroke_color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"fill_color":null}},"brush":{"style":"solid","smooth_options":{"seed":null,"width":3.8000000000000025,"stroke_color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"fill_color":null},"textured_options":{"seed":null,"width":1.0,"stroke_color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"density":5.0,"radii":[2.0,0.3],"distribution":"Normal"}},"shaper":{"style":"line","drawstyle":"smooth","smooth_options":{"seed":null,"width":1.5000000000000004,"stroke_color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"fill_color":{"r":0.0,"g":0.0,"b":0.0,"a":1.0}},"rough_options":{"max_randomness_offset":2.0,"roughness":1.0,"bowing":1.0,"seed":null,"stroke":{"r":0.0,"g":0.0,"b":0.0,"a":1.0},"stroke_width":1.5000000000000004,"fill":{"r":0.9647058844566345,"g":0.3803921639919281,"b":0.3176470696926117,"a":1.0},"fill_style":"Hachure","fill_weight":0.5,"hachure_angle":-41.0,"hachure_gap":4.0,"curve_stepcount":9.0,"curve_fitting":0.95,"curve_tightness":0.0,"stroke_line_dash":[],"stroke_line_dash_offset":0.0,"fill_line_dash":[],"fill_line_dash_offset":0.0,"disable_multistroke":false,"disable_multistroke_fill":false,"simplification":0.0,"dash_offset":0.0,"dash_gap":4.0,"zigzag_offset":4.0,"preserve_vertices":false}},"eraser":{"width":30.0},"selector":{"style":"polygon"},"tools":{"style":"expandsheet"}}
'</default>
<summary>pen settings</summary>
</key>
</schema>

</schemalist>
31 changes: 23 additions & 8 deletions resources/app.metainfo.xml.in.in
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,22 @@
<project_license>GPL-3.0</project_license>
<name translatable="no">@APP_NAME@</name>
<launchable type="desktop-id">@[email protected]</launchable>
<summary>An easy and simple vector-based note taking app</summary>
<summary>A simple drawing application to create handwritten notes</summary>

<categories>
<category>Gnome</category>
<category>GTK</category>
<category>Graphics</category>
<category>Education</category>
<category>Office</category>
<category>VectorGraphics</category>
<category>GNOME</category>
<category>GTK</category>
</categories>

<description>
<p>Rnote is a simple vector based note taking application for handwritten notes or to annotate documents and pictures.</p>
<p>
Rnote is a simple vector based drawing application for handwritten notes and to annotate documents and pictures.
Disclaimer: The file format is still unstable. It might change between versions.
</p>
</description>

<screenshots>
Expand All @@ -35,10 +41,6 @@
<image>https://raw.githubusercontent.com/flxzt/rnote/main/resources/screenshots/selection.png</image>
<caption>A selection</caption>
</screenshot>
<screenshot>
<image>https://raw.githubusercontent.com/flxzt/rnote/main/resources/screenshots/multiple_pages.png</image>
<caption>Multiple pages</caption>
</screenshot>
</screenshots>

<recommends>
Expand All @@ -59,6 +61,19 @@

<!-- /// Translators: Don't translate the changelog -->
<releases>
<release version="0.3.0" date="2022-01-29">
<description>
<p>this release changes:</p>
<ul>
<li>file format changes. Breaking to older versions!</li>
<li>Stroke and image rotation</li>
<li>rudimentary import and export to Xournal++ files</li>
<li>more persistent UI state</li>
<li>UI improvements</li>
<li>bug fixes</li>
</ul>
</description>
</release>
<release version="0.2.5" date="2022-01-13">
<description>
<p>this release changes:</p>
Expand Down
22 changes: 8 additions & 14 deletions resources/icons/scalable/actions/canvas-cursor.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
28 changes: 14 additions & 14 deletions resources/icons/scalable/actions/canvas-motion-cursor.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified resources/screenshots/main_window_dark.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified resources/screenshots/main_window_light.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed resources/screenshots/multiple_pages.png
Binary file not shown.
Binary file modified resources/screenshots/pdf_annotation.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified resources/screenshots/selection.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion resources/ui/penssidebar/selectorpage.ui
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@
<object class="GtkToggleButton" id="selectorstyle_polygon_toggle">
<property name="tooltip_text" translatable="yes">Selecting with a polygon</property>
<property name="vexpand">true</property>
<property name="group">selectorstyle_rect_toggle</property>
<property name="active">true</property>
<child>
<object class="GtkImage">
Expand All @@ -46,6 +45,7 @@
</child>
<child>
<object class="GtkToggleButton" id="selectorstyle_rect_toggle">
<property name="group">selectorstyle_polygon_toggle</property>
<property name="tooltip_text" translatable="yes">Selecting with a rectangle</property>
<property name="vexpand">true</property>
<child>
Expand Down
4 changes: 2 additions & 2 deletions resources/ui/selectionmodifier.ui
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,8 @@
<property name="vexpand">false</property>
<property name="halign">end</property>
<property name="valign">start</property>
<property name="margin-top">24</property>
<property name="margin-bottom">24</property>
<property name="margin-top">12</property>
<property name="margin-bottom">12</property>
<layout>
<property name="column">2</property>
<property name="row">1</property>
Expand Down
6 changes: 6 additions & 0 deletions resources/ui/shortcuts.ui
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,12 @@
<property name="accelerator">&lt;ctrl&gt;d</property>
</object>
</child>
<child>
<object class="GtkShortcutsShortcut">
<property name="title" context="shortcut window" translatable="yes">Select all stroks</property>
<property name="accelerator">&lt;ctrl&gt;a</property>
</object>
</child>
<child>
<object class="GtkShortcutsShortcut">
<property name="title" context="shortcut window" translatable="yes">Copy selection into clipboard</property>
Expand Down
18 changes: 9 additions & 9 deletions src/compose/rough/roughoptions.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,13 @@ pub struct RoughOptions {
pub seed: Option<u64>,
/// An optional stroke color. When set to None, no stroke outline is produced
#[serde(rename = "stroke")]
pub stroke: Option<Color>,
pub stroke_color: Option<Color>,
/// the stroke width
#[serde(rename = "stroke_width")]
pub stroke_width: f64,
/// an optional fill color. When set to None no fill is produced.
#[serde(rename = "fill")]
pub fill: Option<Color>,
#[serde(rename = "fill_color")]
pub fill_color: Option<Color>,
/// the fill style
#[serde(rename = "fill_style")]
pub fill_style: FillStyle,
Expand Down Expand Up @@ -95,9 +95,9 @@ impl Default for RoughOptions {
roughness: Self::ROUGHNESS_DEFAULT,
bowing: Self::BOWING_DEFAULT,
seed: None,
stroke: Some(Color::BLACK),
stroke_color: Some(Color::BLACK),
stroke_width: Self::STROKE_WIDTH_DEFAULT,
fill: None,
fill_color: None,
fill_style: FillStyle::Hachure,
fill_weight: 0.5,
hachure_angle: -41.0,
Expand Down Expand Up @@ -147,7 +147,7 @@ impl RoughOptions {
pub const CURVESTEPCOUNT_DEFAULT: f64 = 9.0;

pub(super) fn apply_to_line(&self, mut path: element::Path) -> element::Path {
path = if let Some(stroke) = self.stroke {
path = if let Some(stroke) = self.stroke_color {
path.set("stroke", stroke.to_css_color())
} else {
path.set("stroke", "none")
Expand Down Expand Up @@ -175,7 +175,7 @@ impl RoughOptions {
pub(super) fn apply_to_fill_polygon_solid(&self, mut path: element::Path) -> element::Path {
path = path.set("stroke", "none");

path = if let Some(fill) = self.fill {
path = if let Some(fill) = self.fill_color {
path.set("fill", fill.to_css_color())
} else {
path.set("fill", "none")
Expand All @@ -185,7 +185,7 @@ impl RoughOptions {
}

pub(super) fn apply_to_rect(&self, mut rect: element::Path) -> element::Path {
rect = if let Some(stroke) = self.stroke {
rect = if let Some(stroke) = self.stroke_color {
rect.set("stroke", stroke.to_css_color())
} else {
rect.set("stroke", "none")
Expand All @@ -211,7 +211,7 @@ impl RoughOptions {
}

pub(super) fn apply_to_ellipse(&self, mut ellipse_path: element::Path) -> element::Path {
ellipse_path = if let Some(stroke) = self.stroke {
ellipse_path = if let Some(stroke) = self.stroke_color {
ellipse_path.set("stroke", stroke.to_css_color())
} else {
ellipse_path.set("stroke", "none")
Expand Down
Loading

0 comments on commit 18fa26c

Please sign in to comment.