Skip to content

Latest commit

 

History

History
105 lines (87 loc) · 4.92 KB

File metadata and controls

105 lines (87 loc) · 4.92 KB

Git Repository Manager - New Features Update

Features Implemented

1. Vertical Separator with Resizable Panes

  • Feature: Added a vertical separator between repositories and branches view
  • Implementation: Replaced static layout with ttk.PanedWindow(orient=tk.HORIZONTAL)
  • Benefits: Users can now drag the separator to adjust the width of the repositories pane vs branches pane
  • Default Weight: Left pane (repositories) has weight=1, right pane (branches) has weight=2

2. Initial Branch Sorting by Date

  • Feature: Branches are now initially sorted by date (most recent first)
  • Implementation:
    • Changed default sort_column = "date" and sort_reverse = True
    • Added _sort_filtered_branches() helper method
    • Updated apply_branch_filters() to automatically apply current sorting
  • Benefits: Users see the most recent branch activity first, which is typically most relevant

3. SHA Column Moved to Beginning

  • Feature: The SHA column is now the first column in the branches view
  • Implementation:
    • Reordered columns from ("name", "sha", "message", "author", "date") to ("sha", "name", "message", "author", "date")
    • Updated column configuration and display logic accordingly
  • Benefits: SHA information is now more prominent and easier to read

4. Dynamic Column Visibility via Header Context Menu

  • Feature: Right-click on branch table headers shows a context menu to toggle column visibility
  • Implementation:
    • Added branch_header_menu with checkbutton items for each column
    • Implemented on_branch_header_right_click() event handler
    • Added _update_column_visibility() method to dynamically hide/show columns
    • Name column is always visible (disabled in menu)
  • Benefits: Users can customize their view by hiding unnecessary columns
  • Columns Available: SHA ✓, Name (always visible), Message ✓, Author ✓, Date ✓

5. Windows System Context Menu for Folders

  • Feature: Right-clicking on folders in the tree view shows the Windows file explorer context menu
  • Implementation:
    • Enhanced on_tree_right_click() to detect folder items
    • Added show_windows_context_menu() method
    • Added _construct_folder_path() to build full paths for folder items
    • Cross-platform compatibility with fallback to simple menu
  • Benefits: Users get full Windows shell integration with options like:
    • Open
    • Open in new window
    • Copy path
    • Properties
    • And all other Windows context menu options

Technical Implementation Details

Column Visibility Management

  • Uses BooleanVar settings for each column: show_commit_sha, show_commit_message, show_author, show_date
  • Dynamic width adjustment: visible columns have normal width, hidden columns have width=0
  • Real-time updates when toggling visibility through header context menu

Improved Sorting Architecture

  • Centralized sorting logic in _sort_filtered_branches()
  • Lazy loading of commit information only when needed for sorting
  • Maintains sort state across filter operations
  • Default sorting by date (most recent first) for better user experience

Enhanced Context Menu System

  • Two separate context menus:
    1. context_menu: For repositories (Open in File Explorer)
    2. branch_header_menu: For column visibility toggles
  • Smart path resolution for folders without direct paths
  • Cross-platform file explorer integration

Layout Improvements

  • Replaced fixed layout with resizable PanedWindow
  • Better space utilization with adjustable pane sizes
  • Removed old static checkbox controls in favor of dynamic header menu

User Experience Improvements

  1. More Intuitive Layout: Resizable panes let users optimize their workspace
  2. Better Data Priority: SHA-first column order and date-first sorting show most relevant info upfront
  3. Customizable Views: Hide unnecessary columns to focus on what matters
  4. Native OS Integration: Full Windows context menu for folders provides familiar interface
  5. Performance: Lazy loading ensures fast UI updates while providing detailed information when needed

Usage Instructions

Resizing Panes

  • Drag the vertical separator between repositories and branches to adjust widths
  • Left pane contains the repository tree
  • Right pane contains the branch list

Column Visibility

  • Right-click on any column header in the branches table
  • Check/uncheck columns to show/hide them
  • Name column is always visible
  • Changes apply immediately

Folder Context Menu

  • Right-click on any folder in the repository tree
  • Windows will open the folder in File Explorer
  • For repositories, uses the custom "Open in File Explorer" option

Sorting

  • Click any column header to sort by that column
  • Click again to reverse sort order
  • Branches default to newest-first by date
  • SHA, Message, Author, and Date columns support sorting