📄 kgcolors.cpp
字号:
previewGrid = createGridLayout( previewGrp->layout() ); preview = new QListView( previewGrp, "colorPreView" ); preview->setShowSortIndicator(false); preview->setSorting(-1); preview->setEnabled( false ); preview->addColumn( i18n("Colors") ); preview->header()->setStretchEnabled( true, 0 ); previewGrid->addWidget( preview, 0 ,0 ); kgColorsLayout->addMultiCellWidget( hbox, 1 ,1, 0, 2 ); importBtn = new KPushButton(i18n("Import color-scheme"),parent); kgColorsLayout->addWidget(importBtn,2,0); exportBtn = new KPushButton(i18n("Export color-scheme"),parent); kgColorsLayout->addWidget(exportBtn,2,1); kgColorsLayout->addWidget(createSpacer(parent, ""), 2,2); connect(importBtn, SIGNAL(clicked()), this, SLOT(slotImportColors())); connect(exportBtn, SIGNAL(clicked()), this, SLOT(slotExportColors())); slotDisable();}int KgColors::addColorSelector( QString cfgName, QString name, QColor dflt, QString dfltName, ADDITIONAL_COLOR *addColor, int addColNum ){ int index = itemList.count() - offset; labelList.append( addLabel( colorsGrid, index, 0, name, colorsGrp, QString( "ColorsLabel%1" ).arg( index ).ascii() ) ); KonfiguratorColorChooser *chooser = createColorChooser( "Colors", cfgName, dflt, colorsGrp, false, addColor, addColNum ); chooser->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ); if( !dfltName.isEmpty() ) chooser->setDefaultText( dfltName ); colorsGrid->addWidget( chooser, index, 1 ); connect( chooser, SIGNAL( colorChanged() ), this, SLOT( generatePreview() ) ); if( !offset ) connect( chooser, SIGNAL( colorChanged() ), this, SLOT( slotActiveChanged() ) ); itemList.append( chooser ); itemNames.append( cfgName ); return index;}KonfiguratorColorChooser *KgColors::getColorSelector( QString name ){ QValueList<QString>::iterator it; int position = 0; for( it = itemNames.begin(); it != itemNames.end(); it++, position++ ) if( *it == name ) return itemList.at( position ); return 0;}QLabel *KgColors::getSelectorLabel( QString name ){ QValueList<QString>::iterator it; int position = 0; for( it = itemNames.begin(); it != itemNames.end(); it++, position++ ) if( *it == name ) return labelList.at( position ); return 0;}void KgColors::slotDisable(){ bool enabled = generals->find( "KDE Default" )->isChecked(); importBtn->setEnabled(!enabled); exportBtn->setEnabled(!enabled); for( int i = 0; labelList.at( i ) && i < endOfPanelColors ; i++ ) labelList.at( i )->setEnabled( !enabled ); for( int j = 0; itemList.at( j ) && j < endOfPanelColors ; j++ ) itemList.at( j )->setEnabled( !enabled ); generals->find("Enable Alternate Background")->setEnabled( enabled ); generals->find("Show Current Item Always")->setEnabled( !enabled ); generals->find("Dim Inactive Colors")->setEnabled( !enabled ); bool dimmed = !enabled && generals->find("Dim Inactive Colors")->isChecked(); if( dimmed ) inactiveColorStack->raiseWidget( dimmedInactiveWidget ); else inactiveColorStack->raiseWidget( normalInactiveWidget ); enabled = enabled || !generals->find( "Show Current Item Always" )->isChecked(); getColorSelector( "Inactive Current Foreground" )->setEnabled( !enabled ); getColorSelector( "Inactive Current Background" )->setEnabled( !enabled ); generatePreview();}void KgColors::slotActiveChanged(){ for( int i = 0; i != endOfActiveColors; i++ ) itemList.at( endOfActiveColors + i )->setDefaultColor( itemList.at( i )->getColor() );}void KgColors::slotForegroundChanged(){ QColor color = getColorSelector( "Foreground" )->getColor(); getColorSelector( "Directory Foreground" )->setDefaultColor( color ); getColorSelector( "Executable Foreground" )->setDefaultColor( color ); getColorSelector( "Symlink Foreground" )->setDefaultColor( color ); getColorSelector( "Invalid Symlink Foreground" )->setDefaultColor( color );}void KgColors::slotBackgroundChanged(){ QColor color = getColorSelector( "Background" )->getColor(); getColorSelector( "Alternate Background" )->changeAdditionalColor( 0, color ); getColorSelector( "Marked Background" )->changeAdditionalColor( 0, color ); getColorSelector( "Current Background" )->changeAdditionalColor( 0, color );}void KgColors::slotAltBackgroundChanged(){ QColor color = getColorSelector( "Alternate Background" )->getColor(); getColorSelector( "Alternate Marked Background" )->changeAdditionalColor( 0, color );}void KgColors::slotMarkedBackgroundChanged(){ QColor color = getColorSelector( "Marked Background" )->getColor(); getColorSelector( "Alternate Marked Background" )->setDefaultColor( color );}void KgColors::slotInactiveForegroundChanged(){ QColor color = getColorSelector( "Inactive Foreground" )->getColor(); getColorSelector( "Inactive Directory Foreground" )->changeAdditionalColor( 0, color ); getColorSelector( "Inactive Executable Foreground" )->changeAdditionalColor( 0, color ); getColorSelector( "Inactive Symlink Foreground" )->changeAdditionalColor( 0, color ); getColorSelector( "Inactive Invalid Symlink Foreground" )->changeAdditionalColor( 0, color );}void KgColors::slotInactiveBackgroundChanged(){ QColor color = getColorSelector( "Inactive Background" )->getColor(); getColorSelector( "Inactive Alternate Background" )->changeAdditionalColor( 0, color ); getColorSelector( "Inactive Marked Background" )->changeAdditionalColor( 0, color ); getColorSelector( "Inactive Current Background" )->changeAdditionalColor( 0, color );}void KgColors::slotInactiveAltBackgroundChanged(){ QColor color = getColorSelector( "Inactive Alternate Background" )->getColor(); getColorSelector( "Inactive Alternate Marked Background" )->changeAdditionalColor( 0, color );}void KgColors::slotInactiveMarkedBackgroundChanged(){ QColor color = getColorSelector( "Inactive Marked Background" )->getColor(); getColorSelector( "Inactive Alternate Marked Background" )->changeAdditionalColor( 1, color );}void KgColors::setColorWithDimming(PreviewItem * item, QColor foreground, QColor background, bool dimmed ){ if ( dimmed && dimFactor->value() < 100) { int dim = dimFactor->value(); QColor dimColor = getColorSelector("Dim Target Color")->getColor(); foreground = QColor((dimColor.red() * (100 - dim) + foreground.red() * dim) / 100, (dimColor.green() * (100 - dim) + foreground.green() * dim) / 100, (dimColor.blue() * (100 - dim) + foreground.blue() * dim) / 100); background = QColor((dimColor.red() * (100 - dim) + background.red() * dim) / 100, (dimColor.green() * (100 - dim) + background.green() * dim) / 100, (dimColor.blue() * (100 - dim) + background.blue() * dim) / 100); } item->setColor(foreground, background);}void KgColors::generatePreview(){ int currentPage = colorTabWidget->currentPageIndex(); preview->clear(); if( currentPage == 0 || currentPage == 1 ) { PreviewItem *pwMarkCur = new PreviewItem( preview, i18n( "Selected + Current" ) ); PreviewItem *pwMark2 = new PreviewItem( preview, i18n( "Selected 2" ) ); PreviewItem *pwMark1 = new PreviewItem( preview, i18n( "Selected 1" ) ); PreviewItem *pwCurrent = new PreviewItem( preview, i18n( "Current" ) ); PreviewItem *pwInvLink = new PreviewItem( preview, i18n( "Invalid symlink" ) ); PreviewItem *pwSymLink = new PreviewItem( preview, i18n( "Symbolic link" ) ); PreviewItem *pwApp = new PreviewItem( preview, i18n( "Application" ) ); PreviewItem *pwFile = new PreviewItem( preview, i18n( "File" ) ); PreviewItem *pwDir = new PreviewItem( preview, i18n( "Directory" ) ); bool isActive = currentPage == 0; // create local color cache instance, which does NOT affect the color cache instance using to paint the panels KrColorCache colCache;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -