SVN Commit by andreas: r4455 - in trunk/pgadmin3/src: dlg frm include - Mailing list pgadmin-hackers

From svn@pgadmin.org
Subject SVN Commit by andreas: r4455 - in trunk/pgadmin3/src: dlg frm include
Date
Msg-id 200509182123.j8ILNY0K000661@developer.pgadmin.org
Whole thread Raw
List pgadmin-hackers
Author: andreas
Date: 2005-09-18 22:23:34 +0100 (Sun, 18 Sep 2005)
New Revision: 4455

Modified:
   trunk/pgadmin3/src/dlg/dlgSelectConnection.cpp
   trunk/pgadmin3/src/frm/frmQuery.cpp
   trunk/pgadmin3/src/include/dlgSelectConnection.h
Log:
The very last fixes

Modified: trunk/pgadmin3/src/dlg/dlgSelectConnection.cpp
===================================================================
--- trunk/pgadmin3/src/dlg/dlgSelectConnection.cpp    2005-09-18 20:52:46 UTC (rev 4454)
+++ trunk/pgadmin3/src/dlg/dlgSelectConnection.cpp    2005-09-18 21:23:34 UTC (rev 4455)
@@ -78,21 +78,36 @@
         }
         if (remoteServer->GetConnected())
         {
-            pgSet *set=remoteServer->ExecuteSet(
+            pgSetIterator set(remoteServer->GetConnection(),
                 wxT("SELECT DISTINCT datname\n")
                 wxT("  FROM pg_database db\n")
                 wxT(" WHERE datallowconn ORDER BY datname"));
-            if (set)
+
+            while(set.RowsLeft())
             {
-                while (!set->Eof())
+                wxString dbName=set.GetVal(wxT("datname"));
+
+                bool alreadyConnected=false;
+
+                if (cbConnection)
                 {
-                    cbDatabase->Append(set->GetVal(wxT("datname")));
-                    set->MoveNext();
+                    int i;
+
+                    for (i=0 ; i < cbConnection->GetCount()-1 ; i++)
+                    {
+                        pgConn *conn=(pgConn*)cbConnection->GetClientData(i);
+                        if (conn->GetHost() == remoteServer->GetName() && conn->GetDbname() == dbName)
+                        {
+                            alreadyConnected=true;
+                            break;
+                        }
+                    }
                 }
-                delete set;
-
+                if (!alreadyConnected)
+                    cbDatabase->Append(dbName);
+            }
+            if (cbDatabase->GetCount())
                 cbDatabase->SetSelection(0);
-            }
         }

     }
@@ -124,8 +139,9 @@
 }


-int dlgSelectConnection::Go(pgConn *conn)
+int dlgSelectConnection::Go(pgConn *conn, wxComboBox *cb)
 {
+    cbConnection=cb;
     treeObjectIterator servers(mainForm->GetBrowser(), mainForm->GetServerCollection());
     pgServer *s;


Modified: trunk/pgadmin3/src/frm/frmQuery.cpp
===================================================================
--- trunk/pgadmin3/src/frm/frmQuery.cpp    2005-09-18 20:52:46 UTC (rev 4454)
+++ trunk/pgadmin3/src/frm/frmQuery.cpp    2005-09-18 21:23:34 UTC (rev 4455)
@@ -390,7 +390,7 @@
     {
         // new Connection
         dlgSelectConnection dlg(this, mainForm);
-        int rc=dlg.Go(conn);
+        int rc=dlg.Go(conn, cbConnection);
         if (rc == wxID_OK)
         {
             conn = dlg.GetServer()->CreateConn(dlg.GetDatabase());

Modified: trunk/pgadmin3/src/include/dlgSelectConnection.h
===================================================================
--- trunk/pgadmin3/src/include/dlgSelectConnection.h    2005-09-18 20:52:46 UTC (rev 4454)
+++ trunk/pgadmin3/src/include/dlgSelectConnection.h    2005-09-18 21:23:34 UTC (rev 4455)
@@ -25,7 +25,7 @@
     pgServer *GetServer() { return remoteServer; }
     wxString GetDatabase();

-    int Go(pgConn *conn);
+    int Go(pgConn *conn, wxComboBox *cb);

 private:
     void OnChangeServer(wxCommandEvent& ev);
@@ -34,6 +34,7 @@
     void OnCancel(wxCommandEvent& ev);

     pgServer *remoteServer;
+    wxComboBox *cbConnection;

     DECLARE_EVENT_TABLE()
 };


pgadmin-hackers by date:

Previous
From: svn@pgadmin.org
Date:
Subject: SVN Commit by andreas: r4454 - in trunk/pgadmin3/src: base dlg frm include include/base
Next
From: "Dave Page"
Date:
Subject: Re: Slony in pgAdmin