Commit 26f2c04f authored by Lorenzo Marcantonio's avatar Lorenzo Marcantonio Committed by Wayne Stambaugh

Make title block date field modifiable by hand.

parent 82cc9233
......@@ -289,31 +289,6 @@ wxArrayString* wxStringSplit( wxString aString, wxChar aSplitter )
}
/*
* Return the string date "day month year" like "23 jun 2005"
*/
wxString GenDate()
{
static const wxString mois[12] =
{
wxT( "jan" ), wxT( "feb" ), wxT( "mar" ), wxT( "apr" ), wxT( "may" ), wxT( "jun" ),
wxT( "jul" ), wxT( "aug" ), wxT( "sep" ), wxT( "oct" ), wxT( "nov" ), wxT( "dec" )
};
time_t buftime;
struct tm* Date;
wxString string_date;
time( &buftime );
Date = gmtime( &buftime );
string_date.Printf( wxT( "%d %s %d" ), Date->tm_mday,
GetChars( mois[Date->tm_mon] ),
Date->tm_year + 1900 );
return string_date;
}
int ProcessExecute( const wxString& aCommandLine, int aFlags, wxProcess *callback )
{
return wxExecute( aCommandLine, aFlags, callback );
......@@ -357,3 +332,15 @@ double RoundTo0( double x, double precision )
return (double) ix / precision;
}
wxString FormatDateLong( const wxDateTime &aDate )
{
/* GetInfo was introduced only on wx 2.9; for portability reason an
* hardcoded format is used on wx 2.8 */
#if wxCHECK_VERSION( 2, 9, 0 )
return aDate.Format( wxLocale::GetInfo( wxLOCALE_LONG_DATE_FMT ) );
#else
return aDate.Format( wxT("%d %b %Y") );
#endif
}
......@@ -182,6 +182,7 @@ void DIALOG_PAGES_SETTINGS::initDialog()
}
m_TextRevision->SetValue( m_tb.GetRevision() );
m_TextDate->SetValue( m_tb.GetDate() );
m_TextTitle->SetValue( m_tb.GetTitle() );
m_TextCompany->SetValue( m_tb.GetCompany() );
m_TextComment1->SetValue( m_tb.GetComment1() );
......@@ -191,6 +192,7 @@ void DIALOG_PAGES_SETTINGS::initDialog()
#ifndef EESCHEMA
m_RevisionExport->Show( false );
m_DateExport->Show( false );
m_TitleExport->Show( false );
m_CompanyExport->Show( false );
m_Comment1Export->Show( false );
......@@ -310,6 +312,17 @@ void DIALOG_PAGES_SETTINGS::OnRevisionTextUpdated( wxCommandEvent& event )
}
void DIALOG_PAGES_SETTINGS::OnDateTextUpdated( wxCommandEvent& event )
{
if( m_initialized && m_TextDate->IsModified() )
{
GetPageLayoutInfoFromDialog();
m_tb.SetDate( m_TextDate->GetValue() );
UpdatePageLayoutExample();
}
}
void DIALOG_PAGES_SETTINGS::OnTitleTextUpdated( wxCommandEvent& event )
{
if( m_initialized && m_TextTitle->IsModified() )
......@@ -375,6 +388,10 @@ void DIALOG_PAGES_SETTINGS::OnComment4TextUpdated( wxCommandEvent& event )
}
}
void DIALOG_PAGES_SETTINGS::OnDateApplyClick( wxCommandEvent& event )
{
m_TextDate->SetValue( FormatDateLong( m_PickDate->GetValue() ) );
}
void DIALOG_PAGES_SETTINGS::SavePageSettings( wxCommandEvent& event )
{
......@@ -471,6 +488,7 @@ limits\n%.1f - %.1f %s!\nSelect another custom paper size?" ),
m_Parent->SetPageSettings( m_pageInfo );
m_tb.SetRevision( m_TextRevision->GetValue() );
m_tb.SetDate( m_TextDate->GetValue() );
m_tb.SetCompany( m_TextCompany->GetValue() );
m_tb.SetTitle( m_TextTitle->GetValue() );
m_tb.SetComment1( m_TextComment1->GetValue() );
......@@ -498,6 +516,9 @@ limits\n%.1f - %.1f %s!\nSelect another custom paper size?" ),
if( m_RevisionExport->IsChecked() )
tb2.SetRevision( m_tb.GetRevision() );
if( m_DateExport->IsChecked() )
tb2.SetDate( m_tb.GetDate() );
if( m_TitleExport->IsChecked() )
tb2.SetTitle( m_tb.GetTitle() );
......
......@@ -79,6 +79,9 @@ private:
/// exEVT_COMMAND_TEXT_UPDATED event handler for ID_TEXTCTRL_REVISION
void OnRevisionTextUpdated( wxCommandEvent& event );
/// exEVT_COMMAND_TEXT_UPDATED event handler for ID_TEXTCTRL_DATE
void OnDateTextUpdated( wxCommandEvent& event );
/// exEVT_COMMAND_TEXT_UPDATED event handler for ID_TEXTCTRL_TITLE
void OnTitleTextUpdated( wxCommandEvent& event );
......@@ -97,6 +100,9 @@ private:
/// exEVT_COMMAND_TEXT_UPDATED event handler for ID_TEXTCTRL_COMMENT4
void OnComment4TextUpdated( wxCommandEvent& event );
/// Handle button click for setting the date from the picker
virtual void OnDateApplyClick( wxCommandEvent& event );
void SetCurrentPageSizeSelection( const wxString& aPaperSize );
void SavePageSettings( wxCommandEvent& event );
......
///////////////////////////////////////////////////////////////////////////
// C++ code generated with wxFormBuilder (version Apr 10 2012)
// C++ code generated with wxFormBuilder (version Oct 8 2012)
// http://www.wxformbuilder.org/
//
// PLEASE DO "NOT" EDIT THIS FILE!
......@@ -11,6 +11,8 @@
#include <wx/artprov.h>
#include <wx/xrc/xmlres.h>
#include <wx/intl.h>
class DIALOG_SHIM;
#include "dialog_shim.h"
#include <wx/string.h>
#include <wx/stattext.h>
......@@ -29,6 +31,8 @@
#include <wx/statbmp.h>
#include <wx/checkbox.h>
#include <wx/button.h>
#include <wx/datectrl.h>
#include <wx/dateevt.h>
#include <wx/dialog.h>
///////////////////////////////////////////////////////////////////////////
......@@ -40,17 +44,21 @@
#define ID_PAGE_LAYOUT_EXAMPLE_SIZER 1004
#define ID_TEXTCTRL_REVISION 1005
#define ID_CHECKBOX_REVISION 1006
#define ID_TEXTCTRL_TITLE 1007
#define ID_TEXTCTRL_COMPANY 1008
#define ID_CHECKBOX_COMPANY 1009
#define ID_TEXTCTRL_COMMENT1 1010
#define ID_CHECKBOX_COMMENT1 1011
#define ID_TEXTCTRL_COMMENT2 1012
#define ID_CHECKBOX_COMMENT2 1013
#define ID_TEXTCTRL_COMMENT3 1014
#define ID_CHECKBOX_COMMENT3 1015
#define ID_TEXTCTRL_COMMENT4 1016
#define ID_CHECKBOX_COMMENT4 1017
#define ID_TEXTCTRL_DATE 1007
#define ID_BTN_APPLY_DATE 1008
#define ID_PICKER_DATE 1009
#define ID_CHECKBOX_DATE 1010
#define ID_TEXTCTRL_TITLE 1011
#define ID_TEXTCTRL_COMPANY 1012
#define ID_CHECKBOX_COMPANY 1013
#define ID_TEXTCTRL_COMMENT1 1014
#define ID_CHECKBOX_COMMENT1 1015
#define ID_TEXTCTRL_COMMENT2 1016
#define ID_CHECKBOX_COMMENT2 1017
#define ID_TEXTCTRL_COMMENT3 1018
#define ID_CHECKBOX_COMMENT3 1019
#define ID_TEXTCTRL_COMMENT4 1020
#define ID_CHECKBOX_COMMENT4 1021
///////////////////////////////////////////////////////////////////////////////
/// Class DIALOG_PAGES_SETTINGS_BASE
......@@ -71,6 +79,10 @@ class DIALOG_PAGES_SETTINGS_BASE : public DIALOG_SHIM
wxStaticText* m_TextSheetNumber;
wxTextCtrl* m_TextRevision;
wxCheckBox* m_RevisionExport;
wxTextCtrl* m_TextDate;
wxButton* m_ApplyDate;
wxDatePickerCtrl* m_PickDate;
wxCheckBox* m_DateExport;
wxTextCtrl* m_TextTitle;
wxCheckBox* m_TitleExport;
wxTextCtrl* m_TextCompany;
......@@ -94,6 +106,8 @@ class DIALOG_PAGES_SETTINGS_BASE : public DIALOG_SHIM
virtual void OnUserPageSizeXTextUpdated( wxCommandEvent& event ) { event.Skip(); }
virtual void OnUserPageSizeYTextUpdated( wxCommandEvent& event ) { event.Skip(); }
virtual void OnRevisionTextUpdated( wxCommandEvent& event ) { event.Skip(); }
virtual void OnDateTextUpdated( wxCommandEvent& event ) { event.Skip(); }
virtual void OnDateApplyClick( wxCommandEvent& event ) { event.Skip(); }
virtual void OnTitleTextUpdated( wxCommandEvent& event ) { event.Skip(); }
virtual void OnCheckboxTitleClick( wxCommandEvent& event ) { event.Skip(); }
virtual void OnCompanyTextUpdated( wxCommandEvent& event ) { event.Skip(); }
......
......@@ -222,21 +222,19 @@ void TITLE_BLOCK::Format( OUTPUTFORMATTER* aFormatter, int aNestLevel, int aCont
throw( IO_ERROR )
{
// Don't write the title block information if there is nothing to write.
if( !m_title.IsEmpty() || /* !m_date.IsEmpty() || */ !m_revision.IsEmpty()
if( !m_title.IsEmpty() || !m_date.IsEmpty() || !m_revision.IsEmpty()
|| !m_company.IsEmpty() || !m_comment1.IsEmpty() || !m_comment2.IsEmpty()
|| !m_comment3.IsEmpty() || !m_comment4.IsEmpty() )
{
aFormatter->Print( aNestLevel, "(title_block \n" );
aFormatter->Print( aNestLevel, "(title_block\n" );
if( !m_title.IsEmpty() )
aFormatter->Print( aNestLevel+1, "(title %s)\n",
aFormatter->Quotew( m_title ).c_str() );
/* version control users were complaining, see mailing list.
if( !m_date.IsEmpty() )
aFormatter->Print( aNestLevel+1, "(date %s)\n",
aFormatter->Quotew( m_date ).c_str() );
*/
if( !m_revision.IsEmpty() )
aFormatter->Print( aNestLevel+1, "(rev %s)\n",
......
......@@ -71,9 +71,6 @@ void SCH_EDIT_FRAME::AnnotateComponents( bool aAnnotateSchematic,
if( aResetAnnotation )
DeleteAnnotation( !aAnnotateSchematic );
// Update the screen date.
screens.SetDate( GenDate() );
// Set sheet number and number of sheets.
SetSheetNumberAndCount();
......
......@@ -153,7 +153,6 @@ void SCH_SCREEN::Clear()
m_ScreenNumber = m_NumberOfScreens = 1;
m_titles.Clear();
m_titles.SetDate();
}
......@@ -1455,17 +1454,6 @@ int SCH_SCREENS::ReplaceDuplicateTimeStamps()
}
void SCH_SCREENS::SetDate( const wxString& aDate )
{
for( size_t i = 0; i < m_screens.size(); i++ )
{
TITLE_BLOCK tb = m_screens[i]->GetTitleBlock();
tb.SetDate( aDate );
m_screens[i]->SetTitleBlock( tb );
}
}
void SCH_SCREENS::DeleteAllMarkers( int aMarkerType )
{
SCH_ITEM* item;
......
......@@ -352,10 +352,6 @@ void SCH_EDIT_FRAME::CreateScreens()
g_RootSheet->GetScreen()->SetFileName( m_DefaultSchematicFileName );
TITLE_BLOCK tb = g_RootSheet->GetScreen()->GetTitleBlock();
tb.SetDate();
g_RootSheet->GetScreen()->SetTitleBlock( tb );
m_CurrentSheet->Clear();
m_CurrentSheet->Push( g_RootSheet );
......@@ -560,15 +556,6 @@ void SCH_EDIT_FRAME::OnModify()
if( m_dlgFindReplace == NULL )
m_foundItems.SetForceSearch();
SCH_SCREENS s_list;
// Set the date for each sheet
// There are 2 possibilities:
// >> change only the current sheet
// >> change all sheets.
// I believe all sheets in a project must have the same date
s_list.SetDate();
}
......
......@@ -546,14 +546,6 @@ public:
*/
int ReplaceDuplicateTimeStamps();
/**
* Function SetDate
* sets the date string for every screen to \a aDate.
* @see GetDate()
* @param aDate The date string to set for each screen.
*/
void SetDate( const wxString& aDate = GenDate() );
/**
* Function DeleteAllMarkers
* deletes all electronic rules check markers of \a aMarkerType from all the screens in
......
......@@ -30,9 +30,6 @@ class OUTPUTFORMATTER;
struct IO_ERROR;
extern wxString GenDate();
/**
* Class TITLE_BLOCK
* holds the information shown in the lower right corner of a plot, printout, or
......@@ -54,7 +51,7 @@ public:
* Function SetDate
* sets the date field, and defaults to the current time and date.
*/
void SetDate( const wxString& aDate = GenDate() ) { m_date = aDate; }
void SetDate( const wxString& aDate ) { m_date = aDate; }
const wxString& GetDate() const { return m_date; }
void SetRevision( const wxString& aRevision ) { m_revision = aRevision; }
......
......@@ -620,13 +620,6 @@ double RoundTo0( double x, double precision );
*/
wxArrayString* wxStringSplit( wxString aString, wxChar aSplitter );
/**
* Function GenDate
* @return A wxString object containing the date in the format "day month year" like
* "23 jun 2005".
*/
wxString GenDate();
/**
* Function GetRunningMicroSecs
* returns an ever increasing indication of elapsed microseconds. Use this
......@@ -635,4 +628,13 @@ wxString GenDate();
*/
unsigned GetRunningMicroSecs();
/**
* Formats a wxDateTime using the long date format (on wx 2.9) or
* an hardcoded format in wx 2.8; the idea is to avoid like the plague
* the numeric-only date formats: it's difficult to discriminate between
* dd/mm/yyyy and mm/dd/yyyy. The output is meant for user consumption
* so no attempt to parse it should be done
*/
wxString FormatDateLong( const wxDateTime &aDate );
#endif // INCLUDE__COMMON_H_
......@@ -738,9 +738,6 @@ void PCB_BASE_FRAME::OnModify()
{
GetScreen()->SetModify();
GetScreen()->SetSave();
wxASSERT( m_Pcb );
m_Pcb->GetTitleBlock().SetDate();
}
......
......@@ -491,15 +491,6 @@ bool PCB_EDIT_FRAME::SavePcbFile( const wxString& aFileName, bool aCreateBackupF
}
}
// If changes are made, update the board date
if( GetScreen()->IsModify() )
{
TITLE_BLOCK tb = GetTitleBlock();
tb.SetDate();
SetTitleBlock( tb );
}
if( !IsWritable( pcbFileName ) )
return false;
......
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