15 Commits

Author SHA1 Message Date
Alec 9c0a4e0ff2 Fix popularity stats to use upload data instead of download data
- Change popularity stats to analyze upload records (Direction = 'Upload')
- This shows which of your shared files are most downloaded by others
- Update error messages and explanations to reflect upload-based analysis
- Remove "NEW" labels from README features
- Clarify that popularity shows download frequency of your uploads
2025-09-03 10:53:43 +02:00
Alec 7ebb1372f4 Fix popularity stats and enhance path parsing for download-based analysis
- Fix database format compatibility for popularity functions
- Change popularity metrics from uploads to downloads (tracks user demand)
- Implement enhanced left-to-right path parsing algorithm
- Add support for diverse library structures (/music/, \Artists\, etc.)
- Improve artist name removal from album titles
- Update UI labels to reflect download-based popularity
2025-09-01 12:38:33 +02:00
Alec cf197456de Add popularity statistics tab with artist and album rankings
- New Popularity Stats tab showing top artists and albums by upload count
- Interactive charts with truncated names and hover tooltips
- Smart album name cleaning to remove redundant artist prefixes
- Library format detection and user-friendly error messages
- Configurable top entries display (5-50, default 10)
- Read-only tables to prevent accidental data modification
- Centered charts with proper label spacing
- Removed mplcursors dependency for better compatibility
- Updated README with new features and screenshot
2025-07-26 11:26:55 +02:00
Alec 3563eb6832 Fix window resize behavior - content now scales properly
- Replace setMaximumHeight() with setMinimumHeight() for all tables and summaries
- Tables now expand/contract when window is resized instead of staying fixed
- Summary text boxes scale with window height changes
- Graph canvases set minimum height but can grow with window
- Proper responsive layout that adapts to different window sizes
- Better user experience with flexible content sizing
2025-07-17 16:31:47 +02:00
Alec e854deb1bc Center controls layout with separator in the middle
- Add stretch layouts on both sides to center the controls
- Separator (|) now positioned in the center of the window
- Database controls balanced on the left side of separator
- Analysis controls balanced on the right side of separator
- Symmetrical, professional layout with perfect centering
2025-07-17 16:28:33 +02:00
Alec 9b13720a15 Move database status label to bottom left for same-height controls
- Remove database status label from controls section
- Move database status label to bottom left of main window
- All controls now truly at same height (buttons and dropdown)
- Clean horizontal alignment between database and analysis controls
- Database status visible but doesn't interfere with control layout
- Increased label max width to 400px for better text display
2025-07-17 16:27:22 +02:00
Alec 8bee10df20 Align controls to same height with vertical separator
- Move analysis controls (period + button) to horizontal layout
- Add vertical separator (|) between database and analysis sections
- Align all controls at the same height for cleaner appearance
- Remove unnecessary nested vertical layouts
- Database controls on left, analysis controls on right
- Proper visual separation while maintaining compact layout
2025-07-17 16:25:35 +02:00
Alec 8e594387af Clean up UI: remove overrides, simplify controls, use proper labels
- Remove all font size and margin specifications to respect user's theme
- Remove Top N control (now fixed at 10 entries)
- Move time period selection next to analyze button in same row
- Use proper button labels: 'Add Database File' and 'Clear Database Files'
- Remove manual layout margins/spacing to use system defaults
- Simplify controls layout with database controls on left, analysis on right
- Let the operating system handle proper spacing and theming
2025-07-17 16:23:45 +02:00
Alec e95c125dff Consolidate controls into compact horizontal layout
- Combine database and filter sections into single horizontal row
- Reduce vertical space usage by ~60% for control area
- Use shorter button labels (Add DB, Clear) to save space
- Add visual separators between control sections
- Compact filter controls into inline layouts
- Make database path label more compact with word wrap
- Integrate analyze button into controls row
- Significantly increase space available for data display
2025-07-17 16:20:35 +02:00
Alec 74237b6429 Make UI more compact and efficient
- Reduce window minimum size to 900x700, default to 1000x750
- Decrease graph figure sizes from 12x4 to 10x3
- Add proper margins and spacing throughout all layouts
- Reduce summary text height from 120px to 90px
- Limit table heights to 150px with alternating row colors
- Adjust graph subplot margins for better space utilization
- Use smaller font size for summary text
- Improve overall visual density and information display
2025-07-17 16:17:56 +02:00
Alec e484bd6704 Fix line unpacking error in graph plotting
- Check plot() return values before accessing first element
- Handle cases where matplotlib returns None or empty results
- Fix total errors calculation in amounts graph
- Update both amounts and ratios graphs consistently
- Prevent 'cannot unpack none-iteralLine2D Object' error
2025-07-17 16:13:38 +02:00
Alec f02a5416e7 Fix tooltip index access for proper data display
- Add multiple methods to access data point index from mplcursors
- Use coordinate-based fallback when direct index access fails
- Show proper date, metric name, and formatted values in tooltips
- Add better error handling with detailed error messages
2025-07-17 16:08:30 +02:00
Alec 5fe67cf9a5 Add interactive time series graphs with hover tooltips
- Add Visual Stats tab with two interactive graphs
- Amounts graph: uploads, downloads, errors, new users over time
- Ratios graph: speeds and error rates with dynamic y-axes
- Interactive hover tooltips showing date and exact values
- Checkboxes to toggle metrics on/off
- Automatic y-axis adjustment when metrics are disabled
- Clean, modern graph styling with proper date formatting
- Support for all existing time period filters
2025-07-17 16:04:16 +02:00
Alec 0c86bcee18 Convert to GUI-only application
- Remove all CLI/TUI functionality and command line arguments
- Update README to reflect GUI-only nature
- Simplify main() function to launch GUI directly
- Remove unused imports and display_stats function
2025-07-17 15:44:50 +02:00
Alec f21c75adb0 Update GUI with dropdown time periods and backwards compatibility
- Replace spinbox with dropdown for time periods (All time, Last month, Last year)
- Add backwards compatibility for both old and new database formats
- Detect database schema automatically and use appropriate queries
- Fix compatibility with newer transfers.db format (StateDescription vs State)
2025-07-17 15:43:44 +02:00