Skip to content

Commit

Permalink
adds button to show removable disks
Browse files Browse the repository at this point in the history
  • Loading branch information
taukakao committed Feb 9, 2025
1 parent 2f48587 commit 3245956
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 11 deletions.
31 changes: 21 additions & 10 deletions vanilla_installer/core/disks.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,16 @@ def pretty_size(self):
else:
return f"{size} B"

@property
def is_removable(self):
if os.path.isfile("/sys/block/" + self.__disk + "/removable"):
with open("/sys/block/" + self.__disk + "/removable") as f:
removable = int(f.readlines()[0].strip())
if removable == 1:
return True

return False


class Partition:
def __init__(self, disk: str, partition: str):
Expand Down Expand Up @@ -217,23 +227,24 @@ def __get_disks(self):
if disk.startswith(("loop", "ram", "sr", "zram", "dm-")):
continue

if os.path.isfile("/sys/block/" + disk + "/removable"):
with open("/sys/block/" + disk + "/removable") as f:
removable = int(f.readlines()[0].strip())

if removable == 1:
continue

disks.append(Disk(disk))

return disks

@property
def all_disks(self):
return self.__disks
def all_disks(self, include_removable: bool = True):
selected_disks = []
if include_removable:
selected_disks = self.__disks
else:
for disk in self.__disks:
if not disk.is_removable:
selected_disks.append(disk)

return selected_disks

def get_disk(self, disk: str):
for disk in self.all_disks:
for disk in self.all_disks():
if disk.disk == disk:
return disk

Expand Down
15 changes: 14 additions & 1 deletion vanilla_installer/defaults/disk.py
Original file line number Diff line number Diff line change
Expand Up @@ -688,20 +688,33 @@ def __init__(self, window, distro_info, key, step, **kwargs):
)

# append the disks widgets
for disk in self.__disks.all_disks:
for disk in self.__disks.all_disks(include_removable=False):
entry = VanillaDefaultDiskEntry(self, disk)
self.group_disks.add(entry)

self.__registry_disks.append(entry)

all_disks_button = Adw.ButtonRow()
all_disks_button.set_title(_("Show removable disks"))
self.group_disks.add(all_disks_button)

# signals
all_disks_button.connect("activated", self.__on_btn_all_disks)
self.btn_next.connect("clicked", self.__on_btn_next_clicked)
self.btn_auto.connect("clicked", self.__on_auto_clicked)
self.btn_manual.connect("clicked", self.__on_manual_clicked)

def get_finals(self):
return {"disk": self.__partition_recipe}

def __on_btn_all_disks(self, widget):
widget.set_visible(False)
for disk in self.__disks.all_disks(include_removable=True):
if disk.is_removable:
entry = VanillaDefaultDiskEntry(self, disk)
self.group_disks.add(entry)
self.__registry_disks.append(entry)

def __on_close_default_disk_part_modal(self, *args):
self.btn_next.set_visible(self.__partition_recipe is not None)
self.btn_next.set_sensitive(self.__partition_recipe is not None)
Expand Down

0 comments on commit 3245956

Please sign in to comment.