From 4cb1b12751e486cea156c94c826c693fcf3d2f47 Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Tue, 12 Jul 2011 17:45:06 +0000 Subject: added configuration dialog git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2270 90c681e8-e032-0410-971d-27865f9a5e38 --- src/qmmpui/pluginitem.cpp | 184 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 184 insertions(+) create mode 100644 src/qmmpui/pluginitem.cpp (limited to 'src/qmmpui/pluginitem.cpp') 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#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(m_factory)->showAbout(parent); + break; + case PluginItem::DECODER: + static_cast(m_factory)->showAbout(parent); + break; + case PluginItem::ENGINE: + static_cast(m_factory)->showAbout(parent); + break; + case PluginItem::EFFECT: + static_cast(m_factory)->showAbout(parent); + break; + case PluginItem::VISUAL: + static_cast(m_factory)->showAbout(parent); + break; + case PluginItem::GENERAL: + static_cast(m_factory)->showAbout(parent); + break; + default: + ; + } +} + +void PluginItem::showSettings(QWidget *parent) +{ + switch(type()) + { + case PluginItem::TRANSPORT: + static_cast(m_factory)->showSettings(parent); + break; + case PluginItem::DECODER: + static_cast(m_factory)->showSettings (parent); + break; + case PluginItem::ENGINE: + static_cast(m_factory)->showSettings (parent); + break; + case PluginItem::EFFECT: + static_cast(m_factory)->showSettings (parent); + break; + case PluginItem::VISUAL: + Visual::showSettings(static_cast(m_factory), parent); + break; + case PluginItem::GENERAL: + General::showSettings(static_cast(m_factory), parent); + break; + default: + ; + } +} + +void PluginItem::setEnabled(bool enabled) +{ + switch(type()) + { + case PluginItem::TRANSPORT: + //dynamic_cast(m_factory) + break; + case PluginItem::DECODER: + Decoder::setEnabled(static_cast(m_factory), enabled); + break; + case PluginItem::ENGINE: + AbstractEngine::setEnabled(static_cast(m_factory), enabled); + break; + case PluginItem::EFFECT: + Effect::setEnabled(static_cast(m_factory), enabled); + break; + case PluginItem::VISUAL: + Visual::setEnabled(static_cast(m_factory), enabled); + break; + case PluginItem::GENERAL: + General::setEnabled(static_cast(m_factory), enabled); + break; + default: + ; + } +} -- cgit v1.2.3-13-gbd6f