Develop and Download Open Source Software

Browse CVS Repository

Annotation of /malonnote/mnFrameController.cpp

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


Revision 1.12 - (hide annotations) (download) (as text)
Tue Oct 24 08:52:04 2006 UTC (17 years, 4 months ago) by maloninc
Branch: MAIN
CVS Tags: HEAD
Changes since 1.11: +5 -0 lines
File MIME type: text/x-c++src
add FastSearch menu item and save it

1 maloninc 1.1 // -*- C++ -*- generated by wxGlade 0.3.5.1 on Wed Jun 29 12:57:38 2005
2    
3     #include "mnID.h"
4     #include "mnDef.h"
5     #include "mnFrameController.h"
6     #include "mnNotePanelController.h"
7     #include <wx/config.h>
8     #include <wx/tokenzr.h>
9     #include <wx/utils.h>
10     #include <wx/xrc/xmlres.h>
11    
12     BEGIN_EVENT_TABLE(mnFrameController, wxEvtHandler)
13     EVT_TEXT_ENTER(XRCID("searchTextCtrl"), mnFrameController::handleSearch)
14 maloninc 1.2 EVT_MENU(XRCID("New"), mnFrameController::handleNew)
15     EVT_MENU(XRCID("Remove"), mnFrameController::handleRemove)
16     EVT_MENU(XRCID("Edit"), mnFrameController::handleEdit)
17     EVT_MENU(XRCID("Highlight"), mnFrameController::handleHighlight)
18 maloninc 1.1 EVT_MENU(XRCID("Expand"), mnFrameController::handleTreeExpand)
19     EVT_MENU(XRCID("Collapse"), mnFrameController::handleTreeCollapse)
20     EVT_MENU(XRCID("Clear"), mnFrameController::handleTreeClear)
21 maloninc 1.2 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 maloninc 1.1 EVT_MENU(XRCID("Quit"), mnFrameController::handleExit)
26 maloninc 1.11 EVT_MENU(XRCID("FastSearch"), mnFrameController::handleFastSearch)
27 maloninc 1.1 EVT_MENU(wxID_ABOUT, mnFrameController::handleAbout)
28     EVT_CLOSE(mnFrameController::handleClose)
29 maloninc 1.6 EVT_NOTEBOOK_PAGE_CHANGED(XRCID("noteBook"), mnFrameController::handlePageChange)
30 maloninc 1.11 EVT_TIMER(wxID_ANY, mnFrameController::handleDiskSearchTimer)
31 maloninc 1.1 END_EVENT_TABLE()
32    
33     mnFrameController::mnFrameController(mnFrame* inframe)
34     {
35     frame = inframe;
36 maloninc 1.8
37 maloninc 1.11 diskSearchTimer = new wxTimer(this);
38     diskSearchTimer->Start(MN_READ_INTERVAL, wxTIMER_CONTINUOUS);
39 maloninc 1.8 }
40    
41 maloninc 1.11 void mnFrameController::readAll(bool flag)
42 maloninc 1.8 {
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 maloninc 1.11 controller->readAll(flag);
53 maloninc 1.8 }
54 maloninc 1.1 }
55    
56 maloninc 1.11 void mnFrameController::handleDiskSearchTimer(wxTimerEvent& event)
57     {
58     readAll(false); /* search disk background */
59     }
60    
61 maloninc 1.1 void mnFrameController::handleConfig(wxCommandEvent& event)
62     {
63     wxLogMessage(wxT("Config..."));
64     }
65    
66     void mnFrameController::handleSearch(wxCommandEvent& event)
67     {
68     frame->getNotePanel()->getController()->handleSearch(event);
69     }
70    
71 maloninc 1.2 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 maloninc 1.1
116     void mnFrameController::handleClose(wxCloseEvent& event)
117     {
118     frame->Destroy();
119     }
120    
121     void mnFrameController::handleExit(wxCommandEvent& event)
122     {
123     frame->Close();
124     }
125    
126 maloninc 1.11 void mnFrameController::handleFastSearch(wxCommandEvent& event)
127     {
128 maloninc 1.12 wxConfig* config = new wxConfig(wxT(CONF_APP_NAME));
129    
130 maloninc 1.11 if( event.IsChecked() ) {
131 maloninc 1.12 config->Write(wxT(CONF_FAST_SEARCH_OPT), wxT(MN_ENABLE_FAST_SEARCH));
132 maloninc 1.11 readAll(true); /* Search disk foreground */
133     diskSearchTimer->Start(MN_READ_INTERVAL, wxTIMER_CONTINUOUS);
134     }
135     else {
136 maloninc 1.12 config->Write(wxT(CONF_FAST_SEARCH_OPT), wxT(MN_DISABLE_FAST_SEARCH));
137 maloninc 1.11 diskSearchTimer->Stop();
138     }
139 maloninc 1.12 delete config;
140 maloninc 1.11 }
141    
142 maloninc 1.1
143     void mnFrameController::handleAbout(wxCommandEvent& event)
144     {
145     wxMessageBox(wxT(MN_APP_VERSION), wxT("Abount MalonNote"), wxOK|wxICON_INFORMATION);
146     }
147    
148 maloninc 1.2 void mnFrameController::handleAddDir(wxCommandEvent& event)
149     {
150     wxDirDialog* dlg;
151     wxString gotDirName;
152     wxString* dirName = new wxString();
153 maloninc 1.3
154 maloninc 1.2 dlg = new wxDirDialog(frame);
155     if(dlg->ShowModal() == wxID_OK) {
156     gotDirName = dlg->GetPath();
157 maloninc 1.5 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 maloninc 1.2 }
165 maloninc 1.3 updateConfig();
166 maloninc 1.2 }
167    
168     void mnFrameController::handleRemoveDir(wxCommandEvent& event)
169     {
170 maloninc 1.3 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 maloninc 1.7 delete config;
183     config = new wxConfig(wxT(CONF_APP_NAME)); // recreate config object
184 maloninc 1.3 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 maloninc 1.2 }
200 maloninc 1.5
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 maloninc 1.6
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     }

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