|
|
|
@ -282,49 +282,52 @@ void PANEL_COLOR_SETTINGS::createSwatch( int aLayer, const wxString& aName ) |
|
|
|
|
|
|
|
void PANEL_COLOR_SETTINGS::ShowColorContextMenu( wxMouseEvent& aEvent, int aLayer ) |
|
|
|
{ |
|
|
|
auto selected = |
|
|
|
static_cast<COLOR_SETTINGS*>( m_cbTheme->GetClientData( m_cbTheme->GetSelection() ) ); |
|
|
|
int themeSel = m_cbTheme->GetSelection(); |
|
|
|
|
|
|
|
wxCHECK_RET( selected, wxT( "Invalid color theme selected" ) ); |
|
|
|
|
|
|
|
COLOR4D current = m_currentSettings->GetColor( aLayer ); |
|
|
|
COLOR4D saved = selected->GetColor( aLayer ); |
|
|
|
bool readOnly = m_currentSettings->IsReadOnly(); |
|
|
|
|
|
|
|
wxMenu menu; |
|
|
|
if( themeSel >= 0 ) |
|
|
|
{ |
|
|
|
COLOR_SETTINGS* selected = static_cast<COLOR_SETTINGS*>( m_cbTheme->GetClientData( themeSel ) ); |
|
|
|
|
|
|
|
KIUI::AddMenuItem( &menu, ID_COPY, _( "Copy color" ), KiBitmap( BITMAPS::copy ) ); |
|
|
|
wxCHECK_RET( selected, wxT( "Invalid color theme selected" ) ); |
|
|
|
|
|
|
|
if( !readOnly && m_copied != COLOR4D::UNSPECIFIED ) |
|
|
|
KIUI::AddMenuItem( &menu, ID_PASTE, _( "Paste color" ), KiBitmap( BITMAPS::paste ) ); |
|
|
|
COLOR4D current = m_currentSettings->GetColor( aLayer ); |
|
|
|
COLOR4D saved = selected->GetColor( aLayer ); |
|
|
|
bool readOnly = m_currentSettings->IsReadOnly(); |
|
|
|
|
|
|
|
if( !readOnly && current != saved ) |
|
|
|
KIUI::AddMenuItem( &menu, ID_REVERT, _( "Revert to saved color" ), |
|
|
|
KiBitmap( BITMAPS::undo ) ); |
|
|
|
wxMenu menu; |
|
|
|
|
|
|
|
menu.Bind( wxEVT_COMMAND_MENU_SELECTED, |
|
|
|
[&]( wxCommandEvent& aCmd ) |
|
|
|
{ |
|
|
|
switch( aCmd.GetId() ) |
|
|
|
{ |
|
|
|
case ID_COPY: |
|
|
|
m_copied = current; |
|
|
|
break; |
|
|
|
KIUI::AddMenuItem( &menu, ID_COPY, _( "Copy color" ), KiBitmap( BITMAPS::copy ) ); |
|
|
|
|
|
|
|
case ID_PASTE: |
|
|
|
updateColor( aLayer, m_copied ); |
|
|
|
break; |
|
|
|
if( !readOnly && m_copied != COLOR4D::UNSPECIFIED ) |
|
|
|
KIUI::AddMenuItem( &menu, ID_PASTE, _( "Paste color" ), KiBitmap( BITMAPS::paste ) ); |
|
|
|
|
|
|
|
case ID_REVERT: |
|
|
|
updateColor( aLayer, saved ); |
|
|
|
break; |
|
|
|
if( !readOnly && current != saved ) |
|
|
|
KIUI::AddMenuItem( &menu, ID_REVERT, _( "Revert to saved color" ), KiBitmap( BITMAPS::undo ) ); |
|
|
|
|
|
|
|
default: |
|
|
|
aCmd.Skip(); |
|
|
|
} |
|
|
|
} ); |
|
|
|
|
|
|
|
PopupMenu( &menu ); |
|
|
|
menu.Bind( wxEVT_COMMAND_MENU_SELECTED, |
|
|
|
[&]( wxCommandEvent& aCmd ) |
|
|
|
{ |
|
|
|
switch( aCmd.GetId() ) |
|
|
|
{ |
|
|
|
case ID_COPY: |
|
|
|
m_copied = current; |
|
|
|
break; |
|
|
|
|
|
|
|
case ID_PASTE: |
|
|
|
updateColor( aLayer, m_copied ); |
|
|
|
break; |
|
|
|
|
|
|
|
case ID_REVERT: |
|
|
|
updateColor( aLayer, saved ); |
|
|
|
break; |
|
|
|
|
|
|
|
default: |
|
|
|
aCmd.Skip(); |
|
|
|
} |
|
|
|
} ); |
|
|
|
|
|
|
|
PopupMenu( &menu ); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|