Hi Gullaime,

please find patch for #229 attached.

Regards Steffen
diff --git a/pgadmin/agent/dlgSchedule.cpp b/pgadmin/agent/dlgSchedule.cpp
index 8fdb9fc..4e73f63 100644
--- a/pgadmin/agent/dlgSchedule.cpp
+++ b/pgadmin/agent/dlgSchedule.cpp
@@ -16,6 +16,8 @@
 #include "agent/dlgSchedule.h"
 #include "agent/pgaSchedule.h"
 
+// image for de/-select all
+#include "images/check.xpm"
 
 // pointer to controls
 #define	txtID				CTRL_TEXT("txtID")
@@ -35,7 +37,11 @@
 #define btnAddException     CTRL_BUTTON("btnAddException")
 #define btnChangeException  CTRL_BUTTON("btnChangeException")
 #define btnRemoveException  CTRL_BUTTON("btnRemoveException")
-
+#define btnWeekdays  		CTRL_BUTTON("btnWeekdays")
+#define btnMonthdays  		CTRL_BUTTON("btnMonthdays")
+#define btnMonths  			CTRL_BUTTON("btnMonths")
+#define btnHours  			CTRL_BUTTON("btnHours")
+#define btnMinutes  		CTRL_BUTTON("btnMinutes")
 
 BEGIN_EVENT_TABLE(dlgSchedule, dlgAgentProperty)
     EVT_CHECKBOX(XRCID("chkEnabled"),                dlgSchedule::OnChangeCom)
@@ -47,6 +53,11 @@ BEGIN_EVENT_TABLE(dlgSchedule, dlgAgentProperty)
     EVT_BUTTON(XRCID("btnAddException"),             dlgSchedule::OnAddException)
     EVT_BUTTON(XRCID("btnChangeException"),          dlgSchedule::OnChangeException)
     EVT_BUTTON(XRCID("btnRemoveException"),          dlgSchedule::OnRemoveException)
+    EVT_BUTTON(XRCID("btnWeekdays"),        	     dlgSchedule::OnSelectAllWeekdays)
+    EVT_BUTTON(XRCID("btnMonthdays"),		         dlgSchedule::OnSelectAllMonthdays)
+    EVT_BUTTON(XRCID("btnMonths"), 				     dlgSchedule::OnSelectAllMonths)
+    EVT_BUTTON(XRCID("btnHours"),  			         dlgSchedule::OnSelectAllHours)
+    EVT_BUTTON(XRCID("btnMinutes"),			         dlgSchedule::OnSelectAllMinutes)
 	EVT_CHECKLISTBOX(XRCID("chkWeekdays"),           dlgSchedule::OnChangeCom)
 	EVT_CHECKLISTBOX(XRCID("chkMonthdays"),          dlgSchedule::OnChangeCom)
 	EVT_CHECKLISTBOX(XRCID("chkMonths"),             dlgSchedule::OnChangeCom)
@@ -90,6 +101,18 @@ dlgSchedule::dlgSchedule(pgaFactory *f, frmMain *frame, pgaSchedule *node, pgaJo
 
     for (i=0 ; i < 60 ; i++)
         chkMinutes->Append(wxString::Format(wxT("%02d"), i));
+
+    // setup bitmap buttons
+	((wxBitmapButton *)btnWeekdays)->SetBitmapLabel(wxBitmap(check_xpm));
+	btnWeekdays->SetToolTip(_("Select all week days"));
+	((wxBitmapButton *)btnMonthdays)->SetBitmapLabel(wxBitmap(check_xpm));
+	btnMonthdays->SetToolTip(_("Select all month days"));
+	((wxBitmapButton *)btnMonths)->SetBitmapLabel(wxBitmap(check_xpm));
+	btnMonths->SetToolTip(_("Select all months"));
+	((wxBitmapButton *)btnHours)->SetBitmapLabel(wxBitmap(check_xpm));
+	btnHours->SetToolTip(_("Select all hours"));
+	((wxBitmapButton *)btnMinutes)->SetBitmapLabel(wxBitmap(check_xpm));
+	btnMinutes->SetToolTip(_("Select all minutes"));
 }
 
 
@@ -218,11 +241,13 @@ void dlgSchedule::OnChangeCal(wxCalendarEvent &ev)
     CheckChange();
 }
 
+
 void dlgSchedule::OnChangeCom(wxCommandEvent &ev)
 {
     CheckChange();
 }
 
+
 void dlgSchedule::CheckChange()
 {
     timEnd->Enable(calEnd->GetValue().IsValid());
@@ -618,6 +643,7 @@ wxString dlgSchedule::GetUpdateSql()
     return sql;
 }
 
+
 const wxString dlgSchedule::ChkListBox2PgArray(wxCheckListBox *lb)
 {
 	wxString res = wxT("{");
@@ -637,6 +663,7 @@ const wxString dlgSchedule::ChkListBox2PgArray(wxCheckListBox *lb)
 	return res;
 }
 
+
 const wxString dlgSchedule::ChkListBox2StrArray(wxCheckListBox *lb)
 {
 	wxString res;
@@ -651,3 +678,42 @@ const wxString dlgSchedule::ChkListBox2StrArray(wxCheckListBox *lb)
 
 	return res;
 }
