[Openvas-commits] r9163 - in trunk/gsd: . src

scm-commit@wald.intevation.org scm-commit at wald.intevation.org
Wed Oct 6 10:40:05 CEST 2010


Author: raimund
Date: 2010-10-06 10:40:04 +0200 (Wed, 06 Oct 2010)
New Revision: 9163

Added:
   trunk/gsd/src/dlg_modify_override.ui
   trunk/gsd/src/dock_details_override.ui
Modified:
   trunk/gsd/ChangeLog
   trunk/gsd/src/CMakeLists.txt
   trunk/gsd/src/dock_details.cpp
   trunk/gsd/src/dock_details.h
   trunk/gsd/src/gsd_control.cpp
   trunk/gsd/src/gsd_control.h
   trunk/gsd/src/gsd_dialogs.cpp
   trunk/gsd/src/gsd_dialogs.h
   trunk/gsd/src/gsd_dlg.cpp
   trunk/gsd/src/gsd_dlg.h
   trunk/gsd/src/gsd_mw.cpp
   trunk/gsd/src/gsd_mw.h
   trunk/gsd/src/omp_command.cpp
Log:
Changed override details from dialog to dock widget.

* src/gsd_control.cpp (gsd_control): Added model for override details.
(createConnections): Updated signal/slot configuration for override dock
widget.
(request_override_details): Removed obsolete parameter.
(request_finished_listener): Added update for override details widget.
(getOverrideDetailsModel): New.

* src/gsd_mw.cpp (details_override_dlg): Prepare and show override details
widget.

* src/gsd_dlg.cpp (gsd_dlg): Removed details dialog and signal/slot
configuration for overrides.
(details_override_dlg, override_listener, dlg_modify_override): Removed
obsolete code.

* src/gsd_dialogs.cpp: Removed class dlg_details_override.

* src/dock_details.cpp (dock_details_override::load)
(dock_details_override::update, dock_details_override::modify_override)
(dock_details_override::exec_modify_override): New.

* src/omp_command.cpp (request, command): Added override id as user data to
request finished signal.

* src/gsd_control.h, src/gsd_mw.h, src/gsd_dlg.h, src/gsd_dialogs.h,
src/dock_details.h: Updated prototypes.

* src/dock_details_override.ui, src/dlg_modify_override.ui: New.

* src/CMakeLists.txt: Added new files.



Modified: trunk/gsd/ChangeLog
===================================================================
--- trunk/gsd/ChangeLog	2010-10-06 08:29:50 UTC (rev 9162)
+++ trunk/gsd/ChangeLog	2010-10-06 08:40:04 UTC (rev 9163)
@@ -1,3 +1,38 @@
+2010-10-06  Raimund Renkert <raimund.renkert at greenbone.net>
+
+	Changed override details from dialog to dock widget.
+
+	* src/gsd_control.cpp (gsd_control): Added model for override details.
+	(createConnections): Updated signal/slot configuration for override dock
+	widget.
+	(request_override_details): Removed obsolete parameter.
+	(request_finished_listener): Added update for override details widget.
+	(getOverrideDetailsModel): New.
+
+	* src/gsd_mw.cpp (details_override_dlg): Prepare and show override details
+	widget.
+
+	* src/gsd_dlg.cpp (gsd_dlg): Removed details dialog and signal/slot
+	configuration for overrides.
+	(details_override_dlg, override_listener, dlg_modify_override): Removed
+	obsolete code.
+
+	* src/gsd_dialogs.cpp: Removed class dlg_details_override.
+
+	* src/dock_details.cpp (dock_details_override::load)
+	(dock_details_override::update, dock_details_override::modify_override)
+	(dock_details_override::exec_modify_override): New.
+
+	* src/omp_command.cpp (request, command): Added override id as user data to
+	request finished signal.
+
+	* src/gsd_control.h, src/gsd_mw.h, src/gsd_dlg.h, src/gsd_dialogs.h,
+	src/dock_details.h: Updated prototypes.
+
+	* src/dock_details_override.ui, src/dlg_modify_override.ui: New.
+
+	* src/CMakeLists.txt: Added new files.
+
 2010-10-05  Raimund Renkert <raimund.renkert at greenbone.net>
 
 	Added missing ui files.

Modified: trunk/gsd/src/CMakeLists.txt
===================================================================
--- trunk/gsd/src/CMakeLists.txt	2010-10-06 08:29:50 UTC (rev 9162)
+++ trunk/gsd/src/CMakeLists.txt	2010-10-06 08:40:04 UTC (rev 9163)
@@ -127,12 +127,12 @@
   dlg_newTarget.ui
   dlg_newAgent.ui
   dlg_newTask.ui
-  dlg_details_override.ui
   dlg_modify_config.ui
   dlg_modify_scan_pref.ui
   dlg_modify_family.ui
   dlg_modify_nvt.ui
   dlg_modify_note.ui
+  dlg_modify_override.ui
   dock_details_task.ui
   dock_details_config.ui
   dock_details_nvt.ui
@@ -142,6 +142,7 @@
   dock_details_target.ui
   dock_details_family.ui
   dock_details_note.ui
+  dock_details_override.ui
   dock_logging.ui
   dock_table.ui
   dock_performance.ui

Added: trunk/gsd/src/dlg_modify_override.ui
===================================================================
--- trunk/gsd/src/dlg_modify_override.ui	2010-10-06 08:29:50 UTC (rev 9162)
+++ trunk/gsd/src/dlg_modify_override.ui	2010-10-06 08:40:04 UTC (rev 9163)
@@ -0,0 +1,307 @@
+<ui version="4.0" >
+ <class>dlg_modify_override</class>
+ <widget class="QDialog" name="dlg_modify_override" >
+  <property name="windowModality" >
+   <enum>Qt::ApplicationModal</enum>
+  </property>
+  <property name="geometry" >
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>400</width>
+    <height>548</height>
+   </rect>
+  </property>
+  <property name="windowTitle" >
+   <string>Modify Override</string>
+  </property>
+  <property name="windowIcon" >
+   <iconset resource="img/images.qrc" >
+    <normaloff>:/img/favicon.gif</normaloff>:/img/favicon.gif</iconset>
+  </property>
+  <layout class="QGridLayout" name="gridLayout" >
+   <item row="2" column="1" colspan="3" >
+    <widget class="QWidget" native="1" name="widget_3" >
+     <layout class="QGridLayout" name="gridLayout_6" >
+      <item row="0" column="0" >
+       <widget class="QRadioButton" name="rb_hosts_old" >
+        <property name="text" >
+         <string/>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="1" >
+       <widget class="QRadioButton" name="rb_hosts_new" >
+        <property name="text" >
+         <string>Any</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item row="3" column="1" colspan="3" >
+    <widget class="QWidget" native="1" name="widget_2" >
+     <layout class="QGridLayout" name="gridLayout_5" >
+      <item row="0" column="1" >
+       <widget class="QRadioButton" name="rb_port_new" >
+        <property name="text" >
+         <string>Any</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="0" >
+       <widget class="QRadioButton" name="rb_port_old" >
+        <property name="text" >
+         <string/>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item row="4" column="1" colspan="3" >
+    <widget class="QWidget" native="1" name="widget_4" >
+     <layout class="QGridLayout" name="gridLayout_7" >
+      <item row="0" column="1" >
+       <widget class="QRadioButton" name="rb_threat_new" >
+        <property name="text" >
+         <string>Any</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="0" >
+       <widget class="QRadioButton" name="rb_threat_old" >
+        <property name="text" >
+         <string/>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item row="5" column="1" colspan="3" >
+    <widget class="QWidget" native="1" name="widget_5" >
+     <layout class="QGridLayout" name="gridLayout_8" >
+      <item row="0" column="1" >
+       <widget class="QComboBox" name="cb_threat" />
+      </item>
+      <item row="0" column="0" >
+       <widget class="QLabel" name="la_newthreat" >
+        <property name="text" >
+         <string/>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item row="6" column="1" colspan="3" >
+    <widget class="QWidget" native="1" name="widget_6" >
+     <layout class="QGridLayout" name="gridLayout_9" >
+      <item row="0" column="1" >
+       <widget class="QRadioButton" name="rb_task_new" >
+        <property name="text" >
+         <string>Any</string>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="0" >
+       <widget class="QRadioButton" name="rb_task_old" >
+        <property name="text" >
+         <string/>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item row="7" column="1" colspan="3" >
+    <widget class="QWidget" native="1" name="widget" >
+     <layout class="QGridLayout" name="gridLayout_2" >
+      <item row="0" column="0" >
+       <widget class="QRadioButton" name="rb_result_old" >
+        <property name="text" >
+         <string/>
+        </property>
+       </widget>
+      </item>
+      <item row="0" column="1" >
+       <widget class="QRadioButton" name="rb_result_new" >
+        <property name="text" >
+         <string>Any</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item row="8" column="1" colspan="3" >
+    <spacer name="horizontalSpacer_4" >
+     <property name="orientation" >
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="sizeHint" stdset="0" >
+      <size>
+       <width>40</width>
+       <height>20</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+   <item row="9" column="0" colspan="4" >
+    <widget class="QTextEdit" name="te_text" />
+   </item>
+   <item row="0" column="1" colspan="3" >
+    <widget class="QLabel" name="la_name_v" >
+     <property name="text" >
+      <string/>
+     </property>
+    </widget>
+   </item>
+   <item row="1" column="1" colspan="3" >
+    <widget class="QLabel" name="la_oid_v" >
+     <property name="text" >
+      <string/>
+     </property>
+    </widget>
+   </item>
+   <item row="10" column="3" >
+    <widget class="QPushButton" name="pb_save" >
+     <property name="text" >
+      <string>Save</string>
+     </property>
+    </widget>
+   </item>
+   <item row="10" column="2" >
+    <widget class="QPushButton" name="pb_cancel" >
+     <property name="text" >
+      <string>Cancel</string>
+     </property>
+    </widget>
+   </item>
+   <item row="10" column="0" >
+    <spacer name="horizontalSpacer" >
+     <property name="orientation" >
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="sizeHint" stdset="0" >
+      <size>
+       <width>40</width>
+       <height>20</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+   <item row="8" column="0" >
+    <widget class="QLabel" name="la_text" >
+     <property name="font" >
+      <font>
+       <weight>75</weight>
+       <bold>true</bold>
+      </font>
+     </property>
+     <property name="text" >
+      <string>Text</string>
+     </property>
+    </widget>
+   </item>
+   <item row="7" column="0" >
+    <widget class="QLabel" name="la_result" >
+     <property name="text" >
+      <string>Result</string>
+     </property>
+    </widget>
+   </item>
+   <item row="6" column="0" >
+    <widget class="QLabel" name="la_task" >
+     <property name="text" >
+      <string>Task:</string>
+     </property>
+    </widget>
+   </item>
+   <item row="5" column="0" >
+    <widget class="QLabel" name="la_nthreat" >
+     <property name="font" >
+      <font>
+       <weight>75</weight>
+       <bold>true</bold>
+      </font>
+     </property>
+     <property name="text" >
+      <string>New Threat:</string>
+     </property>
+    </widget>
+   </item>
+   <item row="4" column="0" >
+    <widget class="QLabel" name="la_threat" >
+     <property name="text" >
+      <string>Threat:</string>
+     </property>
+    </widget>
+   </item>
+   <item row="3" column="0" >
+    <widget class="QLabel" name="la_port" >
+     <property name="text" >
+      <string>Port:</string>
+     </property>
+    </widget>
+   </item>
+   <item row="2" column="0" >
+    <widget class="QLabel" name="la_hosts" >
+     <property name="text" >
+      <string>Hosts:</string>
+     </property>
+    </widget>
+   </item>
+   <item row="1" column="0" >
+    <widget class="QLabel" name="la_oid" >
+     <property name="text" >
+      <string>NVT OID:</string>
+     </property>
+    </widget>
+   </item>
+   <item row="0" column="0" >
+    <widget class="QLabel" name="la_name" >
+     <property name="text" >
+      <string>NVT Name:</string>
+     </property>
+    </widget>
+   </item>
+   <item row="10" column="1" >
+    <spacer name="horizontalSpacer_2" >
+     <property name="orientation" >
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="sizeHint" stdset="0" >
+      <size>
+       <width>40</width>
+       <height>20</height>
+      </size>
+     </property>
+    </spacer>
+   </item>
+  </layout>
+ </widget>
+ <resources>
+  <include location="img/images.qrc" />
+ </resources>
+ <connections>
+  <connection>
+   <sender>pb_cancel</sender>
+   <signal>released()</signal>
+   <receiver>dlg_modify_override</receiver>
+   <slot>close()</slot>
+   <hints>
+    <hint type="sourcelabel" >
+     <x>264</x>
+     <y>524</y>
+    </hint>
+    <hint type="destinationlabel" >
+     <x>199</x>
+     <y>273</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+</ui>

Modified: trunk/gsd/src/dock_details.cpp
===================================================================
--- trunk/gsd/src/dock_details.cpp	2010-10-06 08:29:50 UTC (rev 9162)
+++ trunk/gsd/src/dock_details.cpp	2010-10-06 08:40:04 UTC (rev 9163)
@@ -1623,3 +1623,162 @@
                    parameter);
 }
 
+
+void
+dock_details_override::load ()
+{
+
+}
+
+
+void
+dock_details_override::update (QString override_id)
+{
+  if (override_id.compare (id) != 0)
+    return;
+
+  for (int i = 0; i < control->getOverrideDetailsModel ()->rowCount (); i++)
+    {
+      override->addEntity (control->getOverrideDetailsModel ()
+                                    ->getEntity (i), i);
+    }
+
+  QDomElement elem;
+  int i = 0;
+  while (i < override->rowCount ())
+    {
+      if (override->getAttr (override->getEntity (i),
+                             "override id").compare (id) == 0)
+        {
+          elem = override->getEntity (i);
+          break;
+        }
+      i++;
+    }
+
+  this->la_name_v->setText (override->getValue(elem, "nvt name"));
+  this->la_oid_v->setText (override->getAttr (elem, "override nvt oid"));
+  this->la_created_v->setText (override->getValue (elem, "creation_time"));
+  this->la_modified_v->setText (override->getValue (elem, "modification_time"));
+  this->la_hosts_v->setText (override->getValue (elem, "hosts"));
+  this->la_port_v->setText (override->getValue (elem, "port"));
+  this->la_threat_v->setText (override->getValue (elem, "threat"));
+  this->la_task_v->setText (override->getValue (elem, "task name"));
+  QString res = override->getValue (elem, "result");
+  if (res.compare ("") == 0)
+    res = "Any";
+  this->la_result_v->setText (res);
+  this->la_nthreat_v->setText (override->getValue (elem, "new_threat"));
+  this->te_text->setText (override->getValue (elem, "text"));
+
+}
+
+
+void
+dock_details_override::modify_override ()
+{
+  dlg_modify_override *modify_override_dlg = new dlg_modify_override ();
+
+  connect (modify_override_dlg,
+           SIGNAL (sig_modify (QString, QString, QString, QString,
+                               QString, QString, QString)),
+           this,
+           SLOT (exec_modify_override (QString, QString, QString, QString,
+                                       QString , QString, QString)));
+  QDomElement elem;
+  int i = 0;
+  while (i < override->rowCount ())
+    {
+      if (override->getAttr (override->getEntity (i),
+                             "override id").compare (id) == 0)
+        {
+          elem = override->getEntity (i);
+          break;
+        }
+      i++;
+    }
+  QString hosts, port, newThreat, threat, task, result;
+  hosts = override->getValue (elem, "hosts");
+  port = override->getValue (elem, "port");
+  newThreat = override->getValue (elem, "new_threat");
+  threat = override->getValue (elem, "threat");
+  task = override->getValue (elem, "task name");
+  result = override->getAttr (elem, "override result id");
+
+  modify_override_dlg->addNewThreat ("High");
+  modify_override_dlg->addNewThreat ("Medium");
+  modify_override_dlg->addNewThreat ("Low");
+  modify_override_dlg->addNewThreat ("Log");
+  modify_override_dlg->addNewThreat ("False Positive");
+  modify_override_dlg->setName (override->getValue (override->getEntity (0),
+                                                    "nvt name"));
+  modify_override_dlg->setOID (override->getAttr (override->getEntity (0),
+                                                  "override nvt oid"));
+  if (hosts.compare ("") == 0)
+    modify_override_dlg->setHosts ("any");
+  else
+    modify_override_dlg->setHosts (hosts);
+  if (port.compare ("") == 0)
+    modify_override_dlg->setPort ("any");
+  else
+    modify_override_dlg->setPort (port);
+  if (threat.compare ("") == 0)
+    modify_override_dlg->setThreat ("any");
+  else
+    modify_override_dlg->setThreat (threat);
+    modify_override_dlg->setNewThreat (newThreat);
+  if (task.compare ("") == 0)
+    modify_override_dlg->setTask ("any");
+  else
+    modify_override_dlg->setTask (task);
+  if (result.compare ("") == 0)
+    modify_override_dlg->setResult ("any");
+  else
+    modify_override_dlg->setResult (result);
+
+  modify_override_dlg->setName (override->getValue (elem, "nvt name"));
+  modify_override_dlg->setText (override->getValue (elem, "text"));
+  modify_override_dlg->show ();
+}
+
+
+void
+dock_details_override::exec_modify_override (QString hosts,
+                                             QString port,
+                                             QString threat,
+                                             QString newThreat,
+                                             QString task,
+                                             QString result,
+                                             QString text)
+{
+  QDomElement elem;
+  int i = 0;
+  while (i < override->rowCount ())
+    {
+      if (override->getAttr (override->getEntity (i),
+                             "override id").compare (id) == 0)
+        {
+          elem = override->getEntity (i);
+          break;
+        }
+      i++;
+    }
+  if (task.compare ("") != 0)
+    task = override->getAttr (override->getEntity (0), "override task id");
+
+  QMap<QString, QString> parameter;
+  parameter.insert ("override id", override->getAttr (elem, "override id"));
+  parameter.insert ("text", text);
+  parameter.insert ("hosts", hosts);
+  parameter.insert ("port", port);
+  parameter.insert ("new threat", newThreat);
+  parameter.insert ("threat", threat);
+  parameter.insert ("task", task);
+  parameter.insert ("result", result);
+
+  emit sig_modify (omp_utilities::OVERRIDE,
+                   override->getAttr (elem, "override id"),
+                   NULL,
+                   parameter);
+}
+

Modified: trunk/gsd/src/dock_details.h
===================================================================
--- trunk/gsd/src/dock_details.h	2010-10-06 08:29:50 UTC (rev 9162)
+++ trunk/gsd/src/dock_details.h	2010-10-06 08:40:04 UTC (rev 9163)
@@ -40,6 +40,7 @@
 #include "ui_dock_details_family.h"
 #include "ui_dock_details_nvt.h"
 #include "ui_dock_details_note.h"
+#include "ui_dock_details_override.h"
 #include "delegate_trend.h"
 #include "delegate_text.h"
 #include "delegate_threat.h"
@@ -342,5 +343,43 @@
     ~dock_details_note () {};
     void load ();
 };
+
+
+class dock_details_override : public dock_details,
+                              private Ui::dock_details_override
+{
+  Q_OBJECT
+
+  signals:
+    void sig_modify (int, QString, model_omp_entity*, QMap<QString, QString>);
+
+  private:
+    model_omp_entity *override;
+
+  public slots:
+    void update (QString id);
+    void modify_override ();
+    void exec_modify_override (QString hosts,
+                               QString port,
+                               QString threat,
+                               QString newThreat,
+                               QString task,
+                               QString result,
+                               QString text);
+
+  public:
+    dock_details_override (gsd_control *ctl)
+      {
+        setupUi (this);
+        this->control = ctl;
+        override = new model_omp_entity ();
+        connect (tb_edit,
+                 SIGNAL (released ()),
+                 this,
+                 SLOT (modify_override ()));
+      };
+    ~dock_details_override () {};
+    void load ();
+};
 #endif
 

