[Openvas-commits] r2741 - in trunk/openvas-client: . nessus/prefs_dialog src/gui
scm-commit@wald.intevation.org
scm-commit at wald.intevation.org
Wed Mar 11 14:58:28 CET 2009
Author: felix
Date: 2009-03-11 14:58:26 +0100 (Wed, 11 Mar 2009)
New Revision: 2741
Modified:
trunk/openvas-client/ChangeLog
trunk/openvas-client/nessus/prefs_dialog/prefs_report.c
trunk/openvas-client/src/gui/priofiltermngr_dlg.c
trunk/openvas-client/src/gui/priority_override_form.c
trunk/openvas-client/src/gui/priority_override_form.h
Log:
Introduced actions to the priority_override_form to enhance reusability.
Reused the form in the Filter Manager to beautify it.
* src/gui/priority_override_form.c: File doc block added.
* src/gui/priority_override_form.c (priority_override_form_new):
Added parameter formaction to decide whether to lock the form or add an
add-button to it.
* src/gui/priority_override_form.c (priority_override_form_lock):
New function to lock down input to a form.
* src/gui/priority_override_form.c
(priority_override_form_from_override): Parameter added, is passed to
priority_override_form_new.
* src/gui/priority_override_form.h: Protos for (new) functions added/
modified.
* src/gui/priority_override_form.h (enum formaction,
struct priority_override_form): New enum to define possible actions that
a form can help doing. Added field to struct, minor reformating and doc.
* src/gui/priofiltermngr_dlg.c: Added priority_override_form include.
* src/gui/priofiltermngr_dlg.c (priofiltermngr_dlg_add_override):
Declared parameter as const.
* src/gui/priofiltermngr_dlg.c (priofiltermngr_dlg_add_override): Use
form instead of not-so-nice-looking label. Init form with the
view- action.
* nessus/prefs_dialog/prefs_report.c (create_override_page): Init
form with the add- action.
Modified: trunk/openvas-client/ChangeLog
===================================================================
--- trunk/openvas-client/ChangeLog 2009-03-11 12:59:26 UTC (rev 2740)
+++ trunk/openvas-client/ChangeLog 2009-03-11 13:58:26 UTC (rev 2741)
@@ -1,5 +1,42 @@
2009-03-11 Felix Wolfsteller <felix.wolfsteller at intevation.de>
+ Introduced actions to the priority_override_form to enhance reusability.
+ Reused the form in the Filter Manager to beautify it.
+
+ * src/gui/priority_override_form.c: File doc block added.
+
+ * src/gui/priority_override_form.c (priority_override_form_new):
+ Added parameter formaction to decide whether to lock the form or add an
+ add-button to it.
+
+ * src/gui/priority_override_form.c (priority_override_form_lock):
+ New function to lock down input to a form.
+
+ * src/gui/priority_override_form.c
+ (priority_override_form_from_override): Parameter added, is passed to
+ priority_override_form_new.
+
+ * src/gui/priority_override_form.h: Protos for (new) functions added/
+ modified.
+
+ * src/gui/priority_override_form.h (enum formaction,
+ struct priority_override_form): New enum to define possible actions that
+ a form can help doing. Added field to struct, minor reformating and doc.
+
+ * src/gui/priofiltermngr_dlg.c: Added priority_override_form include.
+
+ * src/gui/priofiltermngr_dlg.c (priofiltermngr_dlg_add_override):
+ Declared parameter as const.
+
+ * src/gui/priofiltermngr_dlg.c (priofiltermngr_dlg_add_override): Use
+ form instead of not-so-nice-looking label. Init form with the
+ view- action.
+
+ * nessus/prefs_dialog/prefs_report.c (create_override_page): Init
+ form with the add- action.
+
+2009-03-11 Felix Wolfsteller <felix.wolfsteller at intevation.de>
+
Tackled 3 compiler warnings.
* src/gui/priority_override_form.h: Added newline at end of file.
Modified: trunk/openvas-client/nessus/prefs_dialog/prefs_report.c
===================================================================
--- trunk/openvas-client/nessus/prefs_dialog/prefs_report.c 2009-03-11 12:59:26 UTC (rev 2740)
+++ trunk/openvas-client/nessus/prefs_dialog/prefs_report.c 2009-03-11 13:58:26 UTC (rev 2741)
@@ -529,7 +529,7 @@
static GtkWidget*
create_override_page (priority_override_t* override)
{
- priority_override_form_t* form = priority_override_form_from_override (override);
+ priority_override_form_t* form = priority_override_form_from_override (override, POF_ADD);
return form->vbox;
}
Modified: trunk/openvas-client/src/gui/priofiltermngr_dlg.c
===================================================================
--- trunk/openvas-client/src/gui/priofiltermngr_dlg.c 2009-03-11 12:59:26 UTC (rev 2740)
+++ trunk/openvas-client/src/gui/priofiltermngr_dlg.c 2009-03-11 13:58:26 UTC (rev 2741)
@@ -53,6 +53,7 @@
#include "preferences.h"
#include "prefs_scope_tree.h"
#include "priority_filter.h"
+#include "priority_override_form.h"
/* Needed to access the scopeview to influence GUI (icon,numbers) when a filter is applied */
extern struct arglist* MainDialog;
@@ -68,7 +69,7 @@
* @param listnotebook Listnotebook to add page to.
*/
static void
-priofiltermngr_dlg_add_override (priority_override_t* override,
+priofiltermngr_dlg_add_override (const priority_override_t* override,
GtkWidget* listnotebook)
{
gchar* text = g_strdup_printf ("Name: %s\nOID: %s\nHost: %s\nPort: %s\nReason: %s\n"
@@ -76,8 +77,10 @@
override->name, override->OID, override->host,
override->port, override->reason,
override->prio_from, override->prio_to);
- listnotebook_add_page (listnotebook, gtk_label_new (text), override->name,
- NULL); // No icon
+
+ priority_override_form_t* form = priority_override_form_from_override (override, POF_VIEW);
+ gtk_widget_show_all (form->vbox);
+ listnotebook_add_page (listnotebook, form->vbox, override->name, NULL);
g_free (text);
}
Modified: trunk/openvas-client/src/gui/priority_override_form.c
===================================================================
--- trunk/openvas-client/src/gui/priority_override_form.c 2009-03-11 12:59:26 UTC (rev 2740)
+++ trunk/openvas-client/src/gui/priority_override_form.c 2009-03-11 13:58:26 UTC (rev 2741)
@@ -33,6 +33,14 @@
* wish to do so, delete this exception statement from your version.
*/
+/**
+ * @file
+ *
+ * (priority_override)Forms can let the user inspect, add and (not yet) edit
+ * overrides.
+ *
+ */
+
#ifdef USE_GTK
#include "error_dlg.h"
@@ -49,7 +57,7 @@
static gboolean priority_override_form_valid (priority_override_form_t* form,
priority_filter_t* filter,
gboolean show_warnings);
-
+
/**
* @brief As a callback for an "Add"- Button, adds a priority_override that
* @brief is created from a form to the global_filter. Saves the filter
@@ -100,16 +108,22 @@
/**
* @brief Creates and layouts a new override_form.
*
+ * @param action If action == POF_ADD, add an add-button that on click adds the
+ * override to the global filter. If action == POF_VIEW, lock the
+ * form.
+ *
* @return Fresh priority_override_form_t.
*/
static priority_override_form_t*
-priority_override_form_new ()
+priority_override_form_new (formaction action)
{
gchar* map_from_string;
priority_override_form_t* form = emalloc (sizeof (priority_override_form_t));
gint rowidx = 0;
- GtkWidget* add_button;
+ form->action = action;
+ GtkWidget* add_button = NULL;
+
// Layouting
form->vbox = gtk_vbox_new (FALSE, 5);
form->table = gtk_table_new (5, 2, TRUE);
@@ -139,9 +153,12 @@
gtk_combo_box_append_text (form->prio_to_combobox, priority_type_to_str (MSG_FALSE));
// Actions
- add_button = gtk_button_new_with_label (_("Add Override to filter"));
- g_signal_connect (GTK_OBJECT(add_button), "clicked", GTK_SIGNAL_FUNC(add_override_to_global_filter),
- form);
+ if (action == POF_ADD)
+ {
+ add_button = gtk_button_new_with_label (_("Add Override to filter"));
+ g_signal_connect (GTK_OBJECT(add_button), "clicked", GTK_SIGNAL_FUNC(add_override_to_global_filter),
+ form);
+ }
// Make labels left-aligned
gtk_misc_set_alignment (GTK_MISC(form->name_label), 0.0, 0.5);
@@ -174,22 +191,43 @@
gtk_table_attach (GTK_TABLE (form->table), GTK_WIDGET(form->prio_to_combobox), 1, 2, rowidx, rowidx+1, GTK_FILL, GTK_SHRINK, 5, 0);
++rowidx;
gtk_box_pack_start (GTK_BOX(form->vbox), form->table, FALSE, FALSE, 0);
- gtk_box_pack_start (GTK_BOX(form->vbox), add_button, FALSE, FALSE, 0);
-
+ if (action == POF_ADD)
+ gtk_box_pack_start (GTK_BOX(form->vbox), add_button, FALSE, FALSE, 0);
+ else if (action == POF_VIEW)
+ priority_override_form_lock (form);
+
return form;
}
/**
+ * @brief Make widgets insensitive, so that no further editing is possible.
+ *
+ * @param form Form to lock.
+ */
+void
+priority_override_form_lock (priority_override_form_t* form)
+{
+ gtk_widget_set_sensitive (form->name_entry, FALSE);
+ gtk_widget_set_sensitive (form->reason_entry, FALSE);
+ gtk_widget_set_sensitive (form->prio_to_combobox, FALSE);
+ // Depending on action, buttons might have to be added / removed
+}
+
+/**
* @brief Creates a fresh override form and fills in values from an override.
*
- * @brief Fresh override_form with values according to the override.
+ * @param action The action to perform with this form. Does influence the look &
+ * feel and which buttons are available (POF_ADD -> add-button).
+ *
+ * @return Fresh override_form with values according to the override.
*/
priority_override_form_t*
-priority_override_form_from_override (const priority_override_t* override)
+priority_override_form_from_override (const priority_override_t* override,
+ formaction action)
{
if (override == NULL) return NULL;
- priority_override_form_t* form = priority_override_form_new ();
+ priority_override_form_t* form = priority_override_form_new (action);
gtk_entry_set_text (form->name_entry, override->name);
gtk_entry_set_text (form->reason_entry, override->reason);
form->prio_from_string = g_strdup (override->prio_from);
Modified: trunk/openvas-client/src/gui/priority_override_form.h
===================================================================
--- trunk/openvas-client/src/gui/priority_override_form.h 2009-03-11 12:59:26 UTC (rev 2740)
+++ trunk/openvas-client/src/gui/priority_override_form.h 2009-03-11 13:58:26 UTC (rev 2741)
@@ -42,6 +42,15 @@
#include <gtk/gtk.h>
#include "priority_filter.h"
+/** @brief Possible actions associated with a form */
+typedef enum
+{
+ POF_VIEW, /**< View, widgets are insensitive to input. */
+ POF_EDIT, // not used yet
+ POF_ADD /**< Add, widgets are sensitive to input and a add-button is
+ * contained to add the override to the globalfilter. */
+} formaction;
+
/**
* @brief Structure holding GtkWidget that allow minor modification and
* @brief inspection of a priority_override.
@@ -51,24 +60,28 @@
GtkWidget* vbox; /**< Overall vbox */
GtkWidget* table; /**< Table (in each row left: label,
* right: label/combobox/entry) */
- GtkLabel* name_label; /**< "Name" */
- GtkEntry* name_entry; /**< Entry showing name of an override. */
- GtkLabel* reason_label; /**< "Reason" */
- GtkEntry* reason_entry; /**< Entry showing reason of an override. */
+ GtkLabel* name_label; /**< "Name" */
+ GtkEntry* name_entry; /**< Entry showing name of an override. */
+ GtkLabel* reason_label; /**< "Reason" */
+ GtkEntry* reason_entry; /**< Entry showing reason of an override. */
GtkWidget* host_label; /**< "Host" */
GtkWidget* host_value_label;
GtkWidget* port_label;
GtkWidget* port_value_label;
GtkWidget* oid_label;
GtkWidget* oid_value_label;
- gchar* prio_from_string; /**< The prio_from of the override that is shown */
- GtkLabel* map_from_label;
+ gchar* prio_from_string; /**< The prio_from of the override that is shown */
+ GtkLabel* map_from_label;
GtkComboBox* prio_to_combobox;
+ formaction action; /**< The action to perform with this form. */
} priority_override_form_t;
priority_override_form_t*
-priority_override_form_from_override (const priority_override_t* override);
+priority_override_form_from_override (const priority_override_t* override,
+ formaction action);
+void priority_override_form_lock (priority_override_form_t* form);
+
const priority_override_t*
priority_override_form_to_override (const priority_override_form_t* form);
More information about the Openvas-commits
mailing list