mirror of
https://github.com/DYefremov/DemonEditor.git
synced 2025-12-22 00:19:40 +01:00
save satellites selection for web import
This commit is contained in:
@@ -43,7 +43,7 @@ from app.eparser.ecommons import (PLS_MODE, get_key_by_value, POLARIZATION, FEC,
|
|||||||
HIERARCHY, Inversion, C_MODULATION, FEC_DEFAULT, TerTransponder, CableTransponder,
|
HIERARCHY, Inversion, C_MODULATION, FEC_DEFAULT, TerTransponder, CableTransponder,
|
||||||
Bouquet, BouquetService, BqServiceType, Bouquets, BqType)
|
Bouquet, BouquetService, BqServiceType, Bouquets, BqType)
|
||||||
from app.eparser.satxml import get_pos_str
|
from app.eparser.satxml import get_pos_str
|
||||||
from app.settings import USE_HEADER_BAR
|
from app.settings import USE_HEADER_BAR, Settings, CONFIG_PATH
|
||||||
from app.tools.satellites import SatellitesParser, SatelliteSource, ServicesParser
|
from app.tools.satellites import SatellitesParser, SatelliteSource, ServicesParser
|
||||||
from ..dialogs import show_dialog, DialogType, get_message, get_builder
|
from ..dialogs import show_dialog, DialogType, get_message, get_builder
|
||||||
from ..main_helper import append_text_to_tview, get_base_model, on_popup_menu
|
from ..main_helper import append_text_to_tview, get_base_model, on_popup_menu
|
||||||
@@ -412,6 +412,7 @@ class UpdateDialog:
|
|||||||
self._settings = settings
|
self._settings = settings
|
||||||
self._download_task = False
|
self._download_task = False
|
||||||
self._parser = None
|
self._parser = None
|
||||||
|
self._selected_satellites = set()
|
||||||
|
|
||||||
builder = get_builder(f"{UI_RESOURCES_PATH}xml{os.sep}update.glade", handlers)
|
builder = get_builder(f"{UI_RESOURCES_PATH}xml{os.sep}update.glade", handlers)
|
||||||
|
|
||||||
@@ -464,6 +465,7 @@ class UpdateDialog:
|
|||||||
self._sat_view.connect("realize", self.on_update_satellites_list)
|
self._sat_view.connect("realize", self.on_update_satellites_list)
|
||||||
# Options.
|
# Options.
|
||||||
self._general_options_box = builder.get_object("general_options_box")
|
self._general_options_box = builder.get_object("general_options_box")
|
||||||
|
self._save_sat_selection_switch = builder.get_object("save_sat_selection_switch")
|
||||||
self._skip_c_band_switch = builder.get_object("skip_c_band_switch")
|
self._skip_c_band_switch = builder.get_object("skip_c_band_switch")
|
||||||
|
|
||||||
if self._settings.use_header_bar:
|
if self._settings.use_header_bar:
|
||||||
@@ -482,7 +484,12 @@ class UpdateDialog:
|
|||||||
self._dialog_name = f"{'_'.join(re.findall('[A-Z][^A-Z]*', self.__class__.__name__))}".lower()
|
self._dialog_name = f"{'_'.join(re.findall('[A-Z][^A-Z]*', self.__class__.__name__))}".lower()
|
||||||
self._dialog_settings = self._settings.get(self._dialog_name, {})
|
self._dialog_settings = self._settings.get(self._dialog_name, {})
|
||||||
self._source_box.set_active(self._dialog_settings.get("source", 1))
|
self._source_box.set_active(self._dialog_settings.get("source", 1))
|
||||||
|
self._save_sat_selection_switch.set_active(self._dialog_settings.get("save_sat_selection", False))
|
||||||
self._skip_c_band_switch.set_active(self._dialog_settings.get("skip_c_band", False))
|
self._skip_c_band_switch.set_active(self._dialog_settings.get("skip_c_band", False))
|
||||||
|
|
||||||
|
if self._save_sat_selection_switch.get_active():
|
||||||
|
self._selected_satellites.update(self.get_selected_satellites())
|
||||||
|
|
||||||
window_size = self._dialog_settings.get("window_size", None)
|
window_size = self._dialog_settings.get("window_size", None)
|
||||||
if window_size:
|
if window_size:
|
||||||
self._window.resize(*window_size)
|
self._window.resize(*window_size)
|
||||||
@@ -538,8 +545,10 @@ class UpdateDialog:
|
|||||||
@run_idle
|
@run_idle
|
||||||
def append_satellites(self, sats):
|
def append_satellites(self, sats):
|
||||||
model = get_base_model(self._sat_view.get_model())
|
model = get_base_model(self._sat_view.get_model())
|
||||||
|
|
||||||
for sat in sats:
|
for sat in sats:
|
||||||
model.append(sat)
|
itr = model.append(sat)
|
||||||
|
model[itr][-1] = sat[-2] in self._selected_satellites
|
||||||
|
|
||||||
self._sat_view.set_sensitive(True)
|
self._sat_view.set_sensitive(True)
|
||||||
self._satellites_count_label.set_text(str(len(model)))
|
self._satellites_count_label.set_text(str(len(model)))
|
||||||
@@ -638,6 +647,10 @@ class UpdateDialog:
|
|||||||
itr = self._filter_model.convert_iter_to_child_iter(model.convert_iter_to_child_iter(model.get_iter(path)))
|
itr = self._filter_model.convert_iter_to_child_iter(model.convert_iter_to_child_iter(model.get_iter(path)))
|
||||||
self._filter_model.get_model().set_value(itr, 4, select)
|
self._filter_model.get_model().set_value(itr, 4, select)
|
||||||
|
|
||||||
|
if self._save_sat_selection_switch.get_active():
|
||||||
|
sat = model[path][-2]
|
||||||
|
self._selected_satellites.add(sat) if select else self._selected_satellites.discard(sat)
|
||||||
|
|
||||||
def on_quit(self, window, event):
|
def on_quit(self, window, event):
|
||||||
self.save_settings()
|
self.save_settings()
|
||||||
self.is_download = False
|
self.is_download = False
|
||||||
@@ -645,8 +658,21 @@ class UpdateDialog:
|
|||||||
def save_settings(self):
|
def save_settings(self):
|
||||||
self._dialog_settings["window_size"] = self._window.get_size()
|
self._dialog_settings["window_size"] = self._window.get_size()
|
||||||
self._dialog_settings["source"] = self._source_box.get_active()
|
self._dialog_settings["source"] = self._source_box.get_active()
|
||||||
|
self._dialog_settings["save_sat_selection"] = self._save_sat_selection_switch.get_active()
|
||||||
self._dialog_settings["skip_c_band"] = self._skip_c_band_switch.get_active()
|
self._dialog_settings["skip_c_band"] = self._skip_c_band_switch.get_active()
|
||||||
self._settings.add(self._dialog_name, self._dialog_settings)
|
self._settings.add(self._dialog_name, self._dialog_settings)
|
||||||
|
self.save_selected_satellites()
|
||||||
|
|
||||||
|
def get_selected_satellites(self):
|
||||||
|
""" Returns selected satellites set from the last session. """
|
||||||
|
c_file = f"{CONFIG_PATH}{self._dialog_name}_satellites"
|
||||||
|
return Settings.get_settings(c_file, default_settings=[])
|
||||||
|
|
||||||
|
def save_selected_satellites(self):
|
||||||
|
""" Saves current selected satellites to a file. """
|
||||||
|
if self._save_sat_selection_switch.get_active():
|
||||||
|
c_file = f"{CONFIG_PATH}{self._dialog_name}_satellites"
|
||||||
|
Settings.write_settings(list(self._selected_satellites), config_file=c_file)
|
||||||
|
|
||||||
|
|
||||||
class SatellitesUpdateDialog(UpdateDialog):
|
class SatellitesUpdateDialog(UpdateDialog):
|
||||||
@@ -972,10 +998,9 @@ class ServicesUpdateDialog(UpdateDialog):
|
|||||||
self.is_download = False
|
self.is_download = False
|
||||||
|
|
||||||
def on_satellite_toggled(self, toggle, path):
|
def on_satellite_toggled(self, toggle, path):
|
||||||
model = self._sat_view.get_model()
|
super().on_satellite_toggled(toggle, path)
|
||||||
self.update_state(model, path, not toggle.get_active())
|
|
||||||
self.update_receive_button_state(self._filter_model)
|
|
||||||
|
|
||||||
|
model = self._sat_view.get_model()
|
||||||
url = model.get_value(model.get_iter(path), 3)
|
url = model.get_value(model.get_iter(path), 3)
|
||||||
selected = toggle.get_active()
|
selected = toggle.get_active()
|
||||||
transponders = self._transponders.get(url, None)
|
transponders = self._transponders.get(url, None)
|
||||||
|
|||||||
@@ -60,6 +60,43 @@ Author: Dmitriy Yefremov
|
|||||||
<property name="position">0</property>
|
<property name="position">0</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkBox" id="save_sat_selection_box">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can-focus">False</property>
|
||||||
|
<property name="spacing">5</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkSwitch" id="save_sat_selection_switch">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can-focus">True</property>
|
||||||
|
<property name="valign">center</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="expand">False</property>
|
||||||
|
<property name="fill">True</property>
|
||||||
|
<property name="pack-type">end</property>
|
||||||
|
<property name="position">0</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel" id="save_sat_selection_label">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can-focus">False</property>
|
||||||
|
<property name="label" translatable="yes">Save satellite selection</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="expand">False</property>
|
||||||
|
<property name="fill">True</property>
|
||||||
|
<property name="position">2</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="expand">False</property>
|
||||||
|
<property name="fill">True</property>
|
||||||
|
<property name="position">0</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkBox" id="skip_c_band_box">
|
<object class="GtkBox" id="skip_c_band_box">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
@@ -94,7 +131,6 @@ Author: Dmitriy Yefremov
|
|||||||
<packing>
|
<packing>
|
||||||
<property name="expand">False</property>
|
<property name="expand">False</property>
|
||||||
<property name="fill">True</property>
|
<property name="fill">True</property>
|
||||||
<property name="pack-type">end</property>
|
|
||||||
<property name="position">1</property>
|
<property name="position">1</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
@@ -241,8 +277,8 @@ Author: Dmitriy Yefremov
|
|||||||
<object class="GtkBox" id="satellites_update_header_box">
|
<object class="GtkBox" id="satellites_update_header_box">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can-focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="margin-left">15</property>
|
<property name="margin-start">15</property>
|
||||||
<property name="margin-right">15</property>
|
<property name="margin-end">15</property>
|
||||||
<property name="margin-top">5</property>
|
<property name="margin-top">5</property>
|
||||||
<property name="margin-bottom">5</property>
|
<property name="margin-bottom">5</property>
|
||||||
<property name="spacing">5</property>
|
<property name="spacing">5</property>
|
||||||
@@ -668,8 +704,8 @@ Author: Dmitriy Yefremov
|
|||||||
<object class="GtkPaned" id="sat_update_main_paned">
|
<object class="GtkPaned" id="sat_update_main_paned">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can-focus">True</property>
|
<property name="can-focus">True</property>
|
||||||
<property name="margin-left">5</property>
|
<property name="margin-start">5</property>
|
||||||
<property name="margin-right">5</property>
|
<property name="margin-end">5</property>
|
||||||
<property name="margin-top">5</property>
|
<property name="margin-top">5</property>
|
||||||
<property name="margin-bottom">5</property>
|
<property name="margin-bottom">5</property>
|
||||||
<property name="wide-handle">True</property>
|
<property name="wide-handle">True</property>
|
||||||
@@ -683,8 +719,8 @@ Author: Dmitriy Yefremov
|
|||||||
<object class="GtkBox" id="sat_update_box">
|
<object class="GtkBox" id="sat_update_box">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can-focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="margin-left">5</property>
|
<property name="margin-start">5</property>
|
||||||
<property name="margin-right">5</property>
|
<property name="margin-end">5</property>
|
||||||
<property name="margin-top">5</property>
|
<property name="margin-top">5</property>
|
||||||
<property name="margin-bottom">5</property>
|
<property name="margin-bottom">5</property>
|
||||||
<property name="orientation">vertical</property>
|
<property name="orientation">vertical</property>
|
||||||
@@ -802,8 +838,8 @@ Author: Dmitriy Yefremov
|
|||||||
<object class="GtkBox" id="sat_update_status_box">
|
<object class="GtkBox" id="sat_update_status_box">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can-focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="margin-left">10</property>
|
<property name="margin-start">10</property>
|
||||||
<property name="margin-right">10</property>
|
<property name="margin-end">10</property>
|
||||||
<property name="spacing">5</property>
|
<property name="spacing">5</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkImage" id="satellites_count_image">
|
<object class="GtkImage" id="satellites_count_image">
|
||||||
@@ -866,8 +902,8 @@ Author: Dmitriy Yefremov
|
|||||||
<object class="GtkBox" id="sat_update_tr_box">
|
<object class="GtkBox" id="sat_update_tr_box">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can-focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="margin-left">5</property>
|
<property name="margin-start">5</property>
|
||||||
<property name="margin-right">5</property>
|
<property name="margin-end">5</property>
|
||||||
<property name="margin-top">5</property>
|
<property name="margin-top">5</property>
|
||||||
<property name="margin-bottom">5</property>
|
<property name="margin-bottom">5</property>
|
||||||
<property name="orientation">vertical</property>
|
<property name="orientation">vertical</property>
|
||||||
@@ -940,8 +976,8 @@ Author: Dmitriy Yefremov
|
|||||||
<object class="GtkBox" id="sat_update_tr_status_box">
|
<object class="GtkBox" id="sat_update_tr_status_box">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can-focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="margin-left">10</property>
|
<property name="margin-start">10</property>
|
||||||
<property name="margin-right">10</property>
|
<property name="margin-end">10</property>
|
||||||
<property name="spacing">5</property>
|
<property name="spacing">5</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkImage" id="transponders_count_image">
|
<object class="GtkImage" id="transponders_count_image">
|
||||||
@@ -999,8 +1035,8 @@ Author: Dmitriy Yefremov
|
|||||||
<object class="GtkBox" id="sat_update_srv_box">
|
<object class="GtkBox" id="sat_update_srv_box">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can-focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="margin-left">5</property>
|
<property name="margin-start">5</property>
|
||||||
<property name="margin-right">5</property>
|
<property name="margin-end">5</property>
|
||||||
<property name="margin-top">5</property>
|
<property name="margin-top">5</property>
|
||||||
<property name="margin-bottom">5</property>
|
<property name="margin-bottom">5</property>
|
||||||
<property name="orientation">vertical</property>
|
<property name="orientation">vertical</property>
|
||||||
@@ -1113,8 +1149,8 @@ Author: Dmitriy Yefremov
|
|||||||
<object class="GtkBox" id="sat_update_srv_status_box">
|
<object class="GtkBox" id="sat_update_srv_status_box">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can-focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="margin-left">10</property>
|
<property name="margin-start">10</property>
|
||||||
<property name="margin-right">10</property>
|
<property name="margin-end">10</property>
|
||||||
<property name="spacing">5</property>
|
<property name="spacing">5</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkImage" id="services_count_image">
|
<object class="GtkImage" id="services_count_image">
|
||||||
@@ -1181,8 +1217,8 @@ Author: Dmitriy Yefremov
|
|||||||
<child>
|
<child>
|
||||||
<object class="GtkFrame" id="log_frame">
|
<object class="GtkFrame" id="log_frame">
|
||||||
<property name="can-focus">False</property>
|
<property name="can-focus">False</property>
|
||||||
<property name="margin-left">4</property>
|
<property name="margin-start">5</property>
|
||||||
<property name="margin-right">5</property>
|
<property name="margin-end">5</property>
|
||||||
<property name="margin-bottom">5</property>
|
<property name="margin-bottom">5</property>
|
||||||
<property name="label-xalign">0</property>
|
<property name="label-xalign">0</property>
|
||||||
<property name="shadow-type">in</property>
|
<property name="shadow-type">in</property>
|
||||||
|
|||||||
Reference in New Issue
Block a user