added satellite and transponder dialogs

This commit is contained in:
Dmitriy Yefremov
2017-10-31 20:49:36 +03:00
parent 9b93834fe4
commit 31705ab896
2 changed files with 789 additions and 58 deletions

View File

@@ -63,6 +63,23 @@
</row>
</data>
</object>
<object class="GtkListStore" id="pls_mode_store">
<columns>
<!-- column-name pls_mode -->
<column type="gchararray"/>
</columns>
<data>
<row>
<col id="0">Root</col>
</row>
<row>
<col id="0">Gold</col>
</row>
<row>
<col id="0">Combo</col>
</row>
</data>
</object>
<object class="GtkListStore" id="pol_store">
<columns>
<!-- column-name pol -->
@@ -94,6 +111,7 @@
<property name="can_focus">False</property>
<property name="use_underline">True</property>
<property name="use_stock">True</property>
<signal name="activate" handler="on_add" object="satellites_editor_tree_view" swapped="no"/>
</object>
</child>
<child>
@@ -103,6 +121,7 @@
<property name="can_focus">False</property>
<property name="use_underline">True</property>
<property name="use_stock">True</property>
<signal name="activate" handler="on_edit" object="satellites_editor_tree_view" swapped="no"/>
</object>
</child>
<child>
@@ -116,6 +135,11 @@
</object>
</child>
</object>
<object class="GtkAdjustment" id="pos_adjustment">
<property name="upper">180</property>
<property name="step_increment">0.10000000000000001</property>
<property name="page_increment">10</property>
</object>
<object class="GtkTreeStore" id="satellites_tree_store">
<columns>
<!-- column-name satelitte -->
@@ -144,20 +168,6 @@
<column type="gchararray"/>
</columns>
</object>
<object class="GtkListStore" id="system_store">
<columns>
<!-- column-name system -->
<column type="gchararray"/>
</columns>
<data>
<row>
<col id="0">DVB-S</col>
</row>
<row>
<col id="0">DVB-S2</col>
</row>
</data>
</object>
<object class="GtkDialog" id="satellites_editor_dialog">
<property name="width_request">640</property>
<property name="can_focus">False</property>
@@ -221,6 +231,7 @@
<property name="can_focus">False</property>
<property name="use_underline">True</property>
<property name="use_stock">True</property>
<signal name="activate" handler="on_add" object="satellites_editor_tree_view" swapped="no"/>
</object>
</child>
<child>
@@ -376,6 +387,7 @@
<property name="label" translatable="yes">Add</property>
<property name="use_underline">True</property>
<property name="stock_id">gtk-add</property>
<signal name="clicked" handler="on_add" object="satellites_editor_tree_view" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
@@ -385,11 +397,11 @@
<child>
<object class="GtkToolButton" id="edit_tool_button">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Edit</property>
<property name="use_underline">True</property>
<property name="stock_id">gtk-edit</property>
<signal name="clicked" handler="on_edit" object="satellites_editor_tree_view" swapped="no"/>
</object>
<packing>
<property name="expand">False</property>
@@ -453,10 +465,7 @@
<property name="title" translatable="yes">Freq.</property>
<property name="expand">True</property>
<child>
<object class="GtkCellRendererText" id="frequency_cellrenderertext">
<property name="editable">True</property>
<signal name="edited" handler="on_edited" object="satellites_editor_tree_view" swapped="no"/>
</object>
<object class="GtkCellRendererText" id="frequency_cellrenderertext"/>
<attributes>
<attribute name="text">1</attribute>
</attributes>
@@ -469,10 +478,7 @@
<property name="title" translatable="yes">Rate</property>
<property name="expand">True</property>
<child>
<object class="GtkCellRendererText" id="sat_rate_cellrenderertext">
<property name="editable">True</property>
<signal name="edited" handler="on_edited" object="satellites_editor_tree_view" swapped="no"/>
</object>
<object class="GtkCellRendererText" id="sat_rate_cellrenderertext"/>
<attributes>
<attribute name="text">2</attribute>
</attributes>
@@ -485,12 +491,7 @@
<property name="title" translatable="yes">Pol.</property>
<property name="expand">True</property>
<child>
<object class="GtkCellRendererCombo" id="sat_pol_cellrenderertext">
<property name="editable">True</property>
<property name="model">pol_store</property>
<property name="text_column">0</property>
<signal name="changed" handler="on_edited" object="satellites_editor_tree_view" swapped="no"/>
</object>
<object class="GtkCellRendererText" id="sat_pol_cellrenderertext"/>
<attributes>
<attribute name="text">3</attribute>
</attributes>
@@ -503,12 +504,7 @@
<property name="title" translatable="yes">Fec.</property>
<property name="expand">True</property>
<child>
<object class="GtkCellRendererCombo" id="set_fec_cellrenderertext">
<property name="editable">True</property>
<property name="model">fec_store</property>
<property name="text_column">0</property>
<signal name="changed" handler="on_edited" object="satellites_editor_tree_view" swapped="no"/>
</object>
<object class="GtkCellRendererText" id="set_fec_cellrenderertext"/>
<attributes>
<attribute name="text">4</attribute>
</attributes>
@@ -521,12 +517,7 @@
<property name="title" translatable="yes">System</property>
<property name="expand">True</property>
<child>
<object class="GtkCellRendererCombo" id="sys_cellrenderertext">
<property name="editable">True</property>
<property name="model">system_store</property>
<property name="text_column">0</property>
<signal name="changed" handler="on_edited" object="satellites_editor_tree_view" swapped="no"/>
</object>
<object class="GtkCellRendererText" id="sys_cellrenderertext"/>
<attributes>
<attribute name="text">5</attribute>
</attributes>
@@ -539,12 +530,7 @@
<property name="title" translatable="yes">Mod.</property>
<property name="expand">True</property>
<child>
<object class="GtkCellRendererCombo" id="mod_cellrenderertext">
<property name="editable">True</property>
<property name="model">mod_store</property>
<property name="text_column">0</property>
<signal name="changed" handler="on_edited" object="satellites_editor_tree_view" swapped="no"/>
</object>
<object class="GtkCellRendererText" id="mod_cellrenderertext"/>
<attributes>
<attribute name="text">6</attribute>
</attributes>
@@ -641,4 +627,622 @@
<action-widget response="-6">sat_ed_cancel_button</action-widget>
</action-widgets>
</object>
<object class="GtkListStore" id="side_store">
<columns>
<!-- column-name side -->
<column type="gchararray"/>
</columns>
<data>
<row>
<col id="0">E</col>
</row>
<row>
<col id="0">W</col>
</row>
</data>
</object>
<object class="GtkDialog" id="satellite_dialog">
<property name="can_focus">False</property>
<property name="title" translatable="yes">Satellite</property>
<property name="type_hint">dialog</property>
<child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox3">
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">2</property>
<child internal-child="action_area">
<object class="GtkButtonBox" id="dialog-action_area3">
<property name="can_focus">False</property>
<property name="layout_style">end</property>
<child>
<object class="GtkButton" id="button3">
<property name="label">gtk-undo</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="button4">
<property name="label">gtk-ok</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">2</property>
<child>
<object class="GtkLabel" id="label10">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Satellite properties:</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkSeparator" id="separator3">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkGrid" id="grid3">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="column_spacing">2</property>
<child>
<object class="GtkLabel" id="label11">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Name</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label12">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Position</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="sat_name_entry">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="primary_icon_stock">gtk-edit</property>
<property name="primary_icon_activatable">False</property>
<property name="secondary_icon_activatable">False</property>
<property name="secondary_icon_sensitive">False</property>
<property name="placeholder_text" translatable="yes">satellite name</property>
<property name="input_purpose">name</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkSpinButton" id="sat_position_button">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="secondary_icon_activatable">False</property>
<property name="secondary_icon_sensitive">False</property>
<property name="input_purpose">number</property>
<property name="adjustment">pos_adjustment</property>
<property name="digits">1</property>
<property name="numeric">True</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkComboBox" id="side_box">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="model">side_store</property>
<property name="active">0</property>
<property name="id_column">0</property>
<child>
<object class="GtkCellRendererText" id="side_cellrenderertext"/>
<attributes>
<attribute name="text">0</attribute>
</attributes>
</child>
</object>
<packing>
<property name="left_attach">2</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<placeholder/>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkSeparator" id="separator4">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
<action-widgets>
<action-widget response="-6">button3</action-widget>
<action-widget response="-5">button4</action-widget>
</action-widgets>
</object>
<object class="GtkListStore" id="system_store">
<columns>
<!-- column-name system -->
<column type="gchararray"/>
</columns>
<data>
<row>
<col id="0">DVB-S</col>
</row>
<row>
<col id="0">DVB-S2</col>
</row>
</data>
</object>
<object class="GtkDialog" id="transponder_dialog">
<property name="width_request">320</property>
<property name="can_focus">False</property>
<property name="title" translatable="yes">Transponder</property>
<property name="resizable">False</property>
<property name="modal">True</property>
<property name="default_width">320</property>
<property name="destroy_with_parent">True</property>
<property name="type_hint">dialog</property>
<child internal-child="vbox">
<object class="GtkBox" id="tr_dialog_vbox">
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">2</property>
<child internal-child="action_area">
<object class="GtkButtonBox" id="tr_dialog-action_area">
<property name="can_focus">False</property>
<property name="layout_style">end</property>
<child>
<object class="GtkButton" id="button1">
<property name="label">gtk-undo</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="button2">
<property name="label">gtk-ok</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox" id="tr_box">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">2</property>
<child>
<object class="GtkLabel" id="tr_header_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Transponder properties:</property>
<property name="track_visited_links">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkSeparator" id="separator2">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkGrid" id="tr_dialog_grid">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="column_spacing">2</property>
<child>
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Freq.</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Rate</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label3">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Pol.</property>
</object>
<packing>
<property name="left_attach">2</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label4">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Fec.</property>
</object>
<packing>
<property name="left_attach">3</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label5">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Sys.</property>
</object>
<packing>
<property name="left_attach">4</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label6">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Mod.</property>
</object>
<packing>
<property name="left_attach">5</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="freq_entry">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="width_chars">12</property>
<property name="max_width_chars">10</property>
<property name="primary_icon_stock">gtk-edit</property>
<property name="primary_icon_activatable">False</property>
<property name="secondary_icon_activatable">False</property>
<property name="secondary_icon_sensitive">False</property>
<property name="placeholder_text" translatable="yes">11700000</property>
<property name="input_purpose">digits</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="rate_entry">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="width_chars">12</property>
<property name="max_width_chars">10</property>
<property name="primary_icon_stock">gtk-edit</property>
<property name="placeholder_text" translatable="yes">27500000</property>
<property name="input_purpose">digits</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkComboBox" id="pol_box">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="model">pol_store</property>
<property name="id_column">0</property>
<child>
<object class="GtkCellRendererText" id="cellrenderertext3"/>
<attributes>
<attribute name="text">0</attribute>
</attributes>
</child>
</object>
<packing>
<property name="left_attach">2</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkComboBox" id="fec_box">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="model">fec_store</property>
<property name="id_column">0</property>
<child>
<object class="GtkCellRendererText" id="cellrenderertext4"/>
<attributes>
<attribute name="text">0</attribute>
</attributes>
</child>
</object>
<packing>
<property name="left_attach">3</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkComboBox" id="sys_box">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="model">system_store</property>
<property name="id_column">0</property>
<child>
<object class="GtkCellRendererText" id="cellrenderertext5"/>
<attributes>
<attribute name="text">0</attribute>
</attributes>
</child>
</object>
<packing>
<property name="left_attach">4</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkComboBox" id="mod_box">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="model">mod_store</property>
<property name="id_column">0</property>
<child>
<object class="GtkCellRendererText" id="cellrenderertext6"/>
<attributes>
<attribute name="text">0</attribute>
</attributes>
</child>
</object>
<packing>
<property name="left_attach">5</property>
<property name="top_attach">1</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">2</property>
</packing>
</child>
<child>
<object class="GtkSeparator" id="separator1">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkExpander" id="expander">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="resize_toplevel">True</property>
<child>
<object class="GtkGrid" id="tr_dialog_grid2">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="column_spacing">2</property>
<child>
<object class="GtkLabel" id="label7">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Pls mode</property>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label8">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Pls code</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label9">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Is ID</property>
</object>
<packing>
<property name="left_attach">2</property>
<property name="top_attach">0</property>
</packing>
</child>
<child>
<object class="GtkComboBox" id="pls_mode_box">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="model">pls_mode_store</property>
<property name="id_column">0</property>
<child>
<object class="GtkCellRendererText" id="pls_mode_cellrenderertext1"/>
<attributes>
<attribute name="text">0</attribute>
</attributes>
</child>
</object>
<packing>
<property name="left_attach">0</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="pls_code_entry">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="width_chars">5</property>
<property name="max_width_chars">12</property>
<property name="primary_icon_stock">gtk-edit</property>
<property name="primary_icon_activatable">False</property>
<property name="placeholder_text" translatable="yes">0 - 262142</property>
<property name="input_purpose">digits</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="is_id_entry">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="width_chars">5</property>
<property name="max_width_chars">12</property>
<property name="primary_icon_stock">gtk-edit</property>
<property name="primary_icon_activatable">False</property>
<property name="placeholder_text" translatable="yes">0 - 255</property>
<property name="input_purpose">digits</property>
</object>
<packing>
<property name="left_attach">2</property>
<property name="top_attach">1</property>
</packing>
</child>
</object>
</child>
<child type="label">
<object class="GtkLabel" id="expander_label">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Extra</property>
</object>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">4</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
<action-widgets>
<action-widget response="-6">button1</action-widget>
<action-widget response="-5">button2</action-widget>
</action-widgets>
</object>
</interface>

