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

okular

  • sources
  • kde-4.12
  • kdegraphics
  • okular
extensions.cpp
Go to the documentation of this file.
1 /***************************************************************************
2  * Copyright (C) 2002 by Wilco Greven <greven@kde.org> *
3  * Copyright (C) 2008 by Pino Toscano <pino@kde.org> *
4  * *
5  * This program is free software; you can redistribute it and/or modify *
6  * it under the terms of the GNU General Public License as published by *
7  * the Free Software Foundation; either version 2 of the License, or *
8  * (at your option) any later version. *
9  ***************************************************************************/
10 
11 #include "extensions.h"
12 
13 // local includes
14 #include "part.h"
15 
16 namespace Okular
17 {
18 
19 /*
20  * BrowserExtension class
21  */
22 BrowserExtension::BrowserExtension(Part* parent)
23  : KParts::BrowserExtension( parent ), m_part( parent )
24 {
25  emit enableAction("print", true);
26  setURLDropHandlingEnabled(true);
27 }
28 
29 
30 void BrowserExtension::print()
31 {
32  m_part->slotPrint();
33 }
34 
35 
36 /*
37  * OkularLiveConnectExtension class
38  */
39 #define OKULAR_EVAL_RES_OBJ_NAME "__okular_object"
40 #define OKULAR_EVAL_RES_OBJ "this." OKULAR_EVAL_RES_OBJ_NAME
41 
42 OkularLiveConnectExtension::OkularLiveConnectExtension( Part *parent )
43  : KParts::LiveConnectExtension( parent ), m_inEval( false )
44 {
45 }
46 
47 
48 bool OkularLiveConnectExtension::get( const unsigned long objid, const QString &field,
49  KParts::LiveConnectExtension::Type &type,
50  unsigned long &retobjid, QString &value )
51 {
52  Q_UNUSED( value )
53  retobjid = objid;
54  bool result = false;
55  if ( field == QLatin1String( "postMessage" ) )
56  {
57  type = KParts::LiveConnectExtension::TypeFunction;
58  result = true;
59  }
60  return result;
61 }
62 
63 
64 bool OkularLiveConnectExtension::put( const unsigned long objid, const QString &field, const QString &value )
65 {
66  Q_UNUSED( objid )
67  if ( m_inEval )
68  {
69  if ( field == QLatin1String( OKULAR_EVAL_RES_OBJ_NAME ) )
70  m_evalRes = value;
71  return true;
72  }
73 
74  return false;
75 }
76 
77 
78 bool OkularLiveConnectExtension::call( const unsigned long objid, const QString &func, const QStringList &args,
79  KParts::LiveConnectExtension::Type &type, unsigned long &retobjid, QString &value )
80 {
81  retobjid = objid;
82  bool result = false;
83  if ( func == QLatin1String( "postMessage" ) )
84  {
85  type = KParts::LiveConnectExtension::TypeVoid;
86  postMessage( args );
87  value = QString();
88  result = true;
89  }
90  return result;
91 }
92 
93 
94 QString OkularLiveConnectExtension::eval( const QString &script )
95 {
96  KParts::LiveConnectExtension::ArgList args;
97  args.append( qMakePair( KParts::LiveConnectExtension::TypeString, script ) );
98  m_evalRes.clear();
99  m_inEval = true;
100  emit partEvent( 0, "eval", args );
101  m_inEval = false;
102  return m_evalRes;
103 }
104 
105 
106 void OkularLiveConnectExtension::postMessage( const QStringList &args )
107 {
108  QStringList arrayargs;
109  Q_FOREACH ( const QString &arg, args )
110  {
111  QString newarg = arg;
112  newarg.replace( '\'', "\\'" );
113  arrayargs.append( "\"" + newarg + "\"" );
114  }
115  const QString arrayarg = '[' + arrayargs.join( ", " ) + ']';
116  eval( "if (this.messageHandler && typeof this.messageHandler.onMessage == 'function') "
117  "{ this.messageHandler.onMessage(" + arrayarg + ") }" );
118 }
119 
120 }
121 
122 #include "extensions.moc"
123 
124 /* kate: replace-tabs on; indent-width 4; */
Okular::BrowserExtension::print
void print()
Definition: extensions.cpp:30
Okular::Part::slotPrint
void slotPrint()
Definition: part.cpp:2498
Okular::OkularLiveConnectExtension::get
virtual bool get(const unsigned long objid, const QString &field, Type &type, unsigned long &retobjid, QString &value)
Definition: extensions.cpp:48
OKULAR_EVAL_RES_OBJ_NAME
#define OKULAR_EVAL_RES_OBJ_NAME
Definition: extensions.cpp:39
extensions.h
Okular::Part
This is a "Part".
Definition: part.h:96
Okular::OkularLiveConnectExtension::put
virtual bool put(const unsigned long objid, const QString &field, const QString &value)
Definition: extensions.cpp:64
Okular::OkularLiveConnectExtension::OkularLiveConnectExtension
OkularLiveConnectExtension(Part *parent)
Definition: extensions.cpp:42
Okular::OkularLiveConnectExtension::call
virtual bool call(const unsigned long objid, const QString &func, const QStringList &args, Type &type, unsigned long &retobjid, QString &value)
Definition: extensions.cpp:78
Okular::BrowserExtension::BrowserExtension
BrowserExtension(Part *)
Definition: extensions.cpp:22
Okular::BrowserExtension
Definition: extensions.h:21
part.h
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:45:02 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

okular

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

kdegraphics API Reference

Skip menu "kdegraphics API Reference"
  •     libkdcraw
  •     libkexiv2
  •     libkipi
  •     libksane
  • okular

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