Commit 6aba45eb authored by charras's avatar charras

German translation update. Replaced dialog page settings dialogblock version...

German translation update. Replaced dialog page settings dialogblock version by the same built with wxFormBuilder
parent bdb0ca80
......@@ -4,6 +4,11 @@ KiCad ChangeLog 2010
Please add newer entries at the top, list the date and your name with
email address.
2010-mar-13 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr>
================================================================================
++ All:
Stable verion for kicad release
2010-mar-10 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr>
================================================================================
++Pcbnew:
......@@ -18,7 +23,7 @@ email address.
//if defined, used the layer manager copper layers order
// (from FRONT to BACK) to display inner layers.
// if not, use the default order (from BACK to FRONT)
Currently not active, can be changed if the correponding lines are uncommented in dialog_layers_setup.cpp
2010-Mar-3 UPDATE Dick Hollenbeck <dick@softplc.com>
......
......@@ -28,6 +28,7 @@ set(COMMON_SRCS
dialog_display_info_HTML_base.cpp
dialog_load_error.cpp
dcsvg.cpp
dialog_page_settings_base.cpp
displlst.cpp
dlist.cpp
drawframe.cpp
......
/////////////////////////////////////////////////////////////////////////////
// Name: dialog_page_settings.cpp
/////////////////////////////////////////////////////////////////////////////
/* The "Page Settings" dialog box created by this file (and setpage.h)
* contains seven checkboxes which *are* shown when that dialog box is
* invoked in EESchema, but which are *not* shown when that dialog box is
* invoked in Pcbnew instead.
*/
#include "fctsys.h"
#include "common.h"
#include "base_struct.h"
#include "class_drawpanel.h"
#include "class_base_screen.h"
#include "wxstruct.h"
#include "wx/valgen.h"
#ifdef EESCHEMA
#include "program.h"
#include "general.h"
#endif
#include "dialog_page_settings.h"
#define NB_ITEMS 11
Ki_PageDescr * SheetList[NB_ITEMS + 1] =
{
&g_Sheet_A4, &g_Sheet_A3, &g_Sheet_A2, &g_Sheet_A1, &g_Sheet_A0,
&g_Sheet_A, &g_Sheet_B, &g_Sheet_C, &g_Sheet_D, &g_Sheet_E,
&g_Sheet_user, NULL
};
/******************************************************************/
void WinEDA_DrawFrame::Process_PageSettings(wxCommandEvent& event)
/******************************************************************/
/* Creation de la fenetre de configuration
*/
{
DIALOG_PAGES_SETTINGS frame(this);
int diag = frame.ShowModal();
if ( DrawPanel && diag )
DrawPanel->Refresh();
}
DIALOG_PAGES_SETTINGS::DIALOG_PAGES_SETTINGS( WinEDA_DrawFrame* parent ):
DIALOG_PAGES_SETTINGS_BASE( parent )
{
m_Parent = parent;
m_Screen = m_Parent->GetBaseScreen();
m_Modified = 0;
m_SelectedSheet = NULL;
m_CurrentSelection = 0;
initDialog( );
GetSizer()->SetSizeHints(this);
Centre();
}
DIALOG_PAGES_SETTINGS::~DIALOG_PAGES_SETTINGS()
{
}
void DIALOG_PAGES_SETTINGS::initDialog()
{
wxString msg;
SetFocus();
SearchPageSizeSelection();
// Init display value for sheet User size
wxString format = m_TextSheetCount->GetLabel();
msg.Printf(format, m_Screen->m_NumberOfScreen);
m_TextSheetCount->SetLabel(msg);
format = m_TextSheetNumber->GetLabel();
msg.Printf(format, m_Screen->m_ScreenNumber);
m_TextSheetNumber->SetLabel(msg);
if( g_UnitMetric )
{
UserSizeX = (double)g_Sheet_user.m_Size.x * 25.4 / 1000;
UserSizeY = (double)g_Sheet_user.m_Size.y * 25.4 / 1000;
msg.Printf( wxT("%.2f"), UserSizeX );
m_TextUserSizeX->SetValue(msg);
msg.Printf( wxT("%.2f"), UserSizeY );
m_TextUserSizeY->SetValue(msg);
}
else
{
UserSizeX = (double)g_Sheet_user.m_Size.x / 1000;
UserSizeY = (double)g_Sheet_user.m_Size.y / 1000;
msg.Printf( wxT("%.3f"), UserSizeX );
m_TextUserSizeX->SetValue(msg);
msg.Printf( wxT("%.3f"), UserSizeY );
m_TextUserSizeY->SetValue(msg);
}
// Set validators
m_PageSizeBox->SetValidator( wxGenericValidator(& m_CurrentSelection) );
m_TextRevision->SetValidator( wxTextValidator(wxFILTER_NONE, & m_Screen->m_Revision) );
m_TextTitle->SetValidator( wxTextValidator(wxFILTER_NONE, & m_Screen->m_Title) );
m_TextCompany->SetValidator( wxTextValidator(wxFILTER_NONE, & m_Screen->m_Company) );
m_TextComment1->SetValidator( wxTextValidator(wxFILTER_NONE, & m_Screen->m_Commentaire1) );
m_TextComment2->SetValidator( wxTextValidator(wxFILTER_NONE, & m_Screen->m_Commentaire2) );
m_TextComment3->SetValidator( wxTextValidator(wxFILTER_NONE, & m_Screen->m_Commentaire3) );
m_TextComment4->SetValidator( wxTextValidator(wxFILTER_NONE, & m_Screen->m_Commentaire4) );
#ifndef EESCHEMA
m_RevisionExport->Show(false);
m_TitleExport->Show(false);
m_CompanyExport->Show(false);
m_Comment1Export->Show(false);
m_Comment2Export->Show(false);
m_Comment3Export->Show(false);
m_Comment4Export->Show(false);
#endif
}
/*!
* wxEVT_CLOSE_WINDOW event handler for ID_DIALOG
*/
void DIALOG_PAGES_SETTINGS::OnCloseWindow( wxCloseEvent& event )
{
EndModal( m_Modified );
}
/*!
* wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_OK
*/
void DIALOG_PAGES_SETTINGS::OnOkClick( wxCommandEvent& event )
{
SavePageSettings( event );
m_Modified = 1;
Close( TRUE );
}
/*!
* wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL
*/
void DIALOG_PAGES_SETTINGS::OnCancelClick( wxCommandEvent& event )
{
Close( TRUE );
}
/*****************************************************************/
void DIALOG_PAGES_SETTINGS::SavePageSettings(wxCommandEvent& event)
/*****************************************************************/
/* Mise a jour effective des textes et dimensions
*/
{
double dtmp;
wxString msg;
m_Screen->m_Revision = m_TextRevision->GetValue();
m_Screen->m_Company = m_TextCompany->GetValue();
m_Screen->m_Title = m_TextTitle->GetValue();
m_Screen->m_Commentaire1 = m_TextComment1->GetValue();
m_Screen->m_Commentaire2 = m_TextComment2->GetValue();
m_Screen->m_Commentaire3 = m_TextComment3->GetValue();
m_Screen->m_Commentaire4 = m_TextComment4->GetValue();
msg = m_TextUserSizeX->GetValue();
msg.ToDouble(&dtmp);
UserSizeX = dtmp;
msg = m_TextUserSizeY->GetValue();
msg.ToDouble(&dtmp);
UserSizeY = dtmp;
int ii = m_PageSizeBox->GetSelection();
if( ii < 0 )
ii = 0;
m_SelectedSheet = SheetList[ii];
m_Screen->m_CurrentSheetDesc = m_SelectedSheet;
if( g_UnitMetric )
{
g_Sheet_user.m_Size.x = (int)( UserSizeX * 1000 / 25.4 );
g_Sheet_user.m_Size.y = (int)( UserSizeY * 1000 / 25.4 );
}
else
{
g_Sheet_user.m_Size.x = (int)( UserSizeX * 1000 );
g_Sheet_user.m_Size.y = (int)( UserSizeY * 1000 );
}
if( g_Sheet_user.m_Size.x < 6000 )
g_Sheet_user.m_Size.x = 6000;
if( g_Sheet_user.m_Size.x > 44000 )
g_Sheet_user.m_Size.x = 44000;
if( g_Sheet_user.m_Size.y < 4000 )
g_Sheet_user.m_Size.y = 4000;
if( g_Sheet_user.m_Size.y > 44000 )
g_Sheet_user.m_Size.y = 44000;
#ifdef EESCHEMA
/* Exports settings to other sheets if requested: */
SCH_SCREEN * screen;
/* Build the screen list */
EDA_ScreenList ScreenList;
/* Update the datas */
for( screen = ScreenList.GetFirst(); screen != NULL; screen = ScreenList.GetNext() )
{
if( screen == m_Screen )
continue;
if( m_RevisionExport->IsChecked() )
screen->m_Revision = m_Screen->m_Revision;
if( m_TitleExport->IsChecked() )
screen->m_Title =m_Screen->m_Title;
if( m_CompanyExport->IsChecked() )
screen->m_Company = m_Screen->m_Company;
if( m_Comment1Export->IsChecked() )
screen->m_Commentaire1 = m_Screen->m_Commentaire1;
if( m_Comment2Export->IsChecked() )
screen->m_Commentaire2 = m_Screen->m_Commentaire2;
if( m_Comment3Export->IsChecked() )
screen->m_Commentaire3 = m_Screen->m_Commentaire3;
if( m_Comment4Export->IsChecked() )
screen->m_Commentaire4 = m_Screen->m_Commentaire4;
}
#endif
m_Screen->SetModify();
m_Screen->SetRefreshReq();
}
/*******************************************************/
void DIALOG_PAGES_SETTINGS::SearchPageSizeSelection()
/*******************************************************/
/* Search the correct index to activate the radiobox list size selection
* according to the current page size
*/
{
Ki_PageDescr * sheet;
int ii;
m_CurrentSelection = NB_ITEMS - 1;
for( ii = 0; ii < NB_ITEMS; ii++ )
{
sheet = SheetList[ii];
if( m_Parent->GetBaseScreen()->m_CurrentSheetDesc == sheet )
m_CurrentSelection = ii;
}
}
/////////////////////////////////////////////////////////////////////////////
// Name: setpage.h
/////////////////////////////////////////////////////////////////////////////
#ifndef _DIALOG_PAGES_SETTINGS_H_
#define _DIALOG_PAGES_SETTINGS_H_
#include "dialog_page_settings_base.h"
/*!
* DIALOG_PAGES_SETTINGS class declaration
*/
class DIALOG_PAGES_SETTINGS: public DIALOG_PAGES_SETTINGS_BASE
{
private:
WinEDA_DrawFrame *m_Parent;
BASE_SCREEN * m_Screen;
int m_Modified;
Ki_PageDescr * m_SelectedSheet;
float UserSizeX, UserSizeY;
int m_CurrentSelection;
public:
DIALOG_PAGES_SETTINGS( WinEDA_DrawFrame* parent );
~DIALOG_PAGES_SETTINGS();
private:
/// Initialises member variables
void initDialog();
/// wxEVT_CLOSE_WINDOW event handler for ID_DIALOG
void OnCloseWindow( wxCloseEvent& event );
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_OK
void OnOkClick( wxCommandEvent& event );
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL
void OnCancelClick( wxCommandEvent& event );
void SearchPageSizeSelection();
void SavePageSettings(wxCommandEvent& event);
void ReturnSizeSelected(wxCommandEvent& event);
};
#endif // _DIALOG_PAGES_SETTINGS_H_
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Apr 16 2008)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
///////////////////////////////////////////////////////////////////////////
#ifndef __dialog_page_settings_base__
#define __dialog_page_settings_base__
#include <wx/intl.h>
#include <wx/string.h>
#include <wx/radiobox.h>
#include <wx/gdicmn.h>
#include <wx/font.h>
#include <wx/colour.h>
#include <wx/settings.h>
#include <wx/stattext.h>
#include <wx/textctrl.h>
#include <wx/sizer.h>
#include <wx/checkbox.h>
#include <wx/statbox.h>
#include <wx/button.h>
#include <wx/dialog.h>
///////////////////////////////////////////////////////////////////////////
#define ID_TEXTCTRL_USER_PAGE_SIZE_X 1000
#define ID_TEXTCTRL_USER_PAGE_SIZE_Y 1001
#define ID_TEXTCTRL_REVISION 1002
#define ID_CHECKBOX_REVISION 1003
#define ID_TEXTCTRL_TITLE 1004
#define ID_TEXTCTRL_COMPANY 1005
#define ID_CHECKBOX_COMPANY 1006
#define ID_TEXTCTRL_COMMENT1 1007
#define ID_CHECKBOX_COMMENT1 1008
#define ID_TEXTCTRL_COMMENT2 1009
#define ID_CHECKBOX_COMMENT2 1010
#define ID_TEXTCTRL_COMMENT3 1011
#define ID_CHECKBOX_COMMENT3 1012
#define ID_TEXTCTRL_COMMENT4 1013
#define ID_CHECKBOX_COMMENT4 1014
///////////////////////////////////////////////////////////////////////////////
/// Class DIALOG_PAGES_SETTINGS_BASE
///////////////////////////////////////////////////////////////////////////////
class DIALOG_PAGES_SETTINGS_BASE : public wxDialog
{
private:
protected:
wxRadioBox* m_PageSizeBox;
wxStaticText* UserPageSizeX;
wxTextCtrl* m_TextUserSizeX;
wxStaticText* UserPageSizeY;
wxTextCtrl* m_TextUserSizeY;
wxStaticText* m_TextSheetCount;
wxStaticText* m_TextSheetNumber;
wxTextCtrl* m_TextRevision;
wxCheckBox* m_RevisionExport;
wxTextCtrl* m_TextTitle;
wxCheckBox* m_TitleExport;
wxTextCtrl* m_TextCompany;
wxCheckBox* m_CompanyExport;
wxTextCtrl* m_TextComment1;
wxCheckBox* m_Comment1Export;
wxTextCtrl* m_TextComment2;
wxCheckBox* m_Comment2Export;
wxTextCtrl* m_TextComment3;
wxCheckBox* m_Comment3Export;
wxTextCtrl* m_TextComment4;
wxCheckBox* m_Comment4Export;
wxStdDialogButtonSizer* m_sdbSizer1;
wxButton* m_sdbSizer1OK;
wxButton* m_sdbSizer1Cancel;
// Virtual event handlers, overide them in your derived class
virtual void OnCloseWindow( wxCloseEvent& event ){ event.Skip(); }
virtual void OnTextctrlUserPageSizeXTextUpdated( wxCommandEvent& event ){ event.Skip(); }
virtual void OnTextctrlUserPageSizeYTextUpdated( wxCommandEvent& event ){ event.Skip(); }
virtual void OnCheckboxTitleClick( wxCommandEvent& event ){ event.Skip(); }
virtual void OnCancelClick( wxCommandEvent& event ){ event.Skip(); }
virtual void OnOkClick( wxCommandEvent& event ){ event.Skip(); }
public:
DIALOG_PAGES_SETTINGS_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Page Settings"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 439,497 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
~DIALOG_PAGES_SETTINGS_BASE();
};
#endif //__dialog_page_settings_base__
......@@ -125,8 +125,8 @@ set(EESCHEMA_SRCS
viewlibs.cpp)
set(EESCHEMA_EXTRA_SRCS
../common/dialog_page_settings.cpp
../common/sch_item_struct.cpp
../share/setpage.cpp
)
if(WIN32)
......
No preview for this file type
This diff is collapsed.
......@@ -174,7 +174,7 @@ set(PCBNEW_SRCS
)
set(PCBNEW_EXTRA_SRCS
../share/setpage.cpp
../common/dialog_page_settings.cpp
)
if(WIN32)
......
This diff is collapsed.
/////////////////////////////////////////////////////////////////////////////
// Name: setpage.h
// Purpose:
// Author: jean-pierre Charras
// Modified by:
// Created: 13/11/2007 09:11:27
// RCS-ID:
// Copyright: License GNU
// Licence:
/////////////////////////////////////////////////////////////////////////////
/* The "Page Settings" dialog box created by this file (and setpage.cpp)
* contains seven checkboxes which *are* provided when that dialog box is
* invoked in EESchema, but which are *not* provided when that dialog box is
* invoked in Pcbnew instead. As such, various lines within this file
* (and setpage.cpp) are included on an appropriately conditional basis.
* (That aspect should be noted if the contents of this file (and setpage.cpp)
* are ever consequently modified as a consequence of setpage.pjd being
* opened in DialogBlocks (as that file now incorporates those checkboxes).)
*/
// Generated by DialogBlocks (unregistered), 13/11/2007 09:11:27
#ifndef _SETPAGE_H_
#define _SETPAGE_H_
#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
#pragma interface "setpage.h"
#endif
/*!
* Includes
*/
////@begin includes
#include "wx/valgen.h"
#include "wx/valtext.h"
#include "wx/statline.h"
////@end includes
/*!
* Forward declarations
*/
////@begin forward declarations
class wxBoxSizer;
class wxFlexGridSizer;
class wxStaticLine;
class wxStdDialogButtonSizer;
////@end forward declarations
/*!
* Control identifiers
*/
// NOTE: The following code has been modified by listing the seven checkbox-
// related definitions *only* within the EESchema version of this dialog box.
////@begin control identifiers
#define ID_DIALOG 10000
#define ID_RADIOBOX_PAGE_SIZE 10001
#define ID_TEXTCTRL_USER_PAGE_SIZE_X 10002
#define ID_TEXTCTRL_USER_PAGE_SIZE_Y 10003
#define ID_TEXTCTRL_REVISION 10004
#define ID_CHECKBOX_REVISION 10011
#define ID_TEXTCTRL_TITLE 10005
#define ID_CHECKBOX_TITLE 10012
#define ID_TEXTCTRL_COMPANY 10006
#define ID_CHECKBOX_COMPANY 10013
#define ID_TEXTCTRL_COMMENT1 10007
#define ID_CHECKBOX_COMMENT1 10014
#define ID_TEXTCTRL_COMMENT2 10008
#define ID_CHECKBOX_COMMENT2 10015
#define ID_TEXTCTRL_COMMENT3 10009
#define ID_CHECKBOX_COMMENT3 10016
#define ID_TEXTCTRL_COMMENT4 10010
#define ID_CHECKBOX_COMMENT4 10017
#define ID_STATICLINE 10018
#define SYMBOL_WINEDA_SETPAGEFRAME_STYLE wxDEFAULT_DIALOG_STYLE|MAYBE_RESIZE_BORDER
#define SYMBOL_WINEDA_SETPAGEFRAME_TITLE _("Page Settings")
#define SYMBOL_WINEDA_SETPAGEFRAME_IDNAME ID_DIALOG
#define SYMBOL_WINEDA_SETPAGEFRAME_SIZE wxSize(400, 300)
#define SYMBOL_WINEDA_SETPAGEFRAME_POSITION wxDefaultPosition
////@end control identifiers
/*!
* WinEDA_SetPageFrame class declaration
*/
class WinEDA_SetPageFrame: public wxDialog
{
DECLARE_DYNAMIC_CLASS( WinEDA_SetPageFrame )
DECLARE_EVENT_TABLE()
public:
/// Constructors
WinEDA_SetPageFrame( );
WinEDA_SetPageFrame( WinEDA_DrawFrame* parent,
wxWindowID id = SYMBOL_WINEDA_SETPAGEFRAME_IDNAME,
const wxString& caption = SYMBOL_WINEDA_SETPAGEFRAME_TITLE,
const wxPoint& pos = SYMBOL_WINEDA_SETPAGEFRAME_POSITION,
const wxSize& size = SYMBOL_WINEDA_SETPAGEFRAME_SIZE,
long style = SYMBOL_WINEDA_SETPAGEFRAME_STYLE );
/// Creation
bool Create( wxWindow* parent, wxWindowID id = SYMBOL_WINEDA_SETPAGEFRAME_IDNAME,
const wxString& caption = SYMBOL_WINEDA_SETPAGEFRAME_TITLE,
const wxPoint& pos = SYMBOL_WINEDA_SETPAGEFRAME_POSITION,
const wxSize& size = SYMBOL_WINEDA_SETPAGEFRAME_SIZE,
long style = SYMBOL_WINEDA_SETPAGEFRAME_STYLE );
/// Destructor
~WinEDA_SetPageFrame();
/// Initialises member variables
void Init();
/// Creates the controls and sizers
void CreateControls();
////@begin WinEDA_SetPageFrame event handler declarations
/// wxEVT_CLOSE_WINDOW event handler for ID_DIALOG
void OnCloseWindow( wxCloseEvent& event );
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_OK
void OnOkClick( wxCommandEvent& event );
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL
void OnCancelClick( wxCommandEvent& event );
////@end WinEDA_SetPageFrame event handler declarations
////@begin WinEDA_SetPageFrame member function declarations
/// Retrieves bitmap resources
wxBitmap GetBitmapResource( const wxString& name );
/// Retrieves icon resources
wxIcon GetIconResource( const wxString& name );
////@end WinEDA_SetPageFrame member function declarations
/// Should we show tooltips?
static bool ShowToolTips();
void SearchPageSizeSelection();
void SavePageSettings(wxCommandEvent& event);
void ReturnSizeSelected(wxCommandEvent& event);
// NOTE: The following code has been modified by listing the seven
// checkboxes *only* within the EESchema version of this dialog box.
////@begin WinEDA_SetPageFrame member variables
wxBoxSizer* OuterSizer;
wxBoxSizer* MainSizer;
wxFlexGridSizer* LeftColumnSizer;
wxRadioBox* m_PageSizeBox;
wxBoxSizer* UserSizeXSizer;
wxStaticText* UserPageSizeX;
wxTextCtrl* m_TextUserSizeX;
wxBoxSizer* UserSizeYSizer;
wxStaticText* UserPageSizeY;
wxTextCtrl* m_TextUserSizeY;
wxFlexGridSizer* RightColumnSizer;
wxBoxSizer* SheetInfoSizer;
wxStaticText* m_TextSheetCount;
wxStaticText* m_TextSheetNumber;
wxStaticBoxSizer* RevisionSizer;
wxTextCtrl* m_TextRevision;
wxCheckBox* m_RevisionExport;
wxStaticBoxSizer* TitleSizer;
wxTextCtrl* m_TextTitle;
wxCheckBox* m_TitleExport;
wxStaticBoxSizer* CompanySizer;
wxTextCtrl* m_TextCompany;
wxCheckBox* m_CompanyExport;
wxStaticBoxSizer* Comment1Sizer;
wxTextCtrl* m_TextComment1;
wxCheckBox* m_Comment1Export;
wxStaticBoxSizer* Comment2Sizer;
wxTextCtrl* m_TextComment2;
wxCheckBox* m_Comment2Export;
wxStaticBoxSizer* Comment3Sizer;
wxTextCtrl* m_TextComment3;
wxCheckBox* m_Comment3Export;
wxStaticBoxSizer* Comment4Sizer;
wxTextCtrl* m_TextComment4;
wxCheckBox* m_Comment4Export;
wxStaticLine* Line;
wxStdDialogButtonSizer* StdDialogButtonSizer;
wxButton* Button_OK;
wxButton* Button_Cancel;
////@end WinEDA_SetPageFrame member variables
WinEDA_DrawFrame *m_ParentDrawFrame;
BASE_SCREEN * m_Screen;
int m_Modified;
Ki_PageDescr * m_SelectedSheet;
float UserSizeX, UserSizeY;
int m_CurrentSelection;
};
#endif
// _SETPAGE_H_
This diff is collapsed.
release version:
2010 mar 13
2010 mar 14
files (.zip,.tgz):
kicad-2010-03-13-final
kicad-2010-03-14-final
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment