[gevice] enable diagram option
- From: Alejandro Valdes Jimenez <avaldes src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gevice] enable diagram option
- Date: Fri, 14 Dec 2012 19:48:52 +0000 (UTC)
commit 8dacda56930fec3d71ad5e74217a8203b61dee1b
Author: Alejandro ValdÃs Jimenez <avaldes gnome org>
Date: Fri Dec 14 16:43:59 2012 -0300
enable diagram option
ChangeLog | 5 +
data/ui/diagram.xml | 5 +-
src/gevice.py | 19 ++++-
src/gevicediagram.py | 229 ++++++++++++++++++++++----------------------------
4 files changed, 126 insertions(+), 132 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 885dc1d..221ddfa 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,9 @@
2012-12-14 Alejandro ValdéJimenez <avaldes gnome org>
+ * data/ui/diagram.xml: change to modal window.
+ * src/gevice.py: enable diagram option.
+ * src/gevicediagram.py: clean code.
+
+2012-12-14 Alejandro ValdéJimenez <avaldes gnome org>
* src/Makefile.am: remove empty line.
2012-12-14 Alejandro ValdéJimenez <avaldes gnome org>
diff --git a/data/ui/diagram.xml b/data/ui/diagram.xml
index d743ba2..74ba233 100644
--- a/data/ui/diagram.xml
+++ b/data/ui/diagram.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
- <!-- interface-requires gtk+ 2.6 -->
+ <!-- interface-requires gtk+ 3.0 -->
<object class="GtkListStore" id="liststore_format">
<columns>
<!-- column-name name_format -->
@@ -47,6 +47,7 @@
<property name="border_width">10</property>
<property name="title" translatable="yes" context="yes">Generate Diagram</property>
<property name="resizable">False</property>
+ <property name="modal">True</property>
<property name="window_position">center</property>
<property name="destroy_with_parent">True</property>
<property name="type_hint">dialog</property>
@@ -135,6 +136,7 @@
<child>
<object class="GtkButton" id="button_diagram_generate">
<property name="label" context="yes">gtk-execute</property>
+ <property name="use_action_appearance">False</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
@@ -151,6 +153,7 @@
<child>
<object class="GtkButton" id="button_diagram_cancel">
<property name="label" context="yes">gtk-cancel</property>
+ <property name="use_action_appearance">False</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
diff --git a/src/gevice.py b/src/gevice.py
index 4d57de8..16f6977 100755
--- a/src/gevice.py
+++ b/src/gevice.py
@@ -24,14 +24,13 @@ from struct import unpack
import config
###import gevicefind
-###import gevicediagram
+import gevicediagram
import geviceprefer
import gevicevte
import gevicedevice
import gevicemodel
import gevicedatabase
###import geviceexport
-###import gevicemaintainer
import gettext
gettext.bindtextdomain(config.PACKAGE,config.LOCALEDIR)
@@ -173,7 +172,7 @@ class Gevice:
('EditDevice', Gtk.STOCK_EDIT, _('Edit'), None, _('Edit data of device selected'), self.on_action_editdevice),
('Expand', Gtk.STOCK_INDENT, _('Expand'), None, _('Expand tree of device selected'), self.on_action_expand),
('Decrease', Gtk.STOCK_UNINDENT, _('Decrease'), None, _('Decrease tree of device selected'), self.on_action_decrease),
- ('Diagram', Gtk.STOCK_CONVERT, _('Generate Diagram'),None, _('Generate diagram of devices'), self.passing),
+ ('Diagram', Gtk.STOCK_CONVERT, _('Generate Diagram'),None, _('Generate diagram of devices'), self.on_action_diagram),
('Connect', Gtk.STOCK_JUMP_TO, _('Open terminal'), None, _('Open terminal'), self.on_action_connect),
])
@@ -476,6 +475,20 @@ class Gevice:
self.gpref.load_interface(self)
self.gpref.show_interface()
+ def on_action_diagram (self,action):
+ i = self.gmodel.get_iter_selected(self.gmodel.treeview)
+
+ #check if the user have selected some device
+ if (i["iter"]):
+ self.gdiagram = gevicediagram.GeviceDiagram ()
+ self.gdiagram.load_interface (self)
+ self.gdiagram.show_interface ()
+ else:
+ result = self.show_message (_("You need choose some device to generate the diagram."),
+ None,
+ (Gtk.STOCK_OK, Gtk.ResponseType.OK),
+ self.window_main)
+
if __name__ == "__main__":
gevice = Gevice()
gevice.main()
diff --git a/src/gevicediagram.py b/src/gevicediagram.py
index e1258a3..60c140d 100644
--- a/src/gevicediagram.py
+++ b/src/gevicediagram.py
@@ -29,131 +29,104 @@ gettext.bind_textdomain_codeset (config.PACKAGE, "UTF-8");
from gettext import gettext as _
class GeviceDiagram:
- def __init__ (self):
- self.window_diagram = None
- self.button_diagram_cancel = None
- self.button_diagram_generate = None
- self.combobox_program = None
- self.combobox_format = None
-
- self.iterfirst = None
-
- self.A = None
-
- self.form = None
- self.prog = None
-
- self.name = None
- self.ip = None
- self.model = None
- self.type_link = None
- self.pix_link = None
- self.name_link = None
-
- def load_interface (self,gevice):
- builder = Gtk.Builder()
- builder.add_from_file(os.path.join (config.UIDIR, "diagram.xml"))
-
- self.window_diagram = builder.get_object ("window_diagram")
- self.button_diagram_cancel = builder.get_object ("button_diagram_cancel")
- self.button_diagram_generate = builder.get_object ("button_diagram_generate")
- self.combobox_program = builder.get_object ("combobox_program")
- self.combobox_format = builder.get_object ("combobox_format")
-
- # set default value for diagram
- self.combobox_format.set_active (0)
- self.combobox_program.set_active (0)
-
- self.window_diagram.connect ("delete-event",self.on_window_diagram_delete_event)
- self.button_diagram_cancel.connect ("clicked",self.on_button_diagram_cancel_clicked)
- self.button_diagram_generate.connect ("clicked",self.on_button_diagram_generate_clicked,gevice)
-
- def show_interface (self):
- self.window_diagram.show_all()
-
- def close_window (self,window):
- window.destroy()
-
- def on_button_diagram_cancel_clicked (self,button):
- self.close_window(self.window_diagram)
-
- def on_window_diagram_delete_event (self,window,event):
- self.close_window(window)
-
- def on_button_diagram_generate_clicked (self,button,gevice):
-
- self.A = AGraph()
-
- # attributes of nodes
- self.A.node_attr['shape'] = 'box'
- self.A.node_attr['color'] = 'black'
-
- iter_form = self.combobox_format.get_active_iter()
- model_form = self.combobox_format.get_model()
- self.form = model_form.get_value(iter_form,0)
-
- iter_prog = self.combobox_program.get_active_iter()
- model_prog = self.combobox_program.get_model()
- self.prog = model_prog.get_value(iter_prog,0)
-
- i = gevice.gmodel.get_iter_selected(gevice.gmodel.treeview)
-
- self.iterfirst = i["iter"]
- self.print_child (gevice,i["iter"],None)
-
- file = config.DEFAULT_TMP + "tmp_gevice_diagram" + "." + self.form
- self.A.draw(file,format=self.form,prog=self.prog)
-
- # show diagram with eog (FIXME: call to default viewer)
- id = os.spawnlp(os.P_NOWAIT,'eog','eog',file)
-
- self.close_window(self.window_diagram)
-
- def get_data_of_device (self,iter,gevice):
- self.name,self.ip,self.model,self.type_link = gevice.gmodel.treestore.get(iter,
- config.COLUMN_NAME_DEV,
- config.COLUMN_IP_DEV,
- config.COLUMN_NAME_MODEL_DEV,
- config.COLUMN_ID_TYPE_LINK_DEV)
-
- self.pix_link,self.name_link = gevice.gmodel.get_data_of_link_from_key (self.type_link,gevice)
-
- ###if (gevice.gpref.diagip):
- if (gevice.gpref.settings.get_boolean("diagip")):
- self.name = self.name + '\\n(' + self.ip + ')'
-
- ###if (gevice.gpref.diagmodel):
- if (gevice.gpref.settings.get_boolean("diagmodel")):
- self.name = self.name + '\\n(' + self.model + ')'
-
- #if (gevice.gpref.diaglink):
- # self.name = self.name + '\\n(' + self.name_link + ')'
-
-
- def print_child(self,gevice,parent_iter,parent_name):
- while (parent_iter):
- #name = self.join_name (parent_iter,gevice)
- self.get_data_of_device (parent_iter,gevice)
- self.join_nodes (parent_name,self.name,gevice)
-
- if gevice.gmodel.treestore.iter_has_child(parent_iter):
- child = gevice.gmodel.treestore.iter_children(parent_iter)
- self.print_child (gevice,child,self.name)
-
- if (not self.iterfirst == parent_iter):
- next_iter = gevice.gmodel.treestore.iter_next(parent_iter)
- parent_iter = next_iter
- else:
- return
-
- def join_nodes (self,parent,child,gevice):
- self.A.add_node (child,color='red')
-
- if parent:
- #self.A.add_edge(parent,child)
- ###self.A.add_edge(parent,child,headlabel='one-two',labeldistance='2.2',label='lala')
- ###if (gevice.gpref.diaglink):
- if (gevice.gpref.settings.get_boolean("diaglink")):
- self.A.add_edge(parent,child,label=self.name_link)
- else:
- self.A.add_edge(parent,child)
+ def __init__ (self):
+ self.window_diagram = None
+ self.button_diagram_cancel = None
+ self.button_diagram_generate = None
+ self.combobox_program = None
+ self.combobox_format = None
+ self.iterfirst = None
+ self.default_tmp = "/tmp/"
+ self.color_node = "black"
+ self.fontsize = 8
+ self.shape = 'box'
+
+ self.A = None
+ self.form = None
+ self.prog = None
+
+ self.name = None
+ self.ip = None
+
+ def load_interface (self,gevice):
+ builder = Gtk.Builder()
+ builder.add_from_file(os.path.join (config.UIDIR, "diagram.xml"))
+
+ self.window_diagram = builder.get_object ("window_diagram")
+ self.button_diagram_cancel = builder.get_object ("button_diagram_cancel")
+ self.button_diagram_generate = builder.get_object ("button_diagram_generate")
+ self.combobox_program = builder.get_object ("combobox_program")
+ self.combobox_format = builder.get_object ("combobox_format")
+
+ # set default value for diagram
+ self.combobox_format.set_active (0)
+ self.combobox_program.set_active (0)
+
+ self.window_diagram.connect ("delete-event",self.on_window_diagram_delete_event)
+ self.button_diagram_cancel.connect ("clicked",self.on_button_diagram_cancel_clicked)
+ self.button_diagram_generate.connect ("clicked",self.on_button_diagram_generate_clicked,gevice)
+
+ def show_interface (self):
+ self.window_diagram.show_all()
+
+ def close_window (self,window):
+ window.destroy()
+
+ def on_button_diagram_cancel_clicked (self,button):
+ self.close_window(self.window_diagram)
+
+ def on_window_diagram_delete_event (self,window,event):
+ self.close_window(window)
+
+ def on_button_diagram_generate_clicked (self,button,gevice):
+ self.A = AGraph()
+
+ # attributes of nodes
+ self.A.node_attr['shape'] = self.shape
+
+ iter_form = self.combobox_format.get_active_iter()
+ model_form = self.combobox_format.get_model()
+ self.form = model_form.get_value(iter_form,0)
+
+ iter_prog = self.combobox_program.get_active_iter()
+ model_prog = self.combobox_program.get_model()
+ self.prog = model_prog.get_value(iter_prog,0)
+
+ i = gevice.gmodel.get_iter_selected(gevice.gmodel.treeview)
+
+ self.iterfirst = i["iter"]
+ self.print_child (gevice,i["iter"],None)
+
+ file = self.default_tmp + "tmp_gevice_diagram" + "." + self.form
+ self.A.draw(file,format=self.form,prog=self.prog)
+
+ # show diagram with eog (FIXME: call to default viewer)
+ id = os.spawnlp(os.P_NOWAIT,'eog','eog',file)
+
+ self.close_window(self.window_diagram)
+
+ def get_data_of_device (self,iter,gevice):
+ self.name,self.ip = gevice.gmodel.treestore.get(iter,0,1)
+
+ if (gevice.gpref.gsettings.get_boolean("diagip")):
+ self.name = self.name + '\\n(' + self.ip + ')'
+
+ def print_child(self,gevice,parent_iter,parent_name):
+ while (parent_iter):
+ self.get_data_of_device (parent_iter,gevice)
+ self.join_nodes (parent_name,self.name,gevice)
+
+ if gevice.gmodel.treestore.iter_has_child(parent_iter):
+ child = gevice.gmodel.treestore.iter_children(parent_iter)
+ self.print_child (gevice,child,self.name)
+
+ if (not self.iterfirst == parent_iter):
+ next_iter = gevice.gmodel.treestore.iter_next(parent_iter)
+ parent_iter = next_iter
+ else:
+ return
+
+ def join_nodes (self,parent,child,gevice):
+ self.A.add_node (child,color=self.color_node,fontsize=self.fontsize)
+ if parent:
+ self.A.add_edge(parent,child)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]