On 18 July 2011 21:55, Guillaume Lelarge <guilla...@lelarge.info> wrote:
> On Mon, 2011-07-18 at 21:06 +0100, Thom Brown wrote:
>> On 14 July 2011 10:31, Thom Brown <t...@linux.com> wrote:
>> > On 14 July 2011 10:24, Guillaume Lelarge <guilla...@lelarge.info> wrote:
>> >> So, you're working on fixing it, right?
>> >
>> > Possibly ;)  : http://code.pgadmin.org/trac/ticket/329
>> >
>> > I haven't had time to look at fixing various bugs over the last couple
>> > days but I'll get to them shortly.
>>
>> Apologies for the delay but I've now had a moment to look at it.
>
> No apologies needed :)
>
>>   The
>> attached patch removes the duplicate restriction from OnMemberAdd to
>> OnChangeMember, and also disabled the Add button by default.  This is
>> because it's enabled on loading the form which doesn't get disabled
>> again until you start editing the attribute name field, meaning you
>> can click Add without having provided any attribute details.
>>
>
> I'm wondering why you didn't take care of the Change button too. I mean,
> it's so easy now that you've the code working for the Add button that I
> kind of feel I'm missing something obvious which would explain why you
> didn't do it. Any particular reason other than "I forgot it"? :)

Wasn't even that.  It didn't cross my mind.  Reattached with that change.

-- 
Thom Brown
Twitter: @darkixion
IRC (freenode): dark_ixion
Registered Linux user: #516935

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
diff --git a/pgadmin/dlg/dlgType.cpp b/pgadmin/dlg/dlgType.cpp
index 4ef5454..d27df45 100644
--- a/pgadmin/dlg/dlgType.cpp
+++ b/pgadmin/dlg/dlgType.cpp
@@ -112,11 +112,16 @@ dlgType::dlgType(pgaFactory *f, frmMain *frame, pgType *node, pgSchema *sch)
 
 void dlgType::OnChangeMember(wxCommandEvent &ev)
 {
+	wxString name = txtMembername->GetValue().Strip(wxString::both);
+
 	btnAddMember->Enable(
 	    ((type && connection->BackendMinimumVersion(9, 1)) || !type)
-	    && !txtMembername->GetValue().Strip(wxString::both).IsEmpty()
+	    && !name.IsEmpty()
+	    && lstMembers->FindItem(-1, name, false) == -1
 	    && cbDatatype->GetGuessedSelection() >= 0);
-	btnChangeMember->Enable(true);
+	btnChangeMember->Enable(
+	    lstMembers->FindItem(-1, name, false) == lstMembers->GetFirstSelected()
+	    || lstMembers->FindItem(-1, name, false) == -1);
 }
 
 void dlgType::showDefinition(int panel)
@@ -239,7 +244,7 @@ int dlgType::Go(bool modal)
 		bool changeok = connection->BackendMinimumVersion(9, 1);
 		txtMembername->Enable(changeok);
 		cbCollation->Enable(changeok);
-		btnAddMember->Enable(changeok);
+		btnAddMember->Enable(false);
 		btnChangeMember->Enable(false);
 		btnRemoveMember->Enable(false);
 
@@ -529,7 +534,7 @@ void dlgType::OnMemberAdd(wxCommandEvent &ev)
 		type += wxT(")");
 	}
 
-	if (!name.IsEmpty() && lstMembers->FindItem(-1, name, false) == -1)
+	if (!name.IsEmpty())
 	{
 		size_t pos = lstMembers->GetItemCount();
 		lstMembers->InsertItem(pos, name, 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