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.1 by maloninc, Tue Oct 4 12:45:02 2005 UTC revision 1.12 by maloninc, Tue Oct 24 08:52:04 2006 UTC
# Line 11  Line 11 
11    
12  BEGIN_EVENT_TABLE(mnFrameController, wxEvtHandler)  BEGIN_EVENT_TABLE(mnFrameController, wxEvtHandler)
13          EVT_TEXT_ENTER(XRCID("searchTextCtrl"), mnFrameController::handleSearch)          EVT_TEXT_ENTER(XRCID("searchTextCtrl"), mnFrameController::handleSearch)
14  /*          EVT_MENU(XRCID("New"), mnFrameController::handleNew)
15          EVT_MENU(XRCID("New"), mnFrameController::handleNewButton)          EVT_MENU(XRCID("Remove"), mnFrameController::handleRemove)
16          EVT_MENU(XRCID("Remove"), mnFrameController::handleRemoveButton)          EVT_MENU(XRCID("Edit"), mnFrameController::handleEdit)
17          EVT_MENU(XRCID("Highlight"), mnFrameController::handleHighlightButton)          EVT_MENU(XRCID("Highlight"), mnFrameController::handleHighlight)
         EVT_MENU(XRCID("Edit"), mnFrameController::handleEditButton)  
         EVT_MENU(XRCID("Quit"), mnFrameController::handleExit)  
         EVT_MENU(XRCID("Configure"), mnFrameController::handleConfig)  
         EVT_MENU(XRCID("Group"), mnFrameController::handleGroup)  
         EVT_MENU(XRCID("OpenDocsDir"), mnFrameController::handleOpenDocsDir)  
18          EVT_MENU(XRCID("Expand"), mnFrameController::handleTreeExpand)          EVT_MENU(XRCID("Expand"), mnFrameController::handleTreeExpand)
19          EVT_MENU(XRCID("Collapse"), mnFrameController::handleTreeCollapse)          EVT_MENU(XRCID("Collapse"), mnFrameController::handleTreeCollapse)
20          EVT_MENU(XRCID("Clear"), mnFrameController::handleTreeClear)          EVT_MENU(XRCID("Clear"), mnFrameController::handleTreeClear)
21  */          EVT_MENU(XRCID("Group"), mnFrameController::handleGroup)
22            EVT_MENU(XRCID("OpenDocsDir"), mnFrameController::handleOpenDocsDir)
23            EVT_MENU(XRCID("AddDir"), mnFrameController::handleAddDir)
24            EVT_MENU(XRCID("RemoveDir"), mnFrameController::handleRemoveDir)
25          EVT_MENU(XRCID("Quit"), mnFrameController::handleExit)          EVT_MENU(XRCID("Quit"), mnFrameController::handleExit)
26          EVT_MENU(XRCID("Configure"), mnFrameController::handleConfig)          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 69  void mnFrameController::handleConfig(wxC Line 65  void mnFrameController::handleConfig(wxC
65    
66  void mnFrameController::handleSearch(wxCommandEvent& event)  void mnFrameController::handleSearch(wxCommandEvent& event)
67  {  {
         wxLogMessage(wxT("Search..., Call mnNotePanel's handleSearch which is selected."));  
68          frame->getNotePanel()->getController()->handleSearch(event);          frame->getNotePanel()->getController()->handleSearch(event);
69  }  }
70    
71    void mnFrameController::handleNew(wxCommandEvent& event)
72    {
73            frame->getNotePanel()->getController()->handleNew(event);
74    }
75    
76    void mnFrameController::handleRemove(wxCommandEvent& event)
77    {
78            frame->getNotePanel()->getController()->handleRemove(event);
79    }
80    
81    void mnFrameController::handleEdit(wxCommandEvent& event)
82    {
83            frame->getNotePanel()->getController()->handleEdit(event);
84    }
85    
86    void mnFrameController::handleHighlight(wxCommandEvent& event)
87    {
88            frame->getNotePanel()->getController()->handleHighlight(event);
89    }
90    
91    void mnFrameController::handleTreeExpand(wxCommandEvent& event)
92    {
93            frame->getNotePanel()->getController()->handleTreeExpand(event);
94    }
95    
96    void mnFrameController::handleTreeCollapse(wxCommandEvent& event)
97    {
98            frame->getNotePanel()->getController()->handleTreeCollapse(event);
99    }
100    
101    void mnFrameController::handleTreeClear(wxCommandEvent& event)
102    {
103            frame->getNotePanel()->getController()->handleTreeClear(event);
104    }
105    
106    void mnFrameController::handleGroup(wxCommandEvent& event)
107    {
108            frame->getNotePanel()->getController()->handleGroup(event);
109    }
110    
111    void mnFrameController::handleOpenDocsDir(wxCommandEvent& event)
112    {
113            frame->getNotePanel()->getController()->handleOpenDocsDir(event);
114    }
115    
116  void mnFrameController::handleClose(wxCloseEvent& event)  void mnFrameController::handleClose(wxCloseEvent& event)
117  {  {
# Line 84  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            wxConfig* config = new wxConfig(wxT(CONF_APP_NAME));
129    
130            if( event.IsChecked() ) {
131                    config->Write(wxT(CONF_FAST_SEARCH_OPT), wxT(MN_ENABLE_FAST_SEARCH));
132                    readAll(true); /* Search disk foreground */
133                    diskSearchTimer->Start(MN_READ_INTERVAL, wxTIMER_CONTINUOUS);
134            }
135            else {
136                    config->Write(wxT(CONF_FAST_SEARCH_OPT), wxT(MN_DISABLE_FAST_SEARCH));
137                    diskSearchTimer->Stop();
138            }
139            delete config;
140    }
141    
142    
143  void mnFrameController::handleAbout(wxCommandEvent& event)  void mnFrameController::handleAbout(wxCommandEvent& event)
144  {  {
145          wxMessageBox(wxT(MN_APP_VERSION), wxT("Abount MalonNote"), wxOK|wxICON_INFORMATION);          wxMessageBox(wxT(MN_APP_VERSION), wxT("Abount MalonNote"), wxOK|wxICON_INFORMATION);
146  }  }
147    
148    void mnFrameController::handleAddDir(wxCommandEvent& event)
149    {
150            wxDirDialog* dlg;
151            wxString gotDirName;
152            wxString* dirName = new wxString();
153            
154            dlg = new wxDirDialog(frame);
155            if(dlg->ShowModal() == wxID_OK) {
156                    gotDirName = dlg->GetPath();
157                    if(isExistConfig(&gotDirName) == false){
158                            frame->addNotePanel(&gotDirName);
159                    }
160                    else {
161                            wxMessageBox(wxT("It already exist in MalonNote"), wxT("Already exist"), wxOK|wxICON_INFORMATION);
162                            return;
163                    }
164            }
165            updateConfig();
166    }
167    
168    void mnFrameController::handleRemoveDir(wxCommandEvent& event)
169    {
170            frame->removeSelectedNotePanel();
171            updateConfig();
172    }
173    
174    void mnFrameController::updateConfig()
175    {
176            wxString  confKey;
177            wxNotebook* notebook;
178            mnNotePanel* panel;
179    
180            wxConfig* config = new wxConfig(wxT(CONF_APP_NAME));
181            config->DeleteAll();
182            delete config;
183            config = new wxConfig(wxT(CONF_APP_NAME)); // recreate config object
184            notebook = frame->getNotebook();
185            int count = notebook->GetPageCount();
186            for(int i = 0; i < count; i++) {
187                    panel = (mnNotePanel*)notebook->GetPage(i);
188                    const wxString* dataDir = panel->getController()->getWikiDataDir();
189    
190                    if(i == 0){
191                            config->Write(wxT(CONF_WIKI_DIR), dataDir->c_str());
192                    }
193                    else{
194                            confKey.sprintf(wxT(CONF_WIKI_DIR) "%d", i);
195                            config->Write(confKey.c_str(), dataDir->c_str());
196                    }
197            }
198            delete config;
199    }
200    
201    bool mnFrameController::isExistConfig(wxString* dir)
202    {
203            wxString* dirName = new wxString();
204            wxString gotDirName;
205            wxDirDialog* dlg;
206            wxString confKey;
207    
208            wxConfig* config = new wxConfig(wxT(CONF_APP_NAME));
209            for(int i = 0; ;i++) {
210                    if(i == 0) {
211                            confKey.sprintf(wxT(CONF_WIKI_DIR));
212                    }
213                    else {
214                            confKey.sprintf(wxT(CONF_WIKI_DIR) "%d", i);
215                    }
216                    if(config->Read(confKey.c_str(), dirName)) {
217                            if(*dir == *dirName) return true;    /* Exist */
218                    }
219                    else {
220                            break;
221                    }
222            }
223            
224            delete dirName;
225            delete config;
226    
227            return false;
228    }
229    
230    
231    void mnFrameController::handlePageChange(wxNotebookEvent& event)
232    {
233            wxNotebook* notebook;
234            mnNotePanel* panel;
235    
236            notebook = frame->getNotebook();
237            panel = (mnNotePanel*)notebook->GetPage(event.GetSelection());
238            const wxString* dataDir = panel->getController()->getWikiDataDir();
239    
240            frame->GetStatusBar()->SetStatusText(*dataDir);
241    }

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.12

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