Diffstat (limited to 'libopie2/opiecore/opluginloader.h') (more/less context) (show whitespace changes)
-rw-r--r-- | libopie2/opiecore/opluginloader.h | 59 |
1 files changed, 42 insertions, 17 deletions
diff --git a/libopie2/opiecore/opluginloader.h b/libopie2/opiecore/opluginloader.h index 6166b75..2f9ec2a 100644 --- a/libopie2/opiecore/opluginloader.h +++ b/libopie2/opiecore/opluginloader.h @@ -33,7 +33,9 @@ public: typedef QValueList<OPluginItem> List; OPluginItem(); - OPluginItem( const QString& name, const QString& path, int pos = -1 ); + OPluginItem( const QString& name, const QString& path, bool enabled = true, int pos = -1 ); ~OPluginItem(); + bool isEmpty()const; + bool operator==( const OPluginItem& )const; bool operator!=( const OPluginItem& )const; @@ -42,8 +44,10 @@ public: QString name()const; QString path()const; + bool isEnabled()const; int position()const; void setName( const QString& ); void setPath( const QString& ); + void setEnabled( bool ); void setPosition( int ); @@ -51,4 +55,5 @@ private: QString m_name; QString m_path; + bool m_enabled : 1; int m_pos; struct Private; @@ -77,10 +82,11 @@ public: void clear(); - + QString name()const; + bool isSorted()const; bool isInSafeMode()const; - List allAvailable(bool sorted = FALSE)const; - List filtered(bool sorted = FALSE)const; + List allAvailable(bool sorted = false )const; + List filtered(bool sorted = false )const; @@ -89,12 +95,11 @@ public: protected: + friend class OPluginManager; // we need the static unlibify void readConfig(); virtual List plugins( const QString& dir, bool sorted, bool disabled )const; void setPluginDirs( const QStringList& ); void setPluginDir( const QString& ); - bool isSorted()const; void setSafeMode(const QString& app = QString::null, bool b = false); static QString unlibify( const QString& str ); - private: QStringList languageList(); @@ -134,5 +139,5 @@ class OPluginLoader : public OGenericPluginLoader { public: OPluginLoader( const QString& name, bool sorted = false ); - ~OPluginLoader(); + virtual ~OPluginLoader(); template<class IFace> @@ -141,22 +146,23 @@ public: /** - * \brief A class to manager order and activation of plugins + * \brief A class to manage order and activation of plugins * * Manage order and activation. This is used by the Opie::Ui::OPluginConfig * This class controls the activation and order of plugins depending * on the OPluginLoader you supply. + * You must call load() and save after construnction an instance * - * @see OPluginConfig + * @see Opie::Ui::OPluginConfig * */ class OPluginManager { public: - OPluginManager( OGenericPluginLoader* , const QString& name); - OPluginManager( OConfig* conf, const QString&, - const QCString& group, const OPluginItem::List& ); - ~OPluginManager(); + OPluginManager( OGenericPluginLoader* ); + OPluginManager( const QString& name, const OPluginItem::List&, bool isSorted = false ); + virtual ~OPluginManager(); - QString name(); - void setName( const QString& ); + OPluginItem crashedPlugin()const; + + OPluginItem::List managedPlugins()const; void setPosition( const OPluginItem& ); @@ -165,9 +171,28 @@ public: void setEnabled( const OPluginItem&, bool = true); - void load(); - void save(); + virtual void load(); + virtual void save(); + +protected: + QString configName()const; + void replace( const OPluginItem& ); +private: + OGenericPluginLoader *m_loader; + QString m_cfgName; + OPluginItem::List m_plugins; + OPluginItem m_crashed; + bool m_isSorted : 1; }; +/** + * This is a template method allowing you to safely cast + * your load function + * + * \code + * MyTypePlugin *plug = load->load<MyTypePlugin>( item, IID_MyPlugin ); + * \endcode + * + */ template<class IFace> IFace* OPluginLoader::load( const OPluginItem& item, const QUuid& uid ) { |