Student: Darshan Jain (@Thrillseekr)
Organization: VideoLAN
Project: VLC Qt Interface Redesign
Time zone: Indian Standard Time (UTC + 5:30)
Mentor: Pierre Lamot
VLC 4.0 introduces a modern Qt interface that enhances usability while maintaining the familiar experience users love. This update brings a fresh look, making interaction smoother for billions of users worldwide. VLC remains a versatile, open-source multimedia engine, offering broad compatibility across platforms and devices, making it a top choice for media playback.
The VLC 4.0 Qt interface brings a sleek, modern design that enhances usability and visual appeal. Prioritizing clarity and ease of use, this interface offers an intuitive experience. Its versatility shines across both Windows and GNU/Linux, providing consistent multimedia performance and accessibility for users on various platforms.
The video section is a modern design with quick access to recently watched content, making navigation easy. The music section is organized into Artists, Albums, Tracks, and Genres for effortless browsing. Tracks are neatly listed with sorting options by title, artist, and more. Playlists are customizable and seamless, offering easy control for creating the perfect media mix.
⇒ MR: !4841 (Merged)
Commit: 32896e88 qml: fix Mismatching string in MusicArtist.qml
⇒ MR: !5047 (Merged)
Commit: 50960ca5 qt: mlplaylist: Display duration from MediaLibrary
⇒ Issue: #28341
MR: !4984 (Merged)
Commit: 4aecd897 qt: Update CSD Icons to Segoe Fonts available in different Windows Version
⇒ Issue: #28505
MR: !5045 (Merged)
Commits:
• f4a2f119 qt: mlalbummodel: Sort Title by Alphabetical Order
• 5cd2d7ae qt: MusicArtistsAlbums: add Release Year Sorting Criteria for Albums
⇒ MR: !5081 (Merged)
Commit: 32896e88 qt: CSDWindowButton: import org.videolan.vlc 0.1 library for rendering MainCtx\
⇒ Issue: #28422
MR: !4892 (Merged)
Commits: c55688b7 qml: Renamed File ScrollingText.qml
During the community bonding period, I actively engaged with mentors, senior members, and fellow contributors to learn more about their projects and working domains within VLC. I also resumed contributions to the VLC Qt Interface and dedicated time to exploring and learning GammaRay (a powerful tool developed by KDAB for inspecting and debugging Qt applications) and its features. This interaction and learning laid a strong foundation for my GSoC journey.
The Minimal View in VLC is a simplified interface mode designed to focus on core media playback functions while minimizing distractions when in Player View. Key features include:
- Compact User Interface: The interface is streamlined, showing only essential playback controls like play, pause, and volume.
- Reduced Controls: Advanced settings and non-critical features like playlists are hidden, ensuring a clutter-free experience.
- Focus on Content: The emphasis is on media playback by maximizing screen space and minimizing distractions.
- Customizable Appearance: Users can customize which controls remain visible and switch between Minimal View and detailed views.
Implementation in VLC:
- Qt Interface: Access Minimal View options in VLC Preferences.
- Keyboard Shortcut: Activate Minimal View using
Ctrl+H
. - View Menu: Enable Minimal View from the top-right View menu.
- CLI: from the Command Line Options using
--qt-minimal-view
Commits:
- qt: MainCtx: Expose Minimal View Property
- qt: Update Makefile & meson.build with PlayerToolbarVisibility & MinimalView class
- qt: Menus: Add QmlAudioContextMenu for Music Playback and Update Player Menus with close() function
- qml: Player: Update PlayerPlaylistVisibility State Machine
- qml: Player: Update Player.qml Minimal View and other features
- qml: Menus: Access Minimal View from View Menu and Shortcut "CTRL + H"
- qml: Player: Implementing Force Unlock to Player components
Key Takeaways:
- Gained understanding of signals and slots, state machines, and various components of the player view.
- Found the control bar complex but intriguing.
- Learned and applied SOLID principles to improve code quality.
By the mid-term evaluations, I had completed a significant task and submitted it to my mentor. This task was extensive and provided valuable learning opportunities. I received constructive feedback from my mentor, which highlighted both strengths and areas for improvement. I took this feedback seriously and made a concerted effort to address the suggestions and integrate the improvements into my subsequent tasks. This approach significantly enhanced my performance and contributed to my overall growth during the project.
The feature allows to hide the artwork and cone placeholder in the Player View. This can be activated from extended settings or from Command Line using --no-qt-bgcone
Commits:
Key Takeaways:
- Learned the working of Command line options with the Qt Interface
Implemented a parental mode feature that requires users to enter a password to access the preferences settings, enhancing security and control over the application’s configuration.
Commits:
- qt: dialogs: Add Parental Mode for secure access of different features
- qt: Dialogs_Provider: Implement the functionality for Parental Mode by
- qt: Add Parental Mode "password" to configurations
Key Takeaways:
- Gained experience in creating custom dialogs.
- Developed skills in integrating configurations, such as password protection.
- Enhanced understanding of callback mechanisms in C++.
As all assigned tasks are completed and nearly fully tested, the focus now shifts to rigorous testing across various scenarios and test cases to ensure the code's efficiency and readiness for merging. Moving forward, I will collaborate with my mentor Pierre to thoroughly test the implementation.
I will continue contributing to this great project as much as I can, under the guidance of the team. I aim to keep learning and upskilling myself throughout the process.
I wanted to express my heartfelt thanks Pierre for your invaluable guidance throughout this project. My open-source journey with this great project has been a tremendous learning experience, and your feedback played a crucial role in that. I’ve gained a lot of knowledge and skills thanks to your support and mentorship.
I would also like to extend my gratitude to the entire VideoLAN team. Working with such a dedicated and talented group has been inspiring and has greatly contributed to my growth.
Thank you all for making this journey so enriching and impactful.