diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2015-08-11 09:08:12 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2015-08-11 09:08:12 +0000 |
| commit | 017d2d27bfbcd97ada407212e925b280ff3482b5 (patch) | |
| tree | 2a832873a52ee7c8546b6262be58f41d1bdd480e /src/plugins/Ui/qsui/qsuisettings.cpp | |
| parent | 22cf3c55368be9361b43eb002e7a2fb7f2868ac2 (diff) | |
| download | qmmp-017d2d27bfbcd97ada407212e925b280ff3482b5.tar.gz qmmp-017d2d27bfbcd97ada407212e925b280ff3482b5.tar.bz2 qmmp-017d2d27bfbcd97ada407212e925b280ff3482b5.zip | |
added qsui plugin
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@5367 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Ui/qsui/qsuisettings.cpp')
| -rw-r--r-- | src/plugins/Ui/qsui/qsuisettings.cpp | 245 |
1 files changed, 245 insertions, 0 deletions
diff --git a/src/plugins/Ui/qsui/qsuisettings.cpp b/src/plugins/Ui/qsui/qsuisettings.cpp new file mode 100644 index 000000000..d64443f24 --- /dev/null +++ b/src/plugins/Ui/qsui/qsuisettings.cpp @@ -0,0 +1,245 @@ +/*************************************************************************** + * Copyright (C) 2011-2015 by Ilya Kotov * + * forkotov02@hotmail.ru * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program; if not, write to the * + * Free Software Foundation, Inc., * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * + ***************************************************************************/ + +#include <QSettings> +#include <QDir> +#include <QFontDialog> +#include <QMenu> +#include <qmmp/qmmp.h> +#include <qmmpui/filedialog.h> +#include <qmmpui/uihelper.h> +#include "actionmanager.h" +#include "shortcutitem.h" +#include "shortcutdialog.h" +#include "popupsettings.h" +#include "qsuisettings.h" + +QSUISettings::QSUISettings(QWidget *parent) : QWidget(parent) +{ + m_ui.setupUi(this); + //setup icons + m_ui.popupTemplateButton->setIcon(QIcon::fromTheme("configure")); + //load settings + readSettings(); + loadFonts(); + createActions(); +} + +QSUISettings::~QSUISettings() +{} + +void QSUISettings::on_plFontButton_clicked() +{ + bool ok = false; + QFont font = m_ui.plFontLabel->font(); + font = QFontDialog::getFont (&ok, font, this); + if (ok) + { + m_ui.plFontLabel->setText(font.family () + " " + QString::number(font.pointSize ())); + m_ui.plFontLabel->setFont(font); + } +} + +void QSUISettings::on_columnFontButton_clicked() +{ + bool ok = false; + QFont font = m_ui.columnFontLabel->font(); + font = QFontDialog::getFont (&ok, font, this); + if (ok) + { + m_ui.columnFontLabel->setText(font.family () + " " + QString::number(font.pointSize ())); + m_ui.columnFontLabel->setFont(font); + } +} + +void QSUISettings::on_tabsFontButton_clicked() +{ + bool ok = false; + QFont font = m_ui.tabsFontLabel->font(); + font = QFontDialog::getFont (&ok, font, this); + if (ok) + { + m_ui.tabsFontLabel->setText(font.family () + " " + QString::number(font.pointSize ())); + m_ui.tabsFontLabel->setFont(font); + } +} + +void QSUISettings::showEvent(QShowEvent *) +{ + m_ui.hiddenCheckBox->setEnabled(UiHelper::instance()->visibilityControl()); + m_ui.hideOnCloseCheckBox->setEnabled(UiHelper::instance()->visibilityControl()); +} + +void QSUISettings::loadFonts() +{ + QString fontName; + QFont font; + QSettings settings (Qmmp::configFile(), QSettings::IniFormat); + settings.beginGroup("Simple"); + + m_ui.systemFontsCheckBox->setChecked(settings.value("use_system_fonts", true).toBool()); + + fontName = settings.value ("pl_font", qApp->font("QAbstractItemView").toString()).toString(); + font.fromString(fontName); + m_ui.plFontLabel->setText (font.family () + " " + QString::number(font.pointSize ())); + m_ui.plFontLabel->setFont(font); + + fontName = settings.value ("pl_tabs_font", qApp->font("QTabWidget").toString()).toString(); + font.fromString(fontName); + m_ui.tabsFontLabel->setText (font.family () + " " + QString::number(font.pointSize ())); + m_ui.tabsFontLabel->setFont(font); + + fontName = settings.value ("pl_header_font", qApp->font("QAbstractItemView").toString()).toString(); + font.fromString(fontName); + m_ui.columnFontLabel->setText (font.family () + " " + QString::number(font.pointSize ())); + m_ui.columnFontLabel->setFont(font); +} + +void QSUISettings::createActions() +{ + QMenu *menu = new QMenu(this); + menu->addAction(tr("Artist"))->setData("%p"); + menu->addAction(tr("Album"))->setData("%a"); + menu->addAction(tr("Album Artist"))->setData("%aa"); + menu->addAction(tr("Title"))->setData("%t"); + menu->addAction(tr("Track Number"))->setData("%n"); + menu->addAction(tr("Two-digit Track Number"))->setData("%NN"); + menu->addAction(tr("Genre"))->setData("%g"); + menu->addAction(tr("Comment"))->setData("%c"); + menu->addAction(tr("Composer"))->setData("%C"); + menu->addAction(tr("Duration"))->setData("%l"); + menu->addAction(tr("Disc Number"))->setData("%D"); + menu->addAction(tr("File Name"))->setData("%f"); + menu->addAction(tr("File Path"))->setData("%F"); + menu->addAction(tr("Year"))->setData("%y"); + menu->addAction(tr("Condition"))->setData("%if(%p&%t,%p - %t,%f)"); + menu->addAction(tr("Artist - Title"))->setData("%if(%p,%p - %t,%t)"); + + m_ui.windowTitleButton->setMenu(menu); + m_ui.windowTitleButton->setPopupMode(QToolButton::InstantPopup); + connect(menu, SIGNAL(triggered (QAction *)), SLOT(addWindowTitleString(QAction *))); +} + +void QSUISettings::on_popupTemplateButton_clicked() +{ + PopupSettings *p = new PopupSettings(this); + p->exec(); + p->deleteLater(); +} + +void QSUISettings::readSettings() +{ + QSettings settings (Qmmp::configFile(), QSettings::IniFormat); + settings.beginGroup("Simple"); + //playlist + m_ui.protocolCheckBox->setChecked(settings.value("pl_show_protocol", false).toBool()); + m_ui.numbersCheckBox->setChecked(settings.value("pl_show_numbers", true).toBool()); + m_ui.lengthsCheckBox->setChecked(settings.value("pl_show_lengths", true).toBool()); + m_ui.alignCheckBox->setChecked(settings.value("pl_align_numbers", false).toBool()); + m_ui.anchorCheckBox->setChecked(settings.value("pl_show_anchor", false).toBool()); + m_ui.popupCheckBox->setChecked(settings.value("pl_show_popup", false).toBool()); + //tabs + m_ui.tabsClosableCheckBox->setChecked(settings.value("pl_tabs_closable", false).toBool()); + m_ui.showNewPLCheckBox->setChecked(settings.value("pl_show_new_pl_button", false).toBool()); + m_ui.showTabListMenuCheckBox->setChecked(settings.value("pl_show_tab_list_menu", false).toBool()); + //view + m_ui.hiddenCheckBox->setChecked(settings.value("start_hidden", false).toBool()); + m_ui.hideOnCloseCheckBox->setChecked(settings.value("hide_on_close", false).toBool()); + m_ui.windowTitleLineEdit->setText(settings.value("window_title_format","%if(%p,%p - %t,%t)").toString()); + //analyzer colors + m_ui.aColor1->setColor(settings.value("vis_color1", "#BECBFF").toString()); + m_ui.aColor2->setColor(settings.value("vis_color2", "#BECBFF").toString()); + m_ui.aColor3->setColor(settings.value("vis_color3", "#BECBFF").toString()); + m_ui.peaksColor->setColor(settings.value("vis_peak_color", "#DDDDDD").toString()); + m_ui.bgColor->setColor(settings.value("vis_bg_color", "Black").toString()); + //playlist colors + QString normal_bg = palette().color(QPalette::Base).name(); + QString alternate = palette().color(QPalette::AlternateBase).name(); + QString selected_bg = palette().color(QPalette::Highlight).name(); + QString normal = palette().color(QPalette::Text).name(); + QString current = palette().color(QPalette::Text).name(); + QString highlighted = palette().color(QPalette::HighlightedText).name(); + QString group_bg = palette().color(QPalette::Base).name(); + QString group_text = palette().color(QPalette::Text).name(); + m_ui.plSystemColorsCheckBox->setChecked(settings.value("pl_system_colors", true).toBool()); + m_ui.plBg1Color->setColor(settings.value("pl_bg1_color", normal_bg).toString()); + m_ui.plBg2Color->setColor(settings.value("pl_bg2_color", alternate).toString()); + m_ui.plHlColor->setColor(settings.value("pl_highlight_color", selected_bg).toString()); + m_ui.plTextNormalColor->setColor(settings.value("pl_normal_text_color", normal).toString()); + m_ui.plTextCurrentColor->setColor(settings.value("pl_current_text_color", current).toString()); + m_ui.plTextHlCurrentColor->setColor(settings.value("pl_hl_text_color", highlighted).toString()); + m_ui.plGrBgColor->setColor(settings.value("pl_group_bg", group_bg).toString()); + m_ui.plGrTextColor->setColor(settings.value("pl_group_text", group_text).toString()); + settings.endGroup(); +} + +void QSUISettings::writeSettings() +{ + QSettings settings (Qmmp::configFile(), QSettings::IniFormat); + settings.beginGroup("Simple"); + settings.setValue("pl_show_protocol", m_ui.protocolCheckBox->isChecked()); + settings.setValue("pl_show_numbers", m_ui.numbersCheckBox->isChecked()); + settings.setValue("pl_show_lengths", m_ui.lengthsCheckBox->isChecked()); + settings.setValue("pl_align_numbers", m_ui.alignCheckBox->isChecked()); + settings.setValue("pl_show_anchor", m_ui.anchorCheckBox->isChecked()); + settings.setValue("pl_show_popup", m_ui.popupCheckBox->isChecked()); + settings.setValue("pl_tabs_closable", m_ui.tabsClosableCheckBox->isChecked()); + settings.setValue("pl_show_new_pl_button", m_ui.showNewPLCheckBox->isChecked()); + settings.setValue("pl_show_tab_list_menu", m_ui.showTabListMenuCheckBox->isChecked()); + settings.setValue("start_hidden", m_ui.hiddenCheckBox->isChecked()); + settings.setValue("hide_on_close", m_ui.hideOnCloseCheckBox->isChecked()); + settings.setValue("window_title_format", m_ui.windowTitleLineEdit->text()); + settings.setValue("vis_color1", m_ui.aColor1->colorName()); + settings.setValue("vis_color2", m_ui.aColor2->colorName()); + settings.setValue("vis_color3", m_ui.aColor3->colorName()); + settings.setValue("vis_peak_color", m_ui.peaksColor->colorName()); + settings.setValue("vis_bg_color", m_ui.bgColor->colorName()); + settings.setValue("pl_system_colors", m_ui.plSystemColorsCheckBox->isChecked()); + settings.setValue("pl_bg1_color", m_ui.plBg1Color->colorName()); + settings.setValue("pl_bg2_color", m_ui.plBg2Color->colorName()); + settings.setValue("pl_highlight_color", m_ui.plHlColor->colorName()); + settings.setValue("pl_normal_text_color", m_ui.plTextNormalColor->colorName()); + settings.setValue("pl_current_text_color", m_ui.plTextCurrentColor->colorName()); + settings.setValue("pl_hl_text_color", m_ui.plTextHlCurrentColor->colorName()); + settings.setValue("pl_group_bg", m_ui.plGrBgColor->colorName()); + settings.setValue("pl_group_text", m_ui.plGrTextColor->colorName()); + settings.setValue("pl_font", m_ui.plFontLabel->font().toString()); + settings.setValue("pl_tabs_font", m_ui.tabsFontLabel->font().toString()); + settings.setValue("pl_header_font", m_ui.columnFontLabel->font().toString()); + settings.setValue("use_system_fonts", m_ui.systemFontsCheckBox->isChecked()); + settings.endGroup(); +} + +void QSUISettings::on_resetFontsButton_clicked() +{ + QSettings settings (Qmmp::configFile(), QSettings::IniFormat); + settings.remove("Simple/pl_font"); + settings.remove("Simple/pl_tabs_font"); + settings.remove("Simple/pl_header_font"); + loadFonts(); +} + +void QSUISettings::addWindowTitleString(QAction *a) +{ + if (m_ui.windowTitleLineEdit->cursorPosition () < 1) + m_ui.windowTitleLineEdit->insert(a->data().toString()); + else + m_ui.windowTitleLineEdit->insert(" - "+a->data().toString()); +} |
