• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdelibs API Reference
  • KDE Home
  • Contact Us
 

KParts

  • sources
  • kde-4.14
  • kdelibs
  • kparts
scriptableextension.h
Go to the documentation of this file.
1 /* This file is part of the KDE project
2  Copyright (C) 2010 Maksim Orlovich <maksim@kde.org>
3  Copyright (C) 2002 Koos Vriezen <koos.vriezen@gmail.com>
4 
5  This library is free software; you can redistribute it and/or
6  modify it under the terms of the GNU Library General Public
7  License as published by the Free Software Foundation; either
8  version 2 of the License, or (at your option) any later version.
9 
10  This library is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  Library General Public License for more details.
14 
15  You should have received a copy of the GNU Library General Public License
16  along with this library; see the file COPYING.LIB. If not, write to
17  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18  Boston, MA 02110-1301, USA.
19 */
20 
21 #ifndef kparts_scriptableextension_h
22 #define kparts_scriptableextension_h
23 
24 #include <QtGlobal>
25 #include <QObject>
26 #include <QVariant>
27 #include <kparts/part.h>
28 
29 namespace KParts {
30 
31 class ScriptableExtension;
32 struct ScriptableExtensionPrivate;
33 class LiveConnectExtension;
34 
44 class KPARTS_EXPORT ScriptableExtension: public QObject
45 {
46  Q_OBJECT
47 public:
60  struct Null {};
62 
64  struct Undefined {};
65 
68  struct Exception {
72  QString message;
73 
74  Exception() {}
75  Exception(const QString& msg): message(msg) {}
76  };
77 
91  struct Object {
92  ScriptableExtension* owner;
93  quint64 objId;
94 
95  Object(): owner(0), objId(0) {}
96  Object(ScriptableExtension* o, quint64 id): owner(o), objId(id) {}
97  bool operator==(const Object& other) const { return owner == other.owner && objId == other.objId; }
98  };
99 
104  struct FunctionRef {
105  Object base;
106  QString field;
107 
108  FunctionRef() {}
109  FunctionRef(const Object& b, const QString&f): base(b), field(f) {}
110  bool operator==(const FunctionRef& other) const { return base == other.base && field == other.field; }
111  };
112 
114 
115 
117 
118 protected:
119  ScriptableExtension(QObject* parent);
120 public:
121  virtual ~ScriptableExtension();
122 
127  static ScriptableExtension* childObject(QObject* obj);
128 
134  static ScriptableExtension* adapterFromLiveConnect(QObject* parentObj,
135  LiveConnectExtension* oldApi);
136 
138 
139 
141 
142 
148  void setHost(ScriptableExtension* host);
149 
154  ScriptableExtension* host() const;
155 
161  virtual QVariant rootObject();
162 
172  QVariant enclosingObject();
174 
190 
191 
192  typedef QList<QVariant> ArgList;
193 
197  virtual QVariant callAsFunction(ScriptableExtension* callerPrincipal, quint64 objId, const ArgList& args);
198 
202  virtual QVariant callFunctionReference(ScriptableExtension* callerPrincipal, quint64 objId,
203  const QString& f, const ArgList& args);
204 
209  virtual QVariant callAsConstructor(ScriptableExtension* callerPrincipal, quint64 objId, const ArgList& args);
210 
215  virtual bool hasProperty(ScriptableExtension* callerPrincipal, quint64 objId, const QString& propName);
216 
220  virtual QVariant get(ScriptableExtension* callerPrincipal, quint64 objId, const QString& propName);
221 
226  virtual bool put(ScriptableExtension* callerPrincipal, quint64 objId, const QString& propName, const QVariant& value);
227 
232  virtual bool removeProperty(ScriptableExtension* callerPrincipal, quint64 objId, const QString& propName);
233 
238  virtual bool enumerateProperties(ScriptableExtension* callerPrincipal, quint64 objId, QStringList* result);
239 
244  virtual bool setException(ScriptableExtension* callerPrincipal, const QString& message);
245 
246 
247  enum ScriptLanguage {
248  ECMAScript,
249  EnumLimit = 0xFFFF
250  };
251 
257  virtual QVariant evaluateScript(ScriptableExtension* callerPrincipal,
258  quint64 contextObjectId,
259  const QString& code,
260  ScriptLanguage language = ECMAScript);
261 
264  virtual bool isScriptLanguageSupported(ScriptLanguage lang) const;
265 
269  virtual void acquire(quint64 objid);
270 
277  static QVariant acquireValue(const QVariant& v);
278 
282  virtual void release(quint64 objid);
283 
290  static QVariant releaseValue(const QVariant& v);
291 
293 private:
299  virtual QVariant encloserForKid(KParts::ScriptableExtension* kid);
300 
301  ScriptableExtensionPrivate* const d;
302 };
303 
304 KPARTS_EXPORT unsigned int qHash(const KParts::ScriptableExtension::Object& o);
305 
306 KPARTS_EXPORT unsigned int qHash(const KParts::ScriptableExtension::FunctionRef& f);
307 
308 } // namespace KParts
309 
310 Q_DECLARE_METATYPE(KParts::ScriptableExtension::Null)
311 Q_DECLARE_METATYPE(KParts::ScriptableExtension::Undefined)
312 Q_DECLARE_METATYPE(KParts::ScriptableExtension::Exception)
313 Q_DECLARE_METATYPE(KParts::ScriptableExtension::Object)
314 Q_DECLARE_METATYPE(KParts::ScriptableExtension::FunctionRef)
315 
316 #endif
317 
318 // kate: indent-width 4; replace-tabs on; tab-width 4; space-indent on;
message
void message(KMessage::MessageType messageType, const QString &text, const QString &caption=QString())
KParts::ScriptableExtension::Object::objId
quint64 objId
Definition: scriptableextension.h:93
KParts::ScriptableExtension::Object::Object
Object(ScriptableExtension *o, quint64 id)
Definition: scriptableextension.h:96
put
TransferJob * put(const KUrl &url, int permissions, JobFlags flags=DefaultFlags)
KParts::ScriptableExtension::Exception::Exception
Exception()
Definition: scriptableextension.h:74
qHash
uint qHash(const KConfigIniBackend::BufferFragment &fragment)
KParts::ScriptableExtension::Object::operator==
bool operator==(const Object &other) const
Definition: scriptableextension.h:97
KParts::ScriptableExtension::Exception
Returned from operations to denote a failure.
Definition: scriptableextension.h:68
KParts::ScriptableExtension::Object::Object
Object()
Definition: scriptableextension.h:95
KParts::ScriptableExtension::FunctionRef::operator==
bool operator==(const FunctionRef &other) const
Definition: scriptableextension.h:110
KParts::LiveConnectExtension
An extension class for LiveConnect, i.e.
Definition: browserextension.h:765
QObject
KParts::ScriptableExtension::FunctionRef::field
QString field
Definition: scriptableextension.h:106
KParts::ScriptableExtension::Null
Corresponds to 'null' in JavaScript.
Definition: scriptableextension.h:61
KParts::ScriptableExtension::Undefined
Corresponds to 'undefined' in JavaScript.
Definition: scriptableextension.h:64
KParts::ScriptableExtension::ArgList
QList< QVariant > ArgList
Definition: scriptableextension.h:192
KParts::ScriptableExtension::Exception::Exception
Exception(const QString &msg)
Definition: scriptableextension.h:75
QString
QList< QVariant >
QStringList
KParts::ScriptableExtension::Exception::message
QString message
Error message returned from the callee.
Definition: scriptableextension.h:72
KParts::ScriptableExtension::ScriptLanguage
ScriptLanguage
Definition: scriptableextension.h:247
KParts::ScriptableExtension::FunctionRef
Function references are a pair of an object and a field in it.
Definition: scriptableextension.h:104
KParts::ScriptableExtension::Object::owner
ScriptableExtension * owner
Definition: scriptableextension.h:92
quint64
KParts::ScriptableExtension::FunctionRef::FunctionRef
FunctionRef()
Definition: scriptableextension.h:108
KParts::ScriptableExtension::ECMAScript
Definition: scriptableextension.h:248
KParts::ScriptableExtension::FunctionRef::base
Object base
Definition: scriptableextension.h:105
KParts::ScriptableExtension
An extension class that permits KParts to be scripted (such as when embedded inside a KHTMLPart) and ...
Definition: scriptableextension.h:44
KParts::ScriptableExtension::FunctionRef::FunctionRef
FunctionRef(const Object &b, const QString &f)
Definition: scriptableextension.h:109
part.h
KParts::ScriptableExtension::Object
Objects are abstracted away as a pair of the ScriptableExtension the performs operations on it...
Definition: scriptableextension.h:91
QVariant
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:25:36 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

KParts

Skip menu "KParts"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Modules
  • Related Pages

kdelibs API Reference

Skip menu "kdelibs API Reference"
  • DNSSD
  • Interfaces
  •   KHexEdit
  •   KMediaPlayer
  •   KSpeech
  •   KTextEditor
  • kconf_update
  • KDE3Support
  •   KUnitTest
  • KDECore
  • KDED
  • KDEsu
  • KDEUI
  • KDEWebKit
  • KDocTools
  • KFile
  • KHTML
  • KImgIO
  • KInit
  • kio
  • KIOSlave
  • KJS
  •   KJS-API
  •   WTF
  • kjsembed
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUnitConversion
  • KUtils
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal