C++ CMake Objective-C++ C Objective-C CSS
Latest commit 790fc2f Jan 10, 2018 @vikramambrose vikramambrose committed with hatstand Replace Nokia based FancyTabWidget with standard QTabWidget (#5956)
* 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.

 - 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



Clementine is a modern music player and library organizer for Windows, Linux and macOS.

Opening an issue

Ask for a new feature


  • Check if the new feature is not already implemented (Changelog)
  • Check if another person didn't already open an issue
  • If there is already an opened issue there is no need to comment "+1", it won't help. Instead, you can subscribe to the issue to be notified of anything new about it

Report a bug


  • Try the latest developer build (http://builds.clementine-player.org/) to see if the bug is still present (Attention, those builds aren't stable so they might not work well and could sometimes break things like user settings). If it works like a charm even though you see an open issue, please comment on it and explain that the issue has been fixed
  • Check if another person has already opened the same issue to avoid duplicates
  • If there already is an open issue you could comment on it to add precisions about the problem or confirm it
  • In case there isn't, you can open a new issue with an explicit title and as much information as possible (OS, Clementine version, how to reproduce the problem...)
  • Please use http://pastebin.com/ for logs/debug

If there are no answers, it doesn't mean we don't care about your feature request/bug. It just means we can't reproduce the bug or haven't had time to implement it :o)

Compiling from source

Get the code (if you haven't already):

git clone https://github.com/clementine-player/Clementine.git && cd Clementine

Compile and install:

cd bin
cmake ..
make -j8
sudo make install

See the Wiki for more instructions and a list of dependencies: https://github.com/clementine-player/Clementine/wiki/Compiling-from-Source