Added "Copy" to right click menu in WX_HTML_REPORT_PANEL

This commit is contained in:
Maciej Suminski 2018-03-19 17:03:36 +01:00
parent 17d63dbc1f
commit a42aed3305
5 changed files with 40 additions and 8 deletions

View File

@ -23,7 +23,7 @@
#include <wildcards_and_files_ext.h> #include <wildcards_and_files_ext.h>
#include <gal/color4d.h> #include <gal/color4d.h>
#include <wx/clipbrd.h>
WX_HTML_REPORT_PANEL::WX_HTML_REPORT_PANEL( wxWindow* parent, WX_HTML_REPORT_PANEL::WX_HTML_REPORT_PANEL( wxWindow* parent,
wxWindowID id, wxWindowID id,
@ -38,6 +38,9 @@ WX_HTML_REPORT_PANEL::WX_HTML_REPORT_PANEL( wxWindow* parent,
{ {
syncCheckboxes(); syncCheckboxes();
m_htmlView->SetPage( addHeader( "" ) ); m_htmlView->SetPage( addHeader( "" ) );
Connect( wxEVT_COMMAND_MENU_SELECTED,
wxMenuEventHandler( WX_HTML_REPORT_PANEL::onMenuEvent ), NULL, this );
} }
@ -275,12 +278,36 @@ wxString WX_HTML_REPORT_PANEL::generatePlainText( const REPORT_LINE& aLine )
} }
void WX_HTML_REPORT_PANEL::onRightClick( wxMouseEvent& event )
{
wxMenu popup;
popup.Append( wxID_COPY, "Copy" );
PopupMenu( &popup );
}
void WX_HTML_REPORT_PANEL::onMenuEvent( wxMenuEvent& event )
{
if( event.GetId() == wxID_COPY )
{
if( wxTheClipboard->Open() )
{
bool primarySelection = wxTheClipboard->IsUsingPrimarySelection();
wxTheClipboard->UsePrimarySelection( false ); // required to use the main clipboard
wxTheClipboard->SetData( new wxTextDataObject( m_htmlView->SelectionToText() ) );
wxTheClipboard->Close();
wxTheClipboard->UsePrimarySelection( primarySelection );
}
}
}
void WX_HTML_REPORT_PANEL::onCheckBoxShowAll( wxCommandEvent& event ) void WX_HTML_REPORT_PANEL::onCheckBoxShowAll( wxCommandEvent& event )
{ {
if ( event.IsChecked() ) if( event.IsChecked() )
m_showAll = true; m_showAll = true;
else else
m_showAll = false; m_showAll = false;
syncCheckboxes(); syncCheckboxes();
refreshView(); refreshView();

View File

@ -98,6 +98,8 @@ private:
void scrollToBottom(); void scrollToBottom();
void syncCheckboxes(); void syncCheckboxes();
void onRightClick( wxMouseEvent& event ) override;
void onMenuEvent( wxMenuEvent& event );
void onCheckBoxShowAll( wxCommandEvent& event ) override; void onCheckBoxShowAll( wxCommandEvent& event ) override;
void onCheckBoxShowWarnings( wxCommandEvent& event ) override; void onCheckBoxShowWarnings( wxCommandEvent& event ) override;
void onCheckBoxShowErrors( wxCommandEvent& event ) override; void onCheckBoxShowErrors( wxCommandEvent& event ) override;

View File

@ -72,6 +72,7 @@ WX_HTML_REPORT_PANEL_BASE::WX_HTML_REPORT_PANEL_BASE( wxWindow* parent, wxWindow
m_box->Fit( this ); m_box->Fit( this );
// Connect Events // Connect Events
m_htmlView->Connect( wxEVT_RIGHT_UP, wxMouseEventHandler( WX_HTML_REPORT_PANEL_BASE::onRightClick ), NULL, this );
m_checkBoxShowAll->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( WX_HTML_REPORT_PANEL_BASE::onCheckBoxShowAll ), NULL, this ); m_checkBoxShowAll->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( WX_HTML_REPORT_PANEL_BASE::onCheckBoxShowAll ), NULL, this );
m_checkBoxShowErrors->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( WX_HTML_REPORT_PANEL_BASE::onCheckBoxShowErrors ), NULL, this ); m_checkBoxShowErrors->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( WX_HTML_REPORT_PANEL_BASE::onCheckBoxShowErrors ), NULL, this );
m_checkBoxShowWarnings->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( WX_HTML_REPORT_PANEL_BASE::onCheckBoxShowWarnings ), NULL, this ); m_checkBoxShowWarnings->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( WX_HTML_REPORT_PANEL_BASE::onCheckBoxShowWarnings ), NULL, this );
@ -83,6 +84,7 @@ WX_HTML_REPORT_PANEL_BASE::WX_HTML_REPORT_PANEL_BASE( wxWindow* parent, wxWindow
WX_HTML_REPORT_PANEL_BASE::~WX_HTML_REPORT_PANEL_BASE() WX_HTML_REPORT_PANEL_BASE::~WX_HTML_REPORT_PANEL_BASE()
{ {
// Disconnect Events // Disconnect Events
m_htmlView->Disconnect( wxEVT_RIGHT_UP, wxMouseEventHandler( WX_HTML_REPORT_PANEL_BASE::onRightClick ), NULL, this );
m_checkBoxShowAll->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( WX_HTML_REPORT_PANEL_BASE::onCheckBoxShowAll ), NULL, this ); m_checkBoxShowAll->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( WX_HTML_REPORT_PANEL_BASE::onCheckBoxShowAll ), NULL, this );
m_checkBoxShowErrors->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( WX_HTML_REPORT_PANEL_BASE::onCheckBoxShowErrors ), NULL, this ); m_checkBoxShowErrors->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( WX_HTML_REPORT_PANEL_BASE::onCheckBoxShowErrors ), NULL, this );
m_checkBoxShowWarnings->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( WX_HTML_REPORT_PANEL_BASE::onCheckBoxShowWarnings ), NULL, this ); m_checkBoxShowWarnings->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( WX_HTML_REPORT_PANEL_BASE::onCheckBoxShowWarnings ), NULL, this );

View File

@ -181,7 +181,7 @@
<event name="OnPaint"></event> <event name="OnPaint"></event>
<event name="OnRightDClick"></event> <event name="OnRightDClick"></event>
<event name="OnRightDown"></event> <event name="OnRightDown"></event>
<event name="OnRightUp"></event> <event name="OnRightUp">onRightClick</event>
<event name="OnSetFocus"></event> <event name="OnSetFocus"></event>
<event name="OnSize"></event> <event name="OnSize"></event>
<event name="OnUpdateUI"></event> <event name="OnUpdateUI"></event>

View File

@ -1,8 +1,8 @@
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Dec 30 2017) // C++ code generated with wxFormBuilder (version Oct 17 2016)
// http://www.wxformbuilder.org/ // http://www.wxformbuilder.org/
// //
// PLEASE DO *NOT* EDIT THIS FILE! // PLEASE DO "NOT" EDIT THIS FILE!
/////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////
#ifndef __WX_HTML_REPORT_PANEL_BASE_H__ #ifndef __WX_HTML_REPORT_PANEL_BASE_H__
@ -53,6 +53,7 @@ class WX_HTML_REPORT_PANEL_BASE : public wxPanel
wxButton* m_btnSaveReportToFile; wxButton* m_btnSaveReportToFile;
// Virtual event handlers, overide them in your derived class // Virtual event handlers, overide them in your derived class
virtual void onRightClick( wxMouseEvent& event ) { event.Skip(); }
virtual void onCheckBoxShowAll( wxCommandEvent& event ) { event.Skip(); } virtual void onCheckBoxShowAll( wxCommandEvent& event ) { event.Skip(); }
virtual void onCheckBoxShowErrors( wxCommandEvent& event ) { event.Skip(); } virtual void onCheckBoxShowErrors( wxCommandEvent& event ) { event.Skip(); }
virtual void onCheckBoxShowWarnings( wxCommandEvent& event ) { event.Skip(); } virtual void onCheckBoxShowWarnings( wxCommandEvent& event ) { event.Skip(); }