Skip to content

Commit

Permalink
renamed tabs to buffers
Browse files Browse the repository at this point in the history
  • Loading branch information
Redhawk18 committed Mar 1, 2024
1 parent bfb35ef commit 552a9be
Show file tree
Hide file tree
Showing 5 changed files with 33 additions and 34 deletions.
6 changes: 3 additions & 3 deletions gui/src/tab.rs → gui/src/buffer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@ use iced::widget::text_editor::Content;
use std::path::PathBuf;

#[derive(Debug)]
pub enum Tab {
File(FileTab),
pub enum Buffer {
File(FileBuffer),
}

#[derive(Debug, Default)]
pub struct FileTab {
pub struct FileBuffer {
pub path: Option<PathBuf>,
pub content: Content,
}
7 changes: 1 addition & 6 deletions gui/src/file_dialog.rs
Original file line number Diff line number Diff line change
@@ -1,11 +1,6 @@


use rfd::AsyncFileDialog;
use snafu::{ResultExt, Snafu};
use std::{
path::{PathBuf},
sync::Arc,
};
use std::{path::PathBuf, sync::Arc};
use tokio::fs;

#[derive(Debug, Clone, Snafu)]
Expand Down
33 changes: 17 additions & 16 deletions gui/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
// my comment from the editor

mod buffer;
mod file_dialog;
mod style;
mod tab;
mod widgets;
use std::path::PathBuf;

use tab::{FileTab, Tab};
use buffer::{Buffer, FileBuffer};
use widgets::{menu_bar, pane_grid};

use iced::{
Expand All @@ -25,7 +23,7 @@ pub fn start_gui() -> iced::Result {
}

pub(crate) struct Blaze {
data: SlotMap<DefaultKey, Tab>,
data: SlotMap<DefaultKey, Buffer>,
panes: Panes,
}

Expand Down Expand Up @@ -81,23 +79,23 @@ impl Blaze {
self.panes.data.get_mut(self.panes.active).unwrap()
}

pub(crate) fn get_tab(&self) -> Option<&Tab> {
pub(crate) fn get_tab(&self) -> Option<&Buffer> {
let panestate = self.get_panestate();
match panestate.data.get(panestate.active_tab_index) {
Some(key) => Some(self.data.get(*key).unwrap()),
None => None,
}
}

pub(crate) fn get_mut_tab(&mut self) -> Option<&mut Tab> {
pub(crate) fn get_mut_tab(&mut self) -> Option<&mut Buffer> {
let panestate = self.get_panestate();
match panestate.get_active_key() {
Some(key) => Some(self.data.get_mut(*key).unwrap()),
None => None,
}
}

pub(crate) fn insert_tab(&mut self, tab: Tab) {
pub(crate) fn insert_tab(&mut self, tab: Buffer) {
let key = self.data.insert(tab);
self.get_mut_panestate().data.push(key);
}
Expand All @@ -108,7 +106,7 @@ impl PaneState {
self.data.get(self.active_tab_index)
}

pub fn get_data<'a>(&'a self, map: &'a SlotMap<DefaultKey, Tab>) -> Vec<&Tab> {
pub fn get_data<'a>(&'a self, map: &'a SlotMap<DefaultKey, Buffer>) -> Vec<&Buffer> {
self.data.iter().map(|key| map.get(*key).unwrap()).collect()
}

Expand Down Expand Up @@ -146,7 +144,7 @@ impl Application for Blaze {
match message {
Message::FontLoaded(_) => {}

Message::NewFile => self.insert_tab(Tab::File(FileTab::default())),
Message::NewFile => self.insert_tab(Buffer::File(FileBuffer::default())),

Message::OpenFile => {
return Command::perform(file_dialog::open_file(), Message::OpenedFile)
Expand All @@ -157,7 +155,7 @@ impl Application for Blaze {
return Command::none();
};

self.insert_tab(Tab::File(FileTab {
self.insert_tab(Buffer::File(FileBuffer {
path: Some(file.0),
content: Content::with_text(&file.1),
}))
Expand All @@ -170,9 +168,12 @@ impl Application for Blaze {
};

match tab {
Tab::File(file_tab) => {
Buffer::File(file_buffer) => {
return Command::perform(
file_dialog::save_file(file_tab.path.clone(), file_tab.content.text()),
file_dialog::save_file(
file_buffer.path.clone(),
file_buffer.content.text(),
),
Message::Saved,
);
}
Expand All @@ -188,9 +189,9 @@ impl Application for Blaze {
};

match tab {
Tab::File(file_tab) => {
Buffer::File(file_buffer) => {
return Command::perform(
file_dialog::save_file_with_dialog(file_tab.content.text()),
file_dialog::save_file_with_dialog(file_buffer.content.text()),
Message::SavedAs,
)
}
Expand Down Expand Up @@ -245,7 +246,7 @@ impl Application for Blaze {
Message::TextEditorUpdate(action) => {
let tab = self.get_mut_tab().unwrap();
match tab {
Tab::File(filetab) => filetab.content.perform(action),
Buffer::File(file_buffer) => file_buffer.content.perform(action),
}
} // Message::TextInputUpdate(text) => {
// let tab = self.get_mut_tab().unwrap();
Expand Down
4 changes: 2 additions & 2 deletions gui/src/widgets/pane_grid.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use crate::{
style::{pane_active, pane_inactive, title_bar_active, title_bar_inactive},
widgets::tab_bar,
Message, Panes, Tab,
Buffer, Message, Panes,
};

use iced::{
Expand All @@ -17,7 +17,7 @@ use slotmap::{DefaultKey, SlotMap};

pub(crate) fn pane_grid<'a>(
panes: &'a Panes,
map: &'a SlotMap<DefaultKey, Tab>,
map: &'a SlotMap<DefaultKey, Buffer>,
) -> PaneGrid<'a, Message, Theme, Renderer> {
PaneGrid::new(&panes.data, |pane, state, _is_maximized| {
let active = panes.active != pane;
Expand Down
17 changes: 10 additions & 7 deletions gui/src/widgets/tab_bar.rs
Original file line number Diff line number Diff line change
@@ -1,26 +1,29 @@
use crate::{Message, Tab};
use crate::{Buffer, Message};

use iced::{
widget::{column, text_editor, Column},
Element, Length, Renderer, Theme,
};
use iced_aw::{TabBar, TabLabel};

pub(crate) fn tab_bar<'a>(active: usize, data: &[&'a Tab]) -> Column<'a, Message, Theme, Renderer> {
pub(crate) fn tab_bar<'a>(
active: usize,
data: &[&'a Buffer],
) -> Column<'a, Message, Theme, Renderer> {
if data.is_empty() {
column!()
} else {
column!(head(active, data), body(active, data)).padding(1)
}
}

fn head(active: usize, data: &[&Tab]) -> TabBar<Message, usize, Theme, Renderer> {
fn head(active: usize, data: &[&Buffer]) -> TabBar<Message, usize, Theme, Renderer> {
let mut tab_bar = TabBar::new(Message::TabSelected).on_close(Message::TabClosed);

for (i, tab) in data.iter().enumerate() {
match tab {
Tab::File(file_tab) => {
let filename = match &file_tab.path {
Buffer::File(file_buffer) => {
let filename = match &file_buffer.path {
Some(path) => path.file_name().unwrap().to_str().unwrap(),
None => "New Tab",
};
Expand All @@ -33,11 +36,11 @@ fn head(active: usize, data: &[&Tab]) -> TabBar<Message, usize, Theme, Renderer>
tab_bar.set_active_tab(&active).tab_width(Length::Shrink)
}

fn body<'a>(active: usize, data: &[&'a Tab]) -> Element<'a, Message> {
fn body<'a>(active: usize, data: &[&'a Buffer]) -> Element<'a, Message> {
let active_tab = data.get(active).unwrap(); //wrong

match active_tab {
Tab::File(file_tab) => text_editor(&file_tab.content)
Buffer::File(file_buffer) => text_editor(&file_buffer.content)
.height(Length::Fill)
.on_action(Message::TextEditorUpdate)
.into(),
Expand Down

0 comments on commit 552a9be

Please sign in to comment.