亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? qcoreapplication.cpp

?? QT 開發(fā)環(huán)境里面一個(gè)很重要的文件
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
/******************************************************************************** Copyright (C) 1992-2006 Trolltech ASA. All rights reserved.**** This file is part of the QtCore module of the Qt Toolkit.**** This file may be used under the terms of the GNU General Public** License version 2.0 as published by the Free Software Foundation** and appearing in the file LICENSE.GPL included in the packaging of** this file.  Please review the following information to ensure GNU** General Public Licensing requirements will be met:** http://www.trolltech.com/products/qt/opensource.html**** If you are unsure which license is appropriate for your use, please** review the following information:** http://www.trolltech.com/products/qt/licensing.html or contact the** sales department at sales@trolltech.com.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.******************************************************************************/#include "qcoreapplication.h"#include "qcoreapplication_p.h"#include "qabstracteventdispatcher.h"#include "qcoreevent.h"#include "qeventloop.h"#include <qdatastream.h>#include <qdatetime.h>#include <qdebug.h>#include <qdir.h>#include <qfile.h>#include <qfileinfo.h>#include <qhash.h>#include <private/qprocess_p.h>#include <qtextcodec.h>#include <qthread.h>#include <qthreadstorage.h>#include <private/qthread_p.h>#include <qlibraryinfo.h>#ifdef Q_OS_UNIX#  if !defined(QT_NO_GLIB)#    include "qeventdispatcher_glib_p.h"#  endif#  include "qeventdispatcher_unix_p.h"#endif#ifdef Q_OS_WIN#  include "qeventdispatcher_win_p.h"#endif#include <stdlib.h>#ifdef Q_OS_UNIX#include <locale.h>#endif#if defined(Q_WS_WIN) || defined(Q_WS_MAC)extern QString qAppFileName();#endif#if !defined(Q_OS_WIN)QString QCoreApplicationPrivate::appName() const{    static QString applName;    if (applName.isEmpty() && argv[0]) {        char *p = strrchr(argv[0], '/');        applName = QString::fromLocal8Bit(p ? p + 1 : argv[0]);    }    return applName;}#endifbool QCoreApplicationPrivate::checkInstance(const char *function){    bool b = (QCoreApplication::self != 0);    if (!b)        qWarning("QApplication::%s: Please instantiate the QApplication object first", function);    return b;}// Support for introspectionQSignalSpyCallbackSet Q_CORE_EXPORT qt_signal_spy_callback_set = { 0, 0, 0, 0 };void qt_register_signal_spy_callbacks(const QSignalSpyCallbackSet &callback_set){    qt_signal_spy_callback_set = callback_set;}extern "C" void Q_CORE_EXPORT qt_startup_hook(){}typedef QList<QtCleanUpFunction> QVFuncList;Q_GLOBAL_STATIC(QVFuncList, postRList)void qAddPostRoutine(QtCleanUpFunction p){    QVFuncList *list = postRList();    if (!list)        return;    list->prepend(p);}void qRemovePostRoutine(QtCleanUpFunction p){    QVFuncList *list = postRList();    if (!list)        return;    list->removeAll(p);}void Q_CORE_EXPORT qt_call_post_routines(){    QVFuncList *list = postRList();    if (!list)        return;    while (!list->isEmpty())        (list->takeFirst())();}// app starting up if falsebool QCoreApplicationPrivate::is_app_running = false; // app closing down if truebool QCoreApplicationPrivate::is_app_closing = false;Q_CORE_EXPORT uint qGlobalPostedEventsCount(){    return QThreadData::current()->postEventList.size();}void qt_set_current_thread_to_main_thread(){    QCoreApplicationPrivate::theMainThread = QThread::currentThread();}QCoreApplication *QCoreApplication::self = 0;QAbstractEventDispatcher *QCoreApplicationPrivate::eventDispatcher = 0;uint QCoreApplicationPrivate::attribs;#ifdef Q_OS_UNIXQt::HANDLE qt_application_thread_id = 0;#endifstruct QCoreApplicationData {    QCoreApplicationData() {#ifndef QT_NO_LIBRARY        app_libpaths = 0;#endif    }    ~QCoreApplicationData() {#ifndef QT_NO_LIBRARY        delete app_libpaths;#endif    }    QString orgName, orgDomain, application;#ifndef QT_NO_LIBRARY    QStringList *app_libpaths;#endif};Q_GLOBAL_STATIC(QCoreApplicationData, coreappdata)QCoreApplicationPrivate::QCoreApplicationPrivate(int &aargc, char **aargv)    : QObjectPrivate(), argc(aargc), argv(aargv), application_type(0), eventFilter(0),      in_exec(false){    static const char *const empty = "";    if (argc == 0 || argv == 0) {        argc = 0;        argv = (char **)&empty; // ouch! careful with QCoreApplication::argv()!    }    QCoreApplicationPrivate::is_app_closing = false;#ifdef Q_OS_UNIX    qt_application_thread_id = QThread::currentThreadId();#endif    // note: this call to QThread::currentThread() may end up setting theMainThread!    if (QThread::currentThread() != theMainThread)        qWarning("WARNING: QApplication was not created in the main() thread.");}QCoreApplicationPrivate::~QCoreApplicationPrivate(){#ifndef QT_NO_THREAD    QThreadStorageData::finish(threadData->tls);    threadData->tls = 0;#endif    // need to clear the state of the mainData, just in case a new QCoreApplication comes along.    QMutexLocker locker(&threadData->postEventList.mutex);    for (int i = 0; i < threadData->postEventList.size(); ++i) {        const QPostEvent &pe = threadData->postEventList.at(i);        if (pe.event) {            --pe.receiver->d_func()->postedEvents;#ifdef QT3_SUPPORT            if (pe.event->type() == QEvent::ChildInserted)                --pe.receiver->d_func()->postedChildInsertedEvents;#endif            pe.event->posted = false;            delete pe.event;        }    }    threadData->postEventList.clear();    threadData->postEventList.recursion = 0;    threadData->quitNow = false;}void QCoreApplicationPrivate::createEventDispatcher(){    Q_Q(QCoreApplication);#if defined(Q_OS_UNIX)#  if !defined(QT_NO_GLIB)    if (qgetenv("QT_NO_GLIB").isEmpty())        eventDispatcher = new QEventDispatcherGlib(q);    else#  endif        eventDispatcher = new QEventDispatcherUNIX(q);#elif defined(Q_OS_WIN)    eventDispatcher = new QEventDispatcherWin32(q);#else#  error "QEventDispatcher not yet ported to this platform"#endif}QThread *QCoreApplicationPrivate::theMainThread = 0;QThread *QCoreApplicationPrivate::mainThread(){    Q_ASSERT(theMainThread != 0);    return theMainThread;}#ifdef QT3_SUPPORTvoid QCoreApplicationPrivate::removePostedChildInsertedEvents(QObject *receiver, QObject *child){    QThreadData *data = receiver->d_func()->threadData;    QMutexLocker locker(&data->postEventList.mutex);    // the QObject destructor calls QObject::removeChild, which calls    // QCoreApplication::sendEvent() directly.  this can happen while the event    // loop is in the middle of posting events, and when we get here, we may    // not have any more posted events for this object.    // if this is a child remove event and the child insert    // hasn't been dispatched yet, kill that insert    for (int i = 0; i < data->postEventList.size(); ++i) {        const QPostEvent &pe = data->postEventList.at(i);        if (pe.event && pe.receiver == receiver) {            if (pe.event->type() == QEvent::ChildInserted                && ((QChildEvent*)pe.event)->child() == child) {                --receiver->d_func()->postedEvents;                --receiver->d_func()->postedChildInsertedEvents;                Q_ASSERT(receiver->d_func()->postedEvents >= 0);                Q_ASSERT(receiver->d_func()->postedChildInsertedEvents >= 0);                pe.event->posted = false;                delete pe.event;                const_cast<QPostEvent &>(pe).event = 0;                const_cast<QPostEvent &>(pe).receiver = 0;            }        }    }}#endifvoid QCoreApplicationPrivate::checkReceiverThread(QObject *receiver){    QThread *currentThread = QThread::currentThread();    QThread *thr = receiver->thread();    Q_ASSERT_X(currentThread == thr || !thr,               "QCoreApplication::sendEvent",               QString::fromLatin1("Cannot send events to objects owned by a different thread. "                                   "Current thread %1. Receiver '%2' (of type '%3') was created in thread %4")               .arg(QString::number((ulong) currentThread, 16))               .arg(receiver->objectName())               .arg(QLatin1String(receiver->metaObject()->className()))               .arg(QString::number((ulong) thr, 16))               .toLocal8Bit().data());    Q_UNUSED(currentThread);    Q_UNUSED(thr);}void QCoreApplicationPrivate::appendApplicationPathToLibraryPaths(){#ifndef QT_NO_LIBRARY    QStringList *app_libpaths = coreappdata()->app_libpaths;    Q_ASSERT(app_libpaths);    QString app_location( QCoreApplication::applicationFilePath() );    app_location.truncate(app_location.lastIndexOf(QLatin1Char('/')));    app_location = QDir(app_location).canonicalPath();    if (app_location !=  QLibraryInfo::location(QLibraryInfo::PluginsPath) && QFile::exists(app_location))        app_libpaths->append(app_location);#endif}QString qAppName(){    if (!QCoreApplicationPrivate::checkInstance("qAppName"))        return QString();    return QCoreApplication::instance()->d_func()->appName();}/*!    \class QCoreApplication    \brief The QCoreApplication class provides an event loop for console Qt    applications.    \ingroup application    \mainclass    This class is used by non-GUI applications to provide their event    loop. For non-GUI application that uses Qt, there should be exactly    one QCoreApplication object. For GUI applications, see    QApplication.    QCoreApplication contains the main event loop, where all events    from the operating system (e.g., timer and network events) and    other sources are processed and dispatched. It also handles the    application's initialization and finalization, as well as    system-wide and application-wide settings.    The command line arguments which QCoreApplication's constructor    should be called with are accessible using arguments(). The    event loop is started with a call to exec(). Long running    operations can call processEvents() to keep the application    responsive.    Some Qt classes, such as QString, can be used without a    QCoreApplication object. However, in general, we recommend that    you create a QCoreApplication or a QApplication object in your \c    main() function as early as possible.    An application has an applicationDirPath() and an    applicationFilePath(). Translation files can be added or removed    using installTranslator() and removeTranslator(). Application    strings can be translated using translate(). The QObject::tr()    and QObject::trUtf8() functions are implemented in terms of    translate().    The class provides a quit() slot and an aboutToQuit() signal.    Several static convenience functions are also provided. The    QCoreApplication object is available from instance(). Events can    be sent or posted using sendEvent(), postEvent(), and    sendPostedEvents(). Pending events can be removed with    removePostedEvents() or flushed with flush(). Library paths (see    QLibrary) can be retrieved with libraryPaths() and manipulated by    setLibraryPaths(), addLibraryPath(), and removeLibraryPath().    \sa QApplication, QAbstractEventDispatcher, QEventLoop*//*!    \fn static QCoreApplication *QCoreApplication::instance()    Returns a pointer to the application's QCoreApplication (or    QApplication) instance.*//*!\internal */QCoreApplication::QCoreApplication(QCoreApplicationPrivate &p)    : QObject(p, 0){    init();    // note: it is the subclasses' job to call    // QCoreApplicationPrivate::eventDispatcher->startingUp();}/*!    Flushes the platform specific event queues.    If you are doing graphical changes inside a loop that does not    return to the event loop on asynchronous window systems like X11    or double buffered window systems like Mac OS X, and you want to    visualize these changes immediately (e.g. Splash Screens), call    this function.    \sa sendPostedEvents()*/void QCoreApplication::flush(){    if (self && self->d_func()->eventDispatcher)        self->d_func()->eventDispatcher->flush();}/*!    Constructs a Qt kernel application. Kernel applications are    applications without a graphical user interface. These type of    applications are used at the console or as server processes.    The \a argc and \a argv arguments are processed by the application,    and made available in a more convenient form by the arguments()    function.*/QCoreApplication::QCoreApplication(int &argc, char **argv)    : QObject(*new QCoreApplicationPrivate(argc, argv)){    init();    QCoreApplicationPrivate::eventDispatcher->startingUp();}extern void set_winapp_name();// ### move to QCoreApplicationPrivate constructor?void QCoreApplication::init(){    Q_D(QCoreApplication);#ifdef Q_OS_UNIX    setlocale(LC_ALL, "");                // use correct char set mapping    setlocale(LC_NUMERIC, "C");        // make sprintf()/scanf() work#endif

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色一情一乱一乱一91av| 国产一本一道久久香蕉| 91黄色激情网站| 一区二区久久久| 欧美日韩午夜在线视频| 天天色天天操综合| 日韩免费视频一区| 福利电影一区二区三区| 中文字幕一区不卡| 欧美男女性生活在线直播观看| 丝袜美腿亚洲色图| 日韩欧美123| 成人sese在线| 亚洲福利视频导航| 欧美一级理论性理论a| 久久99国产乱子伦精品免费| 欧美国产日韩精品免费观看| 色综合天天做天天爱| 污片在线观看一区二区| 欧美精品一区二区三| www.色综合.com| 五月综合激情日本mⅴ| 久久这里只有精品首页| 91麻豆高清视频| 久久精品国产99| 亚洲欧美日韩国产手机在线| 3d动漫精品啪啪一区二区竹菊| 国产综合成人久久大片91| 依依成人综合视频| 精品播放一区二区| 91老师国产黑色丝袜在线| 蜜臀精品久久久久久蜜臀| 国产精品国产三级国产aⅴ入口| 欧美精品视频www在线观看| 国产一区二区福利视频| 一区二区视频在线看| 日韩免费成人网| 一本一本久久a久久精品综合麻豆| 亚洲国产一二三| 欧美国产日韩a欧美在线观看| 欧美日韩精品一区二区三区蜜桃 | 亚洲精品午夜久久久| 日韩欧美区一区二| 在线精品视频免费播放| 国产精品18久久久久久vr| 五月天中文字幕一区二区| 欧美国产丝袜视频| 欧美电视剧在线看免费| 91福利在线播放| www.色精品| 国产剧情av麻豆香蕉精品| 日韩av电影一区| 亚洲国产日日夜夜| 中文字幕亚洲一区二区av在线| 日韩欧美123| 欧美丰满一区二区免费视频 | 亚洲成a人v欧美综合天堂| 国产精品久久久久久户外露出| 欧美成人国产一区二区| 欧美日韩久久不卡| 在线精品视频免费播放| 99久久伊人久久99| 成人综合婷婷国产精品久久| 久久电影网电视剧免费观看| 日韩高清不卡一区二区| 午夜激情一区二区| 亚洲一区二区不卡免费| 亚洲人精品一区| 中文字幕亚洲成人| 18涩涩午夜精品.www| 国产精品久久久久一区二区三区共| 欧美成人精精品一区二区频| 69堂成人精品免费视频| 欧美高清视频不卡网| 欧美女孩性生活视频| 欧美日韩高清一区| 欧美日韩视频在线观看一区二区三区 | 一本久久精品一区二区| heyzo一本久久综合| jizz一区二区| 色综合久久天天综合网| 91老师片黄在线观看| 欧美性xxxxxx少妇| 欧美日本精品一区二区三区| 欧美男男青年gay1069videost| 欧美伦理影视网| 日韩一区二区在线观看| 精品国产一区二区三区av性色| 日韩美女视频一区二区在线观看| 欧美mv日韩mv亚洲| 国产日韩欧美不卡| 最新久久zyz资源站| 一区二区三区四区不卡视频| 亚洲一级在线观看| 蜜臀av一区二区在线免费观看| 国产综合色产在线精品| 成人福利视频网站| 欧美制服丝袜第一页| 91精品国模一区二区三区| 久久久一区二区三区| 国产精品久久久久影院| 亚洲国产一区视频| 久久成人免费网| 99久久精品情趣| 精品视频免费看| 26uuu亚洲| 亚洲人成伊人成综合网小说| 五月激情六月综合| 国产suv精品一区二区三区| 91在线观看高清| 51久久夜色精品国产麻豆| 日本一区二区三区国色天香 | 国产综合久久久久久鬼色 | 国产成人免费视频网站| 欧美综合视频在线观看| 精品国产一区二区三区久久影院 | 久久久久国产精品厨房| 亚洲伦理在线免费看| 蜜芽一区二区三区| 99国产一区二区三精品乱码| 欧美日韩高清一区二区不卡| 亚洲国产高清在线| 丝瓜av网站精品一区二区| 国产aⅴ综合色| 777a∨成人精品桃花网| 国产精品天美传媒| 免费视频最近日韩| 色一区在线观看| 久久久www成人免费毛片麻豆| 亚洲福利视频一区二区| 成人av资源站| 精品成人佐山爱一区二区| 亚洲影院久久精品| www.综合网.com| 久久一日本道色综合| 日韩av一区二区三区四区| 99精品欧美一区二区三区综合在线| 欧美一个色资源| 亚洲精品videosex极品| 成人久久视频在线观看| 日韩欧美一区二区免费| 亚洲h精品动漫在线观看| 白白色亚洲国产精品| 国产午夜精品理论片a级大结局 | 亚洲免费观看高清在线观看| 韩国av一区二区三区四区| 欧美久久久久中文字幕| 亚洲精品国久久99热| 成人在线一区二区三区| 久久夜色精品国产噜噜av| 蜜桃视频一区二区三区在线观看| 色婷婷久久99综合精品jk白丝| 国产欧美日韩卡一| 国产美女主播视频一区| 日韩一二三区不卡| 日韩精品国产精品| 在线不卡的av| 亚洲一区二区欧美| 欧美性生交片4| 亚洲三级电影全部在线观看高清| 国产在线精品免费| 欧美v国产在线一区二区三区| 日韩—二三区免费观看av| 欧美日韩1区2区| 午夜精品免费在线观看| 精品视频资源站| 亚洲午夜精品在线| 在线观看视频一区二区欧美日韩| 亚洲欧美日韩久久| 欧美性猛交xxxx黑人交| 亚洲国产一区在线观看| 欧美三级蜜桃2在线观看| 亚洲主播在线播放| 在线播放一区二区三区| 天堂在线亚洲视频| 精品少妇一区二区三区在线视频| 久久99热这里只有精品| 欧美成人a∨高清免费观看| 在线观看日韩电影| 亚洲一区二区三区四区在线观看| 在线视频你懂得一区| 亚洲r级在线视频| 欧美一区二区三区色| 精品伊人久久久久7777人| 久久久蜜桃精品| 青青青伊人色综合久久| 欧美日韩黄视频| 日本在线不卡一区| 精品91自产拍在线观看一区| 国产99久久久国产精品潘金| 亚洲手机成人高清视频| 国产亚洲一区字幕| 国产精品一区二区三区99 | 中文一区在线播放| 色又黄又爽网站www久久| 亚洲精品老司机| 欧美在线高清视频| 成人午夜又粗又硬又大| 免费久久99精品国产| 亚洲一区在线观看免费|