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

kjsembed

  • kjsembed
  • kjsembed
iosupport.cpp
Go to the documentation of this file.
1/* This file is part of the KDE libraries
2 Copyright (C) 2005, 2006 Ian Reinhart Geiser <geiseri@kde.org>
3 Copyright (C) 2005, 2006 Matt Broadstone <mbroadst@gmail.com>
4 Copyright (C) 2005, 2006 Richard J. Moore <rich@kde.org>
5 Copyright (C) 2005, 2006 Erik L. Bunce <kde@bunce.us>
6
7 This library is free software; you can redistribute it and/or
8 modify it under the terms of the GNU Library General Public
9 License as published by the Free Software Foundation; either
10 version 2 of the License, or (at your option) any later version.
11
12 This library is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 Library General Public License for more details.
16
17 You should have received a copy of the GNU Library General Public License
18 along with this library; see the file COPYING.LIB. If not, write to
19 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20 Boston, MA 02110-1301, USA.
21*/
22#include "iosupport.h"
23#include "static_binding.h"
24#include "kjseglobal.h"
25
26#include <kjs/object.h>
27#include <QtCore/QDebug>
28
29#include <QtCore/QStringList>
30#include <QtCore/QProcess>
31
32using namespace KJSEmbed;
33
34KJS::JSValue *callPrint( KJS::ExecState *exec, KJS::JSObject * /*self*/, const KJS::List &args )
35{
36 (*KJSEmbed::conout()) << toQString(args[0]->toString(exec));
37 return KJS::jsNull();
38}
39
40KJS::JSValue * callPrintLn( KJS::ExecState *exec, KJS::JSObject * /*self*/, const KJS::List &args )
41{
42 (*KJSEmbed::conout()) << toQString(args[0]->toString(exec)) << endl;
43 return KJS::jsNull();
44}
45
46KJS::JSValue * callDebug( KJS::ExecState *exec, KJS::JSObject * /*self*/, const KJS::List &args )
47{
48 //(*KJSEmbed::conerr()) << "Debug: " << toQString(args[0]->toString(exec)) << endl;
49 qDebug() << "Debug: " << toQString(args[0]->toString(exec));
50 return KJS::jsNull();
51}
52
53KJS::JSValue * callReadLine( KJS::ExecState *exec, KJS::JSObject * /*self*/, const KJS::List &args )
54{
55 Q_UNUSED(exec);
56 Q_UNUSED(args);
57 QString line = conin()->readLine();
58 return KJS::jsString( line );
59}
60
61KJS::JSValue * callSystem( KJS::ExecState *exec, KJS::JSObject * /*self*/, const KJS::List &args )
62{
63 QProcess systemProcess;
64 QStringList processArgs = toQString(args[0]->toString(exec)).split( ' ' );
65 QString app = processArgs[0];
66 processArgs.pop_front();
67
68 systemProcess.start( app, processArgs );
69 if (!systemProcess.waitForStarted())
70 {
71 return KJS::throwError(exec, KJS::GeneralError, "Application could not start.");
72 }
73 if (!systemProcess.waitForFinished())
74 {
75 return KJS::throwError(exec, KJS::GeneralError, "Application crashed.");
76 }
77 return KJS::jsString( systemProcess.readAll().data() );
78}
79
80const Method IoFactory::IoMethods[] =
81{
82 {"debug", 1, KJS::DontDelete|KJS::ReadOnly, &callDebug },
83 {"print", 1, KJS::DontDelete|KJS::ReadOnly, &callPrint },
84 {"println", 1, KJS::DontDelete|KJS::ReadOnly, &callPrintLn },
85 {"readln", 0, KJS::DontDelete|KJS::ReadOnly, &callReadLine },
86 {"system", 1, KJS::DontDelete|KJS::ReadOnly, &callSystem },
87 {0, 0, 0, 0 }
88};
89
90//kate: indent-spaces on; indent-width 4; replace-tabs on; indent-mode cstyle;
KJSEmbed::IoFactory::IoMethods
static const Method IoMethods[]
Definition: iosupport.h:34
callReadLine
KJS::JSValue * callReadLine(KJS::ExecState *exec, KJS::JSObject *, const KJS::List &args)
Definition: iosupport.cpp:53
callPrintLn
KJS::JSValue * callPrintLn(KJS::ExecState *exec, KJS::JSObject *, const KJS::List &args)
Definition: iosupport.cpp:40
callSystem
KJS::JSValue * callSystem(KJS::ExecState *exec, KJS::JSObject *, const KJS::List &args)
Definition: iosupport.cpp:61
callDebug
KJS::JSValue * callDebug(KJS::ExecState *exec, KJS::JSObject *, const KJS::List &args)
Definition: iosupport.cpp:46
callPrint
KJS::JSValue * callPrint(KJS::ExecState *exec, KJS::JSObject *, const KJS::List &args)
Definition: iosupport.cpp:34
iosupport.h
kjseglobal.h
KJSEmbed
Definition: application.h:33
KJSEmbed::toQString
QString toQString(const KJS::UString &u)
Definition: kjseglobal.h:58
KJSEmbed::conout
KJSEMBED_EXPORT QTextStream * conout()
Definition: kjseglobal.cpp:130
KJSEmbed::conin
KJSEMBED_EXPORT QTextStream * conin()
Definition: kjseglobal.cpp:118
KJS::jsString
KJS::JSCell * jsString(const QString &s)
Definition: kjseglobal.h:73
KJS::throwError
JSObject * throwError(ExecState *e, ErrorType t, const QString &m)
Definition: binding_support.h:241
static_binding.h
KJSEmbed::Method
Method structure.
Definition: binding_support.h:295
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Mon Feb 20 2023 00:00:00 by doxygen 1.9.6 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kjsembed

Skip menu "kjsembed"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members

kdelibs-4.14.38 API Reference

Skip menu "kdelibs-4.14.38 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
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