diff --git a/pgadmin/dlg/dlgClasses.cpp b/pgadmin/dlg/dlgClasses.cpp
index 943a8a5..2ed3170 100644
|
a
|
b
|
|
| 293 | 293 | |
| 294 | 294 | |
| 295 | 295 | |
| 296 | | void pgFrame::UpdateRecentFiles() |
| | 296 | void pgFrame::UpdateRecentFiles(bool updatefile) |
| 297 | 297 | { |
| 298 | 298 | if (!recentFileMenu) |
| 299 | 299 | return; |
| … |
… |
|
| 314 | 314 | while (i <= maxFiles) |
| 315 | 315 | lastFiles[i++] = wxT(""); |
| 316 | 316 | |
| 317 | | if (recentIndex > 1 && !lastPath.IsNull()) |
| | 317 | if (recentIndex > 1 && !lastPath.IsNull() && updatefile) |
| 318 | 318 | { |
| 319 | 319 | for (i=recentIndex ; i > 1 ; i--) |
| 320 | 320 | lastFiles[i] = lastFiles[i-1]; |
| … |
… |
|
| 332 | 332 | |
| 333 | 333 | for (i=1 ; i <= maxFiles ; i++) |
| 334 | 334 | { |
| 335 | | settings->Write(recentKey + wxString::Format(wxT("/%d"), i), lastFiles[i]); |
| | 335 | if (updatefile) |
| | 336 | settings->Write(recentKey + wxString::Format(wxT("/%d"), i), lastFiles[i]); |
| 336 | 337 | |
| 337 | 338 | if (!lastFiles[i].IsNull()) |
| 338 | 339 | recentFileMenu->Append(MNU_RECENT+i, wxT("&") + wxString::Format(wxT("%d"), i) + wxT(" ") + lastFiles[i]); |
diff --git a/pgadmin/frm/frmMain.cpp b/pgadmin/frm/frmMain.cpp
index 67e9b67..1db4c06 100644
|
a
|
b
|
|
| 76 | 76 | #include "slony/slCluster.h" |
| 77 | 77 | #include "slony/slSet.h" |
| 78 | 78 | |
| 79 | | |
| 80 | 79 | #if wxDIALOG_UNIT_COMPATIBILITY |
| 81 | 80 | #error wxWindows must be compiled with wxDIALOG_UNIT_COMPATIBILITY=0! |
| 82 | 81 | #endif |
| … |
… |
|
| 88 | 87 | lastPluginUtility=NULL; |
| 89 | 88 | pluginUtilityCount = 0; |
| 90 | 89 | |
| | 90 | frmQueries.Clear(); |
| | 91 | |
| 91 | 92 | dlgName = wxT("frmMain"); |
| 92 | 93 | SetMinSize(wxSize(400,300)); |
| 93 | 94 | RestorePosition(50, 50, 750, 550, 600, 450); |
| … |
… |
|
| 230 | 231 | delete treeContextMenu; |
| 231 | 232 | } |
| 232 | 233 | |
| | 234 | void frmMain::AddFrmQueryTool(frmQuery* fq) |
| | 235 | { |
| | 236 | frmQueries.Add(fq); |
| | 237 | } |
| 233 | 238 | |
| | 239 | void frmMain::RemoveFrmQueryTool(frmQuery* fq) |
| | 240 | { |
| | 241 | frmQueries.Remove(fq); |
| | 242 | } |
| | 243 | |
| | 244 | void frmMain::UpdateRecentFilesOnFrmQueries() |
| | 245 | { |
| | 246 | for (size_t i=0; i < frmQueries.GetCount(); i++) |
| | 247 | { |
| | 248 | frmQuery *fq = frmQueries.Item(i); |
| | 249 | fq->UpdateRecentFiles(false); |
| | 250 | } |
| | 251 | } |
| | 252 | |
| | 253 | void frmMain::UpdateFavouritesListOnFrmQueries() |
| | 254 | { |
| | 255 | for (size_t i=0; i < frmQueries.GetCount(); i++) |
| | 256 | { |
| | 257 | frmQuery *fq = frmQueries.Item(i); |
| | 258 | fq->UpdateFavouritesList(); |
| | 259 | } |
| | 260 | } |
| | 261 | |
| | 262 | void frmMain::UpdateMacrosListOnFrmQueries() |
| | 263 | { |
| | 264 | for (size_t i=0; i < frmQueries.GetCount(); i++) |
| | 265 | { |
| | 266 | frmQuery *fq = frmQueries.Item(i); |
| | 267 | fq->UpdateMacrosList(); |
| | 268 | } |
| | 269 | } |
| 234 | 270 | |
| 235 | 271 | void frmMain::CreateMenus() |
| 236 | 272 | { |
diff --git a/pgadmin/frm/frmQuery.cpp b/pgadmin/frm/frmQuery.cpp
index 1a460f3..8b57784 100644
|
a
|
b
|
|
| 192 | 192 | m_fquery->setExtendedTitle(); |
| 193 | 193 | m_fquery->SetLineEndingStyle(); |
| 194 | 194 | m_fquery->UpdateRecentFiles(); |
| | 195 | m_fquery->UpdateRecentFilesOnFrmQueries(); |
| 195 | 196 | } |
| 196 | 197 | } |
| 197 | 198 | return true; |
| … |
… |
|
| 305 | 306 | favouritesMenu->Append(MNU_FAVOURITES_ADD, _("Add favourite..."), _("Add current query to favourites")); |
| 306 | 307 | favouritesMenu->Append(MNU_FAVOURITES_MANAGE, _("Manage favourites..."), _("Edit and delete favourites")); |
| 307 | 308 | favouritesMenu->AppendSeparator(); |
| 308 | | favourites = queryFavouriteFileProvider::LoadFavourites(true); |
| | 309 | favourites = 0L; |
| 309 | 310 | UpdateFavouritesList(); |
| 310 | 311 | menuBar->Append(favouritesMenu, _("Fav&ourites")); |
| 311 | 312 | |
| 312 | 313 | macrosMenu = new wxMenu(); |
| 313 | 314 | macrosMenu->Append(MNU_MACROS_MANAGE, _("Manage macros..."), _("Edit and delete macros")); |
| 314 | 315 | macrosMenu->AppendSeparator(); |
| 315 | | macros = queryMacroFileProvider::LoadMacros(true); |
| | 316 | macros = 0L; |
| 316 | 317 | UpdateMacrosList(); |
| 317 | 318 | menuBar->Append(macrosMenu, _("&Macros")); |
| 318 | 319 | |
| … |
… |
|
| 593 | 594 | |
| 594 | 595 | msgResult->SetMaxLength(0L); |
| 595 | 596 | msgHistory->SetMaxLength(0L); |
| | 597 | |
| | 598 | form->AddFrmQueryTool(this); |
| 596 | 599 | } |
| 597 | 600 | |
| 598 | 601 | |
| … |
… |
|
| 600 | 603 | { |
| 601 | 604 | closing = true; |
| 602 | 605 | |
| | 606 | mainForm->RemoveFrmQueryTool(this); |
| | 607 | |
| 603 | 608 | // Save frmQuery Perspective |
| 604 | 609 | settings->Write(wxT("frmQuery/Perspective-") + VerFromRev(FRMQUERY_PERPSECTIVE_VER), manager.SavePerspective()); |
| 605 | 610 | |
| … |
… |
|
| 875 | 880 | } |
| 876 | 881 | |
| 877 | 882 | |
| | 883 | void frmQuery::UpdateRecentFilesOnFrmQueries() |
| | 884 | { |
| | 885 | mainForm->UpdateRecentFilesOnFrmQueries(); |
| | 886 | } |
| | 887 | |
| | 888 | |
| 878 | 889 | typedef struct __sqltokenhelp |
| 879 | 890 | { |
| 880 | 891 | const wxChar *token; |
| … |
… |
|
| 1385 | 1396 | |
| 1386 | 1397 | void frmQuery::UpdateFavouritesList() |
| 1387 | 1398 | { |
| | 1399 | if (favourites) |
| | 1400 | delete favourites; |
| | 1401 | |
| | 1402 | favourites = queryFavouriteFileProvider::LoadFavourites(true); |
| | 1403 | |
| 1388 | 1404 | while (favouritesMenu->GetMenuItemCount() > 3) |
| 1389 | 1405 | { |
| 1390 | 1406 | favouritesMenu->Destroy(favouritesMenu->GetMenuItems()[3]); |
| … |
… |
|
| 1396 | 1412 | |
| 1397 | 1413 | void frmQuery::UpdateMacrosList() |
| 1398 | 1414 | { |
| | 1415 | if (macros) |
| | 1416 | delete macros; |
| | 1417 | |
| | 1418 | macros = queryMacroFileProvider::LoadMacros(true); |
| | 1419 | |
| 1399 | 1420 | while (macrosMenu->GetMenuItemCount() > 2) |
| 1400 | 1421 | { |
| 1401 | 1422 | macrosMenu->Destroy(macrosMenu->GetMenuItems()[2]); |
| … |
… |
|
| 1413 | 1434 | { |
| 1414 | 1435 | // Added a favourite, so save |
| 1415 | 1436 | queryFavouriteFileProvider::SaveFavourites(favourites); |
| 1416 | | UpdateFavouritesList(); |
| | 1437 | mainForm->UpdateFavouritesListOnFrmQueries(); |
| 1417 | 1438 | } |
| 1418 | 1439 | } |
| 1419 | 1440 | |
| … |
… |
|
| 1425 | 1446 | { |
| 1426 | 1447 | // Changed something, so save |
| 1427 | 1448 | queryFavouriteFileProvider::SaveFavourites(favourites); |
| 1428 | | UpdateFavouritesList(); |
| 1429 | 1449 | } |
| 1430 | | else if (r == -1) |
| | 1450 | if (r == 1 || r == -1) |
| 1431 | 1451 | { |
| 1432 | 1452 | // Changed something requiring rollback |
| 1433 | | delete favourites; |
| 1434 | | favourites = queryFavouriteFileProvider::LoadFavourites(true); |
| 1435 | | UpdateFavouritesList(); |
| | 1453 | mainForm->UpdateFavouritesListOnFrmQueries(); |
| 1436 | 1454 | } |
| 1437 | 1455 | } |
| 1438 | 1456 | |
| … |
… |
|
| 1594 | 1612 | setExtendedTitle(); |
| 1595 | 1613 | SetLineEndingStyle(); |
| 1596 | 1614 | UpdateRecentFiles(); |
| | 1615 | mainForm->UpdateRecentFilesOnFrmQueries(); |
| 1597 | 1616 | } |
| 1598 | 1617 | } |
| 1599 | 1618 | |
| … |
… |
|
| 2135 | 2154 | { |
| 2136 | 2155 | // Changed something, so save |
| 2137 | 2156 | queryMacroFileProvider::SaveMacros(macros); |
| 2138 | | UpdateMacrosList(); |
| 2139 | 2157 | } |
| 2140 | | else if (r == -1) |
| | 2158 | if (r == -1 || r == 1) |
| 2141 | 2159 | { |
| 2142 | 2160 | // Changed something requiring rollback |
| 2143 | | delete macros; |
| 2144 | | macros = queryMacroFileProvider::LoadMacros(true); |
| 2145 | | UpdateMacrosList(); |
| | 2161 | mainForm->UpdateMacrosListOnFrmQueries(); |
| 2146 | 2162 | } |
| 2147 | 2163 | |
| 2148 | 2164 | } |
diff --git a/pgadmin/include/dlg/dlgClasses.h b/pgadmin/include/dlg/dlgClasses.h
index 26f576e..c5c4d23 100644
|
a
|
b
|
|
| 60 | 60 | void SavePosition(); |
| 61 | 61 | void OnAction(wxCommandEvent& event); |
| 62 | 62 | |
| 63 | | void UpdateRecentFiles(); |
| | 63 | void UpdateRecentFiles(bool updatefile=true); |
| 64 | 64 | |
| 65 | 65 | menuFactoryList *GetMenuFactories() { return menuFactories; } |
| 66 | 66 | |
diff --git a/pgadmin/include/frm/frmMain.h b/pgadmin/include/frm/frmMain.h
index d9980a9..27d3559 100644
|
a
|
b
|
|
| 17 | 17 | #include <wx/wx.h> |
| 18 | 18 | #include <wx/listctrl.h> |
| 19 | 19 | #include <wx/notebook.h> |
| | 20 | #include <wx/dynarray.h> |
| 20 | 21 | |
| 21 | 22 | // wxAUI |
| 22 | 23 | #include <wx/aui/aui.h> |
| 23 | 24 | |
| | 25 | #include "frm/frmQuery.h" |
| 24 | 26 | #include "dlg/dlgClasses.h" |
| 25 | 27 | #include "utils/factory.h" |
| 26 | 28 | |
| … |
… |
|
| 70 | 72 | }; |
| 71 | 73 | |
| 72 | 74 | |
| | 75 | WX_DEFINE_ARRAY_PTR(frmQuery *, ArrayOfFrmQuery); |
| | 76 | |
| | 77 | |
| 73 | 78 | // Class declarations |
| 74 | 79 | class frmMain : public pgFrame |
| 75 | 80 | { |
| … |
… |
|
| 116 | 121 | wxString GetCurrentNodePath(); |
| 117 | 122 | bool SetCurrentNode(wxTreeItemId node, const wxString &path); |
| 118 | 123 | |
| | 124 | void AddFrmQueryTool(frmQuery *fq); |
| | 125 | void RemoveFrmQueryTool(frmQuery *fq); |
| | 126 | void UpdateRecentFilesOnFrmQueries(); |
| | 127 | void UpdateFavouritesListOnFrmQueries(); |
| | 128 | void UpdateMacrosListOnFrmQueries(); |
| | 129 | |
| 119 | 130 | private: |
| 120 | 131 | wxAuiManager manager; |
| 121 | 132 | ctlTree *browser; |
| … |
… |
|
| 145 | 156 | wxTreeItemId denyCollapseItem; |
| 146 | 157 | pgObject *currentObject; |
| 147 | 158 | |
| | 159 | ArrayOfFrmQuery frmQueries; |
| | 160 | |
| 148 | 161 | void OnEraseBackground(wxEraseEvent& event); |
| 149 | 162 | void OnSize(wxSizeEvent& event); |
| 150 | 163 | void OnSelectItem(wxListEvent &event); |
diff --git a/pgadmin/include/frm/frmQuery.h b/pgadmin/include/frm/frmQuery.h
index c94ad7e..c23f0d4 100644
|
a
|
b
|
|
| 82 | 82 | void SetLastPath(wxString p_lastpath) { lastPath = p_lastpath; } |
| 83 | 83 | bool CheckChanged(bool canVeto); |
| 84 | 84 | |
| | 85 | void UpdateRecentFilesOnFrmQueries(); |
| | 86 | void UpdateFavouritesList(); |
| | 87 | void UpdateMacrosList(); |
| | 88 | |
| 85 | 89 | private: |
| 86 | 90 | frmMain *mainForm; |
| 87 | 91 | wxAuiManager manager; |
| … |
… |
|
| 200 | 204 | void OnScriptComplete(wxCommandEvent &ev); |
| 201 | 205 | void setTools(const bool running); |
| 202 | 206 | void showMessage(const wxString& msg, const wxString &msgShort=wxT("")); |
| 203 | | void UpdateFavouritesList(); |
| 204 | 207 | int GetLineEndingStyle(); |
| 205 | 208 | void OnSetEOLMode(wxCommandEvent& event); |
| 206 | 209 | void SetEOLModeDisplay(int mode); |
| 207 | 210 | void OnMacroInvoke(wxCommandEvent& event); |
| 208 | 211 | void OnMacroManage(wxCommandEvent& event); |
| 209 | | void UpdateMacrosList(); |
| 210 | 212 | |
| 211 | 213 | void LoadQueries(); |
| 212 | 214 | void SaveQueries(); |