Updated from master

This commit is contained in:
haikalvidya
2024-04-01 19:58:29 +07:00
parent 3f8f4ecd4a
commit a506a6e47d
8 changed files with 13 additions and 23 deletions

View File

@@ -58,6 +58,7 @@ pub fn default_mapping() -> Mapping {
entry!(KeyDown(KeyC); modifiers=[Accel], action_dispatch=NodeGraphMessage::Copy),
entry!(KeyDown(KeyD); modifiers=[Accel], action_dispatch=NodeGraphMessage::DuplicateSelectedNodes),
entry!(KeyDown(KeyH); modifiers=[Accel], action_dispatch=NodeGraphMessage::ToggleSelectedVisibility),
entry!(KeyDown(KeyL); modifiers=[Accel], action_dispatch=NodeGraphMessage::ToggleSelectedLocked),
//
// TransformLayerMessage
entry!(KeyDown(Enter); action_dispatch=TransformLayerMessage::ApplyTransformOperation),

View File

@@ -1363,7 +1363,7 @@ impl DocumentMessageHandler {
let has_selection = self.selected_nodes.selected_layers(self.metadata()).next().is_some();
let selection_all_visible = self.selected_nodes.selected_layers(self.metadata()).all(|layer| self.metadata().node_is_visible(layer.to_node()));
let selection_all_locked = false; // TODO: Implement
let selection_all_locked = self.selected_nodes.selected_layers(self.metadata()).all(|layer| self.metadata().node_is_locked(layer.to_node()));
let layers_panel_options_bar = WidgetLayout::new(vec![LayoutGroup::Row {
widgets: vec![
@@ -1417,8 +1417,8 @@ impl DocumentMessageHandler {
IconButton::new(if selection_all_locked { "PadlockLocked" } else { "PadlockUnlocked" }, 24)
.hover_icon(Some((if selection_all_locked { "PadlockUnlocked" } else { "PadlockLocked" }).into()))
.tooltip(if selection_all_locked { "Unlock Selected" } else { "Lock Selected" })
.tooltip_shortcut(action_keys!(DialogMessageDiscriminant::RequestComingSoonDialog))
.on_update(|_| DialogMessage::RequestComingSoonDialog { issue: Some(1127) }.into())
.tooltip_shortcut(action_keys!(NodeGraphMessageDiscriminant::ToggleSelectedLocked))
.on_update(|_| NodeGraphMessage::ToggleSelectedLocked.into())
.disabled(!has_selection)
.widget_holder(),
IconButton::new(if selection_all_visible { "EyeVisible" } else { "EyeHidden" }, 24)

View File

@@ -830,6 +830,11 @@ impl NodeGraphMessageHandler {
.filter(|&ancestor| ancestor != layer)
.all(|layer| network.nodes.get(&layer.to_node()).map(|node| node.visible).unwrap_or_default());
let parents_unlocked = layer
.ancestors(metadata)
.filter(|&ancestor| ancestor != layer)
.all(|layer| network.nodes.get(&layer.to_node()).map(|node| !node.locked).unwrap_or_default());
let data = LayerPanelEntry {
id: node_id,
layer_classification,
@@ -841,8 +846,8 @@ impl NodeGraphMessageHandler {
tooltip: if cfg!(debug_assertions) { format!("Layer ID: {node_id}") } else { "".into() },
visible: node.visible,
parents_visible,
unlocked: true,
parents_unlocked: true,
unlocked: !node.locked,
parents_unlocked,
};
responses.add(FrontendMessage::UpdateDocumentLayerDetails { data });
}

View File

@@ -1,4 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
<path d="M8,3C3,3,0,8,0,8s3,5,8,5s8-5,8-5S13,3,8,3z M8,12c-2.2,0-4-1.8-4-4s1.8-4,4-4s4,1.8,4,4S10.2,12,8,12z" />
<circle cx="9" cy="7" r="1.2" />
</svg>

Before

Width:  |  Height:  |  Size: 216 B

View File

@@ -1,3 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
<path d="M8,4c3.5,0,5.9,2.8,6.8,4c-0.9,1.2-3.3,4-6.8,4S2.1,9.2,1.2,8C2.1,6.8,4.5,4,8,4 M8,3C3,3,0,8,0,8s3,5,8,5s8-5,8-5S13,3,8,3L8,3z" />
</svg>

Before

Width:  |  Height:  |  Size: 207 B

View File

@@ -428,7 +428,7 @@
<IconButton
class={"status-toggle"}
classes={{ inactive: !listing.entry.parentsUnlocked }}
action={(e) => (toggleLayerVisibility(listing.entry.id), e?.stopPropagation())}
action={(e) => (toggleLayerLock(listing.entry.id), e?.stopPropagation())}
size={24}
icon={listing.entry.parentsUnlocked ? "PadlockLocked" : "PadlockUnlocked"}
hoverIcon={listing.entry.parentsUnlocked ? "PadlockUnlocked" : "PadlockLocked"}
@@ -444,13 +444,6 @@
hoverIcon={listing.entry.visible ? "EyeHide" : "EyeShow"}
tooltip={listing.entry.visible ? "Hide" : "Show"}
/>
<IconButton
class={"visibility"}
action={(e) => (toggleLayerLock(listing.entry.id), e?.stopPropagation())}
size={24}
icon={listing.entry.locked ? "Lock" : "Unlock"}
tooltip={listing.entry.locked ? "Locked" : "Unlocked"}
/>
</LayoutRow>
{/each}
</LayoutCol>

View File

@@ -145,7 +145,6 @@ import Rescale from "@graphite-frontend/assets/icon-16px-solid/rescale.svg";
import Reset from "@graphite-frontend/assets/icon-16px-solid/reset.svg";
import Settings from "@graphite-frontend/assets/icon-16px-solid/settings.svg";
import Trash from "@graphite-frontend/assets/icon-16px-solid/trash.svg";
import Unlock from "@graphite-frontend/assets/icon-16px-solid/unlock.svg";
import ViewModeNormal from "@graphite-frontend/assets/icon-16px-solid/view-mode-normal.svg";
import ViewModeOutline from "@graphite-frontend/assets/icon-16px-solid/view-mode-outline.svg";
import ViewModePixels from "@graphite-frontend/assets/icon-16px-solid/view-mode-pixels.svg";
@@ -219,7 +218,6 @@ const SOLID_16PX = {
Reset: { svg: Reset, size: 16 },
Settings: { svg: Settings, size: 16 },
Trash: { svg: Trash, size: 16 },
Unlock: { svg: Unlock, size: 16 },
ViewModeNormal: { svg: ViewModeNormal, size: 16 },
ViewModeOutline: { svg: ViewModeOutline, size: 16 },
ViewModePixels: { svg: ViewModePixels, size: 16 },

View File

@@ -126,7 +126,7 @@ export class FrontendNode {
readonly visible!: boolean;
readonly locked!: boolean;
readonly unlocked!: boolean;
readonly errors!: string | undefined;
}