paletteeditoradvanced.cpp
来自「奇趣公司比较新的qt/emd版本」· C++ 代码 · 共 583 行 · 第 1/2 页
CPP
583 行
/******************************************************************************** Copyright (C) 1992-2007 Trolltech ASA. All rights reserved.**** This file is part of the tools applications 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://trolltech.com/products/qt/licenses/licensing/opensource/**** If you are unsure which license is appropriate for your use, please** review the following information:** http://trolltech.com/products/qt/licenses/licensing/licensingoverview** or contact the sales department at sales@trolltech.com.**** In addition, as a special exception, Trolltech gives you certain** additional rights. These rights are described in the Trolltech GPL** Exception version 1.0, which can be found at** http://www.trolltech.com/products/qt/gplexception/ and in the file** GPL_EXCEPTION.txt in this package.**** In addition, as a special exception, Trolltech, as the sole copyright** holder for Qt Designer, grants users of the Qt/Eclipse Integration** plug-in the right for the Qt/Eclipse Integration to link to** functionality provided by Qt Designer and its related libraries.**** Trolltech reserves all rights not expressly granted herein.**** 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 "paletteeditoradvanced.h"#include "colorbutton.h"#include <QCheckBox>#include <QComboBox>#include <QApplication>#include <QPushButton>#include <QPainter>#include <QGroupBox>PaletteEditorAdvanced::PaletteEditorAdvanced( QWidget * parent, const char * name, bool modal, Qt::WindowFlags f ) : PaletteEditorAdvancedBase( parent, name, modal, f ), selectedPalette(0){ // work around buggy ui file comboEffect->setEnabled(false); buttonEffect->setEnabled(false); onToggleBuildEffects(true); editPalette = QApplication::palette(); setPreviewPalette( editPalette );}PaletteEditorAdvanced::~PaletteEditorAdvanced(){}void PaletteEditorAdvanced::onToggleBuildInactive( bool v ){ if (selectedPalette == 1) { groupCentral->setDisabled(v); groupEffect->setDisabled(v); } if (v) { buildInactive(); updateColorButtons(); }}void PaletteEditorAdvanced::onToggleBuildDisabled( bool v ){ if (selectedPalette == 2) { groupCentral->setDisabled(v); groupEffect->setDisabled(v); } if (v) { buildDisabled(); updateColorButtons(); }}void PaletteEditorAdvanced::paletteSelected(int p){ selectedPalette = p; if(p == 1) { // inactive groupCentral->setDisabled(checkBuildInactive->isChecked()); groupEffect->setDisabled(checkBuildInactive->isChecked()); } else if (p == 2) { // disabled groupCentral->setDisabled(checkBuildDisabled->isChecked()); groupEffect->setDisabled(checkBuildDisabled->isChecked()); } else { groupCentral->setEnabled(true); groupEffect->setEnabled(true); } updateColorButtons();}void PaletteEditorAdvanced::onChooseCentralColor(){ switch(selectedPalette) { case 0: default: mapToActiveCentralRole( buttonCentral->color() ); break; case 1: mapToInactiveCentralRole( buttonCentral->color() ); break; case 2: mapToDisabledCentralRole( buttonCentral->color() ); break; } updateColorButtons();}void PaletteEditorAdvanced::onChooseEffectColor(){ switch(selectedPalette) { case 0: default: mapToActiveEffectRole( buttonEffect->color() ); break; case 1: mapToInactiveEffectRole( buttonEffect->color() ); break; case 2: mapToDisabledEffectRole( buttonEffect->color() ); break; } updateColorButtons();}void PaletteEditorAdvanced::onToggleBuildEffects( bool on ){ if (!on) return; buildActiveEffect(); buildInactiveEffect(); buildDisabledEffect();}QColorGroup::ColorRole PaletteEditorAdvanced::centralFromItem( int item ){ switch( item ) { case 0: return QColorGroup::Window; case 1: return QColorGroup::WindowText; case 2: return QColorGroup::Button; case 3: return QColorGroup::Base; case 4: return QColorGroup::Text; case 5: return QColorGroup::BrightText; case 6: return QColorGroup::ButtonText; case 7: return QColorGroup::Highlight; case 8: return QColorGroup::HighlightedText; default: return QColorGroup::NColorRoles; }}QColorGroup::ColorRole PaletteEditorAdvanced::effectFromItem( int item ){ switch( item ) { case 0: return QColorGroup::Light; case 1: return QColorGroup::Midlight; case 2: return QColorGroup::Mid; case 3: return QColorGroup::Dark; case 4: return QColorGroup::Shadow; default: return QColorGroup::NColorRoles; }}void PaletteEditorAdvanced::onCentral( int item ){ QColor c; switch(selectedPalette) { case 0: default: c = editPalette.active().color( centralFromItem(item) ); break; case 1: c = editPalette.inactive().color( centralFromItem(item) ); break; case 2: c = editPalette.disabled().color( centralFromItem(item) ); break; } buttonCentral->setColor(c);}void PaletteEditorAdvanced::onEffect( int item ){ QColor c; switch(selectedPalette) { case 0: default: c = editPalette.active().color( effectFromItem(item) ); break; case 1: editPalette.inactive().color( effectFromItem(item) ); break; case 2: editPalette.disabled().color( effectFromItem(item) ); break; } buttonEffect->setColor(c);}void PaletteEditorAdvanced::mapToActiveCentralRole( const QColor& c ){ QColorGroup cg = editPalette.active(); cg.setColor( centralFromItem(comboCentral->currentItem()), c ); editPalette.setActive( cg ); buildActiveEffect(); if(checkBuildInactive->isChecked()) buildInactive(); if(checkBuildDisabled->isChecked()) buildDisabled(); setPreviewPalette( editPalette );}void PaletteEditorAdvanced::mapToActiveEffectRole( const QColor& c ){ QColorGroup cg = editPalette.active(); cg.setColor( effectFromItem(comboEffect->currentItem()), c ); editPalette.setActive( cg ); if(checkBuildInactive->isChecked()) buildInactive(); if(checkBuildDisabled->isChecked()) buildDisabled(); setPreviewPalette( editPalette );}void PaletteEditorAdvanced::mapToActivePixmapRole( const QPixmap& pm ){ QColorGroup::ColorRole role = centralFromItem(comboCentral->currentItem()); QColorGroup cg = editPalette.active(); if ( !pm.isNull() ) cg.setBrush( role, QBrush( cg.color( role ), pm ) ); else cg.setBrush( role, QBrush( cg.color( role ) ) ); editPalette.setActive( cg ); buildActiveEffect(); if(checkBuildInactive->isChecked()) buildInactive(); if(checkBuildDisabled->isChecked()) buildDisabled(); setPreviewPalette( editPalette );}void PaletteEditorAdvanced::mapToInactiveCentralRole( const QColor& c ){ QColorGroup cg = editPalette.inactive(); cg.setColor( centralFromItem(comboCentral->currentItem()), c ); editPalette.setInactive( cg ); buildInactiveEffect(); setPreviewPalette( editPalette );}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?