View File

@@ -1,3 +1,5 @@
from math import fabs
from main.commons import run_task
from main.eparser import get_satellites, write_satellites, Satellite, Transponder
from . import Gtk, Gdk
@@ -19,10 +21,12 @@ class SatellitesDialog:
"on_remove": self.on_remove,
"on_save": self.on_save,
"on_popup_menu": self.on_popup_menu,
"on_edited": self.on_edited}
"on_add": self.on_add,
"on_edit": self.on_edit}
builder = Gtk.Builder()
builder.add_from_file("./ui/satellites_dialog.glade")
builder.add_objects_from_file("./ui/satellites_dialog.glade",
("satellites_editor_dialog", "satellites_tree_store", "popup_menu"))
builder.connect_signals(handlers)
self._dialog = builder.get_object("satellites_editor_dialog")
@@ -50,23 +54,47 @@ class SatellitesDialog:
for transponder in transponders:
model.append(parent, ["Transponder:", *transponder, None, None])
def on_edited(self, view, path, value):
path, focus_column = view.get_cursor()
column_index = view.get_columns().index(focus_column)
model = view.get_model()
def on_add(self, view):
self.on_edit(view, force=True)
if column_index > 2:
# value type is Gtk.TreeIter
new_value = self._stores[column_index].get_value(value, 0)
# model[path][column_index] = new_value
def on_edit(self, view, force=False):
""" """
model, paths = view.get_selection().get_selected_rows()
paths_count = len(paths)
if paths_count == 0:
return
elif paths_count > 1:
print("Error dialog!")
return
row = model.get(model.get_iter(paths[0]), *[x for x in range(view.get_n_columns())])
# maybe temporary!
if row[-1]: # satellite
self.on_satellite(None if force else Satellite(row[0], None, row[-1], None))
else:
model[path][column_index] = value
self.on_transponder(None if force else Transponder(*row[1:-2]))
def on_satellite(self, satellite=None):
sat_dialog = SatelliteDialog(self._dialog, satellite)
sat = sat_dialog.run()
if sat:
print(sat)
sat_dialog.destroy()
def on_transponder(self, transponder=None):
dialog = TransponderDialog(self._dialog, transponder)
tr = dialog.run()
if tr:
print(tr)
dialog.destroy()
@staticmethod
def on_remove(view):
selection = view.get_selection()
model, paths = selection.get_selected_rows()
itrs = [model.get_iter(path) for path in paths]
for itr in itrs:
model.remove(itr)
@@ -99,5 +127,104 @@ class SatellitesDialog:
menu.popup(None, None, None, None, event.button, event.time)
class TransponderDialog:
""" Shows dialog for adding or edit transponder """
def __init__(self, transient, transponder: Transponder = None):
builder = Gtk.Builder()
builder.add_objects_from_file("./ui/satellites_dialog.glade",
("transponder_dialog",
"pol_store", "fec_store",
"mod_store", "system_store",
"pls_mode_store"))
self._dialog = builder.get_object("transponder_dialog")
self._dialog.set_transient_for(transient)
self._freq_entry = builder.get_object("freq_entry")
self._rate_entry = builder.get_object("rate_entry")
self._pol_box = builder.get_object("pol_box")
self._fec_box = builder.get_object("fec_box")
self._sys_box = builder.get_object("sys_box")
self._mod_box = builder.get_object("mod_box")
self._pls_mode_box = builder.get_object("pls_mode_box")
self._pls_code_entry = builder.get_object("pls_code_entry")
self._is_id_entry = builder.get_object("is_id_entry")
if transponder:
self.init_transponder(transponder)
def run(self):
if self._dialog.run() == Gtk.ResponseType.CANCEL:
return
return self.to_transponder()
def destroy(self):
self._dialog.destroy()
def init_transponder(self, transponder):
print(transponder)
self._freq_entry.set_text(transponder.frequency)
self._rate_entry.set_text(transponder.symbol_rate)
self._pol_box.set_active_id(transponder.polarization)
self._fec_box.set_active_id(transponder.fec_inner)
self._sys_box.set_active_id(transponder.system)
self._mod_box.set_active_id(transponder.modulation)
self._pls_mode_box.set_active_id(transponder.pls_mode)
self._is_id_entry.set_text(transponder.is_id if transponder.is_id else "")
self._pls_code_entry.set_text(transponder.pls_code if transponder.pls_code else "")
def to_transponder(self):
return Transponder(frequency=self._freq_entry.get_text(),
symbol_rate=self._freq_entry.get_text(),
polarization=self._pol_box.get_active_id(),
fec_inner=self._fec_box.get_active_id(),
system=self._sys_box.get_active_id(),
modulation=self._mod_box.get_active_id(),
pls_mode=self._pls_mode_box.get_active_id(),
pls_code=self._pls_code_entry.get_text(),
is_id=self._is_id_entry.get_text())
class SatelliteDialog:
""" Shows dialog for adding or edit satellite """
def __init__(self, transient, satellite: Satellite = None):
builder = Gtk.Builder()
builder.add_objects_from_file("./ui/satellites_dialog.glade",
("satellite_dialog", "side_store", "pos_adjustment"))
self._dialog = builder.get_object("satellite_dialog")
self._dialog.set_transient_for(transient)
self._sat_name = builder.get_object("sat_name_entry")
self._sat_position = builder.get_object("sat_position_button")
self._side = builder.get_object("side_box")
if satellite:
self._sat_name.set_text(satellite.name[0:satellite.name.find("(")].strip())
pos = satellite.position
pos = float("{}.{}".format(pos[:-1], pos[-1:]))
self._sat_position.set_value(fabs(pos))
self._side.set_active(0 if pos >= 0 else 1)
def run(self):
if self._dialog.run() == Gtk.ResponseType.CANCEL:
return
return self.to_satellite()
def destroy(self):
self._dialog.destroy()
def to_satellite(self):
name = self._sat_name.get_text()
pos = self._sat_position.get_value()
side = self._side.get_active()
name = "{}({}{})".format(name, pos, self._side.get_active_id())
pos = "{}{}{}".format("-" if side == 1 else "", *str(pos).split("."))
return Satellite(name=name, flags=None, position=pos, transponders=None)
if __name__ == "__main__":
pass