Let's the user see the error message what failed instead of Clementine crashing.
Also don't do gst_object_unref unless bin is set.
This fixes GStreamer-CRITICAL gst_object_unref: assertion 'object != NULL' failed
* Add option to verify subsonic server certificate.
Defaults to true, as it is safer to have a server certificate verified,
even more so, if the server is used over an insecure WAN link.
During subsonic configuration the checkbox can be deactivated, so that
no certificate verification will occur when talking to a subsonic
server, allowing for self-signed certificates.
With the proliferation of let's encrypt certificates there's probably
less need for this option but it has been requested and hard-coding
verify-off is IMHO bad security practice.
If a valid certificate has been installed, the configuration file can be
modified manually and after a restart Clementine will perform a proper
server certificate verification.
The patch might need some UI polishing and asks for string translations
but is operational so far.
* Satisfy CLang format checker.
* Use QSettings' default value support.
* Consistently use QSettings' default value method.
The previous fix introduces a regression on some platforms
which did not generate a leaveEvent with the TrackSliderPopup
was displayed. Logic is introduced to identify bonafide mouse
motion out of the TrackSliderSlider.
There was an issue where the song items were only being shown
from a fresh start up but not when the playlist was created. This fixes
that issue and refactors the AddPlaylist code
This allows power users who keep 100s of playlists to easily
find a playlist either by directory name, playlist name or by
searching for a song artist/title a playlist might contain
* Replace Nokia sidebar widget with QTabWidget
The old sidebar widget was written by Nokia 10 years ago
and was a hand made hardcoded mess of widgets trying to
emulate a QTabWidget.
This commit completely replaces it with a widget of the
same name (FancyTabWidget) but is a much simpler subclass
of the standard QTabWidget allowing for a 50% code reduction.
There is still some manual draw code copied over to get the
exact same look of the previous widget but this is not strictly
necessary and can be later refactored with simpler drawControl
code based on styling preferences.
Benefits:
- 50% code reduction
- Easier to understand standard QTabWidget mechanics
- Built-in support for re-arranging and closing tabs
* Save and restore sidebar tab order
Allow the user to rearrange the tab order by dragging
tabs to a new location. Tab order is saved on exit and restored
on start
* Fix some code formatting issues
When the playlist doubleclick behavior is set to add songs to the queue,
the playback of the queue also starts if no song is currently
playing. To play the queue from the current playlist, we must set the
active playlist to the current one before starting the playback.
Fixes#5714.
When the network connection changes while playing an HTTP stream, I always get the "Server does not support seeking." error from GStreamer.
It seems like GStreamer tries to seek on reconnect, which fails, an propagates the error to Clementine which in turn ceases playback with
the error message handed through from GStreamer, even though there is now a perfectly fine network connection again.
As a workaround, try to reload the stream when this error occurs.
fixes#5116