
This change makes it so that if you are the first to join a channel, your project is automatically shared. It also makes it so that if you join a channel via a link and there are no shared projects, you open the notes instead of an empty workspace with nothing. This is to try and address the discoverability of project sharing: we've had two reviews that have talked about channels, but not talked about sharing projects into them, which makes me suspect they didn't know about the feature. Release Notes: - Added a setting `share_on_join` (defaulting to true). When set, and you join an empty channel, your project is automatically shared.
42 lines
1.1 KiB
Rust
42 lines
1.1 KiB
Rust
use anyhow::Result;
|
|
use gpui::AppContext;
|
|
use schemars::JsonSchema;
|
|
use serde_derive::{Deserialize, Serialize};
|
|
use settings::Settings;
|
|
|
|
#[derive(Deserialize, Debug)]
|
|
pub struct CallSettings {
|
|
pub mute_on_join: bool,
|
|
pub share_on_join: bool,
|
|
}
|
|
|
|
/// Configuration of voice calls in Zed.
|
|
#[derive(Clone, Default, Serialize, Deserialize, JsonSchema, Debug)]
|
|
pub struct CallSettingsContent {
|
|
/// Whether the microphone should be muted when joining a channel or a call.
|
|
///
|
|
/// Default: false
|
|
pub mute_on_join: Option<bool>,
|
|
|
|
/// Whether your current project should be shared when joining an empty channel.
|
|
///
|
|
/// Default: true
|
|
pub share_on_join: Option<bool>,
|
|
}
|
|
|
|
impl Settings for CallSettings {
|
|
const KEY: Option<&'static str> = Some("calls");
|
|
|
|
type FileContent = CallSettingsContent;
|
|
|
|
fn load(
|
|
default_value: &Self::FileContent,
|
|
user_values: &[&Self::FileContent],
|
|
_cx: &mut AppContext,
|
|
) -> Result<Self>
|
|
where
|
|
Self: Sized,
|
|
{
|
|
Self::load_via_json_merge(default_value, user_values)
|
|
}
|
|
}
|