xmlloader_p.h

来自「Amarok是一款在LINUX或其他类UNIX操作系统中运行的音频播放器软件。 」· C头文件 代码 · 共 82 行

H
82
字号
/*  Copyright (c) 2006 Gábor Lehel <illissius@gmail.com>  This library is free software; you can redistribute it and/or  modify it under the terms of the GNU Library General Public  License as published by the Free Software Foundation; either  version 2 of the License, or (at your option) any later version.  This library 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  Library General Public License for more details.  You should have received a copy of the GNU Library General Public License  along with this library; see the file COPYING.LIB.  If not, write to  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,  Boston, MA 02110-1301, USA.*/#ifndef AMAROK_XMLLOADER_P_H#define AMAROK_XMLLOADER_P_H#include <qapplication.h>#include <qthread.h>class MetaBundle::XmlLoader::ThreadedLoader: public QObject, public QThread{    Q_OBJECT    QObject *m_target;    QXmlInputSource *m_source;    private slots:        void bundleLoaded( const MetaBundle &bundle, const XmlAttributeList &attributes )        {            QApplication::postEvent( m_target, new BundleLoadedEvent( bundle, attributes ) );        }    public:        ThreadedLoader( QXmlInputSource *source, QObject *target ): m_target( target ), m_source( source ) { }    protected:        virtual void run()        {            {                XmlLoader loader;                connect( &loader, SIGNAL( newBundle( const MetaBundle&, const XmlAttributeList& ) ),                         this,  SLOT( bundleLoaded( const MetaBundle&, const XmlAttributeList& ) ) );                bool success = loader.load( m_source );                if( !success )                    QApplication::postEvent( m_target, new BundleLoadedEvent( loader.m_lastError ) );            }            delete this;        }};class MetaBundle::XmlLoader::SimpleLoader: public QObject{    Q_OBJECTpublic:    BundleList bundles;    SimpleLoader( QXmlInputSource *source, bool *ok )    {        XmlLoader loader;        connect( &loader, SIGNAL( newBundle( const MetaBundle&, const XmlAttributeList& ) ),                 this,  SLOT( bundleLoaded( const MetaBundle&, const XmlAttributeList& ) ) );        const bool success = loader.load( source );        if( ok )            (*ok) = success;    }private slots:    void bundleLoaded( const MetaBundle &bundle, const XmlAttributeList& )    {        bundles << bundle;    }};#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?