update version

This commit is contained in:
Broque Thomas 2025-08-21 18:25:54 -07:00
parent 5362a7ff6b
commit d9e981c93e
2 changed files with 35 additions and 35 deletions

View file

@ -13,7 +13,7 @@ class VersionInfoModal(QDialog):
def __init__(self, parent=None): def __init__(self, parent=None):
super().__init__(parent) super().__init__(parent)
self.setWindowTitle("What's New in SoulSync v0.6") self.setWindowTitle("What's New in SoulSync v0.65")
self.setModal(True) self.setModal(True)
self.setFixedSize(600, 500) self.setFixedSize(600, 500)
self.setup_ui() self.setup_ui()
@ -68,7 +68,7 @@ class VersionInfoModal(QDialog):
""") """)
# Version subtitle # Version subtitle
version_subtitle = QLabel("Version 0.6 - Complete Multi-Server Support") version_subtitle = QLabel("Version 0.65 - Tidal Playlist Integration")
version_subtitle.setFont(QFont("SF Pro Text", 11, QFont.Weight.Medium)) version_subtitle.setFont(QFont("SF Pro Text", 11, QFont.Weight.Medium))
version_subtitle.setStyleSheet(""" version_subtitle.setStyleSheet("""
color: rgba(255, 255, 255, 0.7); color: rgba(255, 255, 255, 0.7);
@ -112,49 +112,49 @@ class VersionInfoModal(QDialog):
content_layout.setContentsMargins(30, 25, 30, 25) content_layout.setContentsMargins(30, 25, 30, 25)
content_layout.setSpacing(25) content_layout.setSpacing(25)
# Multi-Server Support # Tidal Integration
multiserver_section = self.create_feature_section( tidal_section = self.create_feature_section(
"🔀 Complete Multi-Server Support", "🎵 Complete Tidal Playlist Integration",
"Full Plex and Jellyfin compatibility across all features and workflows", "Full Tidal playlist support with seamless workflow integration matching YouTube/Spotify functionality",
[ [
"Added native Jellyfin client with full API integration for artists, albums, and tracks", "Native Tidal API client with OAuth 2.0 authentication and automatic token management",
"Automatic server detection and dynamic client switching throughout the application", "Tidal playlist tab positioned between Spotify and YouTube with identical UI/UX patterns",
"• All sync tools now work seamlessly with both Plex and Jellyfin servers", "• Advanced playlist card system with persistent state tracking across all phases",
"Database filtering by server source ensures clean separation of library data", "Complete discovery workflow: discovering → discovered → syncing → downloading phases",
"Updated all download and analysis workers for multi-server compatibility", "Intelligent track matching using existing Spotify-based algorithms for compatibility",
"• Server-specific UI adaptations (e.g., metadata updater hidden for Jellyfin)", "• Smart modal routing with proper state persistence (close/cancel behavior)",
"Unified media client architecture for consistent cross-server functionality" "Full refresh functionality with comprehensive worker cleanup and modal management"
], ],
"Switch between Plex and Jellyfin in Settings → Server Configuration - all features automatically adapt!" "Configure Tidal in Settings → Connections, then discover and sync your Tidal playlists just like Spotify!"
) )
content_layout.addWidget(multiserver_section) content_layout.addWidget(tidal_section)
# Enhanced Compatibility # Advanced Features
compatibility_section = self.create_feature_section( features_section = self.create_feature_section(
"⚙️ Enhanced Cross-Server Features", "⚙️ Advanced Workflow Features",
"All major workflows updated for seamless multi-server operation", "Sophisticated state management and user experience improvements",
[ [
"Playlist sync (Spotify & YouTube) now supports both Plex and Jellyfin", "Identical workflow behavior across all playlist sources (Spotify, YouTube, Tidal)",
"Download Missing Tracks modals work with active server automatically", "Smart refresh system that cancels all active operations and preserves playlist names",
"Artist browsing and album analysis adapt to your selected media server", "Phase-aware card clicking: routes to discovery, sync progress, or download modals appropriately",
"Database updates and library scans respect server-specific configurations", "Proper modal state persistence: closing download modals preserves discovery state",
"Playlist track analysis workers dynamically use the correct server API", "Cancel operations reset playlists to fresh state for updated playlist data",
"All toast notifications and UI feedback are server-aware" "Multi-server compatibility: works with both Plex and Jellyfin automatically"
] ]
) )
content_layout.addWidget(compatibility_section) content_layout.addWidget(features_section)
# Technical Improvements # Technical Improvements
technical_section = self.create_feature_section( technical_section = self.create_feature_section(
"🔧 Technical Architecture Updates", "🔧 Technical Implementation Details",
"Robust foundation for reliable multi-server operation", "Robust architecture ensuring reliable playlist management across all sources",
[ [
"• Implemented server-agnostic database schema with source tracking", "• Implemented comprehensive state tracking system with playlist card hub architecture",
"• Added unified configuration management for multiple media servers", "• Added PKCE (Proof Key for Code Exchange) OAuth flow for enhanced Tidal security",
"• Created wrapper classes for consistent API interfaces across servers", "• Created unified modal system supporting YouTube, Spotify, and Tidal workflows",
"• Enhanced error handling with server-specific messaging", "• Enhanced worker cancellation system for proper resource cleanup during operations",
"Optimized performance with intelligent client caching and connection pooling", "JSON:API response parsing for Tidal's complex relationship-based data structure",
"• Future-ready architecture for additional media server integrations" "• Future-ready architecture for additional music streaming service integrations"
] ]
) )
content_layout.addWidget(technical_section) content_layout.addWidget(technical_section)

View file

@ -1245,7 +1245,7 @@ class ModernSidebar(QWidget):
layout.setSpacing(0) layout.setSpacing(0)
# Version button (clickable) # Version button (clickable)
self.version_button = QPushButton("v.0.6") self.version_button = QPushButton("v.0.65")
self.version_button.setFont(QFont("SF Pro Text", 10, QFont.Weight.Medium)) self.version_button.setFont(QFont("SF Pro Text", 10, QFont.Weight.Medium))
self.version_button.setCursor(Qt.CursorShape.PointingHandCursor) self.version_button.setCursor(Qt.CursorShape.PointingHandCursor)
self.version_button.setStyleSheet(""" self.version_button.setStyleSheet("""