Hi,
Patch attached. Comments very welcomed, as there was already a little
talk about the usefulness of this functionality some time ago (see
http://code.pgadmin.org/trac/ticket/141 for details).
--
Guillaume.
http://www.postgresqlfr.org
http://dalibo.com
diff --git a/pgadmin/frm/frmMain.cpp b/pgadmin/frm/frmMain.cpp
index 67e9b67..d0134a8 100644
--- a/pgadmin/frm/frmMain.cpp
+++ b/pgadmin/frm/frmMain.cpp
@@ -333,6 +333,7 @@ void frmMain::CreateMenus()
new startServiceFactory(menuFactories, toolsMenu, 0);
new stopServiceFactory(menuFactories, toolsMenu, 0);
+ new reloadconfServiceFactory(menuFactories, toolsMenu, 0);
new createFactory(menuFactories, editMenu, toolBar);
new dropFactory(menuFactories, editMenu, toolBar);
diff --git a/pgadmin/include/schema/pgServer.h b/pgadmin/include/schema/pgServer.h
index 9567897..776ffd0 100644
--- a/pgadmin/include/schema/pgServer.h
+++ b/pgadmin/include/schema/pgServer.h
@@ -53,6 +53,7 @@ public:
bool StopService();
bool GetServerRunning();
bool GetServerControllable();
+ bool ReloadConfiguration();
pgServer *GetServer() const;
@@ -267,4 +268,12 @@ public:
bool CheckEnable(pgObject *obj);
};
+class reloadconfServiceFactory : public contextActionFactory
+{
+public:
+ reloadconfServiceFactory (menuFactoryList *list, wxMenu *mnu, ctlMenuToolbar *toolbar);
+ wxWindow *StartDialog(frmMain *form, pgObject *obj);
+ bool CheckEnable(pgObject *obj);
+};
+
#endif
diff --git a/pgadmin/schema/pgServer.cpp b/pgadmin/schema/pgServer.cpp
index e62f552..46ca382 100644
--- a/pgadmin/schema/pgServer.cpp
+++ b/pgadmin/schema/pgServer.cpp
@@ -1066,6 +1066,13 @@ void pgServer::ShowDependents(frmMain *form, ctlListView *referencedBy, const wx
referencedBy->AddColumn(_("Restriction"), 50);
}
+bool pgServer::ReloadConfiguration()
+{
+ wxString sql = wxT("select pg_reload_conf()");
+ return conn->ExecuteVoid(sql);
+}
+
+
pgServerCollection::pgServerCollection(pgaFactory *factory)
: pgCollection(factory)
{
@@ -1548,3 +1555,30 @@ bool disconnectServerFactory::CheckEnable(pgObject *obj)
return false;
}
+
+reloadconfServiceFactory::reloadconfServiceFactory(menuFactoryList *list, wxMenu *mnu, ctlMenuToolbar *toolbar) : contextActionFactory(list)
+{
+ mnu->Append(id, _("Reload configuration"), _("Reload configuration"));
+}
+
+
+wxWindow *reloadconfServiceFactory::StartDialog(frmMain *form, pgObject *obj)
+{
+ pgServer *server= (pgServer*)obj;
+ form->StartMsg(_("Reloading configuration"));
+ bool rc = server->ReloadConfiguration();
+ form->EndMsg(rc);
+ return 0;
+}
+
+
+bool reloadconfServiceFactory::CheckEnable(pgObject *obj)
+{
+ if (obj && obj->IsCreatedBy(serverFactory))
+ {
+ pgServer *server=(pgServer*)obj;
+ return server->GetConnected() && server->connection()->BackendMinimumVersion(8, 1);
+ }
+ return false;
+}
+
--
Sent via pgadmin-hackers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers