Make fancy tabbar large mode icon size configurable
This commit is contained in:
@@ -75,6 +75,7 @@ const char *AppearanceSettingsPage::kTabBarSystemColor= "tab_system_color";
|
|||||||
const char *AppearanceSettingsPage::kTabBarGradient = "tab_gradient";
|
const char *AppearanceSettingsPage::kTabBarGradient = "tab_gradient";
|
||||||
const char *AppearanceSettingsPage::kTabBarColor = "tab_color";
|
const char *AppearanceSettingsPage::kTabBarColor = "tab_color";
|
||||||
|
|
||||||
|
const char *AppearanceSettingsPage::kIconSizeTabbarLargeMode = "icon_size_tabbar_large_mode";
|
||||||
const char *AppearanceSettingsPage::kIconSizePlayControlButtons = "icon_size_play_control_buttons";
|
const char *AppearanceSettingsPage::kIconSizePlayControlButtons = "icon_size_play_control_buttons";
|
||||||
const char *AppearanceSettingsPage::kIconSizePlaylistButtons = "icon_size_playlist_buttons";
|
const char *AppearanceSettingsPage::kIconSizePlaylistButtons = "icon_size_playlist_buttons";
|
||||||
const char *AppearanceSettingsPage::kIconSizeLeftPanelButtons = "icon_size_left_panel_buttons";
|
const char *AppearanceSettingsPage::kIconSizeLeftPanelButtons = "icon_size_left_panel_buttons";
|
||||||
@@ -191,6 +192,7 @@ void AppearanceSettingsPage::Load() {
|
|||||||
ui_->checkbox_background_image_keep_aspect_ratio->setEnabled(ui_->checkbox_background_image_stretch->isChecked());
|
ui_->checkbox_background_image_keep_aspect_ratio->setEnabled(ui_->checkbox_background_image_stretch->isChecked());
|
||||||
ui_->checkbox_background_image_do_not_cut->setEnabled(ui_->checkbox_background_image_stretch->isChecked() && ui_->checkbox_background_image_keep_aspect_ratio->isChecked());
|
ui_->checkbox_background_image_do_not_cut->setEnabled(ui_->checkbox_background_image_stretch->isChecked() && ui_->checkbox_background_image_keep_aspect_ratio->isChecked());
|
||||||
|
|
||||||
|
ui_->spinbox_icon_size_tabbar_large_mode->setValue(s.value(kIconSizeTabbarLargeMode, 32).toInt());
|
||||||
ui_->spinbox_icon_size_play_control_buttons->setValue(s.value(kIconSizePlayControlButtons, 32).toInt());
|
ui_->spinbox_icon_size_play_control_buttons->setValue(s.value(kIconSizePlayControlButtons, 32).toInt());
|
||||||
ui_->spinbox_icon_size_playlist_buttons->setValue(s.value(kIconSizePlaylistButtons, 20).toInt());
|
ui_->spinbox_icon_size_playlist_buttons->setValue(s.value(kIconSizePlaylistButtons, 20).toInt());
|
||||||
ui_->spinbox_icon_size_left_panel_buttons->setValue(s.value(kIconSizeLeftPanelButtons, 22).toInt());
|
ui_->spinbox_icon_size_left_panel_buttons->setValue(s.value(kIconSizeLeftPanelButtons, 22).toInt());
|
||||||
@@ -255,6 +257,7 @@ void AppearanceSettingsPage::Save() {
|
|||||||
s.setValue(kTabBarGradient, ui_->tabbar_gradient->isChecked());
|
s.setValue(kTabBarGradient, ui_->tabbar_gradient->isChecked());
|
||||||
s.setValue(kTabBarColor, current_tabbar_bg_color_);
|
s.setValue(kTabBarColor, current_tabbar_bg_color_);
|
||||||
|
|
||||||
|
s.setValue(kIconSizeTabbarLargeMode, ui_->spinbox_icon_size_tabbar_large_mode->value());
|
||||||
s.setValue(kIconSizePlayControlButtons, ui_->spinbox_icon_size_play_control_buttons->value());
|
s.setValue(kIconSizePlayControlButtons, ui_->spinbox_icon_size_play_control_buttons->value());
|
||||||
s.setValue(kIconSizePlaylistButtons, ui_->spinbox_icon_size_playlist_buttons->value());
|
s.setValue(kIconSizePlaylistButtons, ui_->spinbox_icon_size_playlist_buttons->value());
|
||||||
s.setValue(kIconSizeLeftPanelButtons, ui_->spinbox_icon_size_left_panel_buttons->value());
|
s.setValue(kIconSizeLeftPanelButtons, ui_->spinbox_icon_size_left_panel_buttons->value());
|
||||||
|
|||||||
@@ -68,6 +68,7 @@ class AppearanceSettingsPage : public SettingsPage {
|
|||||||
static const char *kTabBarGradient;
|
static const char *kTabBarGradient;
|
||||||
static const char *kTabBarColor;
|
static const char *kTabBarColor;
|
||||||
|
|
||||||
|
static const char *kIconSizeTabbarLargeMode;
|
||||||
static const char *kIconSizePlayControlButtons;
|
static const char *kIconSizePlayControlButtons;
|
||||||
static const char *kIconSizePlaylistButtons;
|
static const char *kIconSizePlaylistButtons;
|
||||||
static const char *kIconSizeLeftPanelButtons;
|
static const char *kIconSizeLeftPanelButtons;
|
||||||
|
|||||||
@@ -436,38 +436,21 @@
|
|||||||
<item>
|
<item>
|
||||||
<layout class="QGridLayout" name="layout_icon_sizes">
|
<layout class="QGridLayout" name="layout_icon_sizes">
|
||||||
<item row="2" column="0">
|
<item row="2" column="0">
|
||||||
<widget class="QLabel" name="label_icon_size_left_panel_buttons">
|
|
||||||
<property name="text">
|
|
||||||
<string>Files, playlists and queue buttons</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="0">
|
|
||||||
<widget class="QLabel" name="label_icon_size_playlist_buttons">
|
<widget class="QLabel" name="label_icon_size_playlist_buttons">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Playlist buttons</string>
|
<string>Playlist buttons</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="0" column="0">
|
<item row="1" column="0">
|
||||||
<widget class="QLabel" name="label_icon_size_play_control_buttons">
|
<widget class="QLabel" name="label_icon_size_play_control_buttons">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Play control buttons</string>
|
<string>Play control buttons</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="1">
|
<item row="4" column="1">
|
||||||
<widget class="QSpinBox" name="spinbox_icon_size_left_panel_buttons">
|
<widget class="QSpinBox" name="spinbox_icon_size_configure_buttons">
|
||||||
<property name="minimum">
|
|
||||||
<number>16</number>
|
|
||||||
</property>
|
|
||||||
<property name="maximum">
|
|
||||||
<number>64</number>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="1">
|
|
||||||
<widget class="QSpinBox" name="spinbox_icon_size_play_control_buttons">
|
|
||||||
<property name="minimum">
|
<property name="minimum">
|
||||||
<number>16</number>
|
<number>16</number>
|
||||||
</property>
|
</property>
|
||||||
@@ -477,6 +460,26 @@
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="1">
|
<item row="1" column="1">
|
||||||
|
<widget class="QSpinBox" name="spinbox_icon_size_play_control_buttons">
|
||||||
|
<property name="minimum">
|
||||||
|
<number>16</number>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<number>64</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="1">
|
||||||
|
<widget class="QSpinBox" name="spinbox_icon_size_left_panel_buttons">
|
||||||
|
<property name="minimum">
|
||||||
|
<number>16</number>
|
||||||
|
</property>
|
||||||
|
<property name="maximum">
|
||||||
|
<number>64</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="2" column="1">
|
||||||
<widget class="QSpinBox" name="spinbox_icon_size_playlist_buttons">
|
<widget class="QSpinBox" name="spinbox_icon_size_playlist_buttons">
|
||||||
<property name="minimum">
|
<property name="minimum">
|
||||||
<number>16</number>
|
<number>16</number>
|
||||||
@@ -486,15 +489,29 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="0">
|
<item row="4" column="0">
|
||||||
<widget class="QLabel" name="label_icon_size_configure_buttons">
|
<widget class="QLabel" name="label_icon_size_configure_buttons">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Configure buttons</string>
|
<string>Configure buttons</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="1">
|
<item row="3" column="0">
|
||||||
<widget class="QSpinBox" name="spinbox_icon_size_configure_buttons">
|
<widget class="QLabel" name="label_icon_size_left_panel_buttons">
|
||||||
|
<property name="text">
|
||||||
|
<string>Files, playlists and queue buttons</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="0">
|
||||||
|
<widget class="QLabel" name="label_icon_size_tabbar_large_mode">
|
||||||
|
<property name="text">
|
||||||
|
<string>Tabbar large mode</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="0" column="1">
|
||||||
|
<widget class="QSpinBox" name="spinbox_icon_size_tabbar_large_mode">
|
||||||
<property name="minimum">
|
<property name="minimum">
|
||||||
<number>16</number>
|
<number>16</number>
|
||||||
</property>
|
</property>
|
||||||
@@ -565,6 +582,11 @@
|
|||||||
<tabstop>checkbox_background_image_do_not_cut</tabstop>
|
<tabstop>checkbox_background_image_do_not_cut</tabstop>
|
||||||
<tabstop>blur_slider</tabstop>
|
<tabstop>blur_slider</tabstop>
|
||||||
<tabstop>opacity_slider</tabstop>
|
<tabstop>opacity_slider</tabstop>
|
||||||
|
<tabstop>spinbox_icon_size_tabbar_large_mode</tabstop>
|
||||||
|
<tabstop>spinbox_icon_size_play_control_buttons</tabstop>
|
||||||
|
<tabstop>spinbox_icon_size_playlist_buttons</tabstop>
|
||||||
|
<tabstop>spinbox_icon_size_left_panel_buttons</tabstop>
|
||||||
|
<tabstop>spinbox_icon_size_configure_buttons</tabstop>
|
||||||
<tabstop>checkbox_system_icons</tabstop>
|
<tabstop>checkbox_system_icons</tabstop>
|
||||||
</tabstops>
|
</tabstops>
|
||||||
<resources/>
|
<resources/>
|
||||||
|
|||||||
@@ -56,9 +56,10 @@
|
|||||||
#include "core/stylehelper.h"
|
#include "core/stylehelper.h"
|
||||||
#include "settings/appearancesettingspage.h"
|
#include "settings/appearancesettingspage.h"
|
||||||
|
|
||||||
const QSize FancyTabWidget::IconSize_LargeSidebar = QSize(32, 32);
|
const int FancyTabWidget::IconSize_LargeSidebar = 32;
|
||||||
const QSize FancyTabWidget::IconSize_SmallSidebar = QSize(22, 22);
|
const int FancyTabWidget::IconSize_SmallSidebar = 22;
|
||||||
const QSize FancyTabWidget::TabSize_LargeSidebar = QSize(70, 58);
|
const int FancyTabWidget::TabSize_LargeSidebarWidth = 70;
|
||||||
|
|
||||||
|
|
||||||
class FancyTabBar: public QTabBar {
|
class FancyTabBar: public QTabBar {
|
||||||
|
|
||||||
@@ -99,7 +100,7 @@ class FancyTabBar: public QTabBar {
|
|||||||
|
|
||||||
QSize size;
|
QSize size;
|
||||||
if (tabWidget->mode() == FancyTabWidget::Mode_LargeSidebar) {
|
if (tabWidget->mode() == FancyTabWidget::Mode_LargeSidebar) {
|
||||||
size = FancyTabWidget::TabSize_LargeSidebar;
|
size = QSize(std::max(FancyTabWidget::TabSize_LargeSidebarWidth, tabWidget->iconsize_largesidebar() + 22), tabWidget->iconsize_largesidebar() + 24);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
size = QTabBar::tabSizeHint(index);
|
size = QTabBar::tabSizeHint(index);
|
||||||
@@ -277,14 +278,14 @@ class FancyTabBar: public QTabBar {
|
|||||||
const int PADDING = 5;
|
const int PADDING = 5;
|
||||||
if (verticalTextTabs) {
|
if (verticalTextTabs) {
|
||||||
tabrectIcon = tabrectLabel;
|
tabrectIcon = tabrectLabel;
|
||||||
tabrectIcon.setSize(FancyTabWidget::IconSize_SmallSidebar);
|
tabrectIcon.setSize(QSize(FancyTabWidget::IconSize_SmallSidebar, FancyTabWidget::IconSize_SmallSidebar));
|
||||||
tabrectIcon.translate(PADDING, PADDING);
|
tabrectIcon.translate(PADDING, PADDING);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
tabrectIcon = tabrectLabel;
|
tabrectIcon = tabrectLabel;
|
||||||
tabrectIcon.setSize(FancyTabWidget::IconSize_LargeSidebar);
|
tabrectIcon.setSize(QSize(tabWidget->iconsize_largesidebar(), tabWidget->iconsize_largesidebar()));
|
||||||
// Center the icon
|
// Center the icon
|
||||||
const int moveRight = (FancyTabWidget::TabSize_LargeSidebar.width() - FancyTabWidget::IconSize_LargeSidebar.width() -1) / 2;
|
const int moveRight = (std::max(FancyTabWidget::TabSize_LargeSidebarWidth, tabWidget->iconsize_largesidebar() + 22) - tabWidget->iconsize_largesidebar() -1) / 2;
|
||||||
tabrectIcon.translate(moveRight, PADDING);
|
tabrectIcon.translate(moveRight, PADDING);
|
||||||
}
|
}
|
||||||
tabIcon(index).paint(&p, tabrectIcon, iconFlags);
|
tabIcon(index).paint(&p, tabrectIcon, iconFlags);
|
||||||
@@ -374,7 +375,10 @@ void FancyTabWidget::currentTabChanged(const int idx) {
|
|||||||
FancyTabWidget::FancyTabWidget(QWidget* parent) : QTabWidget(parent),
|
FancyTabWidget::FancyTabWidget(QWidget* parent) : QTabWidget(parent),
|
||||||
menu_(nullptr),
|
menu_(nullptr),
|
||||||
mode_(Mode_None),
|
mode_(Mode_None),
|
||||||
bottom_widget_(nullptr)
|
bottom_widget_(nullptr),
|
||||||
|
bg_color_system_(true),
|
||||||
|
bg_gradient_(true),
|
||||||
|
iconsize_largesidebar_(FancyTabWidget::IconSize_LargeSidebar)
|
||||||
{
|
{
|
||||||
|
|
||||||
FancyTabBar *tabBar = new FancyTabBar(this);
|
FancyTabBar *tabBar = new FancyTabBar(this);
|
||||||
@@ -441,9 +445,11 @@ void FancyTabWidget::ReloadSettings() {
|
|||||||
bg_color_system_ = s.value(AppearanceSettingsPage::kTabBarSystemColor, false).toBool();
|
bg_color_system_ = s.value(AppearanceSettingsPage::kTabBarSystemColor, false).toBool();
|
||||||
bg_gradient_ = s.value(AppearanceSettingsPage::kTabBarGradient, true).toBool();
|
bg_gradient_ = s.value(AppearanceSettingsPage::kTabBarGradient, true).toBool();
|
||||||
bg_color_ = s.value(AppearanceSettingsPage::kTabBarColor, StyleHelper::highlightColor()).value<QColor>();
|
bg_color_ = s.value(AppearanceSettingsPage::kTabBarColor, StyleHelper::highlightColor()).value<QColor>();
|
||||||
|
iconsize_largesidebar_ = s.value(AppearanceSettingsPage::kIconSizeTabbarLargeMode, FancyTabWidget::IconSize_LargeSidebar).toInt();;
|
||||||
s.endGroup();
|
s.endGroup();
|
||||||
|
|
||||||
update();
|
update();
|
||||||
|
tabBarUpdateGeometry();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -71,12 +71,12 @@ class FancyTabWidget : public QTabWidget {
|
|||||||
Mode_PlainSidebar,
|
Mode_PlainSidebar,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const QSize TabSize_LargeSidebar;
|
static const int TabSize_LargeSidebarWidth;
|
||||||
|
static const int IconSize_LargeSidebar;
|
||||||
|
static const int IconSize_SmallSidebar;
|
||||||
|
|
||||||
static const QSize IconSize_LargeSidebar;
|
Mode mode() const { return mode_; }
|
||||||
static const QSize IconSize_SmallSidebar;
|
int iconsize_largesidebar() const { return iconsize_largesidebar_; }
|
||||||
|
|
||||||
Mode mode() { return mode_; }
|
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void ModeChanged(FancyTabWidget::Mode mode);
|
void ModeChanged(FancyTabWidget::Mode mode);
|
||||||
@@ -109,6 +109,7 @@ class FancyTabWidget : public QTabWidget {
|
|||||||
bool bg_color_system_;
|
bool bg_color_system_;
|
||||||
bool bg_gradient_;
|
bool bg_gradient_;
|
||||||
QColor bg_color_;
|
QColor bg_color_;
|
||||||
|
int iconsize_largesidebar_;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user