Added: trunk/gsd/src/dock_details_override.ui
===================================================================
--- trunk/gsd/src/dock_details_override.ui	2010-10-06 08:29:50 UTC (rev 9162)
+++ trunk/gsd/src/dock_details_override.ui	2010-10-06 08:40:04 UTC (rev 9163)
@@ -0,0 +1,236 @@
+<ui version="4.0" >
+ <class>dock_details_override</class>
+ <widget class="QDockWidget" name="dock_details_override" >
+  <property name="geometry" >
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>446</width>
+    <height>628</height>
+   </rect>
+  </property>
+  <property name="windowIcon" >
+   <iconset resource="img/images.qrc" >
+    <normaloff>:/img/favicon.gif</normaloff>:/img/favicon.gif</iconset>
+  </property>
+  <property name="windowTitle" >
+   <string>Details Override</string>
+  </property>
+  <widget class="QWidget" name="dockWidgetContents" >
+   <layout class="QGridLayout" name="gridLayout" >
+    <item row="0" column="0" >
+     <widget class="QLabel" name="la_name" >
+      <property name="text" >
+       <string>NVT Name:</string>
+      </property>
+     </widget>
+    </item>
+    <item row="0" column="1" colspan="2" >
+     <widget class="QLabel" name="la_name_v" >
+      <property name="text" >
+       <string/>
+      </property>
+     </widget>
+    </item>
+    <item row="1" column="0" >
+     <widget class="QLabel" name="la_oid" >
+      <property name="text" >
+       <string>NVT OID:</string>
+      </property>
+     </widget>
+    </item>
+    <item row="1" column="1" colspan="2" >
+     <widget class="QLabel" name="la_oid_v" >
+      <property name="text" >
+       <string/>
+      </property>
+     </widget>
+    </item>
+    <item row="2" column="0" >
+     <widget class="QLabel" name="la_created" >
+      <property name="text" >
+       <string>Created:</string>
+      </property>
+     </widget>
+    </item>
+    <item row="2" column="1" colspan="2" >
+     <widget class="QLabel" name="la_created_v" >
+      <property name="text" >
+       <string/>
+      </property>
+     </widget>
+    </item>
+    <item row="3" column="0" >
+     <widget class="QLabel" name="la_modified" >
+      <property name="text" >
+       <string>Last Modified:</string>
+      </property>
+     </widget>
+    </item>
+    <item row="3" column="1" colspan="2" >
+     <widget class="QLabel" name="la_modified_v" >
+      <property name="text" >
+       <string/>
+      </property>
+     </widget>
+    </item>
+    <item row="5" column="0" >
+     <widget class="QLabel" name="la_app" >
+      <property name="font" >
+       <font>
+        <pointsize>10</pointsize>
+        <weight>75</weight>
+        <bold>true</bold>
+       </font>
+      </property>
+      <property name="text" >
+       <string>Application</string>
+      </property>
+     </widget>
+    </item>
+    <item row="6" column="0" >
+     <widget class="QLabel" name="la_hosts" >
+      <property name="text" >
+       <string>Hosts:</string>
+      </property>
+     </widget>
+    </item>
+    <item row="6" column="1" colspan="2" >
+     <widget class="QLabel" name="la_hosts_v" >
+      <property name="text" >
+       <string/>
+      </property>
+     </widget>
+    </item>
+    <item row="5" column="1" >
+     <widget class="QToolButton" name="tb_edit" >
+      <property name="layoutDirection" >
+       <enum>Qt::LeftToRight</enum>
+      </property>
+      <property name="text" >
+       <string/>
+      </property>
+      <property name="icon" >
+       <iconset resource="img/images.qrc" >
+        <normaloff>:/img/edit.png</normaloff>:/img/edit.png</iconset>
+      </property>
+     </widget>
+    </item>
+    <item row="5" column="2" >
+     <spacer name="horizontalSpacer" >
+      <property name="orientation" >
+       <enum>Qt::Horizontal</enum>
+      </property>
+      <property name="sizeHint" stdset="0" >
+       <size>
+        <width>40</width>
+        <height>20</height>
+       </size>
+      </property>
+     </spacer>
+    </item>
+    <item row="7" column="0" >
+     <widget class="QLabel" name="la_port" >
+      <property name="text" >
+       <string>Port:</string>
+      </property>
+     </widget>
+    </item>
+    <item row="7" column="1" colspan="2" >
+     <widget class="QLabel" name="la_port_v" >
+      <property name="text" >
+       <string/>
+      </property>
+     </widget>
+    </item>
+    <item row="8" column="0" >
+     <widget class="QLabel" name="la_threat" >
+      <property name="text" >
+       <string>Threat:</string>
+      </property>
+     </widget>
+    </item>
+    <item row="9" column="0" >
+     <widget class="QLabel" name="la_nthreat" >
+      <property name="font" >
+       <font>
+        <weight>75</weight>
+        <bold>true</bold>
+       </font>
+      </property>
+      <property name="text" >
+       <string>New Threat:</string>
+      </property>
+     </widget>
+    </item>
+    <item row="10" column="0" >
+     <widget class="QLabel" name="la_task" >
+      <property name="text" >
+       <string>Task:</string>
+      </property>
+     </widget>
+    </item>
+    <item row="11" column="0" >
+     <widget class="QLabel" name="la_result" >
+      <property name="text" >
+       <string>Result:</string>
+      </property>
+     </widget>
+    </item>
+    <item row="12" column="0" >
+     <widget class="QLabel" name="la_text" >
+      <property name="font" >
+       <font>
+        <pointsize>10</pointsize>
+        <weight>75</weight>
+        <bold>true</bold>
+       </font>
+      </property>
+      <property name="text" >
+       <string>Text</string>
+      </property>
+     </widget>
+    </item>
+    <item row="13" column="0" colspan="3" >
+     <widget class="QTextEdit" name="te_text" >
+      <property name="textInteractionFlags" >
+       <set>Qt::NoTextInteraction</set>
+      </property>
+     </widget>
+    </item>
+    <item row="8" column="1" colspan="2" >
+     <widget class="QLabel" name="la_threat_v" >
+      <property name="text" >
+       <string/>
+      </property>
+     </widget>
+    </item>
+    <item row="9" column="1" colspan="2" >
+     <widget class="QLabel" name="la_nthreat_v" >
+      <property name="text" >
+       <string/>
+      </property>
+     </widget>
+    </item>
+    <item row="10" column="1" colspan="2" >
+     <widget class="QLabel" name="la_task_v" >
+      <property name="text" >
+       <string/>
+      </property>
+     </widget>
+    </item>
+    <item row="11" column="1" colspan="2" >
+     <widget class="QLabel" name="la_result_v" >
+      <property name="text" >
+       <string/>
+      </property>
+     </widget>
+    </item>
+   </layout>
+  </widget>
+ </widget>
+ <resources>
+  <include location="img/images.qrc" />
+ </resources>
+ <connections/>
+</ui>

