1
0
mirror of https://github.com/nmap/nmap.git synced 2025-12-09 06:01:28 +00:00

Merge #2088: Update Zenmap to Python 3 and PyGObject

Note: Ndiff build will be broken until subsequent changes are made.
Deprecation warnings will need to be addressed in future changes.
Closes #2088
This commit is contained in:
dmiller
2022-12-07 20:34:03 +00:00
parent e2e55660c3
commit 24b26317c7
104 changed files with 5381 additions and 4383 deletions

View File

@@ -57,9 +57,10 @@
# * *
# ***************************************************************************/
import gtk
import pango
import gobject
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk, GObject, Pango
from radialnet.bestwidgets.boxes import BWVBox, BWHBox, BWScrolledWindow, BWTable
from radialnet.bestwidgets.expanders import BWExpander
@@ -109,14 +110,14 @@ def get_service_color(state):
return color
class NodeNotebook(gtk.Notebook):
class NodeNotebook(Gtk.Notebook):
"""
"""
def __init__(self, node):
"""
"""
gtk.Notebook.__init__(self)
self.set_tab_pos(gtk.POS_TOP)
Gtk.Notebook.__init__(self)
self.set_tab_pos(Gtk.PositionType.TOP)
self.__node = node
@@ -136,25 +137,25 @@ class NodeNotebook(gtk.Notebook):
self.append_page(self.__trace_page, BWLabel(_('Traceroute')))
class ServicesPage(gtk.Notebook):
class ServicesPage(Gtk.Notebook):
"""
"""
def __init__(self, node):
"""
"""
gtk.Notebook.__init__(self)
Gtk.Notebook.__init__(self)
self.set_border_width(6)
self.set_tab_pos(gtk.POS_TOP)
self.set_tab_pos(Gtk.PositionType.TOP)
self.__node = node
self.__font = pango.FontDescription('Monospace')
self.__font = Pango.FontDescription('Monospace')
self.__create_widgets()
def __create_widgets(self):
"""
"""
self.__cell = gtk.CellRendererText()
self.__cell = Gtk.CellRendererText()
# texteditor widgets
self.__texteditor = BWTextEditor()
@@ -162,7 +163,7 @@ class ServicesPage(gtk.Notebook):
self.__texteditor.bw_set_editable(False)
self.__texteditor.set_border_width(0)
self.__select_combobox = gtk.combo_box_new_text()
self.__select_combobox = Gtk.ComboBoxText()
self.__select_combobox.connect('changed', self.__change_text_value)
self.__viewer = BWVBox(spacing=6)
@@ -179,15 +180,15 @@ class ServicesPage(gtk.Notebook):
self.__ports_scroll = BWScrolledWindow()
self.__ports_store = gtk.TreeStore(gobject.TYPE_INT,
gobject.TYPE_STRING,
gobject.TYPE_STRING,
gobject.TYPE_STRING,
gobject.TYPE_STRING,
gobject.TYPE_STRING,
gobject.TYPE_BOOLEAN)
self.__ports_store = Gtk.TreeStore.new([GObject.TYPE_INT,
GObject.TYPE_STRING,
GObject.TYPE_STRING,
GObject.TYPE_STRING,
GObject.TYPE_STRING,
GObject.TYPE_STRING,
GObject.TYPE_BOOLEAN])
self.__ports_treeview = gtk.TreeView(self.__ports_store)
self.__ports_treeview = Gtk.TreeView.new_with_model(self.__ports_store)
for port in self.__node.get_info('ports'):
@@ -257,8 +258,8 @@ class ServicesPage(gtk.Notebook):
for i in range(len(PORTS_HEADER)):
column = gtk.TreeViewColumn(PORTS_HEADER[i],
self.__cell,
column = Gtk.TreeViewColumn(title=PORTS_HEADER[i],
cell_renderer=self.__cell,
text=i)
self.__ports_column.append(column)
@@ -280,13 +281,13 @@ class ServicesPage(gtk.Notebook):
self.__xports_scroll = BWScrolledWindow()
self.__xports_store = gtk.TreeStore(gobject.TYPE_INT,
gobject.TYPE_STRING,
gobject.TYPE_STRING,
gobject.TYPE_STRING,
gobject.TYPE_BOOLEAN)
self.__xports_store = Gtk.TreeStore.new([GObject.TYPE_INT,
GObject.TYPE_STRING,
GObject.TYPE_STRING,
GObject.TYPE_STRING,
GObject.TYPE_BOOLEAN])
self.__xports_treeview = gtk.TreeView(self.__xports_store)
self.__xports_treeview = Gtk.TreeView.new_with_model(self.__xports_store)
for xports in self.__node.get_info('extraports'):
@@ -309,8 +310,8 @@ class ServicesPage(gtk.Notebook):
for i in range(len(EXTRAPORTS_HEADER)):
column = gtk.TreeViewColumn(EXTRAPORTS_HEADER[i],
self.__cell,
column = Gtk.TreeViewColumn(title=EXTRAPORTS_HEADER[i],
cell_renderer=self.__cell,
text=i)
self.__xports_column.append(column)
@@ -354,7 +355,7 @@ class SystemPage(BWScrolledWindow):
BWScrolledWindow.__init__(self)
self.__node = node
self.__font = pango.FontDescription('Monospace')
self.__font = Pango.FontDescription('Monospace')
self.__create_widgets()
@@ -364,21 +365,21 @@ class SystemPage(BWScrolledWindow):
self.__vbox = BWVBox()
self.__vbox.set_border_width(6)
self.__cell = gtk.CellRendererText()
self.__cell = Gtk.CellRendererText()
self.__general_frame = BWExpander(_('General information'))
self.__sequences_frame = BWExpander(_('Sequences'))
self.__os_frame = BWExpander(_('Operating System'))
self.__sequences_frame.bw_add(gtk.Label(_('No sequence information.')))
self.__os_frame.bw_add(gtk.Label(_('No OS information.')))
self.__sequences_frame.bw_add(Gtk.Label.new(_('No sequence information.')))
self.__os_frame.bw_add(Gtk.Label.new(_('No OS information.')))
# general information widgets
self.__general = BWTable(3, 2)
self.__address_label = BWSectionLabel(_('Address:'))
self.__address_list = gtk.combo_box_entry_new_text()
self.__address_list.child.set_editable(False)
self.__address_list = Gtk.ComboBoxText.new_with_entry()
self.__address_list.get_child().set_editable(False)
for address in self.__node.get_info('addresses'):
@@ -393,15 +394,15 @@ class SystemPage(BWScrolledWindow):
self.__address_list.set_active(0)
self.__general.bw_attach_next(self.__address_label,
yoptions=gtk.FILL,
xoptions=gtk.FILL)
self.__general.bw_attach_next(self.__address_list, yoptions=gtk.FILL)
yoptions=Gtk.AttachOptions.FILL,
xoptions=Gtk.AttachOptions.FILL)
self.__general.bw_attach_next(self.__address_list, yoptions=Gtk.AttachOptions.FILL)
if self.__node.get_info('hostnames') is not None:
self.__hostname_label = BWSectionLabel(_('Hostname:'))
self.__hostname_list = gtk.combo_box_entry_new_text()
self.__hostname_list.child.set_editable(False)
self.__hostname_list = Gtk.ComboBoxText.new_with_entry()
self.__hostname_list.get_child().set_editable(False)
for hostname in self.__node.get_info('hostnames'):
@@ -411,10 +412,10 @@ class SystemPage(BWScrolledWindow):
self.__hostname_list.set_active(0)
self.__general.bw_attach_next(self.__hostname_label,
yoptions=gtk.FILL,
xoptions=gtk.FILL)
yoptions=Gtk.AttachOptions.FILL,
xoptions=Gtk.AttachOptions.FILL)
self.__general.bw_attach_next(self.__hostname_list,
yoptions=gtk.FILL)
yoptions=Gtk.AttachOptions.FILL)
if self.__node.get_info('uptime') is not None:
@@ -430,10 +431,10 @@ class SystemPage(BWScrolledWindow):
self.__uptime_value.set_line_wrap(False)
self.__general.bw_attach_next(self.__uptime_label,
yoptions=gtk.FILL,
xoptions=gtk.FILL)
yoptions=Gtk.AttachOptions.FILL,
xoptions=Gtk.AttachOptions.FILL)
self.__general.bw_attach_next(self.__uptime_value,
yoptions=gtk.FILL)
yoptions=Gtk.AttachOptions.FILL)
self.__general_frame.bw_add(self.__general)
self.__general_frame.set_expanded(True)
@@ -444,7 +445,7 @@ class SystemPage(BWScrolledWindow):
self.__create_sequences_widget(sequences))
# operating system information widgets
self.__os = gtk.Notebook()
self.__os = Gtk.Notebook()
os = self.__node.get_info('os')
@@ -454,12 +455,8 @@ class SystemPage(BWScrolledWindow):
self.__match_scroll = BWScrolledWindow()
self.__match_store = gtk.ListStore(gobject.TYPE_STRING,
gobject.TYPE_STRING,
gobject.TYPE_INT,
gobject.TYPE_BOOLEAN)
self.__match_treeview = gtk.TreeView(self.__match_store)
self.__match_store = Gtk.ListStore.new([str, str, int, bool])
self.__match_treeview = Gtk.TreeView.new_with_model(self.__match_store)
for os_match in os['matches']:
@@ -473,8 +470,8 @@ class SystemPage(BWScrolledWindow):
for i in range(len(OSMATCH_HEADER)):
column = gtk.TreeViewColumn(OSMATCH_HEADER[i],
self.__cell,
column = Gtk.TreeViewColumn(title=OSMATCH_HEADER[i],
cell_renderer=self.__cell,
text=i)
self.__match_column.append(column)
@@ -496,14 +493,8 @@ class SystemPage(BWScrolledWindow):
self.__class_scroll = BWScrolledWindow()
self.__class_store = gtk.ListStore(gobject.TYPE_STRING,
gobject.TYPE_STRING,
gobject.TYPE_STRING,
gobject.TYPE_STRING,
gobject.TYPE_STRING,
gobject.TYPE_BOOLEAN)
self.__class_treeview = gtk.TreeView(self.__class_store)
self.__class_store = Gtk.ListStore.new([str, str, str, str, str, bool])
self.__class_treeview = Gtk.TreeView.new_with_model(self.__class_store)
for os_class in os['classes']:
@@ -520,8 +511,8 @@ class SystemPage(BWScrolledWindow):
for i in range(len(OSCLASS_HEADER)):
column = gtk.TreeViewColumn(OSCLASS_HEADER[i],
self.__cell,
column = Gtk.TreeViewColumn(title=OSCLASS_HEADER[i],
cell_renderer=self.__cell,
text=i)
self.__class_column.append(column)
@@ -547,8 +538,8 @@ class SystemPage(BWScrolledWindow):
self.__fp_ports = BWHBox()
self.__fp_label = BWSectionLabel(_('Used ports:'))
self.__fp_ports_list = gtk.combo_box_entry_new_text()
self.__fp_ports_list.child.set_editable(False)
self.__fp_ports_list = Gtk.ComboBoxText.new_with_entry()
self.__fp_ports_list.get_child().set_editable(False)
self.__fp_vbox = BWVBox()
@@ -601,7 +592,7 @@ class SystemPage(BWScrolledWindow):
table.attach(tcp_class, 1, 2, 1, 2)
tcp_values = gtk.combo_box_entry_new_text()
tcp_values = Gtk.ComboBoxText.new_with_entry()
for value in tcp['values']:
tcp_values.append_text(value)
@@ -626,7 +617,7 @@ class SystemPage(BWScrolledWindow):
table.attach(ip_id_class, 1, 2, 2, 3)
ip_id_values = gtk.combo_box_entry_new_text()
ip_id_values = Gtk.ComboBoxText.new_with_entry()
for value in ip_id['values']:
ip_id_values.append_text(value)
@@ -644,7 +635,7 @@ class SystemPage(BWScrolledWindow):
if tcp_ts['values'] is not None:
tcp_ts_values = gtk.combo_box_entry_new_text()
tcp_ts_values = Gtk.ComboBoxText.new_with_entry()
for value in tcp_ts['values']:
tcp_ts_values.append_text(value)
@@ -678,8 +669,8 @@ class TraceroutePage(BWVBox):
hops = trace.get("hops")
if hops is None or len(hops) == 0:
self.__trace_label = gtk.Label(NO_TRACE_TEXT)
self.pack_start(self.__trace_label, True, True)
self.__trace_label = Gtk.Label.new(NO_TRACE_TEXT)
self.pack_start(self.__trace_label, True, True, 0)
else:
@@ -687,19 +678,13 @@ class TraceroutePage(BWVBox):
hops = self.__node.get_info('trace')['hops']
ttls = [int(i['ttl']) for i in hops]
self.__cell = gtk.CellRendererText()
self.__cell = Gtk.CellRendererText()
self.__trace_scroll = BWScrolledWindow()
self.__trace_scroll.set_border_width(0)
self.__trace_store = gtk.ListStore(gobject.TYPE_INT,
gobject.TYPE_STRING,
gobject.TYPE_STRING,
gobject.TYPE_STRING,
gobject.TYPE_STRING,
gobject.TYPE_BOOLEAN)
self.__trace_treeview = gtk.TreeView(self.__trace_store)
self.__trace_store = Gtk.ListStore.new([int, str, str, str, str, bool])
self.__trace_treeview = Gtk.TreeView.new_with_model(self.__trace_store)
count = 0
@@ -729,8 +714,8 @@ class TraceroutePage(BWVBox):
for i in range(len(TRACE_HEADER)):
column = gtk.TreeViewColumn(TRACE_HEADER[i],
self.__cell,
column = Gtk.TreeViewColumn(title=TRACE_HEADER[i],
cell_renderer=self.__cell,
text=i)
self.__trace_column.append(column)