mirror of
https://github.com/DYefremov/DemonEditor.git
synced 2026-03-09 14:10:55 +01:00
little optimisation
This commit is contained in:
@@ -2,8 +2,11 @@
|
||||
|
||||
For more info see __COMMENT
|
||||
"""
|
||||
from functools import lru_cache
|
||||
from xml.dom.minidom import parse, Document
|
||||
|
||||
import os
|
||||
|
||||
from .ecommons import POLARIZATION, FEC, SYSTEM, MODULATION, PLS_MODE, Transponder, Satellite, get_key_by_value
|
||||
|
||||
__COMMENT = (" File was created in DemonEditor\n\n"
|
||||
@@ -29,7 +32,7 @@ __COMMENT = (" File was created in DemonEditor\n\n"
|
||||
|
||||
|
||||
def get_satellites(path):
|
||||
return parse_satellites(path)
|
||||
return parse_satellites(path, os.path.getsize(path))
|
||||
|
||||
|
||||
def write_satellites(satellites, data_path):
|
||||
@@ -98,7 +101,8 @@ def parse_sat(elem):
|
||||
parse_transponders(elem))
|
||||
|
||||
|
||||
def parse_satellites(path):
|
||||
@lru_cache(maxsize=1)
|
||||
def parse_satellites(path, file_size):
|
||||
""" Parsing satellites from xml"""
|
||||
dom = parse(path)
|
||||
satellites = []
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
""" Common module for showing dialogs """
|
||||
import locale
|
||||
from enum import Enum
|
||||
from functools import lru_cache
|
||||
|
||||
from app.commons import run_idle
|
||||
from . import Gtk, UI_RESOURCES_PATH, TEXT_DOMAIN
|
||||
@@ -57,7 +56,7 @@ def show_dialog(dialog_type: DialogType, transient, text=None, options=None, act
|
||||
path = path + "/"
|
||||
|
||||
response = path
|
||||
dialog.hide()
|
||||
dialog.destroy()
|
||||
|
||||
return response
|
||||
|
||||
@@ -66,25 +65,25 @@ def show_dialog(dialog_type: DialogType, transient, text=None, options=None, act
|
||||
entry.set_text(text if text else "")
|
||||
response = dialog.run()
|
||||
txt = entry.get_text()
|
||||
dialog.hide()
|
||||
dialog.destroy()
|
||||
|
||||
return txt if response == Gtk.ResponseType.OK else Gtk.ResponseType.CANCEL
|
||||
|
||||
if text:
|
||||
dialog.set_markup(get_message(text))
|
||||
response = dialog.run()
|
||||
dialog.hide()
|
||||
dialog.destroy()
|
||||
|
||||
return response
|
||||
|
||||
|
||||
@lru_cache(maxsize=10)
|
||||
def get_dialog_from_xml(dialog_type, transient):
|
||||
builder = Gtk.Builder()
|
||||
builder.set_translation_domain(TEXT_DOMAIN)
|
||||
builder.add_from_file(UI_RESOURCES_PATH + "dialogs.glade")
|
||||
builder.add_objects_from_file(UI_RESOURCES_PATH + "dialogs.glade", (dialog_type.value,))
|
||||
dialog = builder.get_object(dialog_type.value)
|
||||
dialog.set_transient_for(transient)
|
||||
|
||||
return builder, dialog
|
||||
|
||||
|
||||
@@ -92,6 +91,7 @@ def get_chooser_dialog(transient, options, pattern, name):
|
||||
file_filter = Gtk.FileFilter()
|
||||
file_filter.add_pattern(pattern)
|
||||
file_filter.set_name(name)
|
||||
|
||||
return show_dialog(dialog_type=DialogType.CHOOSER,
|
||||
transient=transient,
|
||||
options=options,
|
||||
|
||||
@@ -1,14 +1,13 @@
|
||||
import re
|
||||
from functools import lru_cache
|
||||
|
||||
from app.commons import run_idle
|
||||
from app.eparser import Service, get_satellites
|
||||
from app.eparser.ecommons import MODULATION, Inversion, ROLL_OFF, Pilot, Flag, Pids, POLARIZATION, \
|
||||
get_key_by_value, get_value_by_name, FEC_DEFAULT, PLS_MODE
|
||||
from app.properties import Profile
|
||||
from . import Gtk, Gdk, UI_RESOURCES_PATH, HIDE_ICON, TEXT_DOMAIN
|
||||
from .dialogs import show_dialog, DialogType, Action
|
||||
from .main_helper import get_base_model
|
||||
from . import Gtk, Gdk, UI_RESOURCES_PATH, HIDE_ICON, TEXT_DOMAIN
|
||||
|
||||
|
||||
class ServiceDetailsDialog:
|
||||
@@ -259,7 +258,6 @@ class ServiceDetailsDialog:
|
||||
model.append((pos,))
|
||||
self.select_active_text(self._sat_pos_combo_box, sat_pos)
|
||||
|
||||
@lru_cache(maxsize=1)
|
||||
def get_sat_positions(self, path):
|
||||
try:
|
||||
return ["{:.1f}".format(float(x.position) / 10) for x in get_satellites(path)]
|
||||
|
||||
Reference in New Issue
Block a user