48 Q_PROPERTY(QString applicationName READ applicationName WRITE setApplicationName
49 NOTIFY applicationNameChanged)
50 Q_PROPERTY(QString applicationVersion READ applicationVersion WRITE setApplicationVersion
51 NOTIFY applicationVersionChanged)
52 Q_PROPERTY(QString organizationName READ organizationName WRITE setOrganizationName
53 NOTIFY organizationNameChanged)
54 Q_PROPERTY(QString organizationDomain READ organizationDomain WRITE setOrganizationDomain
55 NOTIFY organizationDomainChanged)
56 Q_PROPERTY(
bool quitLockEnabled READ isQuitLockEnabled WRITE setQuitLockEnabled)
59 Q_DECLARE_PRIVATE(QCoreApplication)
60 friend class QEventLoopLocker;
61#if QT_CONFIG(permissions)
62 using RequestPermissionPrototype =
void(*)(QPermission);
66 enum { ApplicationFlags = QT_VERSION
69 QCoreApplication(
int &argc,
char **argv
71 ,
int = ApplicationFlags
77 static QStringList arguments();
79 static void setAttribute(Qt::ApplicationAttribute attribute,
bool on =
true);
80 static bool testAttribute(Qt::ApplicationAttribute attribute);
82 static void setOrganizationDomain(
const QString &orgDomain);
83 static QString organizationDomain();
84 static void setOrganizationName(
const QString &orgName);
85 static QString organizationName();
86 static void setApplicationName(
const QString &application);
87 static QString applicationName();
88 static void setApplicationVersion(
const QString &version);
89 static QString applicationVersion();
91 static void setSetuidAllowed(
bool allow);
92 static bool isSetuidAllowed();
94#if QT_VERSION >= QT_VERSION_CHECK(7
, 0
, 0
)
95 static QCoreApplication *instance()
noexcept {
return self.loadRelaxed(); }
96 static bool instanceExists()
noexcept {
return instance() !=
nullptr; }
98 static QCoreApplication *instance()
noexcept {
return self; }
99 static bool instanceExists()
noexcept;
104 static void processEvents(QEventLoop::ProcessEventsFlags flags = QEventLoop::AllEvents);
105 static void processEvents(QEventLoop::ProcessEventsFlags flags,
int maxtime);
106 static void processEvents(QEventLoop::ProcessEventsFlags flags, QDeadlineTimer deadline);
108 static bool sendEvent(QObject *receiver, QEvent *event);
109 static void postEvent(QObject *receiver, QEvent *event,
int priority = Qt::NormalEventPriority);
110 static void sendPostedEvents(QObject *receiver =
nullptr,
int event_type = 0);
111 static void removePostedEvents(QObject *receiver,
int eventType = 0);
112 static QAbstractEventDispatcher *eventDispatcher();
113 static void setEventDispatcher(QAbstractEventDispatcher *eventDispatcher);
115 virtual bool notify(QObject *, QEvent *);
117 static bool startingUp();
118 static bool closingDown();
121 static QString applicationDirPath();
122 static QString applicationFilePath();
123 Q_DECL_CONST_FUNCTION
static qint64 applicationPid()
noexcept;
125#if QT_CONFIG(permissions) || defined(Q_QDOC)
126 Qt::PermissionStatus checkPermission(
const QPermission &permission);
129 template <
typename Functor>
130 void requestPermission(
const QPermission &permission,
const QObject *context, Functor functor);
134 template <
typename Functor,
136 QtPrivate::AreFunctionsCompatible<RequestPermissionPrototype, Functor>::value,
138 void requestPermission(
const QPermission &permission,
139 const typename QtPrivate::ContextTypeForFunctor<Functor>::ContextType *receiver,
142 requestPermissionImpl(permission,
143 QtPrivate::makeCallableObject<RequestPermissionPrototype>(std::forward<Functor>(func)),
148#ifndef QT_NO_CONTEXTLESS_CONNECT
150 template <
typename Functor>
153 template <
typename Functor,
155 QtPrivate::AreFunctionsCompatible<RequestPermissionPrototype, Functor>::value,
158 void requestPermission(
const QPermission &permission, Functor &&func)
160 requestPermission(permission,
nullptr, std::forward<Functor>(func));
164#if QT_CORE_REMOVED_SINCE(6
, 10
)
166 void requestPermission(
const QPermission &permission,
167 QtPrivate::QSlotObjectBase *slotObj,
const QObject *context);
173#if QT_CONFIG(library)
174 static void setLibraryPaths(
const QStringList &);
175 static QStringList libraryPaths();
176 static void addLibraryPath(
const QString &);
177 static void removeLibraryPath(
const QString &);
180#ifndef QT_NO_TRANSLATION
181 static bool installTranslator(QTranslator * messageFile);
182 static bool removeTranslator(QTranslator * messageFile);
185 static QString translate(
const char * context,
187 const char * disambiguation =
nullptr,
190 QT_DECLARE_NATIVE_INTERFACE_ACCESSOR(QCoreApplication)
193 void installNativeEventFilter(QAbstractNativeEventFilter *filterObj);
194 void removeNativeEventFilter(QAbstractNativeEventFilter *filterObj);
196 static bool isQuitLockEnabled();
197 static void setQuitLockEnabled(
bool enabled);
201 static void exit(
int retcode = 0);
204 void aboutToQuit(QPrivateSignal);
206 void organizationNameChanged();
207 void organizationDomainChanged();
208 void applicationNameChanged();
209 void applicationVersionChanged();
212 bool event(QEvent *) override;
214# if QT_VERSION < QT_VERSION_CHECK(7
, 0
, 0
)
215 QT_DEPRECATED_VERSION_X_6_10(
"This feature will be removed in Qt 7")
216 virtual bool compressEvent(QEvent *, QObject *receiver, QPostEventList *);
221 QCoreApplication(QCoreApplicationPrivate &p);
224 std::unique_ptr<QCoreApplicationPrivate> d_ptr;
229 static bool sendSpontaneousEvent(QObject *receiver, QEvent *event);
230 static bool notifyInternal2(QObject *receiver, QEvent *);
231 static bool forwardEvent(QObject *receiver, QEvent *event, QEvent *originatingEvent =
nullptr);
233 void requestPermissionImpl(
const QPermission &permission, QtPrivate::QSlotObjectBase *slotObj,
234 const QObject *context);
237#if QT_VERSION >= QT_VERSION_CHECK(7
, 0
, 0
)
238 static QBasicAtomicPointer<QCoreApplication> self;
240 static QCoreApplication *self;
243 Q_DISABLE_COPY(QCoreApplication)
245 friend class QApplication;
246 friend class QApplicationPrivate;
247 friend class QGuiApplication;
248 friend class QGuiApplicationPrivate;
249 friend class QWidget;
250 friend class QWidgetWindow;
251 friend class QWidgetPrivate;
252 friend class QWindowPrivate;
254 friend class QEventDispatcherUNIXPrivate;
255 friend class QCocoaEventDispatcherPrivate;
256 friend bool qt_sendSpontaneousEvent(QObject *, QEvent *);
258 friend Q_CORE_EXPORT QString qAppName();
259 friend class QCommandLineParserPrivate;