4package org.qtproject.qt.android;
6import android.util.Log;
7import java.lang.ref.WeakReference;
8import java.util.HashMap;
9import java.util.HashSet;
21 private final static String TAG =
"QtQmlComponent";
23 private WeakReference<QtQuickView> m_viewReference;
25 private HashSet<Integer> m_signalListenerIds =
new HashSet<>();
47 m_statusChangeListener = listener;
50 view.setStatusChangeListener(listener);
61 if (m_viewReference !=
null)
62 return m_viewReference.get();
78 m_viewReference =
new WeakReference<>(
view);
80 view.setStatusChangeListener(m_statusChangeListener);
91 for (
int signalListenerId : m_signalListenerIds)
92 view.disconnectSignalListener(signalListenerId);
94 view.setStatusChangeListener(
null);
95 m_viewReference.clear();
96 if (m_statusChangeListener !=
null)
105 protected HashMap<String, Object>
attributes() {
return new HashMap<>(); }
127 Log.w(
TAG,
"Cannot set property as the QQmlComponent is not loaded in a QtQuickView.");
149 protected <T> T getProperty(String propertyName)
153 Log.w(TAG,
"Cannot get property as the QQmlComponent is not loaded in a QtQuickView.");
156 return view.<T>getProperty(propertyName);
170 protected <T>
int connectSignalListener(String signalName, Class<T> argType,
171 QtSignalListener<T> listener)
176 "Cannot connect signal listener as the QQmlComponent is not loaded in a "
180 int signalListenerId =
view.connectSignalListener(signalName, argType, listener);
181 m_signalListenerIds.add(signalListenerId);
182 return signalListenerId;
199 "Cannot disconnect signal listener as the QQmlComponent is not loaded in a "
203 m_signalListenerIds.remove(signalListenerId);
204 return view.disconnectSignalListener(signalListenerId);
bool setProperty(const char *name, const QVariant &value)
Sets the value of the object's name property to value.
HashMap< String, Object > attributes()
abstract String getLibraryName()
void setStatusChangeListener(QtQmlStatusChangeListener listener)
QtQuickView getQuickView()
void attachView(QtQuickView view)
abstract String getModuleName()
abstract String getFilePath()
boolean disconnectSignalListener(int signalListenerId)
void setProperty(String propertyName, Object value)
void onStatusChanged(QtQmlStatus status)
EGLOutputLayerEXT EGLint EGLAttrib value
[5]