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