Skip to content

Commit

Permalink
Merge pull request #7 from flxzt/main
Browse files Browse the repository at this point in the history
Additional color slot (flxzt#936)
  • Loading branch information
Doublonmousse authored Dec 15, 2023
2 parents cda23dc + 6f7aa18 commit 319ec5e
Show file tree
Hide file tree
Showing 5 changed files with 89 additions and 36 deletions.
30 changes: 17 additions & 13 deletions crates/rnote-ui/data/app.gschema.xml.in
Original file line number Diff line number Diff line change
Expand Up @@ -42,32 +42,36 @@
<summary>the colorpicker palette color 1 (default: black)</summary>
</key>
<key name="colorpicker-color-2" type="(dddd)">
<default>(0.0, 0.0, 0.0, 0.0)</default>
<summary>the colorpicker palette color 2 (default: transparent)</summary>
<default>(1.0, 1.0, 1.0, 1.0)</default>
<summary>the colorpicker palette color 2 (default: white)</summary>
</key>
<key name="colorpicker-color-3" type="(dddd)">
<default>(0.597, 0.753, 0.941, 1.0)</default>
<summary>the colorpicker palette color 3 (default: blue 1)</summary>
<default>(0.0, 0.0, 0.0, 0.0)</default>
<summary>the colorpicker palette color 3 (default: transparent)</summary>
</key>
<key name="colorpicker-color-4" type="(dddd)">
<default>(0.101, 0.371, 0.703, 1.0)</default>
<summary>the colorpicker palette color 4 (default: blue 5)</summary>
<default>(0.597, 0.753, 0.941, 1.0)</default>
<summary>the colorpicker palette color 4 (default: blue 1)</summary>
</key>
<key name="colorpicker-color-5" type="(dddd)">
<default>(0.148, 0.632, 0.410, 1.0)</default>
<summary>the colorpicker palette color 5 (default: green 5)</summary>
<default>(0.101, 0.371, 0.703, 1.0)</default>
<summary>the colorpicker palette color 5 (default: blue 5)</summary>
</key>
<key name="colorpicker-color-6" type="(dddd)">
<default>(0.957, 0.757, 0.066, 1.0)</default>
<summary>the colorpicker palette color 6 (default: yellow 4)</summary>
<default>(0.148, 0.632, 0.410, 1.0)</default>
<summary>the colorpicker palette color 6 (default: green 5)</summary>
</key>
<key name="colorpicker-color-7" type="(dddd)">
<default>(0.898, 0.378, 0.0, 1.0)</default>
<summary>the colorpicker palette color 7 (default: orange 4)</summary>
<default>(0.957, 0.757, 0.066, 1.0)</default>
<summary>the colorpicker palette color 7 (default: yellow 4)</summary>
</key>
<key name="colorpicker-color-8" type="(dddd)">
<default>(0.898, 0.378, 0.0, 1.0)</default>
<summary>the colorpicker palette color 8 (default: orange 4)</summary>
</key>
<key name="colorpicker-color-9" type="(dddd)">
<default>(0.644, 0.113, 0.175, 1.0)</default>
<summary>the colorpicker palette color 8 (default: red 5)</summary>
<summary>the colorpicker palette color 9 (default: red 5)</summary>
</key>
<key name="brush-width-1" type="d">
<default>2.0</default>
Expand Down
4 changes: 2 additions & 2 deletions crates/rnote-ui/data/ui/appwindow.ui
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<template class="RnAppWindow" parent="AdwApplicationWindow">
<property name="width-request">500</property>
<property name="width-request">530</property>
<property name="height-request">460</property>
<property name="default-width">800</property>
<property name="default-height">600</property>
Expand Down Expand Up @@ -50,4 +50,4 @@
</object>
</property>
</template>
</interface>
</interface>
6 changes: 5 additions & 1 deletion crates/rnote-ui/data/ui/colorpicker.ui
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,10 @@
<object class="RnColorSetter" id="setter_8">
</object>
</child>
<child>
<object class="RnColorSetter" id="setter_9">
</object>
</child>
</object>
</child>
<child>
Expand All @@ -83,4 +87,4 @@
</object>
</child>
</template>
</interface>
</interface>
10 changes: 10 additions & 0 deletions crates/rnote-ui/src/appwindow/appsettings.rs
Original file line number Diff line number Diff line change
Expand Up @@ -253,6 +253,16 @@ impl RnAppWindow {
.set_mapping(gdk_color_set_mapping)
.get_no_changes()
.build();
app_settings
.bind(
"colorpicker-color-9",
&self.overlays().colorpicker().setter_9(),
"color",
)
.mapping(gdk_color_mapping)
.set_mapping(gdk_color_set_mapping)
.get_no_changes()
.build();

// brush stroke widths
app_settings
Expand Down
75 changes: 55 additions & 20 deletions crates/rnote-ui/src/colorpicker/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,8 @@ mod imp {
#[template_child]
pub(crate) setter_8: TemplateChild<RnColorSetter>,
#[template_child]
pub(crate) setter_9: TemplateChild<RnColorSetter>,
#[template_child]
pub(crate) colordialog_button: TemplateChild<Button>,
}

Expand All @@ -78,6 +80,7 @@ mod imp {
setter_6: TemplateChild::default(),
setter_7: TemplateChild::default(),
setter_8: TemplateChild::default(),
setter_9: TemplateChild::default(),
colordialog_button: TemplateChild::default(),
}
}
Expand Down Expand Up @@ -176,6 +179,7 @@ mod imp {
self.setter_6.set_position(position);
self.setter_7.set_position(position);
self.setter_8.set_position(position);
self.setter_9.set_position(position);

match position {
PositionType::Left => {
Expand Down Expand Up @@ -239,14 +243,15 @@ mod imp {
fn setup_setters(&self) {
let obj = self.obj();

self.setter_1.set_color(Self::default_color(0, 8));
self.setter_2.set_color(Self::default_color(1, 8));
self.setter_3.set_color(Self::default_color(2, 8));
self.setter_4.set_color(Self::default_color(3, 8));
self.setter_5.set_color(Self::default_color(4, 8));
self.setter_6.set_color(Self::default_color(5, 8));
self.setter_7.set_color(Self::default_color(6, 8));
self.setter_8.set_color(Self::default_color(7, 8));
self.setter_1.set_color(Self::default_color(0));
self.setter_2.set_color(Self::default_color(1));
self.setter_3.set_color(Self::default_color(2));
self.setter_4.set_color(Self::default_color(3));
self.setter_5.set_color(Self::default_color(4));
self.setter_6.set_color(Self::default_color(5));
self.setter_7.set_color(Self::default_color(6));
self.setter_8.set_color(Self::default_color(7));
self.setter_9.set_color(Self::default_color(8));

self.setter_1
.connect_active_notify(clone!(@weak obj as colorpicker => move |setter| {
Expand All @@ -258,6 +263,7 @@ mod imp {
colorpicker.setter_6().set_active(false);
colorpicker.setter_7().set_active(false);
colorpicker.setter_8().set_active(false);
colorpicker.setter_9().set_active(false);
// Must come after setting the other setters inactive
colorpicker.set_color_active_pad(setter.color());
}
Expand All @@ -273,6 +279,7 @@ mod imp {
colorpicker.setter_6().set_active(false);
colorpicker.setter_7().set_active(false);
colorpicker.setter_8().set_active(false);
colorpicker.setter_9().set_active(false);
colorpicker.set_color_active_pad(setter.color());
}
}));
Expand All @@ -287,6 +294,7 @@ mod imp {
colorpicker.setter_6().set_active(false);
colorpicker.setter_7().set_active(false);
colorpicker.setter_8().set_active(false);
colorpicker.setter_9().set_active(false);
colorpicker.set_color_active_pad(setter.color());
}
}));
Expand All @@ -301,6 +309,7 @@ mod imp {
colorpicker.setter_6().set_active(false);
colorpicker.setter_7().set_active(false);
colorpicker.setter_8().set_active(false);
colorpicker.setter_9().set_active(false);
colorpicker.set_color_active_pad(setter.color());
}
}));
Expand All @@ -315,6 +324,7 @@ mod imp {
colorpicker.setter_6().set_active(false);
colorpicker.setter_7().set_active(false);
colorpicker.setter_8().set_active(false);
colorpicker.setter_9().set_active(false);
colorpicker.set_color_active_pad(setter.color());
}
}));
Expand All @@ -329,6 +339,7 @@ mod imp {
colorpicker.setter_5().set_active(false);
colorpicker.setter_7().set_active(false);
colorpicker.setter_8().set_active(false);
colorpicker.setter_9().set_active(false);
colorpicker.set_color_active_pad(setter.color());
}
}));
Expand Down Expand Up @@ -357,23 +368,40 @@ mod imp {
colorpicker.setter_5().set_active(false);
colorpicker.setter_6().set_active(false);
colorpicker.setter_7().set_active(false);
colorpicker.setter_9().set_active(false);
colorpicker.set_color_active_pad(setter.color());
}
}));