+
+
+void dlgSchedule::OnSelectAll(wxCommandEvent &ev, int origin)
+{
+	bool check = false;
+	wxCheckListBox *lb;
+
+	switch (origin) {
+		case 1:
+			lb = chkWeekdays;
+			break;
+		case 2:
+			lb = chkMonthdays;
+			break;
+		case 3:
+			lb = chkMonths;
+			break;
+		case 4:
+			lb = chkHours;
+			break;
+		case 5:
+			lb = chkMinutes;
+			break;
+		default:
+			break;
+	}
+
+	for (unsigned int x=0; x < lb->GetCount(); x++)
+	{
+		if (!lb->IsChecked(x))
+			check = true;
+	}
+	for (unsigned int x=0; x < lb->GetCount(); x++)
+	{
+		lb->Check(x, check);
+	}
+
+	CheckChange();
+}
diff --git a/pgadmin/include/agent/dlgSchedule.h b/pgadmin/include/agent/dlgSchedule.h
index f564061..74229aa 100644
--- a/pgadmin/include/agent/dlgSchedule.h
+++ b/pgadmin/include/agent/dlgSchedule.h
@@ -56,6 +56,12 @@ private:
     void OnRemoveException(wxCommandEvent &ev);
 	const wxString ChkListBox2PgArray(wxCheckListBox *lb);
 	const wxString ChkListBox2StrArray(wxCheckListBox *lb);
+    void OnSelectAll(wxCommandEvent &ev, int origin);
+    void OnSelectAllWeekdays(wxCommandEvent &ev) {OnSelectAll(ev, 1);};
+    void OnSelectAllMonthdays(wxCommandEvent &ev) {OnSelectAll(ev, 2);};
+    void OnSelectAllMonths(wxCommandEvent &ev) {OnSelectAll(ev, 3);};
+    void OnSelectAllHours(wxCommandEvent &ev) {OnSelectAll(ev, 4);};
+    void OnSelectAllMinutes(wxCommandEvent &ev) {OnSelectAll(ev, 5);};
 
     DECLARE_EVENT_TABLE()
 };
diff --git a/pgadmin/ui/dlgSchedule.xrc b/pgadmin/ui/dlgSchedule.xrc
index efd9a8e..4f90a90 100644
--- a/pgadmin/ui/dlgSchedule.xrc
+++ b/pgadmin/ui/dlgSchedule.xrc
@@ -143,12 +143,12 @@
             <label>Days</label>
             <object class="wxPanel" name="pnlDays">
               <object class="wxFlexGridSizer">
-                <cols>2</cols>
+                <cols>3</cols>
                 <rows>3</rows>
                 <vgap>5</vgap>
                 <hgap>5</hgap>
                 <growablerows>2</growablerows>
-                <growablecols>1</growablecols>
+                <growablecols>2</growablecols>
                 <object class="sizeritem">
                   <object class="wxStaticText" name="stWeekdays">
                     <label>Week Days</label>
@@ -157,6 +157,13 @@
                   <border>4</border>
                 </object>
                 <object class="sizeritem">
+					<object class="wxBitmapButton" name="btnWeekdays">
+	                	<style>wxBU_AUTODRAW</style>
+	                </object>
+	                <flag>wxALIGN_BOTTOM|wxALIGN_RIGHT</flag>
+	                <border>4</border>
+	            </object>
+                <object class="sizeritem">
                   <object class="wxCheckListBox" name="chkWeekdays">
                     <size>-1,70d</size>
                     <content>
@@ -180,6 +187,13 @@
                   <border>4</border>
                 </object>
                 <object class="sizeritem">
+					<object class="wxBitmapButton" name="btnMonthdays">
+	                	<style>wxBU_AUTODRAW</style>
+	                </object>
+	                <flag>wxALIGN_BOTTOM|wxALIGN_RIGHT</flag>
+	                <border>4</border>
+	            </object>
+                <object class="sizeritem">
                   <object class="wxCheckListBox" name="chkMonthdays">
                     <size>-1,70d</size>
                     <content>
@@ -228,6 +242,13 @@
                   <border>4</border>
                 </object>
                 <object class="sizeritem">
+					<object class="wxBitmapButton" name="btnMonths">
+	                	<style>wxBU_AUTODRAW</style>
+	                </object>
+	                <flag>wxALIGN_BOTTOM|wxALIGN_RIGHT</flag>
+	                <border>4</border>
+	            </object>
+                <object class="sizeritem">
                   <object class="wxCheckListBox" name="chkMonths">
                     <content>
                       <item>January</item>
@@ -254,12 +275,12 @@
             <label>Times</label>
             <object class="wxPanel" name="pnlTimes">
               <object class="wxFlexGridSizer">
-                <cols>2</cols>
+                <cols>3</cols>
                 <rows>2</rows>
                 <vgap>5</vgap>
                 <hgap>5</hgap>
                 <growablerows>1</growablerows>
-                <growablecols>1</growablecols>
+                <growablecols>2</growablecols>
                 <object class="sizeritem">
                   <object class="wxStaticText" name="stHours">
                     <label>Hours</label>
@@ -268,6 +289,13 @@
                   <border>4</border>
                 </object>
                 <object class="sizeritem">
+					<object class="wxBitmapButton" name="btnHours">
+	                	<style>wxBU_AUTODRAW</style>
+	                </object>
+	                <flag>wxALIGN_BOTTOM|wxALIGN_RIGHT</flag>
+	                <border>4</border>
+	            </object>
+                <object class="sizeritem">
                   <object class="wxCheckListBox" name="chkHours">
                     <size>-1,100d</size>
                     <content/>
@@ -283,6 +311,13 @@
                   <border>4</border>
                 </object>
                 <object class="sizeritem">
+					<object class="wxBitmapButton" name="btnMinutes">
+	                	<style>wxBU_AUTODRAW</style>
+	                </object>
+	                <flag>wxALIGN_BOTTOM|wxALIGN_RIGHT</flag>
+	                <border>4</border>
+	            </object>
+                <object class="sizeritem">
                   <object class="wxCheckListBox" name="chkMinutes">
                     <content/>
                   </object>
-- 
Sent via pgadmin-hackers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers

Reply via email to