aboutsummaryrefslogtreecommitdiff
path: root/src/configdialog.cpp
diff options
context:
space:
mode:
authorvovanec <vovanec@90c681e8-e032-0410-971d-27865f9a5e38>2008-02-07 13:36:34 +0000
committervovanec <vovanec@90c681e8-e032-0410-971d-27865f9a5e38>2008-02-07 13:36:34 +0000
commit06d1877811fa6aa97dddc0e03bcde4e766928c87 (patch)
treec25462d0e58c3d58c728664440412bf4f16a49ec /src/configdialog.cpp
parent3f6b60f23c44a8ba8dd97ca6f41a16e2af7ef2f7 (diff)
downloadqmmp-06d1877811fa6aa97dddc0e03bcde4e766928c87.tar.gz
qmmp-06d1877811fa6aa97dddc0e03bcde4e766928c87.tar.bz2
qmmp-06d1877811fa6aa97dddc0e03bcde4e766928c87.zip
new directory structure
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@232 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/configdialog.cpp')
-rw-r--r--src/configdialog.cpp469
1 files changed, 0 insertions, 469 deletions
diff --git a/src/configdialog.cpp b/src/configdialog.cpp
deleted file mode 100644
index 958453a27..000000000
--- a/src/configdialog.cpp
+++ /dev/null
@@ -1,469 +0,0 @@
-/***************************************************************************
- * Copyright (C) 2007 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 <decoder.h>
-#include <output.h>
-#include <decoderfactory.h>
-#include <outputfactory.h>
-#include <visualfactory.h>
-#include <effectfactory.h>
-#include <effect.h>
-
-#include "skin.h"
-#include "filedialog.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);
- connect ( ui. contentsWidget,
- SIGNAL ( currentItemChanged ( QListWidgetItem *, QListWidgetItem * ) ),
- this, SLOT ( changePage ( QListWidgetItem *, QListWidgetItem* ) ) );
- connect ( ui.mainFontButton, SIGNAL ( clicked() ), SLOT ( setMainFont() ) );
- connect ( ui.plFontButton, SIGNAL ( clicked() ), SLOT ( setPlFont() ) );
- connect ( ui.preferencesButton, SIGNAL ( clicked() ), SLOT (showPluginSettings()));
- connect ( ui.informationButton, SIGNAL ( clicked() ), SLOT (showPluginInfo()));
- connect ( this, SIGNAL(accepted()),SLOT(saveSettings()));
- ui.listWidget->setIconSize ( QSize ( 69,29 ) );
- m_skin = Skin::getPointer();
- ui.fileDialogComboBox->insertItems(0,FileDialog::registeredFactories());
- readSettings();
- SkinReader reader;
- reader.updateCache();
- loadSkins();
- loadPluginsInfo();
- loadFonts();
- createMenus();
-}
-
-ConfigDialog::~ConfigDialog()
-{
- while (!m_outputPluginItems.isEmpty())
- delete m_outputPluginItems.takeFirst();
- while (!m_inputPluginItems.isEmpty())
- delete m_outputPluginItems.takeFirst();
- while (!m_visualPluginItems.isEmpty())
- delete m_visualPluginItems.takeFirst();
- while (!m_effectPluginItems.isEmpty())
- delete m_effectPluginItems.takeFirst();
-}
-
-void ConfigDialog::readSettings()
-{
- QSettings settings ( QDir::homePath() +"/.qmmp/qmmprc", QSettings::IniFormat );
- ui.formatLineEdit->setText(
- settings.value ( "PlayList/title_format", "%p - %t").toString());
- ui.metadataCheckBox->setChecked(
- settings.value ( "PlayList/load_metadata", TRUE).toBool());
- ui.trayCheckBox->setChecked(
- settings.value("Tray/enabled",TRUE).toBool());
- ui.messageCheckBox->setChecked(
- settings.value("Tray/show_message",TRUE).toBool());
- ui.messageDelaySpinBox->setValue(settings.value("Tray/message_delay",
- 2000).toInt());
- ui.messageCheckBox->setEnabled(ui.trayCheckBox->isChecked());
- ui.messageDelaySpinBox->setEnabled(ui.trayCheckBox->isChecked() ||
- ui.messageCheckBox->isChecked() );
- ui.toolTipCheckBox->setEnabled(ui.trayCheckBox->isChecked());
- ui.toolTipCheckBox->setChecked(
- settings.value("Tray/show_tooltip",FALSE).toBool());
-
- ui.hideToTrayRadioButton->setChecked(settings.value("Tray/hide_on_close", FALSE).toBool());
- ui.closeGroupBox->setEnabled(ui.trayCheckBox->isChecked());
-
- QString f_dialogName =
- settings.value("FileDialog",QtFileDialogFactory::QtFileDialogFactoryName).toString();
-
- int ind = FileDialog::registeredFactories().indexOf(f_dialogName);
- if (ind != -1)
- ui.fileDialogComboBox->setCurrentIndex(ind);
- else
- ui.fileDialogComboBox->setCurrentIndex(0);
-
- //proxy settings
- ui.enableProxyCheckBox->setChecked(
- settings.value ("Proxy/use_proxy", FALSE).toBool());
- ui.authProxyCheckBox->setChecked(
- settings.value ("Proxy/authentication", FALSE).toBool());
-
- ui.hostLineEdit->setText(settings.value("Proxy/host").toString());
- ui.portLineEdit->setText(settings.value("Proxy/port").toString());
- ui.proxyUserLineEdit->setText(settings.value("Proxy/user").toString());
- ui.proxyPasswLineEdit->setText(settings.value("Proxy/passw").toString());
-
- ui.hostLineEdit->setEnabled(ui.enableProxyCheckBox->isChecked());
- ui.portLineEdit->setEnabled(ui.enableProxyCheckBox->isChecked());
- ui.proxyUserLineEdit->setEnabled(ui.authProxyCheckBox->isChecked());
- ui.proxyPasswLineEdit->setEnabled(ui.authProxyCheckBox->isChecked());
-}
-
-void ConfigDialog::changePage ( QListWidgetItem *current, QListWidgetItem *previous )
-{
- if ( !current )
- current = previous;
- ui.stackedWidget->setCurrentIndex ( ui.contentsWidget->row ( current ) );
-}
-
-void ConfigDialog::changeSkin()
-{
- int row = ui.listWidget->currentRow();
- QString path = m_skinList.at ( row ).canonicalFilePath();
- m_skin->setSkin ( path );
-}
-
-void ConfigDialog::loadSkins()
-{
- m_skinList.clear();
- //findSkins(":/");
-
- 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;
-
- findSkins(QDir::homePath() +"/.qmmp/skins");
- findSkins(QDir::homePath() +"/.qmmp/cache/skins");
- connect ( ui.listWidget, SIGNAL ( itemClicked ( QListWidgetItem* ) ),
- this, SLOT ( changeSkin() ) );
-}
-
-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 );
- ui.listWidget->addItem ( item );
- m_skinList << fileInfo;
- }
- }
-}
-
-void ConfigDialog::loadPluginsInfo()
-{
- /*
- load input plugins information
- */
- QList <DecoderFactory *> *decoders = 0;
- decoders = Decoder::decoderFactories();
- QStringList files = Decoder::decoderFiles();
- ui.inputPluginTable->setColumnCount ( 3 );
- ui.inputPluginTable->verticalHeader()->hide();
- ui.inputPluginTable->setHorizontalHeaderLabels ( QStringList()
- << tr ( "Enabled" ) << tr ( "Description" ) << tr ( "Filename" ) );
- ui.inputPluginTable->setRowCount ( decoders->count () );
- for ( int i = 0; i < decoders->count (); ++i )
- {
- InputPluginItem *item = new InputPluginItem(this,decoders->at(i),files.at(i));
- QCheckBox* checkBox = new QCheckBox ( ui.inputPluginTable );
- connect(checkBox, SIGNAL(toggled(bool)), item, SLOT(setSelected(bool)));
- checkBox->setChecked(item->isSelected());
- ui.inputPluginTable->setCellWidget ( i, 0, checkBox );
- ui.inputPluginTable->setItem ( i,1,
- new QTableWidgetItem (item->factory()->properties().name) );
- ui.inputPluginTable->setItem ( i,2, new QTableWidgetItem (files.at (i)) );
- }
- ui.inputPluginTable->resizeColumnToContents ( 0 );
- ui.inputPluginTable->resizeColumnToContents ( 1 );
- ui.inputPluginTable->resizeRowsToContents ();
- /*
- load output plugins information
- */
- QList <OutputFactory *> *outputs = 0;
- outputs = Output::outputFactories();
- files = Output::outputFiles();
- ui.outputPluginTable->setColumnCount ( 3 );
- ui.outputPluginTable->verticalHeader()->hide();
- ui.outputPluginTable->setHorizontalHeaderLabels ( QStringList()
- << tr ( "Enabled" ) << tr ( "Description" ) << tr ( "Filename" ) );
- ui.outputPluginTable->setRowCount ( outputs->count () );
-
- for ( int i = 0; i < outputs->count (); ++i )
- {
- OutputPluginItem *item = new OutputPluginItem(this,outputs->at(i),files.at(i));
- m_outputPluginItems.append(item);
- QRadioButton* button = new QRadioButton ( ui.outputPluginTable );
- connect(button, SIGNAL(pressed ()), item, SLOT(select()));
- button->setChecked ( item->isSelected() );
- ui.outputPluginTable->setCellWidget ( i, 0, button );
- ui.outputPluginTable->setItem (i,1,
- new QTableWidgetItem (item->factory()->name()));
- ui.outputPluginTable->setItem (i,2, new QTableWidgetItem (files.at(i)));
- }
-
- ui.outputPluginTable->resizeColumnToContents ( 0 );
- ui.outputPluginTable->resizeColumnToContents ( 1 );
- ui.outputPluginTable->resizeRowsToContents ();
- /*
- load visual plugin information
- */
- QList <VisualFactory *> *visuals = 0;
- visuals = Visual::visualFactories();
- files = Visual::visualFiles();
- ui.visualPluginTable->setColumnCount ( 3 );
- ui.visualPluginTable->verticalHeader()->hide();
- ui.visualPluginTable->setHorizontalHeaderLabels ( QStringList()
- << tr ( "Enabled" ) << tr ( "Description" ) << tr ( "Filename" ) );
- ui.visualPluginTable->setRowCount ( visuals->count () );
-
- for ( int i = 0; i < visuals->count (); ++i )
- {
- VisualPluginItem *item = new VisualPluginItem(this,visuals->at(i),files.at(i));
- m_visualPluginItems.append(item);
- QCheckBox* button = new QCheckBox (ui.visualPluginTable);
- connect(button, SIGNAL(clicked (bool)), item, SLOT(select(bool)));
- button->setChecked (item->isSelected());
- ui.visualPluginTable->setCellWidget ( i, 0, button );
- ui.visualPluginTable->setItem (i,1,
- new QTableWidgetItem (item->factory()->properties().name));
- ui.visualPluginTable->setItem (i,2, new QTableWidgetItem (files.at(i)));
- }
-
- ui.visualPluginTable->resizeColumnToContents ( 0 );
- ui.visualPluginTable->resizeColumnToContents ( 1 );
- ui.visualPluginTable->resizeRowsToContents ();
-
- /*
- load effect plugin information
- */
- QList <EffectFactory *> *effects = 0;
- effects = Effect::effectFactories();
- files = Effect::effectFiles();
- ui.effectPluginTable->setColumnCount ( 3 );
- ui.effectPluginTable->verticalHeader()->hide();
- ui.effectPluginTable->setHorizontalHeaderLabels ( QStringList()
- << tr ( "Enabled" ) << tr ( "Description" ) << tr ( "Filename" ) );
- ui.effectPluginTable->setRowCount ( visuals->count () );
-
- for ( int i = 0; i < effects->count (); ++i )
- {
- EffectPluginItem *item = new EffectPluginItem(this,effects->at(i),files.at(i));
- m_effectPluginItems.append(item);
- QCheckBox* button = new QCheckBox (ui.effectPluginTable);
- connect(button, SIGNAL(clicked (bool)), item, SLOT(select(bool)));
- button->setChecked (item->isSelected());
- ui.effectPluginTable->setCellWidget ( i, 0, button );
- ui.effectPluginTable->setItem (i,1,
- new QTableWidgetItem (item->factory()->properties().name));
- ui.effectPluginTable->setItem (i,2, new QTableWidgetItem (files.at(i)));
- }
-
- ui.effectPluginTable->resizeColumnToContents ( 0 );
- ui.effectPluginTable->resizeColumnToContents ( 1 );
- ui.effectPluginTable->resizeRowsToContents ();
-}
-
-
-void ConfigDialog::loadFonts()
-{
- QSettings settings ( QDir::homePath() +"/.qmmp/qmmprc", QSettings::IniFormat );
- QString fontname = settings.value ( "PlayList/Font","" ).toString();
- if ( fontname.isEmpty () )
- fontname = QFont ( "Helvetica [Cronyx]", 10 ).toString();
- ui.plFontLabel -> setText ( fontname );
-
- fontname = settings.value ( "MainWindow/Font","" ).toString();
- if ( fontname.isEmpty () )
- fontname = QFont ( "Helvetica [Cronyx]", 9 ).toString();
- ui.mainFontLabel -> setText ( fontname );
-}
-
-void ConfigDialog::setPlFont()
-{
- bool ok;
- QFont font;
- font.fromString ( ui.plFontLabel->text() );
- font = QFontDialog::getFont ( &ok, font, this );
- if ( ok )
- {
- ui.plFontLabel -> setText ( font.toString () );
- QSettings settings ( QDir::homePath() +"/.qmmp/qmmprc", QSettings::IniFormat );
- settings.setValue ( "PlayList/Font", font.toString() );
- }
-}
-
-void ConfigDialog::setMainFont()
-{
- bool ok;
- QFont font;
- font.fromString ( ui.plFontLabel->text() );
- font = QFontDialog::getFont ( &ok, font, this );
- if ( ok )
- {
- ui.mainFontLabel -> setText ( font.toString () );
- QSettings settings ( QDir::homePath() +"/.qmmp/qmmprc", QSettings::IniFormat );
- settings.setValue ( "MainWindow/Font", font.toString() );
- }
-}
-
-void ConfigDialog::showPluginSettings()
-{
- switch ( ( int ) ui.pluginsTab -> currentIndex () )
- {
- case 0:
- {
- QList <DecoderFactory *> *decoders = 0;
- decoders = Decoder::decoderFactories();
- int row = ui.inputPluginTable->currentRow ();
- if ( !decoders || row<0 )
- return;
-
- decoders->at ( row )->showSettings ( this );
- break;
- }
- case 1:
- {
- int row = ui.outputPluginTable->currentRow ();
- if ( m_outputPluginItems.isEmpty() || row < 0 )
- return;
- m_outputPluginItems.at(row)->factory()->showSettings ( this );
- break;
- }
- case 2:
- {
- int row = ui.visualPluginTable->currentRow ();
- if ( m_visualPluginItems.isEmpty() || row < 0 )
- return;
- m_visualPluginItems.at(row)->factory()->showSettings ( this );
- break;
- }
- case 3:
- {
- int row = ui.effectPluginTable->currentRow ();
- if ( m_effectPluginItems.isEmpty() || row < 0 )
- return;
- m_effectPluginItems.at(row)->factory()->showSettings ( this );
- break;
- }
- }
-}
-
-void ConfigDialog::showPluginInfo()
-{
- switch ( ( int ) ui.pluginsTab -> currentIndex () )
- {
- case 0:
- {
- QList <DecoderFactory *> *decoders = 0;
- decoders = Decoder::decoderFactories();
- int row = ui.inputPluginTable->currentRow ();
- if ( !decoders || row<0 )
- return;
-
- decoders->at ( row )->showAbout ( this );
- break;
- }
- case 1:
- {
- int row = ui.outputPluginTable->currentRow ();
- if ( m_outputPluginItems.isEmpty() || row < 0 )
- return;
- m_outputPluginItems.at(row)->factory()->showAbout ( this );
- break;
- }
- case 2:
- {
- int row = ui.visualPluginTable->currentRow ();
- if ( m_visualPluginItems.isEmpty() || row < 0 )
- return;
- m_visualPluginItems.at(row)->factory()->showAbout ( this );
- break;
- }
- case 3:
- {
- int row = ui.effectPluginTable->currentRow ();
- if ( m_effectPluginItems.isEmpty() || row < 0 )
- return;
- m_effectPluginItems.at(row)->factory()->showAbout ( this );
- break;
- }
- }
-}
-
-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("Tracknumber"))->setData("%n");
- menu->addAction(tr("Genre"))->setData("%g");
- menu->addAction(tr("Filename"))->setData("%f");
- menu->addAction(tr("Filepath"))->setData("%F");
- menu->addAction(tr("Date"))->setData("%d");
- menu->addAction(tr("Year"))->setData("%y");
- menu->addAction(tr("Comment"))->setData("%c");
- 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 (QDir::homePath() +"/.qmmp/qmmprc", QSettings::IniFormat);
- settings.setValue ("PlayList/title_format", ui.formatLineEdit->text());
- settings.setValue ("PlayList/load_metadata", ui.metadataCheckBox->isChecked());
- settings.setValue ("MainWindow/tray_enabled", ui.trayCheckBox->isChecked());
- settings.setValue ("Tray/enabled", ui.trayCheckBox->isChecked());
- settings.setValue ("Tray/show_message", ui.messageCheckBox->isChecked());
- settings.setValue ("Tray/message_delay", ui.messageDelaySpinBox->value());
- settings.setValue ("Tray/show_tooltip", ui.toolTipCheckBox->isChecked());
- settings.setValue ("Tray/hide_on_close",ui.hideToTrayRadioButton->isChecked());
- settings.setValue ("FileDialog", ui.fileDialogComboBox->currentText());
- settings.setValue ("Proxy/use_proxy", ui.enableProxyCheckBox->isChecked());
- settings.setValue ("Proxy/authentication", ui.authProxyCheckBox->isChecked());
- settings.setValue ("Proxy/host",ui.hostLineEdit->text());
- settings.setValue ("Proxy/port",ui.portLineEdit->text());
- settings.setValue ("Proxy/user",ui.proxyUserLineEdit->text());
- settings.setValue ("Proxy/passw",ui.proxyPasswLineEdit->text());
-}
-