summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--.github/workflows/build.yml6
-rw-r--r--Cargo.toml7
-rw-r--r--iced_drop/src/lib.rs18
-rw-r--r--rustfmt.toml2
-rw-r--r--src/config.rs8
-rw-r--r--src/error.rs4
-rw-r--r--src/main.rs35
-rw-r--r--src/panes/code_view.rs2
-rw-r--r--src/panes/designer_view.rs2
-rw-r--r--src/panes/element_list.rs2
-rw-r--r--src/theme.rs2
-rw-r--r--src/types.rs2
-rw-r--r--src/types/element_name.rs2
-rw-r--r--src/types/project.rs2
-rwxr-xr-xsrc/types/rendered_element.rs4
-rw-r--r--src/widget.rs2
16 files changed, 52 insertions, 48 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index d2aa072..b0af166 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -9,11 +9,11 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
- toolchain: [stable, nightly]
+ rust-version: [stable, nightly]
steps:
- uses: hecrj/setup-rust-action@v2
with:
- rust-version: ${{ matrix.toolchain }}
+ rust-version: ${{ matrix.rust-version }}
- uses: actions/checkout@master
- name: Install dependencies
run: |
@@ -23,7 +23,7 @@ jobs:
- name: Build iced-builder binary
run: cargo build --verbose --release
- name: Archive iced-builder binary
- if: matrix.toolchain == 'stable'
+ if: matrix.rust-version == 'stable'
uses: actions/upload-artifact@v4
with:
name: iced-builder-x86_64-unknown-linux-gnu
diff --git a/Cargo.toml b/Cargo.toml
index 7576ed4..c071357 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -2,12 +2,13 @@
name = "iced_builder"
description = "UI builder for iced, built with iced."
version = "0.1.0"
-edition = "2021"
+edition = "2024"
authors = ["pml68 <contact@pml68.dev>"]
repository = "https://github.com/pml68/iced-builder"
license = "GPL-3.0-or-later"
categories = ["gui"]
keywords = ["gui", "ui", "graphics", "interface", "widgets"]
+rust-version = "1.85.0"
[dependencies]
iced.workspace = true
@@ -62,7 +63,6 @@ members = ["iced_drop"]
[lints.rust]
missing_debug_implementations = "deny"
-# missing_docs = "deny"
unsafe_code = "deny"
unused_results = "deny"
@@ -80,6 +80,3 @@ from_over_into = "deny"
needless_borrow = "deny"
new_without_default = "deny"
useless_conversion = "deny"
-
-[lints.rustdoc]
-broken_intra_doc_links = "forbid"
diff --git a/iced_drop/src/lib.rs b/iced_drop/src/lib.rs
index 9906cbe..c1e1b03 100644
--- a/iced_drop/src/lib.rs
+++ b/iced_drop/src/lib.rs
@@ -1,12 +1,10 @@
pub mod widget;
-use iced::{
- advanced::widget::{operate, Id},
- advanced::{graphics::futures::MaybeSend, renderer},
- task::Task,
- Element, Point, Rectangle,
-};
-
+use iced::advanced::graphics::futures::MaybeSend;
+use iced::advanced::renderer;
+use iced::advanced::widget::{operate, Id};
+use iced::task::Task;
+use iced::{Element, Point, Rectangle};
use widget::droppable::*;
use widget::operation::drop;
@@ -46,7 +44,11 @@ pub fn find_zones<Message, MF, F>(
) -> Task<Message>
where
Message: Send + 'static,
- MF: Fn(Vec<(Id, Rectangle)>) -> Message + MaybeSend + Sync + Clone + 'static,
+ MF: Fn(Vec<(Id, Rectangle)>) -> Message
+ + MaybeSend
+ + Sync
+ + Clone
+ + 'static,
F: Fn(&Rectangle) -> bool + Send + 'static,
{
operate(drop::find_zones(filter, options, depth)).map(move |id| msg(id))
diff --git a/rustfmt.toml b/rustfmt.toml
index 197262a..9a5736e 100644
--- a/rustfmt.toml
+++ b/rustfmt.toml
@@ -1,4 +1,4 @@
-edition = "2021"
+edition = "2024"
imports_granularity = "Module"
group_imports = "StdExternalCrate"
max_width = 80
diff --git a/src/config.rs b/src/config.rs
index 5569aae..975437f 100644
--- a/src/config.rs
+++ b/src/config.rs
@@ -1,11 +1,11 @@
use std::path::PathBuf;
use serde::Deserialize;
-use tokio_stream::wrappers::ReadDirStream;
use tokio_stream::StreamExt;
+use tokio_stream::wrappers::ReadDirStream;
-use crate::theme::{theme_from_str, theme_index, Appearance, Theme};
-use crate::{environment, Error};
+use crate::theme::{Appearance, Theme, theme_from_str, theme_index};
+use crate::{Error, environment};
#[derive(Debug, Clone, Default)]
pub struct Config {
@@ -75,7 +75,7 @@ impl Config {
pub async fn load_theme(theme_name: String) -> Result<Appearance, Error> {
use tokio::fs;
- let read_entry = |entry: fs::DirEntry| async move {
+ let read_entry = async move |entry: fs::DirEntry| {
let content = fs::read_to_string(entry.path()).await.ok()?;
let theme: Theme = toml::from_str(content.as_ref()).ok()?;
diff --git a/src/error.rs b/src/error.rs
index 09e6e86..002a1fc 100644
--- a/src/error.rs
+++ b/src/error.rs
@@ -16,9 +16,7 @@ pub enum Error {
RustFmt(Arc<rust_format::Error>),
#[error("the element tree contains no matching element")]
NonExistentElement,
- #[error(
- "the file dialog has been closed without selecting a valid option"
- )]
+ #[error("the file dialog has been closed without selecting a valid option")]
DialogClosed,
#[error("{0}")]
Other(String),
diff --git a/src/main.rs b/src/main.rs
index 743797c..13510b9 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -16,8 +16,8 @@ use dialogs::{error_dialog, unsaved_changes_dialog, warning_dialog};
use error::Error;
use iced::advanced::widget::Id;
use iced::widget::pane_grid::{self, Pane, PaneGrid};
-use iced::widget::{container, pick_list, row, text_editor, Column};
-use iced::{clipboard, keyboard, Alignment, Element, Length, Task, Theme};
+use iced::widget::{Column, container, pick_list, row, text_editor};
+use iced::{Alignment, Element, Length, Task, Theme, clipboard, keyboard};
use iced_anim::transition::Easing;
use iced_anim::{Animated, Animation};
use panes::{code_view, designer_view, element_list};
@@ -148,7 +148,7 @@ impl App {
self.theme.update(event);
}
Message::CopyCode => {
- return clipboard::write(self.editor_content.text())
+ return clipboard::write(self.editor_content.text());
}
Message::SwitchPage(page) => self.designer_page = page,
Message::EditorAction(action) => {
@@ -171,7 +171,7 @@ impl App {
point,
None,
None,
- )
+ );
}
Message::HandleNew(name, zones) => {
let ids: Vec<Id> = zones.into_iter().map(|z| z.0).collect();
@@ -200,7 +200,7 @@ impl App {
point,
None,
None,
- )
+ );
}
Message::HandleMove(element, zones) => {
let ids: Vec<Id> = zones.into_iter().map(|z| z.0).collect();
@@ -242,11 +242,13 @@ impl App {
self.project = Project::new();
self.project_path = None;
self.editor_content = text_editor::Content::new();
- } else if unsaved_changes_dialog("You have unsaved changes. Do you wish to discard these and create a new project?") {
- self.is_dirty = false;
- self.project = Project::new();
- self.project_path = None;
- self.editor_content = text_editor::Content::new();
+ } else if unsaved_changes_dialog(
+ "You have unsaved changes. Do you wish to discard these and create a new project?",
+ ) {
+ self.is_dirty = false;
+ self.project = Project::new();
+ self.project_path = None;
+ self.editor_content = text_editor::Content::new();
}
}
}
@@ -259,10 +261,15 @@ impl App {
Project::from_file(self.config.clone()),
Message::FileOpened,
);
- } else if unsaved_changes_dialog("You have unsaved changes. Do you wish to discard these and open another project?") {
- self.is_dirty = false;
- self.is_loading = true;
- return Task::perform(Project::from_file(self.config.clone()), Message::FileOpened);
+ } else if unsaved_changes_dialog(
+ "You have unsaved changes. Do you wish to discard these and open another project?",
+ ) {
+ self.is_dirty = false;
+ self.is_loading = true;
+ return Task::perform(
+ Project::from_file(self.config.clone()),
+ Message::FileOpened,
+ );
}
}
}
diff --git a/src/panes/code_view.rs b/src/panes/code_view.rs
index 1037b5d..e133078 100644
--- a/src/panes/code_view.rs
+++ b/src/panes/code_view.rs
@@ -1,5 +1,5 @@
use iced::advanced::text::highlighter::Format;
-use iced::widget::{button, pane_grid, row, text, text_editor, Space};
+use iced::widget::{Space, button, pane_grid, row, text, text_editor};
use iced::{Alignment, Background, Border, Font, Length, Theme};
use iced_custom_highlighter::{Highlight, Highlighter, Scope, Settings};
diff --git a/src/panes/designer_view.rs b/src/panes/designer_view.rs
index b0ba202..6340f73 100644
--- a/src/panes/designer_view.rs
+++ b/src/panes/designer_view.rs
@@ -1,4 +1,4 @@
-use iced::widget::{button, container, pane_grid, row, text, themer, Space};
+use iced::widget::{Space, button, container, pane_grid, row, text, themer};
use iced::{Alignment, Element, Length};
use super::style;
diff --git a/src/panes/element_list.rs b/src/panes/element_list.rs
index 8a1c6eb..a644083 100644
--- a/src/panes/element_list.rs
+++ b/src/panes/element_list.rs
@@ -1,4 +1,4 @@
-use iced::widget::{column, container, pane_grid, text, Column};
+use iced::widget::{Column, column, container, pane_grid, text};
use iced::{Alignment, Element, Length};
use iced_drop::droppable;
diff --git a/src/theme.rs b/src/theme.rs
index 6547c6b..a072714 100644
--- a/src/theme.rs
+++ b/src/theme.rs
@@ -1,7 +1,7 @@
use std::sync::Arc;
-use iced::theme::palette::Extended;
use iced::Color;
+use iced::theme::palette::Extended;
use crate::config::Config;
diff --git a/src/types.rs b/src/types.rs
index 7a6be71..2b743cd 100644
--- a/src/types.rs
+++ b/src/types.rs
@@ -5,8 +5,8 @@ pub mod rendered_element;
use std::path::PathBuf;
pub use element_name::ElementName;
-use iced::widget::{pane_grid, text_editor};
use iced::Theme;
+use iced::widget::{pane_grid, text_editor};
use iced_anim::Event;
pub use project::Project;
pub use rendered_element::*;
diff --git a/src/types/element_name.rs b/src/types/element_name.rs
index 2687673..186285d 100644
--- a/src/types/element_name.rs
+++ b/src/types/element_name.rs
@@ -1,7 +1,7 @@
use serde::{Deserialize, Serialize};
use super::rendered_element::{
- button, column, container, image, row, svg, text, Action, RenderedElement,
+ Action, RenderedElement, button, column, container, image, row, svg, text,
};
use crate::Error;
diff --git a/src/types/project.rs b/src/types/project.rs
index ee0ff6c..e665d5e 100644
--- a/src/types/project.rs
+++ b/src/types/project.rs
@@ -7,9 +7,9 @@ use rust_format::{Edition, Formatter, RustFmt};
use serde::{Deserialize, Serialize};
use super::rendered_element::RenderedElement;
+use crate::Error;
use crate::config::Config;
use crate::theme::{theme_from_str, theme_index, theme_to_string};
-use crate::Error;
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Project {
diff --git a/src/types/rendered_element.rs b/src/types/rendered_element.rs
index d2332ce..e321449 100755
--- a/src/types/rendered_element.rs
+++ b/src/types/rendered_element.rs
@@ -1,12 +1,12 @@
use std::collections::BTreeMap;
use iced::advanced::widget::Id;
-use iced::{widget, Element, Length};
+use iced::{Element, Length, widget};
use serde::{Deserialize, Serialize};
use super::ElementName;
-use crate::types::Message;
use crate::Error;
+use crate::types::Message;
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct RenderedElement {
diff --git a/src/widget.rs b/src/widget.rs
index ed2073a..f1eb0f3 100644
--- a/src/widget.rs
+++ b/src/widget.rs
@@ -1,5 +1,5 @@
-use iced::widget::{container, text, tooltip};
use iced::Element;
+use iced::widget::{container, text, tooltip};
pub mod tip {
pub use super::tooltip::Position;