Develop and Download Open Source Software

Browse CVS Repository

Contents of /malonnote/mnFrameController.cpp

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


Revision 1.12 - (show 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 // -*- 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 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 EVT_MENU(XRCID("Expand"), mnFrameController::handleTreeExpand)
19 EVT_MENU(XRCID("Collapse"), mnFrameController::handleTreeCollapse)
20 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)
26 EVT_MENU(XRCID("FastSearch"), mnFrameController::handleFastSearch)
27 EVT_MENU(wxID_ABOUT, mnFrameController::handleAbout)
28 EVT_CLOSE(mnFrameController::handleClose)
29 EVT_NOTEBOOK_PAGE_CHANGED(XRCID("noteBook"), mnFrameController::handlePageChange)
30 EVT_TIMER(wxID_ANY, mnFrameController::handleDiskSearchTimer)
31 END_EVENT_TABLE()
32
33 mnFrameController::mnFrameController(mnFrame* inframe)
34 {
35 frame = inframe;
36
37 diskSearchTimer = new wxTimer(this);
38 diskSearchTimer->Start(MN_READ_INTERVAL, wxTIMER_CONTINUOUS);
39 }
40
41 void mnFrameController::readAll(bool flag)
42 {
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 void mnFrameController::handleDiskSearchTimer(wxTimerEvent& event)
57 {
58 readAll(false); /* search disk background */
59 }
60
61 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 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)
117 {
118 frame->Destroy();
119 }
120
121 void mnFrameController::handleExit(wxCommandEvent& event)
122 {
123 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)
144 {
145 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 }

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