void QgsCompoundColorWidget::removePalette() { //get current scheme QList<QgsColorScheme *> schemeList = QgsApplication::colorSchemeRegistry()->schemes( QgsColorScheme::ShowInColorDialog ); int prevIndex = mSchemeComboBox->currentIndex(); if ( prevIndex >= schemeList.length() ) { return; } //make user scheme is a user removable scheme QgsUserColorScheme *userScheme = dynamic_cast<QgsUserColorScheme *>( schemeList.at( prevIndex ) ); if ( !userScheme ) { return; } if ( QMessageBox::question( this, tr( "Remove Color Palette" ), QString( tr( "Are you sure you want to remove %1?" ) ).arg( userScheme->schemeName() ), QMessageBox::Yes | QMessageBox::No, QMessageBox::No ) != QMessageBox::Yes ) { //user canceled return; } //remove palette and associated gpl file if ( !userScheme->erase() ) { //something went wrong return; } //remove scheme from registry QgsApplication::colorSchemeRegistry()->removeColorScheme( userScheme ); refreshSchemeComboBox(); prevIndex = std::max( std::min( prevIndex, mSchemeComboBox->count() - 1 ), 0 ); mSchemeComboBox->setCurrentIndex( prevIndex ); }