comparison src/main.cpp @ 6:9a8b581c1993

improve performance.
author pyon@macmini
date Tue, 23 Oct 2018 19:15:22 +0900
parents e3b10fb860b3
children 29829e98d510
comparison
equal deleted inserted replaced
5:e3b10fb860b3 6:9a8b581c1993
1 // Filename : main.cpp 1 // Filename : main.cpp
2 // Last Change: 2018-10-22 月 16:14:28. 2 // Last Change: 2018-10-23 火 10:09:42.
3 // 3 //
4 #include "id.h" 4 #include "id.h"
5 #include "main.h" 5 #include "main.h"
6 #include "auth.h" 6 #include "auth.h"
7 #include "rsearcher.h" 7 #include "rsearcher.h"
24 24
25 wxImage::AddHandler( new wxJPEGHandler ); 25 wxImage::AddHandler( new wxJPEGHandler );
26 wxImage::AddHandler( new wxPNGHandler ); 26 wxImage::AddHandler( new wxPNGHandler );
27 InitSetting(); 27 InitSetting();
28 28
29 // Login Dialog
30 AuthDialog *authdlg = new AuthDialog( NULL, wxID_ANY, wxT( "Who are you ?" ), wxDefaultPosition, wxDefaultSize, wxCAPTION );
31 authdlg->SetServer( m_server );
32 authdlg->GetDB();
33
29 // Splash Screen 34 // Splash Screen
30 wxFileSystem::AddHandler( new wxZipFSHandler ); 35 wxFileSystem::AddHandler( new wxZipFSHandler );
31 wxFileSystem* fs = new wxFileSystem(); 36 wxFileSystem* fs = new wxFileSystem();
32 wxString archive = wxT( "file:///./myapp.bin" ); 37 wxString archive = wxT( "file:///./myapp.bin" );
33 for ( int i = 0; i < 11; i++ ) { 38 for ( int i = 0; i < 11; i++ ) {
34 wxFSFile* file = fs->OpenFile( archive + wxString::Format( wxT( "#zip:startup%02d.png" ), i ) ); 39 wxFSFile* file = fs->OpenFile( archive + wxString::Format( wxT( "#zip:startup%02d.png" ), i ) );
35 if ( file ) { 40 if ( file ) {
36 wxInputStream* s = file->GetStream(); 41 wxInputStream* s = file->GetStream();
37 wxImage image( *s, wxBITMAP_TYPE_PNG ); 42 wxImage image( *s, wxBITMAP_TYPE_PNG );
38 wxBitmap bmp = wxBitmap( image ); 43 wxBitmap bmp = wxBitmap( image );
39 wxSplashScreen* splash = new wxSplashScreen( bmp, wxSPLASH_CENTRE_ON_SCREEN|wxSPLASH_TIMEOUT, 3000, NULL, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE|wxSTAY_ON_TOP ); 44 wxSplashScreen* splash = new wxSplashScreen( bmp, wxSPLASH_CENTRE_ON_SCREEN|wxSPLASH_TIMEOUT, 2500, NULL, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE|wxSTAY_ON_TOP );
40 delete file; 45 delete file;
41 } 46 }
42 wxMilliSleep( 250 ); 47 wxMilliSleep( 200 );
43 }
44
45 unsigned int seed = (unsigned int)time( 0 );
46 srand( seed );
47 int n = rand() % 13;
48 wxFSFile* file = fs->OpenFile( archive + wxString::Format( wxT( "#zip:%02d.jpg" ), n ) );
49 if ( file ) {
50 wxInputStream* s = file->GetStream();
51 wxFileOutputStream of( wxT( "./image/hello.jpg" ) );
52 s->Read( of );
53 delete file;
54 } 48 }
55 delete fs; 49 delete fs;
56 50
57 // Login Dialog
58 AuthDialog *authdlg = new AuthDialog( NULL, wxID_ANY, wxT( "Who are you ?" ), wxDefaultPosition, wxDefaultSize, wxCAPTION );
59 authdlg->SetServer( m_server );
60 if ( !authdlg->LoadDB() ) { 51 if ( !authdlg->LoadDB() ) {
61 authdlg->Destroy(); 52 authdlg->Destroy();
62 return false; 53 return false;
63 } 54 }
64 55
65 if ( authdlg->ShowModal() == wxID_OK ) { 56 if ( authdlg->ShowModal() == wxID_OK ) {
66 wxString ui = wxString::Format( wxT( "./image/" ) + authdlg->GetUser() + wxT( ".jpg" ) ); 57 wxString ui = wxString::Format( wxT( "./image/" ) + authdlg->GetUser() + wxT( ".jpg" ) );
67 if ( wxFileExists( ui ) ) wxCopyFile( ui, wxT( "./image/hello.jpg" ), true ); 58 if ( wxFileExists( ui ) ) {
59 wxCopyFile( ui, wxT( "./image/hello.jpg" ), true );
60 } else {
61 unsigned int seed = (unsigned int)time( 0 );
62 srand( seed );
63 int n = rand() % 13;
64 wxFileSystem* fs = new wxFileSystem();
65 wxFSFile* file = fs->OpenFile( archive + wxString::Format( wxT( "#zip:%02d.jpg" ), n ) );
66 if ( file ) {
67 wxInputStream* s = file->GetStream();
68 wxFileOutputStream of( wxT( "./image/hello.jpg" ) );
69 s->Read( of );
70 delete file;
71 }
72 delete fs;
73 }
68 74
69 // Main Window 75 // Main Window
70 MainFrame *mainframe = new MainFrame( NULL, ID_MAIN, wxEmptyString, wxPoint( rect.x, rect.y ), rect.GetSize(), wxDEFAULT_FRAME_STYLE ); 76 MainFrame *mainframe = new MainFrame( NULL, ID_MAIN, wxEmptyString, wxPoint( rect.x, rect.y ), rect.GetSize(), wxDEFAULT_FRAME_STYLE );
71 mainframe->InDevelop( true ); 77 mainframe->InDevelop( true );
72 mainframe->SetServer( m_server ); 78 mainframe->SetServer( m_server );
81 return true; 87 return true;
82 } 88 }
83 89
84 int MyApp::OnExit() 90 int MyApp::OnExit()
85 { 91 {
92 RemoveFile( wxT( "auth.db" ) );
93 RemoveFile( wxT( "hhs.db" ) );
94 RemoveFile( wxT( ".cache/*" ) );
86 SaveSetting(); 95 SaveSetting();
87 return 0; 96 return 0;
88 } 97 }
89 98
90 void MyApp::InitSetting() 99 void MyApp::InitSetting()
120 config->Write( wxT( "w" ), rect.width ); 129 config->Write( wxT( "w" ), rect.width );
121 config->Write( wxT( "h" ), rect.height ); 130 config->Write( wxT( "h" ), rect.height );
122 delete config; 131 delete config;
123 } 132 }
124 133
134 void MyApp::RemoveFile( wxString pattern )
135 {
136 wxString file = wxFindFirstFile( pattern );
137 while ( !file.empty() ) {
138 wxRemoveFile( file );
139 file = wxFindNextFile();
140 }
141 }
142