aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Ui/skinned/configdialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/Ui/skinned/configdialog.cpp')
-rw-r--r--src/plugins/Ui/skinned/configdialog.cpp596
1 files changed, 0 insertions, 596 deletions
diff --git a/src/plugins/Ui/skinned/configdialog.cpp b/src/plugins/Ui/skinned/configdialog.cpp
deleted file mode 100644
index 6a531a37d..000000000
--- a/src/plugins/Ui/skinned/configdialog.cpp
+++ /dev/null
@@ -1,596 +0,0 @@
-/***************************************************************************
- * Copyright (C) 2007-2011 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., *
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
- ***************************************************************************/
-#include <QDir>
-#include <QSettings>
-#include <QFontDialog>
-#include <QTreeWidgetItem>
-#include <QHeaderView>
-#include <QCheckBox>
-#include <QRadioButton>
-#include <QMenu>
-#include <QMessageBox>
-#include <qmmp/decoder.h>
-#include <qmmp/output.h>
-#include <qmmp/decoderfactory.h>
-#include <qmmp/outputfactory.h>
-#include <qmmp/visualfactory.h>
-#include <qmmp/effectfactory.h>
-#include <qmmp/effect.h>
-#include <qmmp/soundcore.h>
-#include <qmmp/enginefactory.h>
-#include <qmmp/abstractengine.h>
-#include <qmmp/qmmpsettings.h>
-#include <qmmp/inputsource.h>
-#include <qmmp/inputsourcefactory.h>
-#include <qmmpui/generalfactory.h>
-#include <qmmpui/general.h>
-#include <qmmpui/uihelper.h>
-#include <qmmpui/filedialog.h>
-#include <qmmpui/mediaplayer.h>
-#include <qmmpui/playlistmodel.h>
-#include "shortcutdialog.h"
-#include "actionmanager.h"
-#include "shortcutitem.h"
-#include "popupsettings.h"
-#include "skin.h"
-#include "pluginitem.h"
-#include "configdialog.h"
-#include "skinreader.h"
-
-ConfigDialog::ConfigDialog (QWidget *parent)
- : QDialog (parent)
-{
- ui.setupUi (this);
- setAttribute(Qt::WA_QuitOnClose, false);
- setAttribute(Qt::WA_DeleteOnClose, false);
- ui.preferencesButton->setEnabled(false);
- ui.informationButton->setEnabled(false);
- connect (ui.mainFontButton, SIGNAL (clicked()), SLOT (setMainFont()));
- connect (ui.plFontButton, SIGNAL (clicked()), SLOT (setPlFont()));
- connect (this, SIGNAL(rejected()),SLOT(saveSettings()));
- connect (ui.fileDialogComboBox, SIGNAL (currentIndexChanged (int)), SLOT(updateDialogButton(int)));
- connect (ui.skinInstallButton, SIGNAL (clicked()), SLOT(installSkin()));
- connect (ui.skinReloadButton, SIGNAL (clicked()), SLOT(loadSkins()));
- connect (ui.listWidget, SIGNAL (itemClicked (QListWidgetItem *)), this, SLOT (changeSkin()));
- ui.listWidget->setIconSize (QSize (105,34));
- m_skin = Skin::instance();
- ui.replayGainModeComboBox->addItem (tr("Track"), QmmpSettings::REPLAYGAIN_TRACK);
- ui.replayGainModeComboBox->addItem (tr("Album"), QmmpSettings::REPLAYGAIN_ALBUM);
- ui.replayGainModeComboBox->addItem (tr("Disabled"), QmmpSettings::REPLAYGAIN_DISABLED);
- readSettings();
- m_reader = new SkinReader(this);
- loadSkins();
- loadPluginsInfo();
- loadShortcuts();
- loadFonts();
- createMenus();
- //setup icons
- ui.skinInstallButton->setIcon(QIcon::fromTheme("list-add"));
- ui.skinReloadButton->setIcon(QIcon::fromTheme("view-refresh"));
- ui.popupTemplateButton->setIcon(QIcon::fromTheme("configure"));
- ui.preferencesButton->setIcon(QIcon::fromTheme("configure"));
- ui.informationButton->setIcon(QIcon::fromTheme("dialog-information"));
- ui.fdInformationButton->setIcon(QIcon::fromTheme("dialog-information"));
- ui.outputInformationButton->setIcon(QIcon::fromTheme("dialog-information"));
- ui.outputPreferencesButton->setIcon(QIcon::fromTheme("configure"));
-}
-
-ConfigDialog::~ConfigDialog()
-{}
-
-void ConfigDialog::readSettings()
-{
- QSettings settings (Qmmp::configFile(), QSettings::IniFormat);
- if (MediaPlayer *player = MediaPlayer::instance())
- {
- ui.formatLineEdit->setText(player->playListManager()->format());
- ui.metadataCheckBox->setChecked(player->playListManager()->useMetadata());
- ui.underscoresCheckBox->setChecked(player->playListManager()->convertUnderscore());
- ui.per20CheckBox->setChecked(player->playListManager()->convertTwenty());
- }
- settings.beginGroup("Skinned");
- ui.protocolCheckBox->setChecked(settings.value ("pl_show_protocol", false).toBool());
- ui.numbersCheckBox->setChecked(settings.value ("pl_show_numbers", true).toBool());
- ui.alignCheckBox->setChecked(settings.value ("pl_align_numbers", false).toBool());
- ui.anchorCheckBox->setChecked(settings.value("pl_show_anchor", false).toBool());
- ui.playlistsCheckBox->setChecked(settings.value("pl_show_plalists", false).toBool());
- ui.popupCheckBox->setChecked(settings.value("pl_show_popup", false).toBool());
- QmmpSettings *gs = QmmpSettings::instance();
- //proxy settings
- ui.enableProxyCheckBox->setChecked(gs->isProxyEnabled());
- ui.authProxyCheckBox->setChecked(gs->useProxyAuth());
- ui.hostLineEdit->setText(gs->proxy().host());
- if (gs->proxy().port(0))
- ui.portLineEdit->setText(QString::number(gs->proxy().port(0)));
- ui.proxyUserLineEdit->setText(gs->proxy().userName());
- ui.proxyPasswLineEdit->setText(gs->proxy().password());
-
- ui.hostLineEdit->setEnabled(ui.enableProxyCheckBox->isChecked());
- ui.portLineEdit->setEnabled(ui.enableProxyCheckBox->isChecked());
- ui.proxyUserLineEdit->setEnabled(ui.authProxyCheckBox->isChecked());
- ui.proxyPasswLineEdit->setEnabled(ui.authProxyCheckBox->isChecked());
- //transparency
- ui.mwTransparencySlider->setValue(100 - settings.value("mw_opacity", 1.0).toDouble()*100);
- ui.eqTransparencySlider->setValue(100 - settings.value("eq_opacity", 1.0).toDouble()*100);
- ui.plTransparencySlider->setValue(100 - settings.value("pl_opacity", 1.0).toDouble()*100);
- //view
- ui.skinCursorsCheckBox->setChecked(settings.value("skin_cursors", false).toBool());
- m_currentSkinName = settings.value("skin_name", "default").toString();
- ui.hiddenCheckBox->setChecked(settings.value("start_hidden", false).toBool());
- ui.hideOnCloseCheckBox->setChecked(settings.value("hide_on_close", false).toBool());
- settings.endGroup();
- //resume playback
- ui.continuePlaybackCheckBox->setChecked(settings.value("General/resume_on_startup", false).toBool());
- //cover options
- ui.coverIncludeLineEdit->setText(gs->coverNameFilters(true).join(","));
- ui.coverExcludeLineEdit->setText(gs->coverNameFilters(false).join(","));
- ui.coverDepthSpinBox->setValue(gs->coverSearchDepth());
- ui.useCoverFilesCheckBox->setChecked(gs->useCoverFiles());
- //replay gain
- ui.clippingCheckBox->setChecked(gs->replayGainPreventClipping());
- ui.replayGainModeComboBox->setCurrentIndex(ui.replayGainModeComboBox->findData(gs->replayGainMode()));
- ui.preampDoubleSpinBox->setValue(gs->replayGainPreamp());
- ui.defaultGainDoubleSpinBox->setValue(gs->replayGainDefaultGain());
- //audio
- ui.softVolumeCheckBox->setChecked(gs->useSoftVolume());
- ui.use16BitCheckBox->setChecked(gs->use16BitOutput());
- ui.bufferSizeSpinBox->setValue(gs->bufferSize());
-}
-
-void ConfigDialog::on_contentsWidget_currentItemChanged (QListWidgetItem *current,
- QListWidgetItem *previous)
-{
- if (!current)
- current = previous;
- ui.stackedWidget->setCurrentIndex (ui.contentsWidget->row (current));
- ui.hiddenCheckBox->setEnabled(UiHelper::instance()->visibilityControl());
- ui.hideOnCloseCheckBox->setEnabled(UiHelper::instance()->visibilityControl());
-}
-
-void ConfigDialog::changeSkin()
-{
- int row = ui.listWidget->currentRow();
- QString path;
- if (m_skinList.at (row).isDir())
- {
- path = m_skinList.at (row).canonicalFilePath();
- m_skin->setSkin (path);
- }
- else if (m_skinList.at (row).isFile())
- {
- m_reader->unpackSkin(m_skinList.at (row).canonicalFilePath());
- m_skin->setSkin(QDir::homePath() +"/.qmmp/cache/skin");
- }
- if(ui.listWidget->currentItem())
- m_currentSkinName = ui.listWidget->currentItem()->text();
- else
- m_currentSkinName.clear();
-}
-
-void ConfigDialog::loadSkins()
-{
- m_reader->generateThumbs();
- m_skinList.clear();
- ui.listWidget->clear();
- QFileInfo fileInfo (":/default");
- QPixmap preview = Skin::getPixmap ("main", QDir (fileInfo.filePath()));
- QListWidgetItem *item = new QListWidgetItem (fileInfo.fileName ());
- item->setIcon (preview);
- ui.listWidget->addItem (item);
- m_skinList << fileInfo;
- if(item->text() == m_currentSkinName)
- ui.listWidget->setCurrentItem(item);
-
- findSkins(QDir::homePath() +"/.qmmp/skins");
-#ifdef Q_OS_WIN32
- findSkins(qApp->applicationDirPath()+"/skins");
-#else
- findSkins(qApp->applicationDirPath()+"/../share/qmmp/skins");
-#endif
- foreach(QString path, m_reader->skins())
- {
- QListWidgetItem *item = new QListWidgetItem (path.section('/', -1));
- item->setIcon (m_reader->getPreview(path));
- item->setToolTip(tr("Archived skin") + " " + path);
- ui.listWidget->addItem (item);
- m_skinList << QFileInfo(path);
- if(item->text() == m_currentSkinName)
- ui.listWidget->setCurrentItem(item);
- }
-}
-
-void ConfigDialog::findSkins(const QString &path)
-{
- QDir dir(path);
- dir.setFilter (QDir::Dirs | QDir::NoDotAndDotDot);
- QList <QFileInfo> fileList = dir.entryInfoList();
- if (fileList.count() == 0)
- return;
- foreach (QFileInfo fileInfo, fileList)
- {
- QPixmap preview = Skin::getPixmap ("main", QDir(fileInfo.filePath ()));
- if (!preview.isNull())
- {
- QListWidgetItem *item = new QListWidgetItem (fileInfo.fileName ());
- item->setIcon (preview);
- item->setToolTip(tr("Unarchived skin") + " " + fileInfo.filePath ());
- ui.listWidget->addItem (item);
- m_skinList << fileInfo;
- }
- }
-}
-
-void ConfigDialog::loadPluginsInfo()
-{
- ui.treeWidget->blockSignals(true);
- /*
- load transport plugin information
- */
- QTreeWidgetItem *item = new QTreeWidgetItem (ui.treeWidget, QStringList() << tr("Transports"));
- QList <InputSourceFactory *> *transports = InputSource::factories();
- QStringList files = InputSource::files();
- for (int i = 0; i < transports->count (); ++i)
- new PluginItem (item, transports->at(i), files.at (i));
- ui.treeWidget->addTopLevelItem(item);
- item->setExpanded(true);
-
- /*
- load input plugins information
- */
- item = new QTreeWidgetItem (ui.treeWidget, QStringList() << tr("Decoders"));
- QList <DecoderFactory *> *decoders = Decoder::factories();
- files = Decoder::files();
- for (int i = 0; i < decoders->count (); ++i)
- new PluginItem (item, decoders->at(i), files.at (i));
- ui.treeWidget->addTopLevelItem(item);
- item->setExpanded(true);
- /*
- load audio engines information
- */
- item = new QTreeWidgetItem (ui.treeWidget, QStringList() << tr("Engines"));
- QList <EngineFactory *> *engines = AbstractEngine::factories();
- files = AbstractEngine::files();
- for (int i = 0; i < engines->count (); ++i)
- new PluginItem (item, engines->at(i), files.at (i));
- ui.treeWidget->addTopLevelItem(item);
- item->setExpanded(true);
- /*
- load effect plugin information
- */
- item = new QTreeWidgetItem (ui.treeWidget, QStringList() << tr("Effects"));
- QList <EffectFactory *> *effects = Effect::factories();
- files = Effect::files();
- for (int i = 0; i < effects->count (); ++i)
- new PluginItem (item, effects->at(i), files.at (i));
- ui.treeWidget->addTopLevelItem(item);
- item->setExpanded(true);
- /*
- load visual plugin information
- */
- item = new QTreeWidgetItem (ui.treeWidget, QStringList() << tr("Visualization"));
- QList <VisualFactory *> *visuals = Visual::factories();
- files = Visual::files();
- for (int i = 0; i < visuals->count (); ++i)
- new PluginItem (item, visuals->at(i), files.at (i));
- ui.treeWidget->addTopLevelItem(item);
- item->setExpanded(true);
- /*
- load general plugin information
- */
- item = new QTreeWidgetItem (ui.treeWidget, QStringList() << tr("General"));
- QList <GeneralFactory *> *generals = General::factories();
- files = General::files();
- for (int i = 0; i < generals->count (); ++i)
- new PluginItem (item, generals->at(i), files.at (i));
- ui.treeWidget->addTopLevelItem(item);
- item->setExpanded(true);
-
- ui.treeWidget->blockSignals(false);
- ui.treeWidget->resizeColumnToContents(0);
- ui.treeWidget->resizeColumnToContents(1);
- /*
- load output plugins information
- */
- ui.outputInformationButton->setEnabled(false);
- ui.outputPreferencesButton->setEnabled(false);
- QList <OutputFactory *> *outputs = Output::factories();
- for (int i = 0; i < outputs->count (); ++i)
- {
- ui.outputComboBox->addItem(outputs->at(i)->properties().name);
- if(Output::currentFactory() == outputs->at(i))
- {
- ui.outputComboBox->setCurrentIndex(i);
- on_outputComboBox_activated (i);
- }
- }
- /*
- load file dialog information
- */
- foreach(FileDialogFactory *factory, FileDialog::registeredFactories())
- {
- ui.fileDialogComboBox->addItem(factory->properties().name);
- if (FileDialog::isEnabled(factory))
- ui.fileDialogComboBox->setCurrentIndex(ui.fileDialogComboBox->count()-1);
- }
-}
-
-void ConfigDialog::loadFonts()
-{
- QSettings settings (Qmmp::configFile(), QSettings::IniFormat);
- QString fontname = settings.value ("Skinned/pl_font").toString();
- QFont font = QApplication::font();
- if(!fontname.isEmpty())
- font.fromString(fontname);
- ui.plFontLabel->setText (font.family () + " " + QString::number(font.pointSize ()));
- ui.plFontLabel->setFont(font);
-
- font = QApplication::font ();
- fontname = settings.value ("Skinned/mw_font").toString();
- if(!fontname.isEmpty())
- font.fromString(fontname);
- ui.mainFontLabel->setText (font.family () + " " + QString::number(font.pointSize ()));
- ui.mainFontLabel->setFont(font);
- ui.useBitmapCheckBox->setChecked(settings.value("Skinned/bitmap_font", false).toBool());
-}
-
-void ConfigDialog::loadShortcuts()
-{
- //playback
- QTreeWidgetItem *item = new QTreeWidgetItem (ui.shortcutTreeWidget, QStringList() << tr("Playback"));
- for(int i = ActionManager::PLAY; i <= ActionManager::CLEAR_QUEUE; ++i)
- new ShortcutItem(item, i);
- item->setExpanded(true);
- ui.shortcutTreeWidget->addTopLevelItem(item);
- //view
- item = new QTreeWidgetItem (ui.shortcutTreeWidget, QStringList() << tr("View"));
- for(int i = ActionManager::SHOW_PLAYLIST; i <= ActionManager::WM_DOUBLE_SIZE; ++i)
- new ShortcutItem(item, i);
- item->setExpanded(true);
- ui.shortcutTreeWidget->addTopLevelItem(item);
- //playlist
- item = new QTreeWidgetItem (ui.shortcutTreeWidget, QStringList() << tr("Playlist"));
- for(int i = ActionManager::PL_ADD_FILE; i <= ActionManager::PL_SHOW_MANAGER; ++i)
- new ShortcutItem(item, i);
- item->setExpanded(true);
- ui.shortcutTreeWidget->addTopLevelItem(item);
- //misc
- item = new QTreeWidgetItem (ui.shortcutTreeWidget, QStringList() << tr("Misc"));
- for(int i = ActionManager::SETTINGS; i <= ActionManager::QUIT; ++i)
- new ShortcutItem(item, i);
- item->setExpanded(true);
- ui.shortcutTreeWidget->addTopLevelItem(item);
-
- ui.shortcutTreeWidget->resizeColumnToContents(0);
- ui.shortcutTreeWidget->resizeColumnToContents(1);
-}
-
-void ConfigDialog::setPlFont()
-{
- bool ok;
- QFont font = ui.plFontLabel->font();
- font = QFontDialog::getFont (&ok, font, this);
- if (ok)
- {
- ui.plFontLabel->setText (font.family () + " " + QString::number(font.pointSize ()));
- ui.plFontLabel->setFont(font);
- QSettings settings (Qmmp::configFile(), QSettings::IniFormat);
- settings.setValue ("Skinned/pl_font", font.toString());
- }
-}
-
-void ConfigDialog::setMainFont()
-{
- bool ok;
- QFont font = ui.mainFontLabel->font();
- font = QFontDialog::getFont (&ok, font, this);
- if (ok)
- {
- ui.mainFontLabel->setText (font.family () + " " + QString::number(font.pointSize ()));
- ui.mainFontLabel->setFont(font);
- QSettings settings (Qmmp::configFile(), QSettings::IniFormat);
- settings.setValue ("Skinned/mw_font", font.toString());
- }
-}
-
-void ConfigDialog::on_preferencesButton_clicked()
-{
- QTreeWidgetItem *item = ui.treeWidget->currentItem();
- if(item && item->type() >= PluginItem::TRANSPORT)
- dynamic_cast<PluginItem *>(item)->showSettings(this);
-
-}
-
-void ConfigDialog::on_informationButton_clicked()
-{
- QTreeWidgetItem *item = ui.treeWidget->currentItem();
- if(item && item->type() >= PluginItem::TRANSPORT)
- dynamic_cast<PluginItem *>(item)->showAbout(this);
-}
-
-void ConfigDialog::createMenus()
-{
- QMenu *menu = new QMenu(this);
-
- menu->addAction(tr("Artist"))->setData("%p");
- menu->addAction(tr("Album"))->setData("%a");
- 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("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)");
-
- ui.titleButton->setMenu(menu);
- ui.titleButton->setPopupMode(QToolButton::InstantPopup);
- connect(menu, SIGNAL(triggered (QAction *)), SLOT(addTitleString(QAction *)));
-}
-
-void ConfigDialog::addTitleString(QAction * a)
-{
- if (ui.formatLineEdit->cursorPosition () < 1)
- ui.formatLineEdit->insert(a->data().toString());
- else
- ui.formatLineEdit->insert(" - "+a->data().toString());
-}
-
-void ConfigDialog::saveSettings()
-{
- QSettings settings (Qmmp::configFile(), QSettings::IniFormat);
- settings.beginGroup("Skinned");
- if (MediaPlayer *player = MediaPlayer::instance())
- {
- player->playListManager()->setFormat(ui.formatLineEdit->text().trimmed());
- player->playListManager()->setUseMetadata(ui.metadataCheckBox->isChecked());
- player->playListManager()->setConvertUnderscore(ui.underscoresCheckBox->isChecked());
- player->playListManager()->setConvertTwenty(ui.per20CheckBox->isChecked());
- }
- settings.setValue ("pl_show_protocol", ui.protocolCheckBox->isChecked());
- settings.setValue ("pl_show_numbers", ui.numbersCheckBox->isChecked());
- settings.setValue ("pl_align_numbers", ui.alignCheckBox->isChecked());
- settings.setValue ("pl_show_anchor", ui.anchorCheckBox->isChecked());
- settings.setValue ("pl_show_plalists", ui.playlistsCheckBox->isChecked());
- settings.setValue ("pl_show_popup", ui.popupCheckBox->isChecked());
- FileDialog::setEnabled(FileDialog::registeredFactories().at(ui.fileDialogComboBox->currentIndex()));
- QmmpSettings *gs = QmmpSettings::instance();
- //proxy
- QUrl proxyUrl;
- proxyUrl.setHost(ui.hostLineEdit->text());
- proxyUrl.setPort(ui.portLineEdit->text().toUInt());
- proxyUrl.setUserName(ui.proxyUserLineEdit->text());
- proxyUrl.setPassword(ui.proxyPasswLineEdit->text());
- gs->setNetworkSettings(ui.enableProxyCheckBox->isChecked(),
- ui.authProxyCheckBox->isChecked(),
- proxyUrl);
-
-
- settings.setValue ("mw_opacity", 1.0 - (double)ui.mwTransparencySlider->value()/100);
- settings.setValue ("eq_opacity", 1.0 - (double)ui.eqTransparencySlider->value()/100);
- settings.setValue ("pl_opacity", 1.0 - (double)ui.plTransparencySlider->value()/100);
-
- settings.setValue ("bitmap_font", ui.useBitmapCheckBox->isChecked());
- settings.setValue ("skin_cursors", ui.skinCursorsCheckBox->isChecked());
- settings.setValue ("skin_name", m_currentSkinName);
- settings.setValue ("start_hidden", ui.hiddenCheckBox->isChecked());
- settings.setValue ("hide_on_close", ui.hideOnCloseCheckBox->isChecked());
- settings.endGroup();
- settings.setValue ("General/resume_on_startup", ui.continuePlaybackCheckBox->isChecked());
- gs->setCoverSettings(ui.coverIncludeLineEdit->text().split(","),
- ui.coverExcludeLineEdit->text().split(","),
- ui.coverDepthSpinBox->value(),
- ui.useCoverFilesCheckBox->isChecked());
- int i = ui.replayGainModeComboBox->currentIndex();
- gs->setReplayGainSettings((QmmpSettings::ReplayGainMode)
- ui.replayGainModeComboBox->itemData(i).toInt(),
- ui.preampDoubleSpinBox->value(),
- ui.defaultGainDoubleSpinBox->value(),
- ui.clippingCheckBox->isChecked());
- gs->setAudioSettings(ui.softVolumeCheckBox->isChecked(), ui.use16BitCheckBox->isChecked());
- gs->setBufferSize(ui.bufferSizeSpinBox->value());
- QList <OutputFactory *> *outputs = Output::factories();
- if(ui.outputComboBox->currentIndex() >= 0 && outputs->count())
- Output::setCurrentFactory(outputs->at(ui.outputComboBox->currentIndex()));
-}
-
-void ConfigDialog::updateDialogButton(int index)
-{
- ui.fdInformationButton->setEnabled(FileDialog::registeredFactories()[index]->properties().hasAbout);
-}
-
-void ConfigDialog::on_fdInformationButton_clicked()
-{
- int index = ui.fileDialogComboBox->currentIndex ();
- FileDialog::registeredFactories()[index]->showAbout(this);
-}
-
-void ConfigDialog::installSkin()
-{
- QStringList files = FileDialog::getOpenFileNames(this,tr("Select Skin Files"), QDir::homePath(),
- tr("Skin files") + " (*.tar.gz *.tgz *.tar.bz2 *.zip *.wsz)");
- foreach(QString path, files)
- {
- QFile file(path);
- file.copy(QDir::homePath() +"/.qmmp/skins/" + QFileInfo(path).fileName());
- }
- loadSkins();
-}
-
-void ConfigDialog::on_popupTemplateButton_clicked()
-{
- PopupSettings *p = new PopupSettings(this);
- p->exec();
- p->deleteLater();
-}
-
-void ConfigDialog::on_treeWidget_itemChanged (QTreeWidgetItem *item, int column)
-{
- if(column == 0 && item->type() >= PluginItem::TRANSPORT)
- dynamic_cast<PluginItem *>(item)->setEnabled(item->checkState(0) == Qt::Checked);
-}
-
-void ConfigDialog::on_treeWidget_currentItemChanged (QTreeWidgetItem *current, QTreeWidgetItem *)
-{
- if(current->type() >= PluginItem::TRANSPORT)
- {
- ui.preferencesButton->setEnabled(dynamic_cast<PluginItem *>(current)->hasSettings());
- ui.informationButton->setEnabled(dynamic_cast<PluginItem *>(current)->hasAbout());
- }
- else
- {
- ui.preferencesButton->setEnabled(false);
- ui.informationButton->setEnabled(false);
- }
-}
-
-void ConfigDialog::on_outputComboBox_activated (int index)
-{
- OutputFactory *factory = Output::factories()->at(index);
- ui.outputInformationButton->setEnabled(factory->properties().hasAbout);
- ui.outputPreferencesButton->setEnabled(factory->properties().hasSettings);
-}
-
-void ConfigDialog::on_outputPreferencesButton_clicked()
-{
- int index = ui.outputComboBox->currentIndex();
- Output::factories()->at(index)->showSettings(this);
-}
-
-void ConfigDialog::on_outputInformationButton_clicked()
-{
- int index = ui.outputComboBox->currentIndex();
- Output::factories()->at(index)->showAbout(this);
-}
-
-void ConfigDialog::on_changeShortcutButton_clicked()
-{
- ShortcutItem *item = dynamic_cast<ShortcutItem *> (ui.shortcutTreeWidget->currentItem());
- if(!item)
- return;
- ShortcutDialog editor(item->action()->shortcut().toString(), this);
- if(editor.exec() == QDialog::Accepted)
- {
- item->action()->setShortcut(editor.key());
- item->setText(1, item->action()->shortcut().toString());
- }
-}