paletteeditoradvanced.cpp

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

CPP
583
字号
void PaletteEditorAdvanced::mapToInactiveEffectRole( const QColor& c ){    QColorGroup cg = editPalette.inactive();    cg.setColor( effectFromItem(comboEffect->currentItem()), c );    editPalette.setInactive( cg );    setPreviewPalette( editPalette );}void PaletteEditorAdvanced::mapToInactivePixmapRole( const QPixmap& pm ){    QColorGroup::ColorRole role = centralFromItem(comboCentral->currentItem());    QColorGroup cg = editPalette.inactive();    if (  !pm.isNull()  )        cg.setBrush( role, QBrush( cg.color( role ), pm ) );    else        cg.setBrush( role, QBrush( cg.color( role ) ) );    editPalette.setInactive( cg );    setPreviewPalette( editPalette );}void PaletteEditorAdvanced::mapToDisabledCentralRole( const QColor& c ){    QColorGroup cg = editPalette.disabled();    cg.setColor( centralFromItem(comboCentral->currentItem()), c );    editPalette.setDisabled( cg );    buildDisabledEffect();    setPreviewPalette( editPalette );}void PaletteEditorAdvanced::mapToDisabledEffectRole( const QColor& c ){    QColorGroup cg = editPalette.disabled();    cg.setColor( effectFromItem(comboEffect->currentItem()), c );    editPalette.setDisabled( cg );    setPreviewPalette( editPalette );}void PaletteEditorAdvanced::mapToDisabledPixmapRole( const QPixmap& pm ){    QColorGroup::ColorRole role = centralFromItem(comboCentral->currentItem());    QColorGroup cg = editPalette.disabled();    if (  !pm.isNull()  )        cg.setBrush( role, QBrush( cg.color( role ), pm ) );    else        cg.setBrush( role, QBrush( cg.color( role ) ) );    editPalette.setDisabled( cg );    setPreviewPalette( editPalette );}void PaletteEditorAdvanced::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 PaletteEditorAdvanced::buildInactive(){    editPalette.setInactive( editPalette.active() );    if ( checkBuildEffect->isChecked() )        buildInactiveEffect();    else {        setPreviewPalette( editPalette );        updateColorButtons();    }}void PaletteEditorAdvanced::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 PaletteEditorAdvanced::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 );    if ( checkBuildEffect->isChecked() )        buildDisabledEffect();    else {        setPreviewPalette( editPalette );        updateColorButtons();    }}void PaletteEditorAdvanced::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 PaletteEditorAdvanced::setPreviewPalette( const QPalette& pal ){    QColorGroup cg;    switch (selectedPalette) {    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 );}void PaletteEditorAdvanced::updateColorButtons(){    QColor central, effect;    switch (selectedPalette) {    case 0:    default:        central = editPalette.active().color( centralFromItem( comboCentral->currentItem() ) );        effect = editPalette.active().color( effectFromItem( comboEffect->currentItem() ) );        break;    case 1:        central = editPalette.inactive().color( centralFromItem( comboCentral->currentItem() ) );        effect = editPalette.inactive().color( effectFromItem( comboEffect->currentItem() ) );        break;    case 2:        central = editPalette.disabled().color( centralFromItem( comboCentral->currentItem() ) );        effect = editPalette.disabled().color( effectFromItem( comboEffect->currentItem() ) );        break;    }    buttonCentral->setColor(central);    buttonEffect->setColor(effect);}void PaletteEditorAdvanced::setPal( const QPalette& pal ){    editPalette = pal;    setPreviewPalette( pal );    updateColorButtons();}QPalette PaletteEditorAdvanced::pal() const{    return editPalette;}void PaletteEditorAdvanced::setupBackgroundMode( Qt::BackgroundMode mode ){    int initRole = 0;    switch( mode ) {    case Qt::PaletteBackground:        initRole = 0;        break;    case Qt::PaletteForeground:        initRole = 1;        break;    case Qt::PaletteButton:        initRole = 2;        break;    case Qt::PaletteBase:        initRole = 3;        break;    case Qt::PaletteText:        initRole = 4;        break;    case Qt::PaletteBrightText:        initRole = 5;        break;    case Qt::PaletteButtonText:        initRole = 6;        break;    case Qt::PaletteHighlight:        initRole = 7;        break;    case Qt::PaletteHighlightedText:        initRole = 8;        break;    case Qt::PaletteLight:        initRole = 9;        break;    case Qt::PaletteMidlight:        initRole = 10;        break;    case Qt::PaletteDark:        initRole = 11;        break;    case Qt::PaletteMid:        initRole = 12;        break;    case Qt::PaletteShadow:        initRole = 13;        break;    default:        initRole = -1;        break;    }    if ( initRole <= -1 ) return;    if (initRole > 8 ) {        comboEffect->setCurrentItem( initRole - 9 );    }    else {        comboCentral->setCurrentItem( initRole );    }}QPalette PaletteEditorAdvanced::getPalette( bool *ok, const QPalette &init,                                            Qt::BackgroundMode mode, QWidget* parent,                                            const char* name ){    PaletteEditorAdvanced* dlg = new PaletteEditorAdvanced( parent, name, true );    dlg->setupBackgroundMode( mode );    if ( init != QPalette() )        dlg->setPal( init );    int resultCode = dlg->exec();    QPalette result = init;    if ( resultCode == QDialog::Accepted ) {        if ( ok )            *ok = true;        result = dlg->pal();    } else {        if ( ok )            *ok = false;    }    delete dlg;    return result;}

⌨️ 快捷键说明

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