mainwindow.cpp

来自「奇趣公司比较新的qt/emd版本」· C++ 代码 · 共 962 行 · 第 1/3 页

CPP
962
字号
        i = possible;    if (i == -1) // no clue about the current font        i = 0;    stylecombo->setCurrentItem(i);    i = 0;    for (int psize = QApplication::font().pointSize(); i < psizecombo->count(); ++i) {        const int sz = psizecombo->text(i).toInt();        if (sz == psize) {            psizecombo->setCurrentItem(i);            break;        } else if(sz > psize) {            psizecombo->insertItem(i, QString::number(psize));            psizecombo->setCurrentItem(i);            break;        }    }    QStringList subs = QFont::substitutes(familysubcombo->currentText());    sublistbox->clear();    sublistbox->insertStringList(subs);    rtlExtensions->setChecked(settings.value(QLatin1String("useRtlExtensions"), false).toBool());#ifdef Q_WS_X11    inputStyle->setCurrentText(settings.value(QLatin1String("XIMInputStyle"), trUtf8("On The Spot")).toString());#else    inputStyle->hide();    inputStyleLabel->hide();#endif    fontembeddingcheckbox->setChecked(settings.value(QLatin1String("embedFonts"), true).toBool());    fontpaths = settings.value(QLatin1String("fontPath")).toStringList();    fontpathlistbox->insertStringList(fontpaths);    settings.endGroup(); // Qt    helpview->setText(tr(appearance_text));    setModified(false);}MainWindow::~MainWindow(){}#ifdef Q_WS_X11extern void qt_x11_apply_settings_in_all_apps();#endifvoid MainWindow::fileSave(){    if (! modified) {        statusBar()->showMessage(tr("No changes to be saved."), 2000);        return;    }    statusBar()->showMessage(tr("Saving changes..."));    {        QSettings settings(QLatin1String("Trolltech"));        settings.beginGroup(QLatin1String("Qt"));        QFontDatabase db;        QFont font = db.font(familycombo->currentText(),                             stylecombo->currentText(),                             psizecombo->currentText().toInt());        QStringList actcg, inactcg, discg;        int i;        for (i = 0; i < QColorGroup::NColorRoles; i++)            actcg << editPalette.color(QPalette::Active,                                       (QColorGroup::ColorRole) i).name();        for (i = 0; i < QColorGroup::NColorRoles; i++)            inactcg << editPalette.color(QPalette::Inactive,                                         (QColorGroup::ColorRole) i).name();        for (i = 0; i < QColorGroup::NColorRoles; i++)            discg << editPalette.color(QPalette::Disabled,                                       (QColorGroup::ColorRole) i).name();        settings.setValue(QLatin1String("font"), font.toString());        settings.setValue(QLatin1String("Palette/active"), actcg);        settings.setValue(QLatin1String("Palette/inactive"), inactcg);        settings.setValue(QLatin1String("Palette/disabled"), discg);        settings.setValue(QLatin1String("fontPath"), fontpaths);        settings.setValue(QLatin1String("embedFonts"), fontembeddingcheckbox->isChecked());        settings.setValue(QLatin1String("style"), gstylecombo->currentText());        settings.setValue(QLatin1String("doubleClickInterval"), dcispin->value());        settings.setValue(QLatin1String("cursorFlashTime"), cfispin->value() == 9 ? 0 : cfispin->value() );        settings.setValue(QLatin1String("wheelScrollLines"), wslspin->value());        settings.setValue(QLatin1String("resolveSymlinks"), resolvelinks->isChecked());        QSize strut(strutwidth->value(), strutheight->value());        settings.setValue(QLatin1String("globalStrut/width"), strut.width());        settings.setValue(QLatin1String("globalStrut/height"), strut.height());        settings.setValue(QLatin1String("useRtlExtensions"), rtlExtensions->isChecked());#ifdef Q_WS_X11        QString style = inputStyle->currentText();        QString str = QLatin1String("On The Spot");        if ( style == trUtf8( "Over The Spot" ) )            str = QLatin1String("Over The Spot");        else if ( style == trUtf8( "Off The Spot" ) )            str = QLatin1String("Off The Spot");        else if ( style == trUtf8( "Root" ) )            str = QLatin1String("Root");        settings.setValue( QLatin1String("XIMInputStyle"), str );#endif        QStringList effects;        if (effectcheckbox->isChecked()) {            effects << QLatin1String("general");            switch (menueffect->currentItem()) {            case 1: effects << QLatin1String("animatemenu"); break;            case 2: effects << QLatin1String("fademenu"); break;            }            switch (comboeffect->currentItem()) {            case 1: effects << QLatin1String("animatecombo"); break;            }            switch (tooltipeffect->currentItem()) {            case 1: effects << QLatin1String("animatetooltip"); break;            case 2: effects << QLatin1String("fadetooltip"); break;            }            switch ( toolboxeffect->currentItem() ) {            case 1: effects << QLatin1String("animatetoolbox"); break;            }        } else            effects << QLatin1String("none");        settings.setValue(QLatin1String("GUIEffects"), effects);        QStringList familysubs = QFont::substitutions();        QStringList::Iterator fit = familysubs.begin();        settings.beginGroup(QLatin1String("Font Substitutions"));        while (fit != familysubs.end()) {            QStringList subs = QFont::substitutes(*fit);            settings.setValue(*fit, subs);            fit++;        }        settings.endGroup(); // Font Substitutions        settings.endGroup(); // Qt    }#if defined(Q_WS_X11)    qt_x11_apply_settings_in_all_apps();#endif // Q_WS_X11    setModified(false);    statusBar()->showMessage(QLatin1String("Saved changes."));}void MainWindow::fileExit(){    qApp->closeAllWindows();}void MainWindow::setModified(bool m){    if (modified == m)        return;    modified = m;    fileSaveAction->setEnabled(m);}void MainWindow::buildPalette(){    int i;    QColorGroup cg;    QColor btn = buttonMainColor->color();    QColor back = buttonMainColor2->color();    QPalette automake( btn, back );    for (i = 0; i<9; i++)        cg.setColor( centralFromItem(i), automake.active().color( centralFromItem(i) ) );    editPalette.setActive( cg );    buildActiveEffect();    cg = editPalette.inactive();    QPalette temp( editPalette.active().color( QColorGroup::Button ),                   editPalette.active().color( QColorGroup::Window ) );    for (i = 0; i<9; i++)        cg.setColor( centralFromItem(i), temp.inactive().color( centralFromItem(i) ) );    editPalette.setInactive( cg );    buildInactiveEffect();    cg = editPalette.disabled();    for (i = 0; i<9; i++)        cg.setColor( centralFromItem(i), temp.disabled().color( centralFromItem(i) ) );    editPalette.setDisabled( cg );    buildDisabledEffect();    updateColorButtons();    setModified(true);}void MainWindow::buildActiveEffect(){    QColorGroup cg = editPalette.active();    QColor btn = cg.color( QColorGroup::Button );    QPalette temp( btn, btn );    for (int i = 0; i<5; i++)        cg.setColor( effectFromItem(i), temp.active().color( effectFromItem(i) ) );    editPalette.setActive( cg );    setPreviewPalette( editPalette );    updateColorButtons();}void MainWindow::buildInactive(){    editPalette.setInactive( editPalette.active() );    buildInactiveEffect();}void MainWindow::buildInactiveEffect(){    QColorGroup cg = editPalette.inactive();    QColor light, midlight, mid, dark, shadow;    QColor btn = cg.color( QColorGroup::Button );    light = btn.light(150);    midlight = btn.light(115);    mid = btn.dark(150);    dark = btn.dark();    shadow = Qt::black;    cg.setColor( QColorGroup::Light, light );    cg.setColor( QColorGroup::Midlight, midlight );    cg.setColor( QColorGroup::Mid, mid );    cg.setColor( QColorGroup::Dark, dark );    cg.setColor( QColorGroup::Shadow, shadow );    editPalette.setInactive( cg );    setPreviewPalette( editPalette );    updateColorButtons();}void MainWindow::buildDisabled(){    QColorGroup cg = editPalette.active();    cg.setColor( QColorGroup::ButtonText, Qt::darkGray );    cg.setColor( QColorGroup::WindowText, Qt::darkGray );    cg.setColor( QColorGroup::Text, Qt::darkGray );    cg.setColor( QColorGroup::HighlightedText, Qt::darkGray );    editPalette.setDisabled( cg );    buildDisabledEffect();}void MainWindow::buildDisabledEffect(){    QColorGroup cg = editPalette.disabled();    QColor light, midlight, mid, dark, shadow;    QColor btn = cg.color( QColorGroup::Button );    light = btn.light(150);    midlight = btn.light(115);    mid = btn.dark(150);    dark = btn.dark();    shadow = Qt::black;    cg.setColor( QColorGroup::Light, light );    cg.setColor( QColorGroup::Midlight, midlight );    cg.setColor( QColorGroup::Mid, mid );    cg.setColor( QColorGroup::Dark, dark );    cg.setColor( QColorGroup::Shadow, shadow );    editPalette.setDisabled( cg );    setPreviewPalette( editPalette );    updateColorButtons();}void MainWindow::setPreviewPalette( const QPalette& pal ){    QColorGroup cg;    switch (paletteCombo->currentItem()) {    case 0:    default:        cg = pal.active();        break;    case 1:        cg = pal.inactive();        break;    case 2:        cg = pal.disabled();        break;    }    previewPalette.setActive( cg );    previewPalette.setInactive( cg );    previewPalette.setDisabled( cg );    previewFrame->setPreviewPalette(previewPalette);}

⌨️ 快捷键说明

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