📄 paletteeditoradvancedimpl.cpp
字号:
/************************************************************************ Copyright (C) 2000 Trolltech AS. All rights reserved.**** This file is part of Qt Designer.**** This file may be distributed and/or modified under the terms of the** GNU General Public License version 2 as published by the Free Software** Foundation and appearing in the file LICENSE.GPL included in the** packaging of this file.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.**** See http://www.trolltech.com/gpl/ for GPL licensing information.**** Contact info@trolltech.com if any conditions of this licensing are** not clear to you.************************************************************************/#include "paletteeditoradvancedimpl.h"#include "styledbutton.h"#include "mainwindow.h"#include "formwindow.h"#include <qcheckbox.h>#include <qcombobox.h>#include <qapplication.h>#include <qpushbutton.h>#include <qlistbox.h>#include <qpainter.h>#include <qgroupbox.h>/*! Class used by PaletteEditor for bold combobox items*/class BoldListBoxText : public QListBoxText{public: BoldListBoxText( QString text, QListBox* lb = 0 );protected: virtual void paint( QPainter* );};BoldListBoxText::BoldListBoxText( QString text, QListBox* lb ) : QListBoxText( lb ){ setText( text );}void BoldListBoxText::paint( QPainter* painter ){ QFont f = painter->font(); f.setBold( TRUE ); painter->setFont( f ); QListBoxText::paint( painter );}PaletteEditorAdvanced::PaletteEditorAdvanced( FormWindow *fw, QWidget * parent, const char * name, bool modal, WFlags f ) : PaletteEditorAdvancedBase( parent, name, modal, f ), formWindow( fw ), selectedPalette(0){ connect( buttonHelp, SIGNAL( clicked() ), MainWindow::self, SLOT( showDialogHelp() ) ); buttonPixmap->setEditor( StyledButton::PixmapEditor ); editPalette = QApplication::palette(); setPreviewPalette( editPalette ); buttonPixmap->setFormWindow( formWindow ); // force toggle event checkBuildEffect->setChecked(FALSE); checkBuildEffect->setChecked(TRUE);}PaletteEditorAdvanced::~PaletteEditorAdvanced(){}void PaletteEditorAdvanced::onToggleBuildInactive( bool v ){ if (selectedPalette == 1) { groupCentral->setDisabled(v); groupEffect->setDisabled(v); } if (v) { buildInactive(); updateStyledButtons(); }}void PaletteEditorAdvanced::onToggleBuildDisabled( bool v ){ if (selectedPalette == 2) { groupCentral->setDisabled(v); groupEffect->setDisabled(v); } if (v) { buildDisabled(); updateStyledButtons(); }}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); } updateStyledButtons();}void PaletteEditorAdvanced::onChooseCentralColor(){ switch(selectedPalette) { case 0: default: mapToActiveCentralRole( buttonCentral->color() ); break; case 1: mapToInactiveCentralRole( buttonCentral->color() ); break; case 2: mapToDisabledCentralRole( buttonCentral->color() ); break; } updateStyledButtons();}void PaletteEditorAdvanced::onChooseEffectColor(){ switch(selectedPalette) { case 0: default: mapToActiveEffectRole( buttonEffect->color() ); break; case 1: mapToInactiveEffectRole( buttonEffect->color() ); break; case 2: mapToDisabledEffectRole( buttonEffect->color() ); break; } updateStyledButtons();}void PaletteEditorAdvanced::onChoosePixmap(){ if (buttonPixmap->pixmap()) { switch(selectedPalette) { case 0: default: mapToActivePixmapRole( *buttonPixmap->pixmap() ); break; case 1: mapToInactivePixmapRole( *buttonPixmap->pixmap() ); break; case 2: mapToDisabledPixmapRole( *buttonPixmap->pixmap() ); break; } } updateStyledButtons();}void PaletteEditorAdvanced::onToggleBuildEffects( bool on ){ if (!on) return; buildActiveEffect(); buildInactiveEffect(); buildDisabledEffect();}QColorGroup::ColorRole PaletteEditorAdvanced::centralFromItem( int item ){ switch( item ) { case 0: return QColorGroup::Background; case 1: return QColorGroup::Foreground; 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; case 9: return QColorGroup::Link; case 10: return QColorGroup::LinkVisited; 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 ){ QPixmap* p = 0; QColor c; switch(selectedPalette) { case 0: default: c = editPalette.active().color( centralFromItem(item) ); p = editPalette.active().brush( centralFromItem(item) ).pixmap(); break; case 1: c = editPalette.inactive().color( centralFromItem(item) ); p = editPalette.inactive().brush( centralFromItem(item) ).pixmap(); break; case 2: c = editPalette.disabled().color( centralFromItem(item) ); p = editPalette.disabled().brush( centralFromItem(item) ).pixmap(); break; } buttonCentral->setColor(c); if (p) buttonPixmap->setPixmap( *p ); else buttonPixmap->setPixmap( QPixmap() );}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 ) );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -