diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2011-07-12 17:45:06 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2011-07-12 17:45:06 +0000 |
| commit | 4cb1b12751e486cea156c94c826c693fcf3d2f47 (patch) | |
| tree | 0a8215e1caab4fa764fa54a272d2f730dc51a452 /src/qmmpui/pluginitem.cpp | |
| parent | 6eedde547fc8bebd5ee29c165970d1d46bc3b7a2 (diff) | |
| download | qmmp-4cb1b12751e486cea156c94c826c693fcf3d2f47.tar.gz qmmp-4cb1b12751e486cea156c94c826c693fcf3d2f47.tar.bz2 qmmp-4cb1b12751e486cea156c94c826c693fcf3d2f47.zip | |
added configuration dialog
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2270 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/qmmpui/pluginitem.cpp')
| -rw-r--r-- | src/qmmpui/pluginitem.cpp | 184 |
1 files changed, 184 insertions, 0 deletions
diff --git a/src/qmmpui/pluginitem.cpp b/src/qmmpui/pluginitem.cpp new file mode 100644 index 000000000..dc82c53af --- /dev/null +++ b/src/qmmpui/pluginitem.cpp @@ -0,0 +1,184 @@ +/*************************************************************************** + * Copyright (C) 2010-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 <QSettings> +#include <QDir> +#include <qmmp/inputsourcefactory.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 <qmmpui/generalfactory.h> +#include <qmmpui/general.h> +#include <qmmpui/uihelper.h> +#include "pluginitem_p.h" + +PluginItem::PluginItem(QTreeWidgetItem *parent, InputSourceFactory *factory, const QString &path) + : QTreeWidgetItem(parent, QStringList() << factory->properties().name << path.section('/',-1), TRANSPORT) +{ + m_has_about = factory->properties().hasAbout; + m_has_config = factory->properties().hasSettings; + m_factory = factory; +} + + +PluginItem::PluginItem(QTreeWidgetItem *parent, DecoderFactory *factory, const QString &path) + : QTreeWidgetItem(parent, QStringList() << factory->properties().name << path.section('/',-1), DECODER) +{ + setCheckState(0, Decoder::isEnabled(factory) ? Qt::Checked : Qt::Unchecked); + m_has_about = factory->properties().hasAbout; + m_has_config = factory->properties().hasSettings; + m_factory = factory; +} + +PluginItem::PluginItem(QTreeWidgetItem *parent, EngineFactory *factory, const QString &path) + : QTreeWidgetItem(parent, QStringList() << factory->properties().name << path.section('/',-1), ENGINE) +{ + setCheckState(0, AbstractEngine::isEnabled(factory) ? Qt::Checked : Qt::Unchecked); + m_has_about = factory->properties().hasAbout; + m_has_config = factory->properties().hasSettings; + m_factory = factory; +} + +PluginItem::PluginItem(QTreeWidgetItem *parent, EffectFactory *factory, const QString &path) + : QTreeWidgetItem(parent, QStringList() << factory->properties().name << path.section('/',-1), EFFECT) +{ + setCheckState(0, Effect::isEnabled(factory) ? Qt::Checked : Qt::Unchecked); + m_has_about = factory->properties().hasAbout; + m_has_config = factory->properties().hasSettings; + m_factory = factory; +} + +PluginItem::PluginItem(QTreeWidgetItem *parent, VisualFactory *factory, const QString &path) + : QTreeWidgetItem(parent, QStringList() << factory->properties().name << path.section('/',-1), VISUAL) +{ + setCheckState(0, Visual::isEnabled(factory) ? Qt::Checked : Qt::Unchecked); + m_has_about = factory->properties().hasAbout; + m_has_config = factory->properties().hasSettings; + m_factory = factory; +} + +PluginItem::PluginItem(QTreeWidgetItem *parent, GeneralFactory *factory, const QString &path) + : QTreeWidgetItem(parent, QStringList() << factory->properties().name << path.section('/',-1), GENERAL) +{ + setCheckState(0, General::isEnabled(factory) ? Qt::Checked : Qt::Unchecked); + m_has_about = factory->properties().hasAbout; + m_has_config = factory->properties().hasSettings; + m_factory = factory; +} + +PluginItem::~PluginItem() +{ + +} + +bool PluginItem::hasAbout() const +{ + return m_has_about; +} +bool PluginItem::hasSettings() const +{ + return m_has_config; +} + +void PluginItem::showAbout(QWidget *parent) +{ + switch(type()) + { + case PluginItem::TRANSPORT: + static_cast<InputSourceFactory *>(m_factory)->showAbout(parent); + break; + case PluginItem::DECODER: + static_cast<DecoderFactory *>(m_factory)->showAbout(parent); + break; + case PluginItem::ENGINE: + static_cast<EngineFactory *>(m_factory)->showAbout(parent); + break; + case PluginItem::EFFECT: + static_cast<EffectFactory *>(m_factory)->showAbout(parent); + break; + case PluginItem::VISUAL: + static_cast<VisualFactory *>(m_factory)->showAbout(parent); + break; + case PluginItem::GENERAL: + static_cast<GeneralFactory *>(m_factory)->showAbout(parent); + break; + default: + ; + } +} + +void PluginItem::showSettings(QWidget *parent) +{ + switch(type()) + { + case PluginItem::TRANSPORT: + static_cast<InputSourceFactory *>(m_factory)->showSettings(parent); + break; + case PluginItem::DECODER: + static_cast<DecoderFactory *>(m_factory)->showSettings (parent); + break; + case PluginItem::ENGINE: + static_cast<EngineFactory *>(m_factory)->showSettings (parent); + break; + case PluginItem::EFFECT: + static_cast<EffectFactory *>(m_factory)->showSettings (parent); + break; + case PluginItem::VISUAL: + Visual::showSettings(static_cast<VisualFactory *>(m_factory), parent); + break; + case PluginItem::GENERAL: + General::showSettings(static_cast<GeneralFactory *>(m_factory), parent); + break; + default: + ; + } +} + +void PluginItem::setEnabled(bool enabled) +{ + switch(type()) + { + case PluginItem::TRANSPORT: + //dynamic_cast<InputSourceFactory *>(m_factory) + break; + case PluginItem::DECODER: + Decoder::setEnabled(static_cast<DecoderFactory *>(m_factory), enabled); + break; + case PluginItem::ENGINE: + AbstractEngine::setEnabled(static_cast<EngineFactory *>(m_factory), enabled); + break; + case PluginItem::EFFECT: + Effect::setEnabled(static_cast<EffectFactory *>(m_factory), enabled); + break; + case PluginItem::VISUAL: + Visual::setEnabled(static_cast<VisualFactory *>(m_factory), enabled); + break; + case PluginItem::GENERAL: + General::setEnabled(static_cast<GeneralFactory *>(m_factory), enabled); + break; + default: + ; + } +} |
