Ticket #149: ticket149_v1.patch

File ticket149_v1.patch, 9.2 KB (added by gleu, 2 years ago)

v1 patch

  • pgadmin/dlg/dlgClasses.cpp

    diff --git a/pgadmin/dlg/dlgClasses.cpp b/pgadmin/dlg/dlgClasses.cpp
    index 943a8a5..2ed3170 100644
    a b  
    293293 
    294294 
    295295 
    296 void pgFrame::UpdateRecentFiles() 
     296void pgFrame::UpdateRecentFiles(bool updatefile) 
    297297{ 
    298298    if (!recentFileMenu) 
    299299        return; 
     
    314314    while (i <= maxFiles) 
    315315        lastFiles[i++] = wxT(""); 
    316316 
    317     if (recentIndex > 1 && !lastPath.IsNull()) 
     317    if (recentIndex > 1 && !lastPath.IsNull() && updatefile) 
    318318    { 
    319319        for (i=recentIndex ; i > 1 ; i--) 
    320320            lastFiles[i] = lastFiles[i-1]; 
     
    332332 
    333333    for (i=1 ; i <= maxFiles ; i++) 
    334334    { 
    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]); 
    336337 
    337338        if (!lastFiles[i].IsNull()) 
    338339            recentFileMenu->Append(MNU_RECENT+i, wxT("&") + wxString::Format(wxT("%d"), i) + wxT("  ") + lastFiles[i]); 
  • pgadmin/frm/frmMain.cpp

    diff --git a/pgadmin/frm/frmMain.cpp b/pgadmin/frm/frmMain.cpp
    index 67e9b67..1db4c06 100644
    a b  
    7676#include "slony/slCluster.h" 
    7777#include "slony/slSet.h" 
    7878 
    79  
    8079#if wxDIALOG_UNIT_COMPATIBILITY 
    8180#error wxWindows must be compiled with wxDIALOG_UNIT_COMPATIBILITY=0! 
    8281#endif 
     
    8887    lastPluginUtility=NULL; 
    8988    pluginUtilityCount = 0; 
    9089 
     90    frmQueries.Clear(); 
     91 
    9192    dlgName = wxT("frmMain"); 
    9293    SetMinSize(wxSize(400,300)); 
    9394    RestorePosition(50, 50, 750, 550, 600, 450); 
     
    230231        delete treeContextMenu; 
    231232} 
    232233 
     234void frmMain::AddFrmQueryTool(frmQuery* fq) 
     235{ 
     236    frmQueries.Add(fq); 
     237} 
    233238 
     239void frmMain::RemoveFrmQueryTool(frmQuery* fq) 
     240{ 
     241    frmQueries.Remove(fq); 
     242} 
     243 
     244void 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 
     253void 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 
     262void 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} 
    234270 
    235271void frmMain::CreateMenus() 
    236272{ 
  • pgadmin/frm/frmQuery.cpp

    diff --git a/pgadmin/frm/frmQuery.cpp b/pgadmin/frm/frmQuery.cpp
    index 1a460f3..8b57784 100644
    a b  
    192192                                                m_fquery->setExtendedTitle(); 
    193193                                                m_fquery->SetLineEndingStyle(); 
    194194                                                m_fquery->UpdateRecentFiles(); 
     195                        m_fquery->UpdateRecentFilesOnFrmQueries(); 
    195196                                } 
    196197                        } 
    197198                        return true; 
     
    305306    favouritesMenu->Append(MNU_FAVOURITES_ADD, _("Add favourite..."), _("Add current query to favourites")); 
    306307    favouritesMenu->Append(MNU_FAVOURITES_MANAGE, _("Manage favourites..."), _("Edit and delete favourites")); 
    307308    favouritesMenu->AppendSeparator(); 
    308     favourites = queryFavouriteFileProvider::LoadFavourites(true); 
     309    favourites = 0L; 
    309310    UpdateFavouritesList(); 
    310311    menuBar->Append(favouritesMenu, _("Fav&ourites")); 
    311312 
    312313    macrosMenu = new wxMenu(); 
    313314    macrosMenu->Append(MNU_MACROS_MANAGE, _("Manage macros..."), _("Edit and delete macros")); 
    314315    macrosMenu->AppendSeparator(); 
    315     macros = queryMacroFileProvider::LoadMacros(true); 
     316    macros = 0L; 
    316317    UpdateMacrosList(); 
    317318    menuBar->Append(macrosMenu, _("&Macros")); 
    318319 
     
    593594 
    594595    msgResult->SetMaxLength(0L); 
    595596    msgHistory->SetMaxLength(0L); 
     597 
     598    form->AddFrmQueryTool(this); 
    596599} 
    597600 
    598601 
     
    600603{ 
    601604    closing = true; 
    602605 
     606    mainForm->RemoveFrmQueryTool(this); 
     607 
    603608    // Save frmQuery Perspective 
    604609    settings->Write(wxT("frmQuery/Perspective-") + VerFromRev(FRMQUERY_PERPSECTIVE_VER), manager.SavePerspective()); 
    605610 
     
    875880} 
    876881 
    877882 
     883void frmQuery::UpdateRecentFilesOnFrmQueries() 
     884{ 
     885    mainForm->UpdateRecentFilesOnFrmQueries(); 
     886} 
     887 
     888 
    878889typedef struct __sqltokenhelp 
    879890{ 
    880891    const wxChar *token; 
     
    13851396 
    13861397void frmQuery::UpdateFavouritesList() 
    13871398{ 
     1399    if (favourites) 
     1400        delete favourites; 
     1401 
     1402    favourites = queryFavouriteFileProvider::LoadFavourites(true); 
     1403 
    13881404    while (favouritesMenu->GetMenuItemCount() > 3) 
    13891405    { 
    13901406        favouritesMenu->Destroy(favouritesMenu->GetMenuItems()[3]); 
     
    13961412 
    13971413void frmQuery::UpdateMacrosList() 
    13981414{ 
     1415    if (macros) 
     1416        delete macros; 
     1417 
     1418    macros = queryMacroFileProvider::LoadMacros(true); 
     1419 
    13991420    while (macrosMenu->GetMenuItemCount() > 2) 
    14001421    { 
    14011422        macrosMenu->Destroy(macrosMenu->GetMenuItems()[2]); 
     
    14131434    { 
    14141435        // Added a favourite, so save 
    14151436        queryFavouriteFileProvider::SaveFavourites(favourites); 
    1416         UpdateFavouritesList(); 
     1437        mainForm->UpdateFavouritesListOnFrmQueries(); 
    14171438    } 
    14181439} 
    14191440 
     
    14251446    { 
    14261447        // Changed something, so save 
    14271448        queryFavouriteFileProvider::SaveFavourites(favourites); 
    1428         UpdateFavouritesList(); 
    14291449    } 
    1430     else if (r == -1) 
     1450    if (r == 1 || r == -1) 
    14311451    { 
    14321452        // Changed something requiring rollback 
    1433         delete favourites; 
    1434         favourites = queryFavouriteFileProvider::LoadFavourites(true); 
    1435         UpdateFavouritesList(); 
     1453        mainForm->UpdateFavouritesListOnFrmQueries(); 
    14361454    } 
    14371455} 
    14381456 
     
    15941612        setExtendedTitle(); 
    15951613        SetLineEndingStyle(); 
    15961614        UpdateRecentFiles(); 
     1615        mainForm->UpdateRecentFilesOnFrmQueries(); 
    15971616    } 
    15981617} 
    15991618 
     
    21352154    { 
    21362155        // Changed something, so save 
    21372156        queryMacroFileProvider::SaveMacros(macros); 
    2138         UpdateMacrosList(); 
    21392157    } 
    2140     else if (r == -1) 
     2158    if (r == -1 || r == 1) 
    21412159    { 
    21422160        // Changed something requiring rollback 
    2143         delete macros; 
    2144         macros = queryMacroFileProvider::LoadMacros(true); 
    2145         UpdateMacrosList(); 
     2161        mainForm->UpdateMacrosListOnFrmQueries(); 
    21462162    } 
    21472163 
    21482164} 
  • pgadmin/include/dlg/dlgClasses.h

    diff --git a/pgadmin/include/dlg/dlgClasses.h b/pgadmin/include/dlg/dlgClasses.h
    index 26f576e..c5c4d23 100644
    a b  
    6060    void SavePosition(); 
    6161    void OnAction(wxCommandEvent& event); 
    6262                 
    63     void UpdateRecentFiles(); 
     63    void UpdateRecentFiles(bool updatefile=true); 
    6464 
    6565        menuFactoryList *GetMenuFactories() { return menuFactories; } 
    6666 
  • pgadmin/include/frm/frmMain.h

    diff --git a/pgadmin/include/frm/frmMain.h b/pgadmin/include/frm/frmMain.h
    index d9980a9..27d3559 100644
    a b  
    1717#include <wx/wx.h> 
    1818#include <wx/listctrl.h> 
    1919#include <wx/notebook.h> 
     20#include <wx/dynarray.h> 
    2021 
    2122// wxAUI 
    2223#include <wx/aui/aui.h> 
    2324 
     25#include "frm/frmQuery.h" 
    2426#include "dlg/dlgClasses.h" 
    2527#include "utils/factory.h" 
    2628 
     
    7072}; 
    7173 
    7274 
     75WX_DEFINE_ARRAY_PTR(frmQuery *, ArrayOfFrmQuery); 
     76 
     77 
    7378// Class declarations 
    7479class frmMain : public pgFrame 
    7580{ 
     
    116121    wxString GetCurrentNodePath(); 
    117122    bool SetCurrentNode(wxTreeItemId node, const wxString &path); 
    118123 
     124    void AddFrmQueryTool(frmQuery *fq); 
     125    void RemoveFrmQueryTool(frmQuery *fq); 
     126    void UpdateRecentFilesOnFrmQueries(); 
     127    void UpdateFavouritesListOnFrmQueries(); 
     128    void UpdateMacrosListOnFrmQueries(); 
     129 
    119130private: 
    120131    wxAuiManager manager; 
    121132    ctlTree *browser; 
     
    145156    wxTreeItemId denyCollapseItem; 
    146157    pgObject *currentObject; 
    147158 
     159    ArrayOfFrmQuery frmQueries; 
     160 
    148161    void OnEraseBackground(wxEraseEvent& event); 
    149162    void OnSize(wxSizeEvent& event); 
    150163        void OnSelectItem(wxListEvent &event); 
  • pgadmin/include/frm/frmQuery.h

    diff --git a/pgadmin/include/frm/frmQuery.h b/pgadmin/include/frm/frmQuery.h
    index c94ad7e..c23f0d4 100644
    a b  
    8282                void SetLastPath(wxString p_lastpath) { lastPath = p_lastpath; } 
    8383    bool CheckChanged(bool canVeto); 
    8484 
     85    void UpdateRecentFilesOnFrmQueries(); 
     86    void UpdateFavouritesList(); 
     87    void UpdateMacrosList(); 
     88 
    8589private: 
    8690    frmMain *mainForm; 
    8791    wxAuiManager manager; 
     
    200204    void OnScriptComplete(wxCommandEvent &ev); 
    201205    void setTools(const bool running); 
    202206    void showMessage(const wxString& msg, const wxString &msgShort=wxT("")); 
    203     void UpdateFavouritesList(); 
    204207    int GetLineEndingStyle(); 
    205208    void OnSetEOLMode(wxCommandEvent& event); 
    206209    void SetEOLModeDisplay(int mode); 
    207210    void OnMacroInvoke(wxCommandEvent& event); 
    208211    void OnMacroManage(wxCommandEvent& event); 
    209     void UpdateMacrosList(); 
    210212 
    211213    void LoadQueries(); 
    212214    void SaveQueries();