Modified: trunk/gsd/src/gsd_control.cpp
===================================================================
--- trunk/gsd/src/gsd_control.cpp	2010-10-06 08:29:50 UTC (rev 9162)
+++ trunk/gsd/src/gsd_control.cpp	2010-10-06 08:40:04 UTC (rev 9163)
@@ -112,6 +112,7 @@
   nvtModel = new model_omp_entity ();
   nvtDetailsModel = new model_omp_entity ();
   noteDetailsModel = new model_omp_entity ();
+  overrideDetailsModel = new model_omp_entity ();
 }
 
 gsd_control::~gsd_control ()
@@ -218,6 +219,10 @@
            this,
            SLOT (request_overrides (int)));
   connect (mainwindow,
+           SIGNAL (sig_details_override (QString)),
+           this,
+           SLOT (request_override_details (QString)));
+  connect (mainwindow,
            SIGNAL (sig_start_task (int)),
            this,
            SLOT (task_start (int)));
@@ -314,14 +319,6 @@
            this,
            SLOT (request_nvts (QString)));
   connect (mainwindow,
-           SIGNAL (sig_details_override (int)),
-           dialogs,
-           SLOT (details_override_dlg (int)));
-  connect (mainwindow,
-           SIGNAL (sig_modify_override (int)),
-           dialogs,
-           SLOT (dlg_modify_override (int)));
-  connect (mainwindow,
            SIGNAL (sig_stop_update ()),
            connector,
            SLOT (stop_update ()));
@@ -1162,15 +1159,10 @@
  */
 void
 gsd_control::modify (int type,
-                             QString id,
-                             model_omp_entity *m,
-                             QMap<QString, QString>parameter)
+                     QString id,
+                     model_omp_entity *m,
+                     QMap<QString, QString>parameter)
 {
-  if (type == omp_utilities::OVERRIDE)
-    connect (this,
-             SIGNAL (sig_override_finished ()),
-             dialogs,
-             SLOT (override_listener ()));
   this->connector->modifyEntity (type, id, m, parameter);
 }
 
@@ -1248,22 +1240,16 @@
  * @param m   Model to store the response.
  */
 void
-gsd_control::request_override_details (QString id, model_omp_entity *m)
+gsd_control::request_override_details (QString id)
 {
   QMap<QString, QString> parameter;
-  parameter.insert ("id", id);
+  parameter.insert ("override_id", id);
   parameter.insert ("details", "1");
 
-  if (this->connector == NULL)
-    {
-      // if no connector is set, set an error-information
-      QMessageBox::information (NULL, tr ("Login Error"),
-                                tr ("Please login first!"));
-    }
-  else
-    {
-      this->connector->getEntity (omp_utilities::OVERRIDE, 0, m, parameter);
-    }
+  this->connector->getEntity (omp_utilities::OVERRIDE,
+                              0,
+                              overrideDetailsModel,
+                              parameter);
 }
 
 
@@ -1666,6 +1652,18 @@
 }
 
 
+/**
+ * @brief Getter
+ *
+ * @return The model containing the override details.
+ */
+model_omp_entity*
+gsd_control::getOverrideDetailsModel ()
+{
+  return overrideDetailsModel;
+}
+
+
 void
 gsd_control::note_modify(int)
 {}
@@ -1728,6 +1726,12 @@
 
 
 void
+gsd_control::notifyOverrideDetails (QString id)
+{
+  emit sig_override_details_finished (id);
+}
+
+void
 gsd_control::request_finished_listener(int type, int com, QString userData)
 {
   if (type == omp_utilities::TASK && com > 30)
@@ -1787,6 +1791,10 @@
     {
       notifyNoteDetails (userData);
     }
+  if (type == omp_utilities::OVERRIDE && com == 35)
+    {
+      notifyOverrideDetails (userData);
+    }
   if (type == omp_utilities::CONFIG && com == omp_utilities::MODIFY)
     {
     }
@@ -1797,6 +1805,7 @@
     }
   if (type == omp_utilities::OVERRIDE && com == omp_utilities::MODIFY)
     {
+      request_override_details (userData);
       request_overrides (0);
     }
   if (type == omp_utilities::NOTE && com == omp_utilities::GET)

Modified: trunk/gsd/src/gsd_control.h
===================================================================
--- trunk/gsd/src/gsd_control.h	2010-10-06 08:29:50 UTC (rev 9162)
+++ trunk/gsd/src/gsd_control.h	2010-10-06 08:40:04 UTC (rev 9163)
@@ -60,6 +60,7 @@
     void sig_note_finished ();
     void sig_note_details_finished (QString);
     void sig_override_finished ();
+    void sig_override_details_finished (QString);
   private:
     gsd_config *config;
     gsd_mw *mainwindow;
@@ -78,6 +79,7 @@
     model_omp_entity *noteModel;
     model_omp_entity *noteDetailsModel;
     model_omp_entity *overrideModel;
+    model_omp_entity *overrideDetailsModel;
     model_omp_entity *systemReportModel;
     model_omp_entity *nvtModel;
     model_omp_entity *nvtDetailsModel;
@@ -92,6 +94,7 @@
     void notifyFamilyDetails (QString config);
     void notifyNVTDetails (QString config);
     void notifyNoteDetails (QString id);
+    void notifyOverrideDetails (QString id);
 
   private slots:
     void login(QString addr, int port, QString name, QString pwd);
@@ -116,7 +119,7 @@
     void request_nvts (QString family);
     void request_nvt_details (QString, QString);
     void request_note_details (QString);
-    void request_override_details (QString id, model_omp_entity *m);
+    void request_override_details (QString id);
     void request_config_details (int index);
     void request_family_details (QString config_id, QString name);
     void update_failed (int);
@@ -165,6 +168,7 @@
     model_omp_entity *getNoteModel ();
     model_omp_entity *getNoteDetailsModel ();
     model_omp_entity *getOverrideModel ();
+    model_omp_entity *getOverrideDetailsModel ();
     model_omp_entity *getSystemDiagramModel ();
     model_omp_entity *getSystemReportModel ();
     model_omp_entity *getFamilyModel ();

Modified: trunk/gsd/src/gsd_dialogs.cpp
===================================================================
--- trunk/gsd/src/gsd_dialogs.cpp	2010-10-06 08:29:50 UTC (rev 9162)
+++ trunk/gsd/src/gsd_dialogs.cpp	2010-10-06 08:40:04 UTC (rev 9163)
@@ -724,219 +724,3 @@
 
 }
 
