feat: Add tkinter-based directory browse buttons for source and destination paths

This commit is contained in:
Bobby Abellana (aider) 2025-02-11 11:48:06 -08:00
parent c6caac6965
commit 70e3af157e
2 changed files with 31 additions and 32 deletions

View File

@ -3,3 +3,4 @@ msoffcrypto-tool>=5.0.0
tqdm>=4.65.0 tqdm>=4.65.0
streamlit>=1.24.0 streamlit>=1.24.0
python-docx>=0.8.11 python-docx>=0.8.11
tkinter

View File

@ -171,29 +171,28 @@ with col1:
col_src1, col_src2 = st.columns([1, 4]) col_src1, col_src2 = st.columns([1, 4])
with col_src1: with col_src1:
if st.button("How to Browse", key='source_browse'): if st.button("Browse", key='source_browse'):
st.info(""" try:
To find your folder path in Windows: import tkinter as tk
1. Open File Explorer from tkinter import filedialog
2. Navigate to your desired folder root = tk.Tk()
3. Click in the address bar (or press Alt+D) root.withdraw()
4. Copy the full path (Ctrl+C) root.wm_attributes('-topmost', 1)
5. Paste it here (Ctrl+V) path = filedialog.askdirectory(title="Select Source Directory")
if path:
Example paths: st.session_state['source_dir'] = path
C:\\Users\\YourName\\Documents st.session_state['source_dir_input'] = path
D:\\Work\\Files st.experimental_rerun()
""") root.destroy()
except Exception as e:
st.error(f"Error selecting directory: {str(e)}")
# Add a check and display for source directory status # Add a check and display for source directory status
if source_dir: if source_dir:
# Convert Windows path to Linux path if needed
source_dir = source_dir.replace('\\', '/')
if os.path.exists(source_dir): if os.path.exists(source_dir):
st.success(f"✅ Source directory exists: {source_dir}") st.success(f"✅ Source directory exists: {source_dir}")
else: else:
st.error(f"❌ Source directory not found: {source_dir}") st.error(f"❌ Source directory not found: {source_dir}")
st.info("Make sure the path is accessible to the Linux server")
# Destination Directory # Destination Directory
dest_dir = st.text_input("Destination Directory Path", dest_dir = st.text_input("Destination Directory Path",
@ -203,24 +202,24 @@ with col1:
col_dest1, col_dest2 = st.columns([1, 4]) col_dest1, col_dest2 = st.columns([1, 4])
with col_dest1: with col_dest1:
if st.button("How to Browse", key='dest_browse'): if st.button("Browse", key='dest_browse'):
st.info(""" try:
To find your folder path in Windows: import tkinter as tk
1. Open File Explorer from tkinter import filedialog
2. Navigate to your desired folder root = tk.Tk()
3. Click in the address bar (or press Alt+D) root.withdraw()
4. Copy the full path (Ctrl+C) root.wm_attributes('-topmost', 1)
5. Paste it here (Ctrl+V) path = filedialog.askdirectory(title="Select Destination Directory")
if path:
Example paths: st.session_state['dest_dir'] = path
C:\\Users\\YourName\\Documents st.session_state['dest_dir_input'] = path
D:\\Work\\Files st.experimental_rerun()
""") root.destroy()
except Exception as e:
st.error(f"Error selecting directory: {str(e)}")
# Add a check and display for destination directory status # Add a check and display for destination directory status
if dest_dir: if dest_dir:
# Convert Windows path to Linux path if needed
dest_dir = dest_dir.replace('\\', '/')
dest_parent = os.path.dirname(dest_dir) dest_parent = os.path.dirname(dest_dir)
if os.path.exists(dest_parent): if os.path.exists(dest_parent):
if os.path.exists(dest_dir): if os.path.exists(dest_dir):
@ -229,7 +228,6 @@ with col1:
st.info(f"i Destination directory will be created: {dest_dir}") st.info(f"i Destination directory will be created: {dest_dir}")
else: else:
st.error(f"❌ Parent directory not found: {dest_parent}") st.error(f"❌ Parent directory not found: {dest_parent}")
st.info("Make sure the path is accessible to the Linux server")
with col2: with col2:
if file_type == "Excel": if file_type == "Excel":