⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qapplication_qws.cpp

📁 奇趣公司比较新的qt/emd版本
💻 CPP
📖 第 1 页 / 共 5 页
字号:
        } else {            QETWidget *etw = static_cast<QETWidget*>(w);            etw->updateRegion();            if (etw->isVisible()) {                etw->repaintHierarchy(etw->geometry(), true);                etw->repaintDecoration(qApp->desktop()->rect(), true);            }        }    }    // only update the mwr if it is full screen.    if (isFullScreen) {        QApplicationPriate *ap = QApplicationPrivate::instance();        ap->setMaxWindowRect(qt_screen,                             QRect(0,0, qt_screen->width(), qt_screen->height()));    }#endif}#endifstatic bool qt_try_modal(QWidget *, QWSEvent *);/*****************************************************************************  qt_init() - initializes Qt/FB *****************************************************************************/static void qt_set_qws_resources(){    if (QApplication::desktopSettingsAware())        QApplicationPrivate::qws_apply_settings();    if (appFont)        QApplication::setFont(QFont(QString::fromLocal8Bit(appFont)));    if (appBGCol || appBTNCol || appFGCol) {        (void) QApplication::style();  // trigger creation of application style and system palettes        QColor btn;        QColor bg;        QColor fg;        if (appBGCol)            bg = QColor(appBGCol);        else            bg = QApplicationPrivate::sys_pal->color(QPalette::Window);        if (appFGCol)            fg = QColor(appFGCol);        else            fg = QApplicationPrivate::sys_pal->color(QPalette::WindowText);        if (appBTNCol)            btn = QColor(appBTNCol);        else            btn = QApplicationPrivate::sys_pal->color(QPalette::Button);        int h,s,v;        fg.getHsv(&h,&s,&v);        QColor base = Qt::white;        bool bright_mode = false;        if (v >= 255 - 50) {            base = btn.darker(150);            bright_mode = true;        }        QPalette pal(fg, btn, btn.lighter(), btn.darker(), btn.darker(150), fg, Qt::white, base, bg);        if (bright_mode) {            pal.setColor(QPalette::HighlightedText, base);            pal.setColor(QPalette::Highlight, Qt::white);        } else {            pal.setColor(QPalette::HighlightedText, Qt::white);            pal.setColor(QPalette::Highlight, Qt::darkBlue);        }        QColor disabled((fg.red()   + btn.red())  / 2,                        (fg.green() + btn.green())/ 2,                        (fg.blue()  + btn.blue()) / 2);        pal.setColorGroup(QPalette::Disabled, disabled, btn, btn.lighter(125),                          btn.darker(), btn.darker(150), disabled, Qt::white, Qt::white, bg);        if (bright_mode) {            pal.setColor(QPalette::Disabled, QPalette::HighlightedText, base);            pal.setColor(QPalette::Disabled, QPalette::Highlight, Qt::white);        } else {            pal.setColor(QPalette::Disabled, QPalette::HighlightedText, Qt::white);            pal.setColor(QPalette::Disabled, QPalette::Highlight, Qt::darkBlue);        }        QApplicationPrivate::setSystemPalette(pal);    }}void QApplicationPrivate::initializeWidgetPaletteHash(){}/*! \internal    apply the settings to the application*/bool QApplicationPrivate::qws_apply_settings(){#ifndef QT_NO_SETTINGS    QSettings settings(QSettings::UserScope, QLatin1String("Trolltech"));    settings.beginGroup(QLatin1String("Qt"));    QStringList strlist;    int i;    QPalette pal(Qt::black);    int groupCount = 0;    strlist = settings.value(QLatin1String("Palette/active")).toStringList();    if (strlist.count() == QPalette::NColorRoles) {        ++groupCount;        for (i = 0; i < QPalette::NColorRoles; i++)            pal.setColor(QPalette::Active, (QPalette::ColorRole) i,                         QColor(strlist[i]));    }    strlist = settings.value(QLatin1String("Palette/inactive")).toStringList();    if (strlist.count() == QPalette::NColorRoles) {        ++groupCount;        for (i = 0; i < QPalette::NColorRoles; i++)            pal.setColor(QPalette::Inactive, (QPalette::ColorRole) i,                         QColor(strlist[i]));    }    strlist = settings.value(QLatin1String("Palette/disabled")).toStringList();    if (strlist.count() == QPalette::NColorRoles) {        ++groupCount;        for (i = 0; i < QPalette::NColorRoles; i++)            pal.setColor(QPalette::Disabled, (QPalette::ColorRole) i,                         QColor(strlist[i]));    }    if (groupCount == QPalette::NColorGroups)        QApplicationPrivate::setSystemPalette(pal);    QString str = settings.value(QLatin1String("font")).toString();    if (!str.isEmpty()) {        QFont font(QApplication::font());        font.fromString(str);        QApplicationPrivate::setSystemFont(font);    }    // read library (ie. plugin) path list    QString libpathkey =        QString::fromLatin1("%1.%2/libraryPath")        .arg(QT_VERSION >> 16)        .arg((QT_VERSION & 0xff00) >> 8);    QStringList pathlist = settings.value(libpathkey).toString().split(QLatin1Char(':'));#ifndef QT_NO_LIBRARY    if (! pathlist.isEmpty()) {        QStringList::ConstIterator it = pathlist.constBegin();        while (it != pathlist.constEnd())            QApplication::addLibraryPath(*it++);    }#endif    // read new QStyle    QString stylename = settings.value(QLatin1String("style")).toString();    if (QCoreApplication::startingUp()) {        if (!stylename.isEmpty() && !QApplicationPrivate::styleOverride)            QApplicationPrivate::styleOverride = new QString(stylename);    } else {        QApplication::setStyle(stylename);    }    int num =        settings.value(QLatin1String("doubleClickInterval"),                       QApplication::doubleClickInterval()).toInt();    QApplication::setDoubleClickInterval(num);    num =        settings.value(QLatin1String("cursorFlashTime"),                       QApplication::cursorFlashTime()).toInt();    QApplication::setCursorFlashTime(num);#ifndef QT_NO_WHEELEVENT    num =        settings.value(QLatin1String("wheelScrollLines"),                       QApplication::wheelScrollLines()).toInt();    QApplication::setWheelScrollLines(num);#endif    QString colorspec = settings.value(QLatin1String("colorSpec"),                                       QVariant(QLatin1String("default"))).toString();    if (colorspec == QLatin1String("normal"))        QApplication::setColorSpec(QApplication::NormalColor);    else if (colorspec == QLatin1String("custom"))        QApplication::setColorSpec(QApplication::CustomColor);    else if (colorspec == QLatin1String("many"))        QApplication::setColorSpec(QApplication::ManyColor);    else if (colorspec != QLatin1String("default"))        colorspec = QLatin1String("default");#ifndef QT_NO_TEXTCODEC    QString defaultcodec = settings.value(QLatin1String("defaultCodec"),                                          QVariant(QLatin1String("none"))).toString();    if (defaultcodec != QLatin1String("none")) {        QTextCodec *codec = QTextCodec::codecForName(defaultcodec.toLatin1());        if (codec)            QTextCodec::setCodecForTr(codec);    }#endif    int w = settings.value(QLatin1String("globalStrut/width")).toInt();    int h = settings.value(QLatin1String("globalStrut/height")).toInt();    QSize strut(w, h);    if (strut.isValid())        QApplication::setGlobalStrut(strut);    QStringList effects = settings.value(QLatin1String("GUIEffects")).toStringList();    QApplication::setEffectEnabled(Qt::UI_General,                                   effects.contains(QLatin1String("general")));    QApplication::setEffectEnabled(Qt::UI_AnimateMenu,                                   effects.contains(QLatin1String("animatemenu")));    QApplication::setEffectEnabled(Qt::UI_FadeMenu,                                   effects.contains(QLatin1String("fademenu")));    QApplication::setEffectEnabled(Qt::UI_AnimateCombo,                                   effects.contains(QLatin1String("animatecombo")));    QApplication::setEffectEnabled(Qt::UI_AnimateTooltip,                                   effects.contains(QLatin1String("animatetooltip")));    QApplication::setEffectEnabled(Qt::UI_FadeTooltip,                                   effects.contains(QLatin1String("fadetooltip")));    QApplication::setEffectEnabled(Qt::UI_AnimateToolBox,                                   effects.contains(QLatin1String("animatetoolbox")));    settings.beginGroup(QLatin1String("Font Substitutions"));    QStringList fontsubs = settings.childKeys();    if (!fontsubs.isEmpty()) {        QStringList::Iterator it = fontsubs.begin();        for (; it != fontsubs.end(); ++it) {            QString fam = *it;            QStringList subs = settings.value(fam).toStringList();            QFont::insertSubstitutions(fam, subs);        }    }    settings.endGroup();    settings.endGroup(); // Qt    settings.beginGroup(QLatin1String("QWS Font Fallbacks"));    if (!settings.childKeys().isEmpty()) {        // from qfontdatabase_qws.cpp        extern void qt_applyFontDatabaseSettings(const QSettings &);        qt_applyFontDatabaseSettings(settings);    }    settings.endGroup();    return true;#else    return false;#endif // QT_NO_SETTINGS}static void init_display(){    if (qt_fbdpy) return; // workaround server==client case    // Connect to FB server    qt_fbdpy = new QWSDisplay();    // Get display parameters    // Set paintdevice parameters    // XXX initial info sent from server    // Misc. initialization    QColormap::initialize();    QFont::initialize();#ifndef QT_NO_CURSOR    QCursorData::initialize();#endif    qApp->setObjectName(appName);    if (!QApplicationPrivate::app_font) {        QFont f;#ifdef QT_NO_FREETYPE        f = QFont(QLatin1String("helvetica"), 10);#else        f = QFont(QLatin1String("DejaVu Sans"), 12);#endif        QApplication::setFont(f);    }    qt_set_qws_resources();}void qt_init_display(){    qt_is_gui_used = true;    qws_single_process = true;    init_display();}static bool read_bool_env_var(const char *var, bool defaultvalue){    // returns true if env variable is set to non-zero    // returns false if env var is set to zero    // returns defaultvalue if env var not set    char *x = ::getenv(var);    return (x && *x) ? (strcmp(x,"0") != 0) : defaultvalue;}void qt_init(QApplicationPrivate *priv, int type){    if (type == QApplication::GuiServer)        qt_is_gui_used = false; //we'll turn it on in a second    qws_sw_cursor = read_bool_env_var("QWS_SW_CURSOR",qws_sw_cursor);    qws_screen_is_interlaced = read_bool_env_var("QWS_INTERLACE",false);    const char *display = ::getenv("QWS_DISPLAY");    if (display)        qws_display_spec = display; // since we setenv later!    //qws_savefonts = qgetenv("QWS_SAVEFONTS") != 0;    //qws_shared_memory = qgetenv("QWS_NOSHARED") == 0;    int flags = 0;    char *p;    int argc = priv->argc;    char **argv = priv->argv;    int j;    // Set application name    if (argv && *argv) { //apparently, we allow people to pass 0 on the other platforms        p = strrchr(argv[0], '/');        appName = QString::fromLocal8Bit(p ? p + 1 : argv[0]);    }    // Get command line params    j = argc ? 1 : 0;    QString decoration;    for (int i=1; i<argc; i++) {        if (argv[i] && *argv[i] != '-') {            argv[j++] = argv[i];            continue;        }        QByteArray arg = argv[i];        if (arg == "-fn" || arg == "-font") {            if (++i < argc)                appFont = argv[i];        } else if (arg == "-bg" || arg == "-background") {            if (++i < argc)                appBGCol = argv[i];        } else if (arg == "-btn" || arg == "-button") {            if (++i < argc)                appBTNCol = argv[i];        } else if (arg == "-fg" || arg == "-foreground") {            if (++i < argc)                appFGCol = argv[i];        } else if (arg == "-name") {            if (++i < argc)                appName = QString::fromLocal8Bit(argv[i]);        } else if (arg == "-title") {            if (++i < argc)                mwTitle = argv[i];        } else if (arg == "-geometry") {            if (++i < argc)                mwGeometry = argv[i];        } else if (arg == "-shared") {            qws_shared_memory = true;        } else if (arg == "-noshared") {            qws_shared_memory = false;        } else if (arg == "-savefonts") {            qws_savefonts = true;        } else if (arg == "-nosavefonts") {            qws_savefonts = false;        } else if (arg == "-swcursor") {            qws_sw_cursor = true;        } else if (arg == "-noswcursor") {            qws_sw_cursor = false;        } else if (arg == "-keyboard") {            flags &= ~QWSServer::DisableKeyboard;        } else if (arg == "-nokeyboard") {            flags |= QWSServer::DisableKeyboard;        } else if (arg == "-mouse") {            flags &= ~QWSServer::DisableMouse;        } else if (arg == "-nomouse") {            flags |= QWSServer::DisableMouse;        } else if (arg == "-qws") {            type = QApplication::GuiServer;        } else if (arg == "-interlaced") {            qws_screen_is_interlaced = true;        } else if (arg == "-display") {            if (++i < argc)                qws_display_spec = argv[i];        } else if (arg == "-decoration") {            if (++i < argc)                decoration = QString::fromLocal8Bit(argv[i]);        } else {            argv[j++] = argv[i];        }    }    if(j < priv->argc) {        priv->argv[j] = 0;        priv->argc = j;    }    mouseInWidget = new QPointer<QWidget>;    const QString disp = QString::fromLatin1(qws_display_spec);    QRegExp regexp(QLatin1String(":(\\d+)$"));    if (regexp.lastIndexIn(disp) != -1) {        const QString capture = regexp.cap(1);        bool ok = false;        int id = capture.toInt(&ok);        if (ok)            qws_display_id = id;    }    if (type == QApplication::GuiServer) {        qt_appType = QApplication::Type(type);        qws_single_process = true;        QWSServer::startup(flags);        setenv("QWS_DISPLAY", qws_display_spec.constData(), 0);    }    if(qt_is_gui_used) {        init_display();#ifndef QT_NO_QWS_MANAGER        if (decoration.isEmpty()) {#ifndef QT_NO_QWS_DECORATION_STYLED            decoration = QString::fromLatin1("styled");#else            decoration = QString::fromLatin1("default");#endif        }        qws_decoration = QApplication::qwsSetDecoration(decoration);#ifndef QT_NO_QWS_DECORATION_DEFAULT        if (!qws_decoration)            QApplication::qwsSetDecoration(new QDecorationDefault);#endif#endif // QT_NO_QWS_MANAGER#ifndef QT_NO_QWS_INPUTMETHODS        qApp->setInputContext(new QWSInputContext);#endif    }/*### convert interlace style    if (qws_screen_is_interlaced)        QApplication::setStyle(new QInterlaceStyle);*/}bool qt_sendSpontaneousEvent(QObject *obj, QEvent *event){    return 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -