summaryrefslogtreecommitdiff
path: root/qmake/include/private/qgpluginmanager_p.h
Unidiff
Diffstat (limited to 'qmake/include/private/qgpluginmanager_p.h') (more/less context) (ignore whitespace changes)
-rw-r--r--qmake/include/private/qgpluginmanager_p.h107
1 files changed, 107 insertions, 0 deletions
diff --git a/qmake/include/private/qgpluginmanager_p.h b/qmake/include/private/qgpluginmanager_p.h
new file mode 100644
index 0000000..e0c0e78
--- a/dev/null
+++ b/qmake/include/private/qgpluginmanager_p.h
@@ -0,0 +1,107 @@
1/**********************************************************************
2** $Id$
3**
4** Definition of QGPluginManager class
5**
6** Copyright (C) 2000-2001 Trolltech AS. All rights reserved.
7**
8** This file is part of the tools module of the Qt GUI Toolkit.
9**
10** This file may be distributed under the terms of the Q Public License
11** as defined by Trolltech AS of Norway and appearing in the file
12** LICENSE.QPL included in the packaging of this file.
13**
14** This file may be distributed and/or modified under the terms of the
15** GNU General Public License version 2 as published by the Free Software
16** Foundation and appearing in the file LICENSE.GPL included in the
17** packaging of this file.
18**
19** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
20** licenses may use this file in accordance with the Qt Commercial License
21** Agreement provided with the Software.
22**
23** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
24** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
25**
26** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
27** information about Qt Commercial License Agreements.
28** See http://www.trolltech.com/qpl/ for QPL licensing information.
29** See http://www.trolltech.com/gpl/ for GPL licensing information.
30**
31** Contact info@trolltech.com if any conditions of this licensing are
32** not clear to you.
33**
34**********************************************************************/
35
36#ifndef QGPLUGINMANAGER_H
37#define QGPLUGINMANAGER_H
38
39#ifndef QT_H
40#include "qdict.h"
41#include "qlibrary.h"
42#include "quuid.h"
43#include "qstringlist.h"
44#include "qcom_p.h"
45#endif // QT_H
46
47//
48// W A R N I N G
49// -------------
50//
51// This file is not part of the Qt API. It exists for the convenience
52// of a number of Qt sources files. This header file may change from
53// version to version without notice, or even be removed.
54//
55// We mean it.
56//
57//
58
59#ifndef QT_NO_COMPONENT
60
61#if defined(Q_TEMPLATEDLL)
62// MOC_SKIP_BEGIN
63Q_TEMPLATE_EXTERN template class Q_EXPORT QDict<QLibrary>;
64// MOC_SKIP_END
65#endif
66
67class Q_EXPORT QGPluginManager
68{
69public:
70 QGPluginManager( const QUuid& id, const QStringList& paths = QString::null, const QString &suffix = QString::null, bool cs = TRUE );
71 ~QGPluginManager();
72
73 void addLibraryPath( const QString& path );
74 const QLibrary* library( const QString& feature ) const;
75 QStringList featureList() const;
76
77 bool autoUnload() const;
78 void setAutoUnload( bool );
79
80protected:
81 bool enabled() const;
82 bool addLibrary( QLibrary* plugin );
83
84 QRESULT queryUnknownInterface(const QString& feature, QUnknownInterface** iface) const;
85
86 QUuid interfaceId;
87 QDict<QLibrary> plugDict; // Dict to match feature with library
88 QDict<QLibrary> libDict; // Dict to match library file with library
89 QStringList libList;
90
91 uint casesens : 1;
92 uint autounload : 1;
93};
94
95inline void QGPluginManager::setAutoUnload( bool unload )
96{
97 autounload = unload;
98}
99
100inline bool QGPluginManager::autoUnload() const
101{
102 return autounload;
103}
104
105#endif
106
107#endif //QGPLUGINMANAGER_H