47 Q_PROPERTY(QString applicationName READ applicationName WRITE setApplicationName
48 NOTIFY applicationNameChanged)
49 Q_PROPERTY(QString applicationVersion READ applicationVersion WRITE setApplicationVersion
50 NOTIFY applicationVersionChanged)
51 Q_PROPERTY(QString organizationName READ organizationName WRITE setOrganizationName
52 NOTIFY organizationNameChanged)
53 Q_PROPERTY(QString organizationDomain READ organizationDomain WRITE setOrganizationDomain
54 NOTIFY organizationDomainChanged)
55 Q_PROPERTY(
bool quitLockEnabled READ isQuitLockEnabled WRITE setQuitLockEnabled)
58 Q_DECLARE_PRIVATE(QCoreApplication)
59 friend class QEventLoopLocker;
60#if QT_CONFIG(permissions)
61 using RequestPermissionPrototype =
void(*)(QPermission);
65 enum { ApplicationFlags = QT_VERSION
68 QCoreApplication(
int &argc,
char **argv
70 ,
int = ApplicationFlags
76 static QStringList arguments();
78 static void setAttribute(Qt::ApplicationAttribute attribute,
bool on =
true);
79 static bool testAttribute(Qt::ApplicationAttribute attribute);
81 static void setOrganizationDomain(
const QString &orgDomain);
82 static QString organizationDomain();
83 static void setOrganizationName(
const QString &orgName);
84 static QString organizationName();
85 static void setApplicationName(
const QString &application);
86 static QString applicationName();
87 static void setApplicationVersion(
const QString &version);
88 static QString applicationVersion();
90 static void setSetuidAllowed(
bool allow);
91 static bool isSetuidAllowed();
93#if QT_VERSION >= QT_VERSION_CHECK(7
, 0
, 0
)
94 static QCoreApplication *instance()
noexcept {
return self.loadRelaxed(); }
95 static bool instanceExists()
noexcept {
return instance() !=
nullptr; }
97 static QCoreApplication *instance()
noexcept {
return self; }
98 static bool instanceExists()
noexcept;
103 static void processEvents(QEventLoop::ProcessEventsFlags flags = QEventLoop::AllEvents);
104 static void processEvents(QEventLoop::ProcessEventsFlags flags,
int maxtime);
105 static void processEvents(QEventLoop::ProcessEventsFlags flags, QDeadlineTimer deadline);
107 static bool sendEvent(QObject *receiver, QEvent *event);
108 static void postEvent(QObject *receiver, QEvent *event,
int priority = Qt::NormalEventPriority);
109 static void sendPostedEvents(QObject *receiver =
nullptr,
int event_type = 0);
110 static void removePostedEvents(QObject *receiver,
int eventType = 0);
111 static QAbstractEventDispatcher *eventDispatcher();
112 static void setEventDispatcher(QAbstractEventDispatcher *eventDispatcher);
114 virtual bool notify(QObject *, QEvent *);
116 static bool startingUp();
117 static bool closingDown();
120 static QString applicationDirPath();
121 static QString applicationFilePath();
122 Q_DECL_CONST_FUNCTION
static qint64 applicationPid();
124#if QT_CONFIG(permissions) || defined(Q_QDOC)
125 Qt::PermissionStatus checkPermission(
const QPermission &permission);
128 template <
typename Functor>
129 void requestPermission(
const QPermission &permission,
const QObject *context, Functor functor);
133 template <
typename Functor,
135 QtPrivate::AreFunctionsCompatible<RequestPermissionPrototype, Functor>::value,
137 void requestPermission(
const QPermission &permission,
138 const typename QtPrivate::ContextTypeForFunctor<Functor>::ContextType *receiver,
141 requestPermissionImpl(permission,
142 QtPrivate::makeCallableObject<RequestPermissionPrototype>(std::forward<Functor>(func)),
147#ifndef QT_NO_CONTEXTLESS_CONNECT
149 template <
typename Functor>
152 template <
typename Functor,
154 QtPrivate::AreFunctionsCompatible<RequestPermissionPrototype, Functor>::value,
157 void requestPermission(
const QPermission &permission, Functor &&func)
159 requestPermission(permission,
nullptr, std::forward<Functor>(func));
163#if QT_CORE_REMOVED_SINCE(6
, 10
)
165 void requestPermission(
const QPermission &permission,
166 QtPrivate::QSlotObjectBase *slotObj,
const QObject *context);
172#if QT_CONFIG(library)
173 static void setLibraryPaths(
const QStringList &);
174 static QStringList libraryPaths();
175 static void addLibraryPath(
const QString &);
176 static void removeLibraryPath(
const QString &);
179#ifndef QT_NO_TRANSLATION
180 static bool installTranslator(QTranslator * messageFile);
181 static bool removeTranslator(QTranslator * messageFile);
184 static QString translate(
const char * context,
186 const char * disambiguation =
nullptr,
189 QT_DECLARE_NATIVE_INTERFACE_ACCESSOR(QCoreApplication)
192 void installNativeEventFilter(QAbstractNativeEventFilter *filterObj);
193 void removeNativeEventFilter(QAbstractNativeEventFilter *filterObj);
195 static bool isQuitLockEnabled();
196 static void setQuitLockEnabled(
bool enabled);
200 static void exit(
int retcode = 0);
203 void aboutToQuit(QPrivateSignal);
205 void organizationNameChanged();
206 void organizationDomainChanged();
207 void applicationNameChanged();
208 void applicationVersionChanged();
211 bool event(QEvent *) override;
213# if QT_VERSION < QT_VERSION_CHECK(7
, 0
, 0
)
214 QT_DEPRECATED_VERSION_X_6_10(
"This feature will be removed in Qt 7")
215 virtual bool compressEvent(QEvent *, QObject *receiver, QPostEventList *);
220 QCoreApplication(QCoreApplicationPrivate &p);
223 std::unique_ptr<QCoreApplicationPrivate> d_ptr;
228 static bool sendSpontaneousEvent(QObject *receiver, QEvent *event);
229 static bool notifyInternal2(QObject *receiver, QEvent *);
230 static bool forwardEvent(QObject *receiver, QEvent *event, QEvent *originatingEvent =
nullptr);
232 void requestPermissionImpl(
const QPermission &permission, QtPrivate::QSlotObjectBase *slotObj,
233 const QObject *context);
236#if QT_VERSION >= QT_VERSION_CHECK(7
, 0
, 0
)
237 static QBasicAtomicPointer<QCoreApplication> self;
239 static QCoreApplication *self;
242 Q_DISABLE_COPY(QCoreApplication)
244 friend class QApplication;
245 friend class QApplicationPrivate;
246 friend class QGuiApplication;
247 friend class QGuiApplicationPrivate;
248 friend class QWidget;
249 friend class QWidgetWindow;
250 friend class QWidgetPrivate;
251 friend class QWindowPrivate;
253 friend class QEventDispatcherUNIXPrivate;
254 friend class QCocoaEventDispatcherPrivate;
255 friend bool qt_sendSpontaneousEvent(QObject *, QEvent *);
257 friend Q_CORE_EXPORT QString qAppName();
258 friend class QCommandLineParserPrivate;