mirror of
https://gitlab.com/cc-ru/ocelot/ocelot-desktop.git
synced 2025-12-20 02:59:19 +01:00
Don't change things if editing is disabled
This commit is contained in:
parent
604d7f156d
commit
745aac646f
@ -35,7 +35,7 @@ trait DiskItem
|
||||
|
||||
override def createWindow(): DiskEditWindow = new DiskEditWindow(this)
|
||||
|
||||
def isEditingAllowed: Boolean = {
|
||||
def editingAllowed: Boolean = {
|
||||
slot.fold(false)(_.inventory match {
|
||||
case _: RaidNode => false
|
||||
case _ => true
|
||||
@ -43,7 +43,7 @@ trait DiskItem
|
||||
}
|
||||
|
||||
override def fillRmbMenu(menu: ContextMenu): Unit = {
|
||||
if (isEditingAllowed) {
|
||||
if (editingAllowed) {
|
||||
// Real path
|
||||
entity match {
|
||||
case diskManaged: DiskManaged =>
|
||||
|
||||
@ -142,4 +142,6 @@ class RaidNode(val raid: Raid)
|
||||
override def diskLabel_=(label: Option[String]): Unit = raid.label.setLabel(label.orNull)
|
||||
|
||||
override def isLabelWriteable: Boolean = true
|
||||
|
||||
override def editingAllowed: Boolean = raid.filesystem.isDefined
|
||||
}
|
||||
|
||||
@ -63,7 +63,7 @@ class DiskEditWindow(disk: EditableDisk) extends PanelWindow {
|
||||
disk.diskLabel = Some(text).filter(_.nonEmpty)
|
||||
}
|
||||
|
||||
override def enabled: Boolean = disk.isLabelWriteable
|
||||
override def enabled: Boolean = disk.editingAllowed && disk.isLabelWriteable
|
||||
}
|
||||
},
|
||||
Padding2D(bottom = 12),
|
||||
@ -106,7 +106,7 @@ class DiskEditWindow(disk: EditableDisk) extends PanelWindow {
|
||||
override def borderColor: Color = borderAnimation.color
|
||||
|
||||
override def onPressed(): Unit = {
|
||||
if (!isColorSelected) {
|
||||
if (disk.editingAllowed && !isColorSelected) {
|
||||
disk.color = dyeColor
|
||||
}
|
||||
}
|
||||
@ -135,7 +135,11 @@ class DiskEditWindow(disk: EditableDisk) extends PanelWindow {
|
||||
children :+= new Button {
|
||||
override def text: String = "Make read-only"
|
||||
|
||||
override def onClick(): Unit = disk.lock()
|
||||
override def onClick(): Unit = {
|
||||
if (disk.editingAllowed) {
|
||||
disk.lock()
|
||||
}
|
||||
}
|
||||
|
||||
override def enabled: Boolean = isWriteable
|
||||
}
|
||||
@ -148,7 +152,11 @@ class DiskEditWindow(disk: EditableDisk) extends PanelWindow {
|
||||
children :+= new Button {
|
||||
override def text: String = s"Make ${if (isManaged) "unmanaged" else "managed"}"
|
||||
|
||||
override def onClick(): Unit = disk.setManaged(!isManaged)
|
||||
override def onClick(): Unit = {
|
||||
if (disk.editingAllowed) {
|
||||
disk.setManaged(!isManaged)
|
||||
}
|
||||
}
|
||||
|
||||
override def maximumSize: Size2D = super.maximumSize.copy(width = Float.PositiveInfinity)
|
||||
}
|
||||
@ -161,12 +169,20 @@ class DiskEditWindow(disk: EditableDisk) extends PanelWindow {
|
||||
children :+= BottomRow
|
||||
}
|
||||
})
|
||||
|
||||
override def update(): Unit = {
|
||||
super.update()
|
||||
|
||||
if (!disk.editingAllowed) {
|
||||
close()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
object DiskEditWindow {
|
||||
trait EditableDisk {
|
||||
def disk: Option[Environment]
|
||||
|
||||
|
||||
def diskAddress: Option[String] = for (
|
||||
disk <- disk;
|
||||
node <- Option(disk.node);
|
||||
@ -182,6 +198,8 @@ object DiskEditWindow {
|
||||
def diskLabel_=(label: Option[String]): Unit
|
||||
|
||||
def isLabelWriteable: Boolean
|
||||
|
||||
def editingAllowed: Boolean
|
||||
}
|
||||
|
||||
trait HasColor {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user