Hello.

Please see this patch. These are changes in the macros manage dialog:
- the "Save" button is enabled after any change in the query window
- RestorePosition() in the constructor
- unnecessary variable appQueryModify has been removed
- changed the condition that checks whether the title and query were filled (method SetMacro())

Thank you.

--
Dmitriy Olshevskiy

From a08c138eaff747cd13e7876e9667dabf946a6205 Mon Sep 17 00:00:00 2001
From: olshevskiy87 <olshevski...@bk.ru>
Date: Sat, 12 Jul 2014 14:18:50 +0400
Subject: [PATCH] - saving macro after query pasting

- restoring of the saved position
- unnecessary variable appQueryModify has been removed
---
 pgadmin/dlg/dlgManageMacros.cpp       | 29 +++++++++++------------------
 pgadmin/include/dlg/dlgManageMacros.h |  1 -
 2 files changed, 11 insertions(+), 19 deletions(-)

diff --git a/pgadmin/dlg/dlgManageMacros.cpp b/pgadmin/dlg/dlgManageMacros.cpp
index be800df..c1d27d4 100644
--- a/pgadmin/dlg/dlgManageMacros.cpp
+++ b/pgadmin/dlg/dlgManageMacros.cpp
@@ -23,7 +23,7 @@
 
 //pointer to controls
 #define lstKeys                CTRL_LISTVIEW("lstKeys")
-#define txtName            CTRL_TEXT("txtName")
+#define txtName                CTRL_TEXT("txtName")
 #define txtSqlBox      CTRL_SQLBOX("txtSqlBox")
 #define btnClear       CTRL_BUTTON("btnClear")
 #define btnSave                CTRL_BUTTON("btnSave")
@@ -35,7 +35,7 @@ BEGIN_EVENT_TABLE(dlgManageMacros, DialogWithHelp)
        EVT_BUTTON (XRCID("btnClear"),                          
dlgManageMacros::OnClear)
        EVT_BUTTON (XRCID("btnSave"),                           
dlgManageMacros::OnSave)
        EVT_TEXT   (XRCID("txtName"),                           
dlgManageMacros::OnNameChange)
-       EVT_STC_CHARADDED (XRCID("txtSqlBox"),      
dlgManageMacros::OnQueryChange)
+       EVT_STC_CHANGE (XRCID("txtSqlBox"),                     
dlgManageMacros::OnQueryChange)
 END_EVENT_TABLE()
 
 dlgManageMacros::dlgManageMacros(wxWindow *parent, frmMain *form, 
queryMacroList *macros) :
@@ -43,6 +43,7 @@ dlgManageMacros::dlgManageMacros(wxWindow *parent, frmMain 
*form, queryMacroList
 {
        SetFont(settings->GetSystemFont());
        LoadResource(parent, wxT("dlgManageMacros"));
+       RestorePosition();
 
        this->macros = macros;
 
@@ -73,6 +74,8 @@ dlgManageMacros::dlgManageMacros(wxWindow *parent, frmMain 
*form, queryMacroList
        // Clear Markers
        anythingChanged = false;
        thisMacroChanged = false;
+
+       txtSqlBox->SetModEventMask(wxSTC_MOD_INSERTTEXT | wxSTC_MOD_DELETETEXT);
 }
 
 void dlgManageMacros::AddKeyToList(int position, const wxString &key)
@@ -124,11 +127,9 @@ void dlgManageMacros::DeleteMacro(int listItem)
        if (macros->DelMacro(key))
        {
                anythingChanged = true;
-               appQueryModify = true;
                lstKeys->SetItem(listItem, 1, wxT(""));
                txtName->ChangeValue(wxT(""));
                txtSqlBox->SetText(wxT(""));
-               appQueryModify = false;
                thisMacroChanged = false;
                btnSave->Disable();
                btnClear->Disable();
@@ -164,14 +165,14 @@ void dlgManageMacros::SetMacro(bool silent)
                return;
 
        key = lstKeys->GetItemText(item);
-       Name = txtName->GetValue();
-       query = txtSqlBox->GetText();
+       Name = txtName->GetValue().Trim();
+       query = txtSqlBox->GetText().Trim();
 
        if (Name.IsEmpty() && query.IsEmpty())
        {
                DeleteMacro(item);
        }
-       else if ((Name.IsEmpty() && !query.IsEmpty()) || (!Name.IsEmpty() && 
query.IsEmpty()))
+       else if (Name.IsEmpty() || query.IsEmpty())
        {
                if (!silent)
                        wxMessageBox(_("You must specify a query and a name for 
the macro"), _("Save macro"), wxICON_EXCLAMATION | wxOK);
@@ -196,21 +197,17 @@ void dlgManageMacros::OnKeySelect(wxListEvent &ev)
        queryMacroItem *item = macros->FindMacro(key);
        if (item != NULL)
        {
-               appQueryModify = true;
                txtName->ChangeValue(item->GetName());
                txtSqlBox->SetText(item->GetQuery());
-               appQueryModify = false;
                btnClear->Enable();
                btnSave->Disable();
        }
        else
        {
-               appQueryModify = true;
                txtName->ChangeValue(wxT(""));
                txtSqlBox->SetText(wxT(""));
-               appQueryModify = false;
-               btnClear->Disable();
                btnClear->Disable();
+               btnSave->Disable();
        }
        thisMacroChanged = false;
 }
@@ -223,15 +220,11 @@ void dlgManageMacros::OnNameChange(wxCommandEvent &ev)
 
 void dlgManageMacros::OnQueryChange(wxStyledTextEvent &ev)
 {
-       if (!appQueryModify)
-       {
-               thisMacroChanged = true;
-               btnSave->Enable();
-       }
+       thisMacroChanged = true;
+       btnSave->Enable();
 }
 
 wxString dlgManageMacros::GetHelpPage() const
 {
        return wxT("macros");
 }
-
diff --git a/pgadmin/include/dlg/dlgManageMacros.h 
b/pgadmin/include/dlg/dlgManageMacros.h
index f922237..8abebb2 100644
--- a/pgadmin/include/dlg/dlgManageMacros.h
+++ b/pgadmin/include/dlg/dlgManageMacros.h
@@ -41,7 +41,6 @@ private:
 
        bool anythingChanged;
        bool thisMacroChanged;
-       bool appQueryModify; // Marker to ignore modify events while setting 
query text
 
        DECLARE_EVENT_TABLE()
 };
-- 
1.8.3.msysgit.0

-- 
Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers

Reply via email to