Make "New Workspace" button add workspace
This commit is contained in:
parent
80e4fb0227
commit
ea9298c021
2 changed files with 19 additions and 5 deletions
17
src/main.rs
17
src/main.rs
|
|
@ -36,7 +36,8 @@ use cosmic::{
|
||||||
},
|
},
|
||||||
iced_sctk::commands::layer_surface::{destroy_layer_surface, get_layer_surface},
|
iced_sctk::commands::layer_surface::{destroy_layer_surface, get_layer_surface},
|
||||||
};
|
};
|
||||||
use cosmic_config::ConfigGet;
|
use cosmic_comp_config::workspace::WorkspaceAmount;
|
||||||
|
use cosmic_config::{ConfigGet, ConfigSet};
|
||||||
use once_cell::sync::Lazy;
|
use once_cell::sync::Lazy;
|
||||||
use std::{
|
use std::{
|
||||||
collections::{HashMap, HashSet},
|
collections::{HashMap, HashSet},
|
||||||
|
|
@ -115,6 +116,7 @@ enum Msg {
|
||||||
DndWorkspaceDrop,
|
DndWorkspaceDrop,
|
||||||
DndWorkspaceData(String, Vec<u8>),
|
DndWorkspaceData(String, Vec<u8>),
|
||||||
SourceFinished,
|
SourceFinished,
|
||||||
|
NewWorkspace,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
|
|
@ -161,7 +163,7 @@ enum DragSurface {
|
||||||
}
|
}
|
||||||
|
|
||||||
struct Conf {
|
struct Conf {
|
||||||
_cosmic_comp_config: cosmic_config::Config,
|
cosmic_comp_config: cosmic_config::Config,
|
||||||
workspace_config: cosmic_comp_config::workspace::WorkspaceConfig,
|
workspace_config: cosmic_comp_config::workspace::WorkspaceConfig,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -173,7 +175,7 @@ impl Default for Conf {
|
||||||
cosmic_comp_config::workspace::WorkspaceConfig::default()
|
cosmic_comp_config::workspace::WorkspaceConfig::default()
|
||||||
});
|
});
|
||||||
Self {
|
Self {
|
||||||
_cosmic_comp_config: cosmic_comp_config,
|
cosmic_comp_config,
|
||||||
workspace_config,
|
workspace_config,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -565,6 +567,15 @@ impl Application for App {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Msg::NewWorkspace => {
|
||||||
|
if let WorkspaceAmount::Static(n) = &mut self.conf.workspace_config.workspace_amount
|
||||||
|
{
|
||||||
|
*n += 1;
|
||||||
|
self.conf
|
||||||
|
.cosmic_comp_config
|
||||||
|
.set("workspaces", &self.conf.workspace_config);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Command::none()
|
Command::none()
|
||||||
|
|
|
||||||
|
|
@ -120,8 +120,11 @@ fn workspaces_sidebar<'a>(
|
||||||
.map(|w| workspace_sidebar_entry(w, output))
|
.map(|w| workspace_sidebar_entry(w, output))
|
||||||
.collect();
|
.collect();
|
||||||
if amount != WorkspaceAmount::Dynamic {
|
if amount != WorkspaceAmount::Dynamic {
|
||||||
// TODO implement
|
sidebar_entries.push(
|
||||||
sidebar_entries.push(widget::button(widget::text("New Workspace")).into());
|
widget::button(widget::text("New Workspace"))
|
||||||
|
.on_press(Msg::NewWorkspace)
|
||||||
|
.into(),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
let sidebar_entries_container: cosmic::Element<'_, _> = match layout {
|
let sidebar_entries_container: cosmic::Element<'_, _> = match layout {
|
||||||
WorkspaceLayout::Vertical => column(sidebar_entries).into(),
|
WorkspaceLayout::Vertical => column(sidebar_entries).into(),
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue