Develop and Download Open Source Software

Browse CVS Repository

Diff of /malonnote/mnFrameController.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.2 by maloninc, Wed Oct 5 04:55:48 2005 UTC revision 1.11 by maloninc, Tue Oct 24 06:46:32 2006 UTC
# Line 23  BEGIN_EVENT_TABLE(mnFrameController, wxE Line 23  BEGIN_EVENT_TABLE(mnFrameController, wxE
23          EVT_MENU(XRCID("AddDir"), mnFrameController::handleAddDir)          EVT_MENU(XRCID("AddDir"), mnFrameController::handleAddDir)
24          EVT_MENU(XRCID("RemoveDir"), mnFrameController::handleRemoveDir)          EVT_MENU(XRCID("RemoveDir"), mnFrameController::handleRemoveDir)
25          EVT_MENU(XRCID("Quit"), mnFrameController::handleExit)          EVT_MENU(XRCID("Quit"), mnFrameController::handleExit)
26            EVT_MENU(XRCID("FastSearch"), mnFrameController::handleFastSearch)
27          EVT_MENU(wxID_ABOUT, mnFrameController::handleAbout)          EVT_MENU(wxID_ABOUT, mnFrameController::handleAbout)
28          EVT_CLOSE(mnFrameController::handleClose)          EVT_CLOSE(mnFrameController::handleClose)
29            EVT_NOTEBOOK_PAGE_CHANGED(XRCID("noteBook"), mnFrameController::handlePageChange)
30            EVT_TIMER(wxID_ANY, mnFrameController::handleDiskSearchTimer)
31  END_EVENT_TABLE()  END_EVENT_TABLE()
32    
33  mnFrameController::mnFrameController(mnFrame* inframe)  mnFrameController::mnFrameController(mnFrame* inframe)
34  {  {
         wxString* dirName = new wxString();  
         wxString gotDirName;  
         wxDirDialog* dlg;  
   
35          frame = inframe;          frame = inframe;
36    
37          /* create wiki model */          diskSearchTimer = new wxTimer(this);
38          wxConfig* config = new wxConfig(wxT(CONF_APP_NAME));          diskSearchTimer->Start(MN_READ_INTERVAL, wxTIMER_CONTINUOUS);
39          if(config->Read(wxT(CONF_WIKI_DIR), dirName) == FALSE) {  }
                 delete dirName;  
                 dlg = new wxDirDialog(frame);  
                 if(dlg->ShowModal() == wxID_OK) {  
                         gotDirName = dlg->GetPath();  
                         config->Write(wxT(CONF_WIKI_DIR), gotDirName.c_str());  
                         frame->addNotePanel(&gotDirName);  
                 }  
                 else {  
                         frame->Close();  
                 }  
         }  
         else {  
                 frame->addNotePanel(dirName);  
40    
41                  wxString testDir(wxT("C:\\wiki_test"));  void mnFrameController::readAll(bool flag)
42                  frame->addNotePanel(&testDir);  {
43            int count = 0;
44            mnNotePanel* panel;
45            mnNotePanelController* controller;
46    
47            count = frame->getNotebook()->GetPageCount();
48            for(int i = 0; i < count; i++)
49            {
50                    panel = (mnNotePanel*)frame->getNotebook()->GetPage(i);
51                    controller = panel->getController();
52                    controller->readAll(flag);
53          }          }
54    }
55    
56          delete config;  void mnFrameController::handleDiskSearchTimer(wxTimerEvent& event)
57    {
58            readAll(false); /* search disk background */
59  }  }
60    
61  void mnFrameController::handleConfig(wxCommandEvent& event)  void mnFrameController::handleConfig(wxCommandEvent& event)
# Line 124  void mnFrameController::handleExit(wxCom Line 123  void mnFrameController::handleExit(wxCom
123          frame->Close();          frame->Close();
124  }  }
125    
126    void mnFrameController::handleFastSearch(wxCommandEvent& event)
127    {
128            if( event.IsChecked() ) {
129                    readAll(true); /* Search disk foreground */
130                    diskSearchTimer->Start(MN_READ_INTERVAL, wxTIMER_CONTINUOUS);
131            }
132            else {
133                    diskSearchTimer->Stop();
134            }
135    }
136    
137    
138  void mnFrameController::handleAbout(wxCommandEvent& event)  void mnFrameController::handleAbout(wxCommandEvent& event)
139  {  {
# Line 132  void mnFrameController::handleAbout(wxCo Line 142  void mnFrameController::handleAbout(wxCo
142    
143  void mnFrameController::handleAddDir(wxCommandEvent& event)  void mnFrameController::handleAddDir(wxCommandEvent& event)
144  {  {
 /*  
145          wxDirDialog* dlg;          wxDirDialog* dlg;
146          wxString gotDirName;          wxString gotDirName;
147          wxString* dirName = new wxString();          wxString* dirName = new wxString();
148            
149            dlg = new wxDirDialog(frame);
150            if(dlg->ShowModal() == wxID_OK) {
151                    gotDirName = dlg->GetPath();
152                    if(isExistConfig(&gotDirName) == false){
153                            frame->addNotePanel(&gotDirName);
154                    }
155                    else {
156                            wxMessageBox(wxT("It already exist in MalonNote"), wxT("Already exist"), wxOK|wxICON_INFORMATION);
157                            return;
158                    }
159            }
160            updateConfig();
161    }
162    
163    void mnFrameController::handleRemoveDir(wxCommandEvent& event)
164    {
165            frame->removeSelectedNotePanel();
166            updateConfig();
167    }
168    
169    void mnFrameController::updateConfig()
170    {
171          wxString  confKey;          wxString  confKey;
172            wxNotebook* notebook;
173            mnNotePanel* panel;
174    
175          wxConfig* config = new wxConfig(wxT(CONF_APP_NAME));          wxConfig* config = new wxConfig(wxT(CONF_APP_NAME));
176            config->DeleteAll();
177            delete config;
178            config = new wxConfig(wxT(CONF_APP_NAME)); // recreate config object
179            notebook = frame->getNotebook();
180            int count = notebook->GetPageCount();
181            for(int i = 0; i < count; i++) {
182                    panel = (mnNotePanel*)notebook->GetPage(i);
183                    const wxString* dataDir = panel->getController()->getWikiDataDir();
184    
185          dlg = new wxDirDialog(frame);                  if(i == 0){
186          if(dlg->ShowModal() == wxID_OK) {                          config->Write(wxT(CONF_WIKI_DIR), dataDir->c_str());
187                  gotDirName = dlg->GetPath();                  }
188                  confKey.sprintf(wxT(CONF_WIKI_DIR) "%d", numOfMemoDir);                  else{
189                  config->Write(wxT(CONF_WIKI_DIR), gotDirName.c_str());                          confKey.sprintf(wxT(CONF_WIKI_DIR) "%d", i);
190                            config->Write(confKey.c_str(), dataDir->c_str());
191                    }
192          }          }
193          delete config;          delete config;
 */  
 /*  
  * frame->addNotePanel を最終的に呼び出せばよい  
  * その後、frame->noteBook内の情報をNotePanel毎に一つずつ取り出し  
  * 一つ目をCONF_WIKI_DIR, 二つ目からCONF_WIKI_DIR+1のように設定ファイルに  
  * 記録すればよい  
  * 記録前に以前の記録をすべて削除するために、DeleteAllを呼ぶこと  
  */  
194  }  }
195    
196  void mnFrameController::handleRemoveDir(wxCommandEvent& event)  bool mnFrameController::isExistConfig(wxString* dir)
197    {
198            wxString* dirName = new wxString();
199            wxString gotDirName;
200            wxDirDialog* dlg;
201            wxString confKey;
202    
203            wxConfig* config = new wxConfig(wxT(CONF_APP_NAME));
204            for(int i = 0; ;i++) {
205                    if(i == 0) {
206                            confKey.sprintf(wxT(CONF_WIKI_DIR));
207                    }
208                    else {
209                            confKey.sprintf(wxT(CONF_WIKI_DIR) "%d", i);
210                    }
211                    if(config->Read(confKey.c_str(), dirName)) {
212                            if(*dir == *dirName) return true;    /* Exist */
213                    }
214                    else {
215                            break;
216                    }
217            }
218            
219            delete dirName;
220            delete config;
221    
222            return false;
223    }
224    
225    
226    void mnFrameController::handlePageChange(wxNotebookEvent& event)
227  {  {
228            wxNotebook* notebook;
229            mnNotePanel* panel;
230    
231            notebook = frame->getNotebook();
232            panel = (mnNotePanel*)notebook->GetPage(event.GetSelection());
233            const wxString* dataDir = panel->getController()->getWikiDataDir();
234    
235            frame->GetStatusBar()->SetStatusText(*dataDir);
236  }  }

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.11

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26