/** Load theme at startup. */
void CustomizeThemeDialog::loadTheme()
{
	SettingsPrivate *settings = SettingsPrivate::instance();
	customizeThemeCheckBox->setChecked(settings->isButtonThemeCustomized());

	sizeButtonsSpinBox->setValue(settings->buttonsSize());

	// Select the right drop-down item according to the theme
	int i = 0;
	while (Settings::instance()->theme() != themeComboBox->itemText(i).toLower()) {
		i++;
	}
	themeComboBox->setCurrentIndex(i);

	// Buttons
	for (MediaButton *b : _mainWindow->mediaButtons) {

		// Check or uncheck checkboxes in this customize interface
		QCheckBox *checkBox = findChild<QCheckBox *>(b->objectName().replace("Button", "CheckBox"));
		if (checkBox) {
			checkBox->setChecked(settings->isMediaButtonVisible(b->objectName()));
		}

		// Display customs icons, if any
		QPushButton *pushButton = findChild<QPushButton *>(b->objectName().remove("Button"));
		if (pushButton) {
			pushButton->setIcon(b->icon());
		}
	}

	// Extended Search Area
	settings->isExtendedSearchVisible() ? radioButtonShowExtendedSearch->setChecked(true) : radioButtonHideExtendedSearch->setChecked(true);

	// Volume bar
	radioButtonShowVolume->setChecked(settings->isVolumeBarTextAlwaysVisible());
	spinBoxHideVolumeLabel->setValue(settings->volumeBarHideAfter());

	// Fonts
	fontComboBoxPlaylist->setCurrentFont(settings->font(SettingsPrivate::FF_Playlist));
	fontComboBoxLibrary->setCurrentFont(settings->font(SettingsPrivate::FF_Library));
	fontComboBoxMenus->setCurrentFont(settings->font(SettingsPrivate::FF_Menu));
	spinBoxPlaylist->setValue(settings->fontSize(SettingsPrivate::FF_Playlist));
	spinBoxLibrary->blockSignals(true);
	spinBoxLibrary->setValue(settings->fontSize(SettingsPrivate::FF_Library));
	spinBoxLibrary->blockSignals(false);
	spinBoxMenus->setValue(settings->fontSize(SettingsPrivate::FF_Menu));

	// Library
	checkBoxDisplayCovers->setChecked(settings->isCoversEnabled());
	spinBoxCoverSize->blockSignals(true);
	spinBoxCoverSize->setValue(settings->coverSize());
	spinBoxCoverSize->blockSignals(false);

	// Colors
	settings->colorsAlternateBG() ? enableAlternateBGRadioButton->setChecked(true) : disableAlternateBGRadioButton->setChecked(true);
	settings->isCustomColors() ? enableCustomColorsRadioButton->setChecked(true) : disableCustomColorsRadioButton->setChecked(true);
	this->toggleCustomColors(settings->isCustomColors());

	// Covers
	radioButtonEnableBigCover->setChecked(settings->isBigCoverEnabled());
	spinBoxBigCoverOpacity->setValue(settings->bigCoverOpacity() * 100);

	// Tabs
	radioButtonTabsRect->setChecked(settings->isRectTabs());
	overlapTabsSpinBox->setValue(settings->tabsOverlappingLength());

	// Articles
	radioButtonEnableArticles->blockSignals(true);
	bool isFiltered = settings->isLibraryFilteredByArticles();
	radioButtonEnableArticles->setChecked(isFiltered);
	std::list<QWidget*> enabled = { articlesLineEdit, labelReorderArtistsArticle, labelReorderArtistsArticleExample, radioButtonEnableReorderArtistsArticle, radioButtonDisableReorderArtistsArticle };
	for (QWidget *w : enabled) {
		w->setEnabled(isFiltered);
	}
	radioButtonEnableReorderArtistsArticle->setChecked(settings->isReorderArtistsArticle());
	radioButtonEnableArticles->blockSignals(false);

	// Star delegate
	if (settings->isStarDelegates()) {
		radioButtonEnableStarDelegate->setChecked(true);
	} else {
		radioButtonDisableStarDelegate->setChecked(true);
	}
	if (settings->isShowNeverScored()) {
		radioButtonShowNeverScoredTracks->setChecked(true);
	} else {
		radioButtonHideNeverScoredTracks->setChecked(true);
	}
}
示例#2
0
/** Load theme at startup. */
void CustomizeThemeDialog::loadTheme()
{
	SettingsPrivate *settingsPrivate = SettingsPrivate::instance();
	customizeThemeCheckBox->setChecked(settingsPrivate->isButtonThemeCustomized());

	Settings *settings = Settings::instance();
	sizeButtonsSpinBox->setValue(settings->buttonsSize());

	// Select the right drop-down item according to the theme
	int i = 0;
	while (settings->theme() != themeComboBox->itemText(i).toLower()) {
		i++;
	}
	themeComboBox->setCurrentIndex(i);

	// Buttons
	QList<QPushButton*> mediaPlayerButtons = buttonsListBox->findChildren<QPushButton*>();
	for (QPushButton *mediaPlayerButton : mediaPlayerButtons) {
		QString mediaButton = mediaPlayerButton->objectName() + "Button";
		QCheckBox *checkbox = this->findChild<QCheckBox*>(mediaPlayerButton->objectName() + "CheckBox");
		if (checkbox) {
			checkbox->setChecked(settings->isMediaButtonVisible(mediaButton));
		}
		// Replace icon of the button in this dialog too
		if (settingsPrivate->hasCustomIcon(mediaButton)) {
			QString customIcon = settingsPrivate->customIcon(mediaButton);
			mediaPlayerButton->setIcon(QIcon(customIcon));
		}

	}

	// Extended Search Area
	settingsPrivate->isExtendedSearchVisible() ? radioButtonShowExtendedSearch->setChecked(true) : radioButtonHideExtendedSearch->setChecked(true);

	// Volume bar
	radioButtonShowVolume->setChecked(settings->isVolumeBarTextAlwaysVisible());
	spinBoxHideVolumeLabel->setValue(settingsPrivate->volumeBarHideAfter());

	// Fonts
	fontComboBoxPlaylist->setCurrentFont(settingsPrivate->font(SettingsPrivate::FF_Playlist));
	fontComboBoxLibrary->setCurrentFont(settingsPrivate->font(SettingsPrivate::FF_Library));
	fontComboBoxMenus->setCurrentFont(settingsPrivate->font(SettingsPrivate::FF_Menu));
	spinBoxPlaylist->setValue(settingsPrivate->fontSize(SettingsPrivate::FF_Playlist));
	spinBoxLibrary->blockSignals(true);
	spinBoxLibrary->setValue(settingsPrivate->fontSize(SettingsPrivate::FF_Library));
	spinBoxLibrary->blockSignals(false);
	spinBoxMenus->setValue(settingsPrivate->fontSize(SettingsPrivate::FF_Menu));

	// Colors
	// Alternate background colors in playlists
	if (settingsPrivate->colorsAlternateBG()) {
		enableAlternateBGRadioButton->setChecked(true);
	} else {
		disableAlternateBGRadioButton->setChecked(true);
	}

	bool customColors = settingsPrivate->isCustomColors();
	this->toggleCustomColors(customColors);
	// Custom text color can be enabled only if custom colors are enabled first!
	this->toggleCustomTextColors(customColors && settingsPrivate->isCustomTextColorOverriden());

	// Covers
	settings->isCoverBelowTracksEnabled() ? radioButtonEnableBigCover->setChecked(true) : radioButtonDisableBigCover->setChecked(true);
	spinBoxBigCoverOpacity->setValue(settings->coverBelowTracksOpacity() * 100);

	// Tabs
	radioButtonTabsRect->setChecked(settingsPrivate->isRectTabs());
	overlapTabsSpinBox->setValue(settingsPrivate->tabsOverlappingLength());

	// Articles
	radioButtonEnableArticles->blockSignals(true);
	bool isFiltered = settingsPrivate->isLibraryFilteredByArticles();
	radioButtonEnableArticles->setChecked(isFiltered);
	std::list<QWidget*> enabled = { articlesLineEdit, labelReorderArtistsArticle, labelReorderArtistsArticleExample, radioButtonEnableReorderArtistsArticle, radioButtonDisableReorderArtistsArticle };
	for (QWidget *w : enabled) {
		w->setEnabled(isFiltered);
	}
	radioButtonEnableReorderArtistsArticle->setChecked(settingsPrivate->isReorderArtistsArticle());
	radioButtonEnableArticles->blockSignals(false);

	// Star delegate
	if (settings->libraryHasStars()) {
		radioButtonEnableStarDelegate->setChecked(true);
	} else {
		radioButtonDisableStarDelegate->setChecked(true);
	}
	if (settings->isShowNeverScored()) {
		radioButtonShowNeverScoredTracks->setChecked(true);
	} else {
		radioButtonHideNeverScoredTracks->setChecked(true);
	}
}