-
-/**
- * @section class dlg_details_override.
- */
-
-/**
- * @brief
- */
-void
-dlg_details_override::load ()
-{
-  update ();
-}
-
-
-void
-dlg_details_override::update ()
-{
-  QDomElement elem;
-  int i = 0;
-  while (i < model->rowCount ())
-    {
-      if (model->getAttr (model->getEntity (i), "override id").compare (id) == 0)
-        {
-          elem = model->getEntity (i);
-          break;
-        }
-      i++;
-    }
-
-  this->la_name->setText (this->model->getValue(elem, "nvt name"));
-  this->la_oid->setText (this->model->getAttr (elem, "override nvt oid"));
-  this->la_created->setText (this->model->getValue (elem, "creation_time"));
-  this->la_modified->setText (this->model->getValue (elem,
-                                                     "modification_time"));
-  this->la_hosts->setText (this->model->getValue (elem, "hosts"));
-  this->la_port->setText (this->model->getValue (elem, "port"));
-  this->la_threat->setText (this->model->getValue (elem, "threat"));
-  this->la_task->setText (this->model->getValue (elem, "task name"));
-  QString res = this->model->getValue (elem, "result");
-  if (res.compare ("") == 0)
-    res = "Any";
-  this->la_result->setText (res);
-  this->la_nthreat->setText (this->model->getValue (elem, "new_threat"));
-  this->te_text->setText (model->getValue (elem, "text"));
-
-}
-
-void
-dlg_details_override::toggle_modify_widget ()
-{
-  if (this->stackedWidget->currentIndex () == 0)
-    {
-      this->stackedWidget->setCurrentIndex (1);
-      modify ();
-    }
-  else
-    {
-      this->stackedWidget->setCurrentIndex (0);
-    }
-}
-
-void
-dlg_details_override::modify ()
-{
-  QDomElement elem;
-  int i = 0;
-  while (i < model->rowCount ())
-    {
-      if (model->getAttr (model->getEntity (i), "override id").compare (id) == 0)
-        {
-          elem = model->getEntity (i);
-          break;
-        }
-      i++;
-    }
-  QString hosts, port, newThreat, threat, task, result;
-  hosts = this->model->getValue (elem, "hosts");
-  port = this->model->getValue (elem, "port");
-  newThreat = this->model->getValue (elem, "new_threat");
-  threat = this->model->getValue (elem, "threat");
-  task = this->model->getValue (elem, "task name");
-  result = this->model->getAttr (elem, "override result id");
-  cb_newThreat_new->clear ();
-  cb_newThreat_new->addItem ("High");
-  cb_newThreat_new->addItem ("Medium");
-  cb_newThreat_new->addItem ("Low");
-  cb_newThreat_new->addItem ("Log");
-  cb_newThreat_new->addItem ("False Positive");
-  rb_newThreat_old->setText (newThreat);
-  cb_newThreat_new->setCurrentIndex (cb_newThreat_new->findText (newThreat));
-  if (hosts.compare ("") == 0)
-    {
-      this->rb_hosts_new->setChecked (true);
-      this->rb_hosts_new->setEnabled (false);
-      this->rb_hosts_old->setVisible (false);
-    }
-  else
-    {
-      this->rb_hosts_old->setText (hosts);
-      this->rb_hosts_old->setChecked (true);
-    }
-  if (port.compare ("") == 0)
-    {
-      this->rb_port_new->setChecked (true);
-      this->rb_port_new->setEnabled (false);
-      this->rb_port_old->setVisible (false);
-    }
-  else
-    {
-      this->rb_port_old->setText (port);
-      this->rb_port_old->setChecked (true);
-    }
-  if (threat.compare ("") == 0)
-    {
-      this->rb_threat_new->setChecked (true);
-      this->rb_threat_new->setEnabled (false);
-      this->rb_threat_old->setVisible (false);
-    }
-  else
-    {
-      this->rb_threat_old->setText (threat);
-      this->rb_threat_old->setChecked (true);
-    }
-  if (task.compare ("") == 0)
-    {
-      this->rb_task_new->setChecked (true);
-      this->rb_task_new->setEnabled (false);
-      this->rb_task_old->setVisible (false);
-    }
-  else
-    {
-      this->rb_task_old->setText (task);
-      this->rb_task_old->setChecked (true);
-    }
-  if (result.compare ("") == 0)
-    {
-      this->rb_result_new->setChecked (true);
-      this->rb_result_new->setEnabled (false);
-      this->rb_result_old->setVisible (false);
-    }
-  else
-    {
-      this->rb_result_old->setText (result);
-      this->rb_result_old->setChecked (true);
-    }
-
-
-  this->la_name->setText (this->model->getValue (elem, "nvt name"));
-  this->te_text_edit->setText (this->model->getValue (elem, "text"));
-}
-
-/**
- * @brief Modifies the existing override.
- */
-void
-dlg_details_override::modify_override ()
-{
-  QDomElement elem;
-  int i = 0;
-  while (i < model->rowCount ())
-    {
-      if (model->getAttr (model->getEntity (i), "override id").compare (id) == 0)
-        {
-          elem = model->getEntity (i);
-          break;
-        }
-      i++;
-    }
-
-  QString hosts, port, newThreat, threat, task, result, text;
-  if (this->rb_hosts_new->isChecked ())
-    hosts = "";
-  else
-    hosts = rb_hosts_old->text ();
-  if (this->rb_port_new->isChecked ())
-    port = "";
-  else
-    port = rb_port_old->text ();
-  if (this->cb_newThreat_new->currentText ().compare (rb_newThreat_old->text ()) == 0)
-    newThreat = rb_newThreat_old->text ();
-  else
-    newThreat = cb_newThreat_new->currentText ();
-  if (this->rb_threat_new->isChecked ())
-    threat = "";
-  else
-    threat = rb_threat_old->text ();
-  if (this->rb_task_new->isChecked ())
-    task = "";
-  else
-    task = this->model->getAttr (elem, "override task id");
-  if (this->rb_result_new->isChecked ())
-    result = "";
-  else
-    result = rb_result_old->text ();
-
-  text = te_text_edit->toPlainText ();
-
-  QMap<QString, QString> parameter;
-  parameter.insert ("override id", this->model->getAttr (elem, "override id"));
-  parameter.insert ("text", text);
-  parameter.insert ("hosts", hosts);
-  parameter.insert ("port", port);
-  parameter.insert ("new threat", newThreat);
-  parameter.insert ("threat", threat);
-  parameter.insert ("task", task);
-  parameter.insert ("result", result);
-
-  emit sig_modify (omp_utilities::OVERRIDE,
-                   this->model->getAttr (elem, "override id"),
-                   NULL,
-                   parameter);
-
-  this->stackedWidget->setCurrentIndex (0);
-}
-

