Source

pynoto / src / Core / PynotoApplication.h

#ifndef _PYNOTOAPPLICATION_H_
#define _PYNOTOAPPLICATION_H_

#include <QApplication>
#include "Include/PluginManager.h"
#include "Include/IIconProvider.h"

class PynotoApplication: public QApplication
{
    Q_OBJECT
public:
    PynotoApplication(int &argc, char **argv, int = ApplicationFlags);
    virtual ~PynotoApplication();
    void emitPreferencesChanged(const QString& name);
    void emitPreferencesChanged(const QString& name, const QVariant& value);
signals:
    void preferencesChanged(const QString& what);
    void preferencesChanged(const QString& what, const QVariant& value);
public:
    Core::PluginManager *pluginManager;
    IconProvider::IIconProvider *iconProvider;
};

namespace Aux {

template<class T>
T plugin(const QString& name)
{
    return static_cast<PynotoApplication*>(QApplication::instance())->pluginManager->plugin<T>(name);
}

IconProvider::IIconProvider* icons();
Core::PluginManager * manager();
PynotoApplication* app();
void emitPreferencesChanged(const QString& name);
void emitPreferencesChanged(const QString& name, const QVariant& value);

}
#endif