Imported Upstream version 1.1.0
[gammaray-debian.git] / proxytoolfactory.h
blob1e57e848025eaf36c67170ebc17f50dc7008d721
1 /*
2 proxytoolfactory.h
4 This file is part of GammaRay, the Qt application inspection and
5 manipulation tool.
7 Copyright (C) 2011 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com
8 Author: Volker Krause <volker.krause@kdab.com>
10 This program is free software; you can redistribute it and/or modify
11 it under the terms of the GNU General Public License as published by
12 the Free Software Foundation, either version 2 of the License, or
13 (at your option) any later version.
15 This program is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 GNU General Public License for more details.
20 You should have received a copy of the GNU General Public License
21 along with this program. If not, see <http://www.gnu.org/licenses/>.
24 #ifndef GAMMARAY_PROXYTOOLFACTORY_H
25 #define GAMMARAY_PROXYTOOLFACTORY_H
27 #include "toolfactory.h"
29 namespace GammaRay {
31 /**
32 * A wrapper around a plugin ToolFactory that only loads the actual plugin
33 * once initialized.
34 * Until then, meta-data is provided based on a plugin spec file.
36 class ProxyToolFactory : public QObject, public ToolFactory
38 Q_OBJECT
39 public:
40 /**
41 * @param path Path to the plugin spec file
43 explicit ProxyToolFactory(const QString &path, QObject *parent = 0);
45 /** Returns @c true if the plugin seems valid from all the information we have so far. */
46 bool isValid() const;
48 virtual QString id() const;
49 virtual QString name() const;
50 virtual QStringList supportedTypes() const;
52 virtual void init(ProbeInterface *probe);
53 virtual QWidget *createWidget(ProbeInterface *probe, QWidget *parentWidget);
55 private:
56 QString m_id;
57 QString m_pluginPath;
58 QString m_name;
59 QStringList m_supportedTypes;
60 ToolFactory *m_factory;
65 #endif // GAMMARAY_PROXYTOOLFACTORY_H