summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpml68 <contact@pml68.dev>2025-01-13 00:51:50 +0100
committerpml68 <contact@pml68.dev>2025-01-13 00:51:50 +0100
commitabd22355755221a35c8328b8b209391bab4d89ee (patch)
tree959f6cf85fb17e61329100dff75fa554f5d5cb01
parentMerge pull request #5 from pml68/feat/config (diff)
downloadiced-builder-abd22355755221a35c8328b8b209391bab4d89ee.tar.gz
ci: add build and lint workflows
-rw-r--r--.cargo/config.toml3
-rw-r--r--.github/workflows/build.yml29
-rw-r--r--.github/workflows/lint.yml17
-rw-r--r--src/main.rs8
-rw-r--r--src/panes/designer_view.rs2
-rw-r--r--src/theme.rs8
-rwxr-xr-xsrc/types/rendered_element.rs4
7 files changed, 60 insertions, 11 deletions
diff --git a/.cargo/config.toml b/.cargo/config.toml
new file mode 100644
index 0000000..feb6aad
--- /dev/null
+++ b/.cargo/config.toml
@@ -0,0 +1,3 @@
+[alias]
+lint = "clippy --no-deps -- -D warnings"
+lint-all = "clippy --no-deps -- -D clippy::pedantic"
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
new file mode 100644
index 0000000..ed56730
--- /dev/null
+++ b/.github/workflows/build.yml
@@ -0,0 +1,29 @@
+name: Build
+on:
+ push:
+ branches:
+ - master
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ toolchain: [stable, nightly]
+ steps:
+ - uses: hecrj/setup-rust-action@v2
+ with:
+ rust-version: ${{ matrix.toolchain }}
+ - uses: actions/checkout@master
+ - name: Install dependencies
+ run: |
+ export DEBIAN_FRONTED=noninteractive
+ sudo apt-get -qq update
+ sudo apt-get install -y libxkbcommon-dev libgtk-3-dev
+ - name: Build iced-builder binary
+ run: cargo build --verbose --release
+ - name: Archive iced-builder binary
+ uses: actions/upload-artifact@v4
+ with:
+ name: iced-builder-x86_64-unknown-linux-gnu
+ path: target/release/iced-builder
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml
new file mode 100644
index 0000000..4647a07
--- /dev/null
+++ b/.github/workflows/lint.yml
@@ -0,0 +1,17 @@
+name: Lint
+on: [push, pull_request]
+jobs:
+ lint:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: hecrj/setup-rust-action@v2
+ with:
+ components: clippy
+ - uses: actions/checkout@master
+ - name: Install dependencies
+ run: |
+ export DEBIAN_FRONTED=noninteractive
+ sudo apt-get -qq update
+ sudo apt-get install -y libxkbcommon-dev libgtk-3-dev
+ - name: Check lints
+ run: cargo lint
diff --git a/src/main.rs b/src/main.rs
index 5b95b94..7f935a1 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,8 +1,8 @@
-#![feature(test)]
mod config;
mod dialogs;
mod environment;
mod error;
+#[allow(clippy::all, dead_code)]
mod icon;
mod panes;
mod theme;
@@ -167,7 +167,7 @@ impl App {
let ids: Vec<Id> = zones.into_iter().map(|z| z.0).collect();
if !ids.is_empty() {
let eltree_clone = self.project.element_tree.clone();
- let action = Action::new(&ids, &eltree_clone, None);
+ let action = Action::new(&ids, eltree_clone.as_ref(), None);
let result = name.handle_action(
self.project.element_tree.as_mut(),
action,
@@ -198,7 +198,7 @@ impl App {
let eltree_clone = self.project.element_tree.clone();
let action = Action::new(
&ids,
- &eltree_clone,
+ eltree_clone.as_ref(),
Some(element.get_id()),
);
let result = element.handle_action(
@@ -346,7 +346,7 @@ impl App {
match pane {
Panes::Designer => match &self.designer_page {
DesignerPage::DesignerView => designer_view::view(
- &self.project.element_tree,
+ self.project.element_tree.as_ref(),
self.project.get_theme(&self.config),
is_focused,
),
diff --git a/src/panes/designer_view.rs b/src/panes/designer_view.rs
index 76456db..8dfea5a 100644
--- a/src/panes/designer_view.rs
+++ b/src/panes/designer_view.rs
@@ -5,7 +5,7 @@ use super::style;
use crate::types::{DesignerPage, Message, RenderedElement};
pub fn view<'a>(
- element_tree: &Option<RenderedElement>,
+ element_tree: Option<&RenderedElement>,
designer_theme: iced::Theme,
is_focused: bool,
) -> pane_grid::Content<'a, Message> {
diff --git a/src/theme.rs b/src/theme.rs
index 7d18aa9..db16372 100644
--- a/src/theme.rs
+++ b/src/theme.rs
@@ -58,13 +58,13 @@ pub fn theme_from_str(
fn palette_to_string(palette: &iced::theme::Palette) -> String {
format!(
- r#"Palette {{
+ r"Palette {{
background: color!(0x{}),
text: color!(0x{}),
primary: color!(0x{}),
success: color!(0x{}),
danger: color!(0x{}),
- }}"#,
+ }}",
color_to_hex(palette.background),
color_to_hex(palette.text),
color_to_hex(palette.primary),
@@ -75,8 +75,8 @@ fn palette_to_string(palette: &iced::theme::Palette) -> String {
fn extended_to_string(extended: &Extended) -> String {
format!(
- r#"
-Extended{{background:Background{{base:Pair{{color:color!(0x{}),text:color!(0x{}),}},weak:Pair{{color:color!(0x{}),text:color!(0x{}),}},strong:Pair{{color:color!(0x{}),text:color!(0x{}),}},}},primary:Primary{{base:Pair{{color:color!(0x{}),text:color!(0x{}),}},weak:Pair{{color:color!(0x{}),text:color!(0x{}),}},strong:Pair{{color:color!(0x{}),text:color!(0x{}),}},}},secondary:Secondary{{base:Pair{{color:color!(0x{}),text:color!(0x{}),}},weak:Pair{{color:color!(0x{}),text:color!(0x{}),}},strong:Pair{{color:color!(0x{}),text:color!(0x{}),}},}},success:Success{{base:Pair{{color:color!(0x{}),text:color!(0x{}),}},weak:Pair{{color:color!(0x{}),text:color!(0x{}),}},strong:Pair{{color:color!(0x{}),text:color!(0x{}),}},}},danger:Danger{{base:Pair{{color:color!(0x{}),text:color!(0x{}),}},weak:Pair{{color:color!(0x{}),text:color!(0x{}),}},strong:Pair{{color:color!(0x{}),text:color!(0x{}),}},}},is_dark:true,}}"#,
+ r"
+Extended{{background:Background{{base:Pair{{color:color!(0x{}),text:color!(0x{}),}},weak:Pair{{color:color!(0x{}),text:color!(0x{}),}},strong:Pair{{color:color!(0x{}),text:color!(0x{}),}},}},primary:Primary{{base:Pair{{color:color!(0x{}),text:color!(0x{}),}},weak:Pair{{color:color!(0x{}),text:color!(0x{}),}},strong:Pair{{color:color!(0x{}),text:color!(0x{}),}},}},secondary:Secondary{{base:Pair{{color:color!(0x{}),text:color!(0x{}),}},weak:Pair{{color:color!(0x{}),text:color!(0x{}),}},strong:Pair{{color:color!(0x{}),text:color!(0x{}),}},}},success:Success{{base:Pair{{color:color!(0x{}),text:color!(0x{}),}},weak:Pair{{color:color!(0x{}),text:color!(0x{}),}},strong:Pair{{color:color!(0x{}),text:color!(0x{}),}},}},danger:Danger{{base:Pair{{color:color!(0x{}),text:color!(0x{}),}},weak:Pair{{color:color!(0x{}),text:color!(0x{}),}},strong:Pair{{color:color!(0x{}),text:color!(0x{}),}},}},is_dark:true,}}",
color_to_hex(extended.background.base.color),
color_to_hex(extended.background.base.text),
color_to_hex(extended.background.weak.color),
diff --git a/src/types/rendered_element.rs b/src/types/rendered_element.rs
index b001556..05cfb52 100755
--- a/src/types/rendered_element.rs
+++ b/src/types/rendered_element.rs
@@ -378,7 +378,7 @@ pub enum Action<'a> {
impl<'a> Action<'a> {
pub fn new(
ids: &'a [Id],
- element_tree: &'a Option<RenderedElement>,
+ element_tree: Option<&'a RenderedElement>,
source_id: Option<Id>,
) -> Self {
let mut action = Self::Stop;
@@ -400,7 +400,7 @@ impl<'a> Action<'a> {
}
_ => ids.last().unwrap(),
};
- let mut element_tree = element_tree.clone().unwrap();
+ let mut element_tree = element_tree.unwrap().clone();
let element = element_tree.find_by_id(id).unwrap();
// Element is a parent and isn't a non-empty container