File indexing completed on 2024-05-12 04:33:32

0001 /*
0002     SPDX-FileCopyrightText: 2018 Intevation GmbH <intevation@intevation.de>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "js_event_p.h"
0008 
0009 #include "event_p.h"
0010 #include "js_field_p.h"
0011 
0012 #include <QJSEngine>
0013 
0014 using namespace Okular;
0015 
0016 // Event.name
0017 QString JSEvent::name() const
0018 {
0019     return m_event->name();
0020 }
0021 
0022 // Event.type
0023 QString JSEvent::type() const
0024 {
0025     return m_event->type();
0026 }
0027 
0028 // Event.targetName (getter)
0029 QString JSEvent::targetName() const
0030 {
0031     return m_event->targetName();
0032 }
0033 
0034 // Event.targetName (setter)
0035 void JSEvent::setTargetName(const QString &targetName)
0036 {
0037     m_event->setTargetName(targetName);
0038 }
0039 
0040 // Event.shift
0041 bool JSEvent::shift() const
0042 {
0043     return m_event->shiftModifier();
0044 }
0045 
0046 // Event.source
0047 QJSValue JSEvent::source() const
0048 {
0049     if (m_event->eventType() == Event::FieldCalculate) {
0050         FormField *src = m_event->source();
0051         if (src) {
0052             return JSField::wrapField(qjsEngine(this), src, m_event->sourcePage());
0053         }
0054     }
0055     return QJSValue(QJSValue::UndefinedValue);
0056 }
0057 
0058 // Event.target
0059 QJSValue JSEvent::target() const
0060 {
0061     switch (m_event->eventType()) {
0062     case Event::FieldCalculate:
0063     case Event::FieldFormat:
0064     case Event::FieldKeystroke:
0065     case Event::FieldFocus:
0066     case Event::FieldValidate:
0067     case Event::FieldMouseUp: {
0068         FormField *target = static_cast<FormField *>(m_event->target());
0069         if (target) {
0070             return JSField::wrapField(qjsEngine(this), target, m_event->targetPage());
0071         }
0072         break;
0073     }
0074     default: {
0075     }
0076     }
0077     return QJSValue(QJSValue::UndefinedValue);
0078 }
0079 
0080 // Event.value (getter)
0081 QJSValue JSEvent::value() const
0082 {
0083     return m_event->value().toString();
0084 }
0085 
0086 // Event.value (setter)
0087 void JSEvent::setValue(const QJSValue &value)
0088 {
0089     m_event->setValue(QVariant(value.toString()));
0090 }
0091 
0092 // Event.rc (getter)
0093 bool JSEvent::returnCode() const
0094 {
0095     return m_event->returnCode();
0096 }
0097 
0098 // Event.rc (setter)
0099 void JSEvent::setReturnCode(bool rc)
0100 {
0101     m_event->setReturnCode(rc);
0102 }
0103 
0104 // Event.willCommit (getter)
0105 bool JSEvent::willCommit() const
0106 {
0107     return m_event->willCommit();
0108 }
0109 
0110 // Event.change (getter)
0111 QString JSEvent::change() const
0112 {
0113     return m_event->change();
0114 }
0115 
0116 JSEvent::JSEvent(Event *event, QObject *parent)
0117     : QObject(parent)
0118     , m_event(event)
0119 {
0120 }
0121 
0122 JSEvent::~JSEvent() = default;