Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qohosqpafunctions_p.h
Go to the documentation of this file.
1// Copyright (C) 2025 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QOHOSQPAFUNCTIONS_H
5#define QOHOSQPAFUNCTIONS_H
6
7//
8// W A R N I N G
9// -------------
10//
11// This file is not part of the Qt API. It exists purely as an
12// implementation detail. This header file may change from version to
13// version without notice, or even be removed.
14//
15// We mean it.
16//
17
18#include <QtCore/private/qohoscommon_p.h>
19#include <QtCore/qglobal.h>
20#include <QtCore/qjsonobject.h>
21#include <QtCore/qlist.h>
22#include <QtCore/qmap.h>
23#include <QtCore/qmimedata.h>
24#include <QtCore/qobject.h>
25#include <QtCore/qpoint.h>
26#include <QtCore/qsize.h>
27#include <QtCore/qstring.h>
28#include <QtCore/qstringlist.h>
29#include <QtCore/qvariant.h>
30#include <functional>
31#include <memory>
32#include <qohosplugincore.h>
33#include <set>
34#include <utility>
35#include <vector>
36
37QT_BEGIN_NAMESPACE
38
39namespace QtOhos {
40
42{
43public:
49
56
63
80
85
92
120
174
180
186
227
229 {
230 public:
239
245
246 virtual ~WantInfo();
247
248 virtual QJsonObject jsonObject() const = 0;
249
251
253
254 virtual LaunchReason launchReason() const = 0;
255
256 protected:
258
259 private:
261 };
262
264
265 virtual void setWindowPrivacyMode(QObject *window, bool privacyModeEnabled) = 0;
266 virtual void setWindowCornerRadius(QObject *windowOrWidget, double radius) = 0;
267 virtual void tagWindowOrWidgetAsFloatWindow(QObject *windowOrWidget, bool floatWindow) = 0;
268
269 virtual void setInAppOnlyPasteboardShareOption(bool shareInAppOnly) = 0;
272
273 virtual void setWindowOrWidgetNativeNodeRenderFitPolicyHint(QObject *windowOrWidget, NativeNodeRenderFitPolicy renderFitPolicy) = 0;
274
275 virtual void setSurfaceBackgroundColor(QObject *windowOrWidget, const QColor &color) = 0;
276
278
279 virtual void setWindowKeepScreenOn(QObject *windowOrWidget, bool keepScreenOn) = 0;
280
281 virtual void setWindowDragResizable(QObject *windowOrWidget, bool dragResizable) = 0;
282
283 virtual QOhosOptional<double> tryGetNativeWindowId(QObject *window) = 0;
284 virtual QOhosOptional<double> tryGetScreenDisplayId(QObject *screenObject) = 0;
285
287 QObject *windowObject, std::function<void(AbilityOnContinueRequest, QOhosConsumer<AbilityOnContinueResponse>)> requestsHandler) = 0;
288
290 QObject *optInstanceMainWindow, bool continuationActive) = 0;
291
292 Q_NORETURN virtual void restartApp(QOhosOptional<QJsonObject> want) = 0;
293
296
297 virtual void addNewWantConsumer(QObject *context, QOhosConsumer<QJsonObject> wantConsumer) = 0;
298 virtual void addNewWantConsumer(
299 QObject *context, QOhosConsumer<QSharedPointer<WantInfo>> wantConsumer) = 0;
300
301 virtual void startAppProcess(
302 const QString &processId, const QJsonObject &requestWant,
303 const QOhosOptional<StartOptions> &optStartOptions) = 0;
304
305 virtual bool startAbility(const QJsonObject &want, const QOhosOptional<StartOptions> &options) = 0;
306
307 virtual bool startAbilityByType(const QString &appType, const QJsonObject &wantParameters) = 0;
308
310 const QJsonObject &want, const QOhosOptional<StartOptions> &options,
311 QObject *optInstanceMainWindow, QObject *resultConsumerQtContext,
312 QOhosConsumer<QOhosOptional<AbilityResult>> resultConsumer) = 0;
313
315 std::vector<QObject *> instancesMainWindows, bool destroyEnabled) = 0;
316
317 virtual void setOhosConfigDarkModeFlag(QOhosOptional<bool> darkModeFlag) = 0;
318
320 QOhosConsumer<QOhosOptional<bool>> darkModeFlagChangedHandler) = 0;
321
323 QOhosConsumer<double> valueChangedHandler) = 0;
324
326
327 virtual bool readOhosNoUiChildMode() = 0;
328
329 virtual void startNoUiChildProcess(QString libraryName, QStringList args) = 0;
330
331 virtual bool hasSerialPortAccessRight(const QString &portName) = 0;
332
334 const QString &portName, QObject *resultConsumerQtContext,
335 QOhosConsumer<std::shared_ptr<void>> resultConsumer) = 0;
336
338 const QList<FileShare::PolicyInfo> &policyInfos) = 0;
339
341 const QList<FileShare::PolicyInfo> &policyInfos) = 0;
342
344 const QList<FileShare::PolicyInfo> &policyInfos) = 0;
345
347 const QList<FileShare::PolicyInfo> &policyInfos) = 0;
348
349 virtual std::pair<bool, std::vector<bool>> checkPersistent(const QList<FileShare::PolicyInfo> &policyInfos) = 0;
350
351 virtual bool showFileDialogToAuthorizeFilePath(QObject *parentWindow, const QString &filePath) = 0;
352
353 virtual void setWindowBrightness(QObject *window, int brightness) = 0;
354 virtual void setWindowContrast(QObject *window, int contrast) = 0;
355 virtual void setWindowSaturation(QObject *window, int saturation) = 0;
356
357 virtual std::shared_ptr<void> shareDataUsingShareKit(
358 QObject *optWindowObject, const QList<ShareKit::SharedRecord> &recordsToShare,
359 const ShareKit::ShareControllerOptions &controllerOptions,
360 std::function<void()> panelClosedCallback,
361 QOhosConsumer<ShareKit::ShareOperationResult> optShareCompletedCallback = nullptr) = 0;
362
363 virtual bool tryOpenLink(QObject *optInstanceMainWindow, const QString &link, QOhosOptional<bool> appLinkingOnly) = 0;
364
365 virtual void setAudioStreamUsageHintProperty(QObject *qObject, AudioStreamUsage usage) = 0;
367
368protected:
370};
371
373
374}
375
377
378Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QtOhos::QOhosQpaFunctions::AudioStreamUsage));
379
380#endif // QOHOSQPAFUNCTIONS_H
static QWindowProxyRegistry & instance()
virtual LaunchReason launchReason() const =0
virtual QJsonObject jsonObject() const =0
virtual QOhosOptional< QList< ShareKit::SharedRecord > > tryGetSharedDataRecords() const =0
virtual QOhosOptional< ContactInfo > tryGetContactInfo() const =0
virtual void setOhosConfigDarkModeFlag(QOhosOptional< bool > darkModeFlag)=0
virtual void setWindowOrWidgetNativeNodeRenderFitPolicyHint(QObject *windowOrWidget, NativeNodeRenderFitPolicy renderFitPolicy)=0
virtual QJsonObject getAppLaunchWant()=0
virtual void setWindowSaturation(QObject *window, int saturation)=0
virtual QOhosSupplier< QOhosOptional< bool > > makeOhosConfigDarkModeFlagDataSource(QOhosConsumer< QOhosOptional< bool > > darkModeFlagChangedHandler)=0
virtual void setInAppOnlyPasteboardShareOption(bool shareInAppOnly)=0
virtual bool startAbilityByType(const QString &appType, const QJsonObject &wantParameters)=0
virtual bool hasSerialPortAccessRight(const QString &portName)=0
virtual std::pair< bool, QList< FileShare::PolicyErrorResult > > revokePermission(const QList< FileShare::PolicyInfo > &policyInfos)=0
virtual bool showFileDialogToAuthorizeFilePath(QObject *parentWindow, const QString &filePath)=0
virtual void startAbilityForResult(const QJsonObject &want, const QOhosOptional< StartOptions > &options, QObject *optInstanceMainWindow, QObject *resultConsumerQtContext, QOhosConsumer< QOhosOptional< AbilityResult > > resultConsumer)=0
virtual void setWindowPrivacyMode(QObject *window, bool privacyModeEnabled)=0
virtual void addNewWantConsumer(QObject *context, QOhosConsumer< QJsonObject > wantConsumer)=0
virtual void setSurfaceBackgroundColor(QObject *windowOrWidget, const QColor &color)=0
virtual QVariant getImageDataFromPasteboard() const =0
virtual void setDestroyAllowedFlagForAbilityInstances(std::vector< QObject * > instancesMainWindows, bool destroyEnabled)=0
virtual void startAppProcess(const QString &processId, const QJsonObject &requestWant, const QOhosOptional< StartOptions > &optStartOptions)=0
virtual void setMainWindowGeometryPersistencePolicy(WindowGeometryPersistencePolicy policy)=0
virtual void setOnContinueRequestsHandlerForAbilityInstanceWindow(QObject *windowObject, std::function< void(AbilityOnContinueRequest, QOhosConsumer< AbilityOnContinueResponse >)> requestsHandler)=0
virtual bool readOhosNoUiChildMode()=0
virtual std::shared_ptr< void > shareDataUsingShareKit(QObject *optWindowObject, const QList< ShareKit::SharedRecord > &recordsToShare, const ShareKit::ShareControllerOptions &controllerOptions, std::function< void()> panelClosedCallback, QOhosConsumer< ShareKit::ShareOperationResult > optShareCompletedCallback=nullptr)=0
virtual void setWindowBrightness(QObject *window, int brightness)=0
virtual void tagWindowOrWidgetAsFloatWindow(QObject *windowOrWidget, bool floatWindow)=0
virtual QOhosOptional< double > tryGetScreenDisplayId(QObject *screenObject)=0
virtual QOhosOptional< AudioStreamUsage > tryGetAudioStreamUsageHintProperty(QObject *qObject)=0
virtual void setWindowContrast(QObject *window, int contrast)=0
virtual void setWindowDragResizable(QObject *windowOrWidget, bool dragResizable)=0
virtual void setWindowKeepScreenOn(QObject *windowOrWidget, bool keepScreenOn)=0
virtual QSharedPointer< WantInfo > getAppLaunchWantInfo() const =0
virtual std::pair< bool, QList< FileShare::PolicyErrorResult > > activatePermission(const QList< FileShare::PolicyInfo > &policyInfos)=0
virtual QOhosOptional< double > tryGetNativeWindowId(QObject *window)=0
virtual void setAbilityContinuationActive(QObject *optInstanceMainWindow, bool continuationActive)=0
virtual std::pair< bool, QList< FileShare::PolicyErrorResult > > persistPermission(const QList< FileShare::PolicyInfo > &policyInfos)=0
virtual QString getTextDataFromPasteboard() const =0
virtual int getCurrentApplicationVersionCode()=0
virtual Q_NORETURN void restartApp(QOhosOptional< QJsonObject > want)=0
virtual std::pair< bool, QList< FileShare::PolicyErrorResult > > deactivatePermission(const QList< FileShare::PolicyInfo > &policyInfos)=0
virtual QOhosSupplier< double > makeOhosConfigFontSizeScaleDataSource(QOhosConsumer< double > valueChangedHandler)=0
virtual std::pair< bool, std::vector< bool > > checkPersistent(const QList< FileShare::PolicyInfo > &policyInfos)=0
virtual bool tryOpenLink(QObject *optInstanceMainWindow, const QString &link, QOhosOptional< bool > appLinkingOnly)=0
virtual bool startAbility(const QJsonObject &want, const QOhosOptional< StartOptions > &options)=0
virtual void requestSerialPortAccessRight(const QString &portName, QObject *resultConsumerQtContext, QOhosConsumer< std::shared_ptr< void > > resultConsumer)=0
virtual void startNoUiChildProcess(QString libraryName, QStringList args)=0
virtual void setWindowCornerRadius(QObject *windowOrWidget, double radius)=0
virtual void setAudioStreamUsageHintProperty(QObject *qObject, AudioStreamUsage usage)=0
void requestAppPermissionsOnSetting(QtOhos::JsState &jsState, std::shared_ptr< QtOhos::QAbilityPeer > abilityPeer, const std::vector< std::string > &permissionNames, QOhosConsumer< QtOhos::JsState &, std::vector< bool > > resultConsumer)
void checkAppPermissionGrantedWithConsumer(QtOhos::JsState &jsState, const std::string &permissionName, QOhosConsumer< QtOhos::JsState &, bool > resultConsumer)
void requestAppPermissionsFromUserWithResult(QtOhos::JsState &jsState, std::shared_ptr< QtOhos::QAbilityPeer > abilityPeer, const std::vector< std::string > &permissionNames, QOhosConsumer< QtOhos::JsState &, std::vector< AppPermissionResult > > resultConsumer)
Combined button and popup list for selecting options.
void invokeInJsThread(std::function< void(JsState &)> task)
QOhosQpaFunctions & getQOhosQpaFunctions()
QOhosPermissionsHelper * getQOhosPermissionsHelperImpl()
QT_END_NAMESPACE Q_DECLARE_METATYPE(QT_PREPEND_NAMESPACE(QtOhos::enums::kit::ShareKit::systemShare::SelectionMode))
std::nullopt_t makeEmptyQOhosOptional()
QOhosOptional< QList< ShareAbilityType > > excludedAbilities
QOhosOptional< StartupVisibility > startupVisibility
QOhosOptional< QString > windowBackgroundColorHex
std::shared_ptr< QOhosConsumer< bool, QJsonObject, QString > > optCompletionHandler
QOhosOptional< WindowCreateParams > windowCreateParams
QOhosOptional< QList< SupportWindowMode > > supportWindowModes