Skip to content

Commit c98f13d

Browse files
committed
expand false
1 parent 06cfb7c commit c98f13d

File tree

2 files changed

+71
-4
lines changed

2 files changed

+71
-4
lines changed

_vpk.py

Lines changed: 69 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import subprocess
88
import tempfile
99
from texture import Texture
10+
from PIL import Image, ImageTk
1011

1112
class VPK:
1213
"""
@@ -22,6 +23,7 @@ def __init__(self, sourceSDK) -> None:
2223
"""
2324
self.sdk = sourceSDK
2425
self.vpk_file = None
26+
self.thumbnails = {}
2527

2628
def display_vpk_contents(self, file=""):
2729
"""
@@ -103,15 +105,24 @@ def populate_tree(self, files):
103105
if subfolder in [self.tree.item(node, "text") for node in nodes]:
104106
parent = [node for node in nodes if self.tree.item(node, "text") == subfolder][0]
105107
else:
106-
parent = self.tree.insert("", "end", text=subfolder, open=True)
108+
parent = self.tree.insert("", "end", text=subfolder, open=False)
107109
else:
108110
nodes = self.tree.get_children(parent)
109111
if subfolder in [self.tree.item(node, "text") for node in nodes]:
110112
parent = [node for node in nodes if self.tree.item(node, "text") == subfolder][0]
111113
else:
112-
parent = self.tree.insert(parent, "end", text=subfolder, open=True)
114+
parent = self.tree.insert(parent, "end", text=subfolder, open=False)
113115
for file_name in file_list:
116+
parent_folder_path = os.path.join(self.sdk.parent_folder, folder) # Define parentFolder
117+
114118
self.tree.insert(parent, "end", text=file_name, tags=(folder,))
119+
"""
120+
thumbnail = self.load_thumbnail(file_name, parent_folder_path)
121+
if thumbnail:
122+
self.tree.insert(parent, "end", text=file_name, image=thumbnail, tags=(folder,))
123+
else:
124+
self.tree.insert(parent, "end", text=file_name, tags=(folder,))
125+
"""
115126

116127
def open_file_in_vpk(self, event):
117128
"""
@@ -327,3 +338,59 @@ def extract_to(self):
327338
destination_folder = filedialog.askdirectory(title="Select Destination Folder")
328339
if destination_folder:
329340
self.extract_and_save_file(file_path, destination_folder)
341+
342+
def load_thumbnail(self, file_path, parent=""):
343+
"""
344+
Load the appropriate thumbnail for a given file path.
345+
346+
Args:
347+
file_path (str): The path to the file.
348+
349+
Returns:
350+
ImageTk.PhotoImage: The thumbnail image.
351+
"""
352+
try:
353+
image = None
354+
base_path = os.path.dirname(os.path.abspath(__file__))
355+
356+
file_icons = {
357+
".vtf": "VTFEdit.png",
358+
".mdl": "hlmv.png",
359+
".tga": None,
360+
".vmf": "hammer.png",
361+
".vcd": "hlposer.png",
362+
".bsp": "source.png",
363+
".txt": "txt.png",
364+
".res": "txt.png",
365+
".vmt": "txt.png",
366+
".qc": "txt.png",
367+
".smd": "txt.png",
368+
".cfg": "txt.png",
369+
".sln": "Visual_Studio.png",
370+
".wav": "audio.png",
371+
".mp3": "audio.png",
372+
".bik": "video.png",
373+
".bat": "terminal.png"
374+
}
375+
376+
file_name, file_extension = os.path.splitext(file_path)
377+
378+
if file_extension in file_icons:
379+
if file_icons[file_extension]:
380+
image = Image.open(os.path.join(base_path, "icons", file_icons[file_extension]))
381+
else:
382+
image = Image.open(parent + "/" + file_path)
383+
elif os.path.isdir(file_path):
384+
image = Image.open(os.path.join(base_path, "icons", "fileexplorer.png"))
385+
386+
387+
if image:
388+
image.thumbnail((16, 16), Image.Resampling.LANCZOS)
389+
thumbnail = ImageTk.PhotoImage(image)
390+
self.thumbnails[file_path] = thumbnail
391+
return thumbnail
392+
except MemoryError:
393+
print("MemoryError: Failed to allocate bitmap for", file_path)
394+
except Exception as e:
395+
print("Error loading thumbnail:", e)
396+
return None

file.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,13 +99,13 @@ def display_files(self):
9999
if subfolder in [self.tree.item(node, "text") for node in nodes]:
100100
parent = [node for node in nodes if self.tree.item(node, "text") == subfolder][0]
101101
else:
102-
parent = self.tree.insert("", "end", text=subfolder, open=True)
102+
parent = self.tree.insert("", "end", text=subfolder, open=False)
103103
else:
104104
nodes = self.tree.get_children(parent)
105105
if subfolder in [self.tree.item(node, "text") for node in nodes]:
106106
parent = [node for node in nodes if self.tree.item(node, "text") == subfolder][0]
107107
else:
108-
parent = self.tree.insert(parent, "end", text=subfolder, open=True)
108+
parent = self.tree.insert(parent, "end", text=subfolder, open=False)
109109

110110
for file_name in file_list:
111111
parent_folder_path = os.path.join(self.sdk.parent_folder, folder) # Define parentFolder

0 commit comments

Comments
 (0)