annotate src/cache.cpp @ 18:a8e6e5769e3b

Small fixes.
author pyon@macmini
date Sat, 29 Nov 2014 11:02:35 +0900
parents 52958cd4a073
children a2ad87cad48b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
11
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
1 // Filename : cache.cpp
18
a8e6e5769e3b Small fixes.
pyon@macmini
parents: 12
diff changeset
2 // Last Change: 21-Nov-2014.
11
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
3 //
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
4
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
5 #include "cache.h"
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
6 #include "db.h"
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
7
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
8 CacheDialog::CacheDialog( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style )
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
9 : wxDialog( parent, id, title, pos, size, style )
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
10 {
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
11 this->SetSizeHints( wxDefaultSize, wxDefaultSize );
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
12
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
13 wxBoxSizer* bSizerTop = new wxBoxSizer( wxVERTICAL );
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
14
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
15 m_datePickerBgn = new wxDatePickerCtrl( this, wxID_ANY, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxDP_DEFAULT );
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
16 bSizerTop->Add( m_datePickerBgn, 0, wxALL, 5 );
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
17
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
18 m_datePickerEnd = new wxDatePickerCtrl( this, wxID_ANY, wxDefaultDateTime, wxDefaultPosition, wxDefaultSize, wxDP_DEFAULT );
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
19 bSizerTop->Add( m_datePickerEnd, 0, wxALL, 5 );
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
20
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
21 m_buttonMake = new wxButton( this, ID_MKCACHE, wxT("作成"), wxDefaultPosition, wxDefaultSize, 0 );
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
22 bSizerTop->Add( m_buttonMake, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
23
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
24 m_buttonClose = new wxButton( this, ID_CLOSE, wxT("閉じる"), wxDefaultPosition, wxDefaultSize, 0 );
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
25 m_buttonClose->SetDefault();
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
26 bSizerTop->Add( m_buttonClose, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxEXPAND, 5 );
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
27
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
28 this->SetSizer( bSizerTop );
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
29 this->Layout();
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
30 bSizerTop->Fit( this );
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
31
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
32 this->Centre( wxBOTH );
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
33 }
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
34
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
35 CacheDialog::~CacheDialog()
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
36 {
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
37 }
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
38
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
39 // Event Table
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
40 BEGIN_EVENT_TABLE( CacheDialog, wxDialog )
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
41 EVT_BUTTON( ID_MKCACHE, CacheDialog::OnMakeCache )
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
42 EVT_BUTTON( ID_CLOSE, CacheDialog::OnClose )
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
43 END_EVENT_TABLE()
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
44
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
45 // Event Handlers & Functions
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
46 void CacheDialog::Setting( wxString rootdir, int w, int h )
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
47 {
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
48 m_rootdir = rootdir;
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
49 m_width = w;
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
50 m_height = h;
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
51 }
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
52
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
53 void CacheDialog::OnMakeCache( wxCommandEvent& WXUNUSED(event) )
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
54 {
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
55 wxDateTime b = m_datePickerBgn->GetValue();
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
56 wxDateTime e = m_datePickerEnd->GetValue();
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
57
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
58 MakeCache( b.Format( wxT("%Y%m%d")), e.Format( wxT("%Y%m%d")) );
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
59 }
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
60
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
61 void CacheDialog::MakeCache( wxString from, wxString to )
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
62 {
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
63 wxArrayString path = GetPathes( from, to );
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
64 wxString cachedir = wxGetCwd() + wxFILE_SEP_PATH + wxT("cache");
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
65
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
66 for ( int i = 0; i < path.GetCount(); i++ ) {
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
67
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
68 wxArrayString files;
12
52958cd4a073 Implement Force Mask button in Batch Print Mode.
pyon@macmini
parents: 11
diff changeset
69 wxDir::GetAllFiles( path[i], &files, wxT("*.jpg"), wxDIR_DEFAULT );
11
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
70
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
71 for ( int j = 0; j < files.GetCount(); j++ ) {
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
72 wxImage image( files[j], wxBITMAP_TYPE_JPEG );
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
73 wxImage output = image.Scale( m_width, m_height, wxIMAGE_QUALITY_HIGH );
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
74
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
75 wxString buf = files[j];
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
76 buf.Replace( m_rootdir, cachedir, false );
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
77 buf = buf.BeforeLast( '.' ) + wxT(".png");
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
78
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
79 wxFileName tf( buf );
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
80 if ( !tf.Exists() ) tf.Mkdir( wxS_DIR_DEFAULT, wxPATH_MKDIR_FULL );
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
81 output.SaveFile( buf, wxBITMAP_TYPE_PNG );
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
82 }
18
a8e6e5769e3b Small fixes.
pyon@macmini
parents: 12
diff changeset
83 wxSleep( 30 );
11
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
84 }
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
85
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
86 wxMessageBox( wxT("cache updated.") );
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
87 }
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
88
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
89 void CacheDialog::OnClose( wxCommandEvent& WXUNUSED(event) )
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
90 {
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
91 Close();
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
92 }
dfcf8c973219 Implement Cache maker.
pyon@macmini
parents:
diff changeset
93