diff src/rsearcher.cpp @ 13:f5ffc34f045a

manage DB.
author pyon@macmini
date Wed, 14 Nov 2018 19:43:40 +0900
parents 799b6008db8e
children c1dc1fcee7fe
line wrap: on
line diff
--- a/src/rsearcher.cpp	Tue Nov 13 21:11:20 2018 +0900
+++ b/src/rsearcher.cpp	Wed Nov 14 19:43:40 2018 +0900
@@ -1,5 +1,5 @@
 // Filename   : rsearcher.cpp
-// Last Change: 2018-11-09 金 09:01:40.
+// Last Change: 2018-11-14 水 14:06:25.
 //
 
 #include <wx/arrstr.h> 
@@ -290,6 +290,8 @@
 	EVT_BUTTON( ID_MZOOM, MainFrame::OnMinusZoom )
 	EVT_BUTTON( ID_DARK, MainFrame::OnDark )
 	EVT_BUTTON( ID_SWIN, MainFrame::OnSatellite )
+	EVT_BUTTON( ID_UPIDX, MainFrame::OnUpdateIndex )
+	EVT_BUTTON( ID_DLMAN, MainFrame::OnDownloadManual )
 	EVT_BUTTON( wxID_HELP, MainFrame::OnHelp )
 	EVT_BUTTON( wxID_CLOSE, MainFrame::OnBClose )
 	EVT_BUTTON( ID_LOGOUT, MainFrame::OnLogout )
@@ -427,6 +429,19 @@
 	stl->Show();
 }
 
+void MainFrame::OnUpdateIndex( wxCommandEvent& WXUNUSED(event ) )
+{
+	GetDB( 0, 0, 2 );
+	UpdateIndex();
+	wxMessageBox( wxT( "update index done." ) );
+}
+
+void MainFrame::OnDownloadManual( wxCommandEvent& WXUNUSED(event) )
+{
+	wxString execmd = wxT( "cmd /c start manual.pdf" );
+	wxExecute( execmd );
+}
+
 void MainFrame::OnHelp( wxCommandEvent& WXUNUSED(event) )
 {
 	wxString version, build;
@@ -572,6 +587,10 @@
 	m_buttonDark->Hide();
 	m_buttonSatellite = new wxButton( this, ID_SWIN, wxT( "Satellite" ), wxDefaultPosition, wxDefaultSize, 0 );
 	m_buttonSatellite->Hide();
+	m_buttonDLMan = new wxButton( this, ID_DLMAN, wxT( "Manual" ), wxDefaultPosition, wxDefaultSize, 0 );
+	m_buttonDLMan->Hide();
+	m_buttonUpdateIndex = new wxButton( this, ID_UPIDX, wxT( "Update Index" ), wxDefaultPosition, wxDefaultSize, 0 );
+	m_buttonUpdateIndex->Hide();
 	m_buttonClose = new wxButton( this, wxID_CLOSE, wxT( "Close" ), wxDefaultPosition, wxDefaultSize, 0 );
 	m_buttonClose->Hide();
 	m_buttonHelp = new wxButton( this, wxID_HELP, wxT( "Help" ), wxDefaultPosition, wxDefaultSize, 0 );
@@ -595,17 +614,19 @@
 
 void MainFrame::SetAccelerator( void )
 {
-	wxAcceleratorEntry entries[9];
-	entries[0].Set( wxACCEL_CTRL,   (int)'P', wxID_PRINT );
-	entries[1].Set( wxACCEL_NORMAL, WXK_F1,   wxID_HELP );
-	entries[2].Set( wxACCEL_NORMAL, WXK_F4,   ID_FOCUS );
-	entries[3].Set( wxACCEL_NORMAL, (int)'Z', ID_PZOOM );
-	entries[4].Set( wxACCEL_NORMAL, (int)'X', ID_MZOOM );
-	entries[5].Set( wxACCEL_NORMAL, (int)'D', ID_DARK );
-	entries[6].Set( wxACCEL_CTRL,   (int)'Q', wxID_CLOSE );
-	entries[7].Set( wxACCEL_SHIFT,  (int)'W', ID_SWIN );
-	entries[8].Set( wxACCEL_SHIFT,  (int)'L', ID_DARK );	// now building ( logout )
-	wxAcceleratorTable accel( 8, entries );
+	wxAcceleratorEntry entries[11];
+	entries[0].Set(  wxACCEL_CTRL,   (int)'P', wxID_PRINT );
+	entries[1].Set(  wxACCEL_NORMAL, WXK_F1,   wxID_HELP );
+	entries[2].Set(  wxACCEL_NORMAL, WXK_F2,   ID_DLMAN );
+	entries[3].Set(  wxACCEL_NORMAL, WXK_F4,   ID_FOCUS );
+	entries[4].Set(  wxACCEL_NORMAL, (int)'Z', ID_PZOOM );
+	entries[5].Set(  wxACCEL_NORMAL, (int)'X', ID_MZOOM );
+	entries[6].Set(  wxACCEL_NORMAL, (int)'D', ID_DARK );
+	entries[7].Set(  wxACCEL_CTRL,   (int)'Q', wxID_CLOSE );
+	entries[8].Set(  wxACCEL_SHIFT,  (int)'W', ID_SWIN );
+	entries[9].Set(  wxACCEL_SHIFT,  (int)'R', ID_UPIDX );
+	entries[10].Set( wxACCEL_SHIFT,  (int)'L', ID_DARK );	// now building ( logout )
+	wxAcceleratorTable accel( 10, entries );
 	SetAcceleratorTable( accel );
 }
 
@@ -629,9 +650,12 @@
 		return;
     }
 
-    if ( cmd.IsSameAs( wxT( "3915" ), true ) ) {
+    if ( cmd.IsSameAs( wxT( "3915" ), true ) && m_user.IsSameAs( wxT( "root" ) ) ) {
 		ManageDBFrame *mngframe = new ManageDBFrame( this, wxID_ANY, wxT( "Management Window" ), wxDefaultPosition, wxSize( 300, 180 ), wxCAPTION|wxTAB_TRAVERSAL );
+		mngframe->SetDBdir( m_dbdir );
+		mngframe->SetServer( m_server );
 		mngframe->Show();
+		m_searchCtrl->Clear();
         return;
 	}
 
@@ -872,12 +896,7 @@
     pd.SetSize( wxSize( 320, 140 ) );
 	
 	// index
-	wxTextFile file;
-	file.Open( wxT( "index.db" ) );
-	for ( int i = 0; i < file.GetLineCount(); i++ )
-		m_index.Add( file.GetLine( i ) );
-	file.Close();
-	m_index.Sort( true );
+	UpdateIndex();
 
 	// decrypto
 	wxString key = wxT( "12345678900123456789abcdefabcdef" );
@@ -905,6 +924,23 @@
 	}
 }
 
+void MainFrame::UpdateIndex( void )
+{
+	wxString oldest = wxT( "30001231" );
+	wxString newest = wxT( "20000401" );
+	wxTextFile file;
+	file.Open( wxT( "index.db" ) );
+	for ( int i = 0; i < file.GetLineCount(); i++ ) {
+		wxArrayString buf = wxSplit( file.GetLine( i ), ':', '\\' );
+		if ( oldest.Cmp( buf[1] ) ==  1 ) oldest = buf[1];
+		if ( newest.Cmp( buf[1] ) == -1 ) newest = buf[1];
+		m_index.Add( file.GetLine( i ) );
+	}
+	file.Close();
+	m_index.Sort( true );
+	m_textCtrlLog->SetValue( wxT( "Index: " ) + oldest + wxT( " - " ) + newest );
+}
+
 void MainFrame::PasteSearch( void )
 {
 	wxString s;