[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