Modified: trunk/gsd/src/gsd_dialogs.h
===================================================================
--- trunk/gsd/src/gsd_dialogs.h	2010-10-06 08:29:50 UTC (rev 9162)
+++ trunk/gsd/src/gsd_dialogs.h	2010-10-06 08:40:04 UTC (rev 9163)
@@ -44,12 +44,12 @@
 
 #include "model_omp_entity.h"
 
-#include "ui_dlg_details_override.h"
 #include "ui_dlg_modify_config.h"
 #include "ui_dlg_modify_family.h"
 #include "ui_dlg_modify_scan_pref.h"
 #include "ui_dlg_modify_nvt.h"
 #include "ui_dlg_modify_note.h"
+#include "ui_dlg_modify_override.h"
 #include "delegate_trend.h"
 #include "delegate_text.h"
 #include "delegate_threat.h"
@@ -399,41 +399,6 @@
 
 
 /**
- * @brief Protos and data structures for details overrides dialog.
- */
-class dlg_details_override : public details_dialog,
-                             private Ui::dlg_detailsOverride
-{
-  Q_OBJECT
-
-  signals:
-    void sig_modify (int, QString, model_omp_entity*, QMap<QString, QString>);
-
-  private slots:
-    void modify ();
-    void modify_override ();
-    void toggle_modify_widget ();
-
-  public:
-    dlg_details_override ()
-      {
-        setupUi (this);
-        connect (tb_edit,
-                 SIGNAL (released ()),
-                 this,
-                 SLOT (toggle_modify_widget ()));
-        connect (pb_save,
-                 SIGNAL (released ()),
-                 this,
-                 SLOT (modify_override ()));
-      };
-    ~dlg_details_override () {};
-    void load ();
-    void update ();
-};
-
-
-/**
  * @brief Protos and data structures for modify config dialog.
  */
 class dlg_modify_config : public QDialog,
@@ -743,5 +708,142 @@
       };
 };
 
+
+class dlg_modify_override : public QDialog,
+                            private Ui::dlg_modify_override
+{
+  Q_OBJECT
+
+  signals:
+    void sig_modify (QString, QString, QString, QString,
+                     QString, QString, QString);
+
+  private slots:
+    void modify ()
+      {
+        QString hosts, port, newThreat, threat, task, result, text;
+        if (this->rb_hosts_new->isChecked ())
+           hosts = "";
+        else
+          hosts = rb_hosts_old->text ();
+        if (this->rb_port_new->isChecked ())
+          port = "";
+        else
+          port = rb_port_old->text ();
+        if (rb_threat_new->isChecked ())
+          threat = "";
+        else
+          threat = rb_threat_old->text ();
+        if (la_newthreat->text ().compare (cb_threat->currentText ()) != 0)
+          newThreat = cb_threat->currentText ();
+        else
+          newThreat = la_newthreat->text ();
+        if (this->rb_task_new->isChecked ())
+          task = "";
+        else
+          task = rb_task_old->text ();
+        if (this->rb_result_new->isChecked ())
+          result = "";
+        else
+          result = rb_result_old->text ();
+
+        text = te_text->toPlainText ();
+
+        emit sig_modify (hosts, port, threat, newThreat, task, result, text);
+        close ();
+      };
+
+  public:
+    dlg_modify_override ()
+      {
+        setupUi (this);
+        connect (pb_save,
+                 SIGNAL (released ()),
+                 this,
+                 SLOT (modify ()));
+      };
+    ~dlg_modify_override () {};
+    void setName (QString name) {this->la_name_v->setText (name);};
+    void setOID (QString oid) {this->la_oid_v->setText (oid);};
+    void setHosts (QString hosts)
+      {
+        if (hosts.compare ("any") == 0)
+          {
+            rb_hosts_new->setChecked (true);
+            rb_hosts_old->setVisible (false);
+          }
+        else
+          {
+            rb_hosts_old->setText (hosts);
+            rb_hosts_old->setChecked (true);
+          }
+      };
+    void setPort (QString port)
+      {
+        if (port.compare ("any") == 0)
+          {
+            rb_port_new->setChecked (true);
+            rb_port_old->setVisible (false);
+          }
+        else
+          {
+            rb_port_old->setText (port);
+            rb_port_old->setChecked (true);
+          }
+      };
+    void setThreat (QString threat)
+      {
+        if (threat.compare ("any") == 0)
+          {
+            rb_threat_new->setChecked (true);
+            rb_threat_old->setVisible (false);
+          }
+        else
+          {
+            rb_threat_old->setText (threat);
+            rb_threat_old->setChecked (true);
+          }
+      };
+    void setNewThreat (QString newThreat)
+      {
+        la_newthreat->setText (newThreat);
+        cb_threat->setCurrentIndex (cb_threat->findText (newThreat));
+      };
+    void addNewThreat (QString newThreat)
+      {
+        cb_threat->addItem (newThreat);
+      };
+    void setTask (QString task)
+      {
+        if (task.compare ("any") == 0)
+          {
+            rb_task_new->setChecked (true);
+            rb_task_old->setVisible (false);
+          }
+        else
+          {
+            rb_task_old->setText (task);
+            rb_task_old->setChecked (true);
+          }
+      };
+    void setResult (QString result)
+      {
+        if (result.compare ("any") == 0)
+          {
+            rb_result_new->setChecked (true);
+            rb_result_old->setVisible (false);
+          }
+        else
+          {
+            rb_result_old->setText (result);
+            rb_result_old->setChecked (true);
+          }
+      };
+    void setText (QString text)
+      {
+        te_text->setText (text);
+      };
+};
+
 #endif
 

Modified: trunk/gsd/src/gsd_dlg.cpp
===================================================================
--- trunk/gsd/src/gsd_dlg.cpp	2010-10-06 08:29:50 UTC (rev 9162)
+++ trunk/gsd/src/gsd_dlg.cpp	2010-10-06 08:40:04 UTC (rev 9163)
@@ -38,7 +38,6 @@
 
   about = new dlg_about ();
   login = new dlg_login ();
-  details_override = new dlg_details_override ();
   new_task = new dlg_new_task ();
   new_target = new dlg_new_target ();
   new_config = new dlg_new_config ();
@@ -91,23 +90,12 @@
            SIGNAL (sig_create (int, QMap<QString, QString>)),
            this,
            SLOT (create (int, QMap <QString, QString>)));