self.setter_9
.connect_active_notify(clone!(@weak obj as colorpicker => move |setter| {
if setter.is_active() {
colorpicker.setter_1().set_active(false);
colorpicker.setter_2().set_active(false);
colorpicker.setter_3().set_active(false);
colorpicker.setter_4().set_active(false);
colorpicker.setter_5().set_active(false);
colorpicker.setter_6().set_active(false);
colorpicker.setter_7().set_active(false);
colorpicker.setter_8().set_active(false);
colorpicker.set_color_active_pad(setter.color());
}
}));
}

fn default_color(i: usize, amount_setters: usize) -> gdk::RGBA {
let color_step =
(2.0 * std::f32::consts::PI) / ((amount_setters.saturating_sub(1)) as f32);
let rgb_offset = (2.0 / 3.0) * std::f32::consts::PI;
let color_offset = (5.0 / 4.0) * std::f32::consts::PI + 0.4;

gdk::RGBA::new(
0.5 * (i as f32 * color_step + 0.0 * rgb_offset + color_offset).sin() + 0.5,
0.5 * (i as f32 * color_step + 1.0 * rgb_offset + color_offset).sin() + 0.5,
0.5 * (i as f32 * color_step + 2.0 * rgb_offset + color_offset).sin() + 0.5,
1.0,
)
fn default_color(i: usize) -> gdk::RGBA {
match i {
0 => gdk::RGBA::new(0.0, 0.0, 0.0, 1.0),
1 => gdk::RGBA::new(1.0, 1.0, 1.0, 1.0),
2 => gdk::RGBA::new(0.0, 0.0, 0.0, 0.0),
3 => gdk::RGBA::new(0.597, 0.753, 0.941, 1.0),
4 => gdk::RGBA::new(0.101, 0.371, 0.703, 1.0),
5 => gdk::RGBA::new(0.148, 0.632, 0.410, 1.0),
6 => gdk::RGBA::new(0.957, 0.757, 0.066, 1.0),
7 => gdk::RGBA::new(0.898, 0.378, 0.0, 1.0),
8 => gdk::RGBA::new(0.644, 0.113, 0.175, 1.0),
_ => gdk::RGBA::new(0.0, 0.0, 0.0, 1.0),
}
}
}
}
Expand Down Expand Up @@ -462,6 +490,10 @@ impl RnColorPicker {
self.imp().setter_8.get()
}

pub(crate) fn setter_9(&self) -> RnColorSetter {
self.imp().setter_9.get()
}

pub(crate) fn init(&self, appwindow: &RnAppWindow) {
self.imp().colordialog_button.connect_clicked(
clone!(@weak self as colorpicker, @weak appwindow => move |_| {
Expand Down Expand Up @@ -513,6 +545,8 @@ impl RnColorPicker {
imp.setter_7.set_color(color);
} else if imp.setter_8.is_active() {
imp.setter_8.set_color(color);
} else if imp.setter_9.is_active() {
imp.setter_9.set_color(color);
}
}

Expand Down Expand Up @@ -545,5 +579,6 @@ impl RnColorPicker {
imp.setter_6.set_active(false);
imp.setter_7.set_active(false);
imp.setter_8.set_active(false);
imp.setter_9.set_active(false);
}
}

0 comments on commit 319ec5e

Please sign in to comment.