-  connect (details_override,
-           SIGNAL (sig_modify (int,
-                               QString,
-                               model_omp_entity*,
-                               QMap<QString, QString>)),
-           control,
-           SLOT (modify (int,
-                         QString,
-                         model_omp_entity*,
-                         QMap<QString, QString>)));
 }
 
 gsd_dlg::~gsd_dlg ()
 {
   free (about);
   free (login);
-  free (details_override);
 
   free (new_task);
   free (new_target);
@@ -234,26 +222,6 @@
 
 
 void
-gsd_dlg::details_override_dlg (int index)
-{
-  QDomElement entity = control->getOverrideModel ()->getEntity (index);
-  QString id = control->getOverrideModel ()->getAttr (entity, "override id");
-
-  details_override->setModel (control->getOverrideModel ());
-  details_override->setId (id);
-  details_override->load ();
-  details_override->show ();
-}
-
-
-void
-gsd_dlg::override_listener ()
-{
-  details_override->update ();
-}
-
-
-void
 gsd_dlg::request_failed (int type, int command, int err)
 {}
 
@@ -301,10 +269,6 @@
 
 
 void
-gsd_dlg::dlg_modify_override(int)
-{}
-
-void
 gsd_dlg::authentication_successful ()
 {
   login->close ();

Modified: trunk/gsd/src/gsd_dlg.h
===================================================================
--- trunk/gsd/src/gsd_dlg.h	2010-10-06 08:29:50 UTC (rev 9162)
+++ trunk/gsd/src/gsd_dlg.h	2010-10-06 08:40:04 UTC (rev 9163)
@@ -45,7 +45,6 @@
   signals:
     void sig_login (QString, int, QString, QString);
     void sig_create (int, QMap<QString, QString>);
-    void sig_modify (int, QMap<QString, QString>);
 
   private slots:
     void login_update (int);
@@ -65,18 +64,12 @@
     void new_target_dlg ();
     void new_task_dlg ();
 
-    void details_override_dlg (int index);
-
-    void dlg_modify_override (int index);
-    void override_listener ();
-
     void request_failed (int, int, int);
   private:
     gsd_control *control;
 
     dlg_about *about;
     dlg_login *login;
-    dlg_details_override *details_override;
 
     dlg_new_task *new_task;
     dlg_new_target *new_target;

Modified: trunk/gsd/src/gsd_mw.cpp
===================================================================
--- trunk/gsd/src/gsd_mw.cpp	2010-10-06 08:29:50 UTC (rev 9162)
+++ trunk/gsd/src/gsd_mw.cpp	2010-10-06 08:40:04 UTC (rev 9163)
@@ -1906,7 +1906,68 @@
   QModelIndexList selected = overrides->getTable ()->selectionModel ()
                                                      ->selectedRows (0);
   if (selected.at (0).isValid ())
-   emit sig_details_override (selected.at (0).row ());
+    {
+      QString overr_id = control->getOverrideModel ()
+                                 ->getAttr (control->getOverrideModel ()
+                                                   ->getEntity (selected.at (0)
+                                                                 .row ()),
+                                                                "override id");
+
+      emit sig_details_override (overr_id);
+      QDomElement override = control->getOverrideModel ()
+                                  ->getEntity (selected.at (0).row ());
+      QString selected_id = control->getOverrideModel ()
+                                     ->getAttr (override, "task id");
+      if (override_details.contains (selected_id))
+        {
+          override_details.value (selected_id)->show ();
+          override_details.value (selected_id)->update ();
+          QMapIterator <QString, dock_details*> i (override_details);
+          i.toFront ();
+          i.next ();
+          dock_details *tmp = i.value ();
+          if (i.hasNext () && i.key ().compare (selected_id) == 0)
+            tmp = i.next ().value ();
+          this->tabifyDockWidget (tmp, override_details.value (selected_id));
+          override_details.value (selected_id)->raise ();
+        }
+      else
+        {
+          dock_details_override *details =
+            new dock_details_override (this->control);
+          connect (control,
+                   SIGNAL (sig_override_details_finished (QString)),
+                   details,
+                   SLOT (update (QString)));
+          connect (details,
+                   SIGNAL (sig_modify (int,
+                                       QString,
+                                       model_omp_entity*,
+                                       QMap<QString, QString>)),
+                   this->control,
+                   SLOT (modify (int,
+                                 QString,
+                                 model_omp_entity*,
+                                 QMap<QString, QString>)));
+          details->setId (selected_id);
+          details->load ();
+          if (override_details.size () > 0)
+            {
+              QMapIterator <QString, dock_details*> i (override_details);
+              i.toFront ();
+              i.next ();
+              dock_details *tmp = i.value ();
+              this->tabifyDockWidget (tmp, details);
+            }
+          else
+            {
+              this->addDockWidget (Qt::BottomDockWidgetArea, details);
+            }
+          override_details.insert (selected_id, details);
+          details->show ();
+          details->raise ();
+        }
+    }
   else
     QMessageBox::information (NULL,tr ("Status Error"),
                               tr ("No override selected!"));

Modified: trunk/gsd/src/gsd_mw.h
===================================================================
--- trunk/gsd/src/gsd_mw.h	2010-10-06 08:29:50 UTC (rev 9162)
+++ trunk/gsd/src/gsd_mw.h	2010-10-06 08:40:04 UTC (rev 9163)
@@ -110,7 +110,7 @@
     void sig_details_target (int);
     void sig_details_task (int);
     void sig_details_note (QString);
-    void sig_details_override (int);
+    void sig_details_override (QString);
     void sig_details_family (QString, QString);
     void sig_details_nvt (QString, QString);
     void sig_nvts (QString);
@@ -278,6 +278,7 @@
     QMap<QString, dock_details*> family_details;
     QMap<QString, dock_details*> nvt_details;
     QMap<QString, dock_details*> note_details;
+    QMap<QString, dock_details*> override_details;
     QTimer *progressUpdateTimer;
     void createToolBars ();
     void createContextMenu ();

Modified: trunk/gsd/src/omp_command.cpp
===================================================================
--- trunk/gsd/src/omp_command.cpp	2010-10-06 08:29:50 UTC (rev 9162)
+++ trunk/gsd/src/omp_command.cpp	2010-10-06 08:40:04 UTC (rev 9163)
@@ -360,6 +360,8 @@
     userData = omp_string.section ("\"", 1,1);
   if (type.compare ("note") == 0 && omp_string.contains ("note_id"))
     userData = m->getAttr (m->getEntity (0), "note id");
+  if (type.compare ("override") == 0 && omp_string.contains ("override_id"))
+    userData = m->getAttr (m->getEntity (0), "override id");
   helper->requestFinished (util->getType (type), com, userData);
   return ret;
 }
@@ -576,6 +578,10 @@
         {
           data = omp_string.section ("\"", 1, 1);
         }
+      if (type == omp_utilities::OVERRIDE)
+        {
+          data = omp_string.section ("\"", 1, 1);
+        }
       helper->requestFinished (type, com, data);
     }
   else



More information about the Openvas-commits mailing list