state update for navigation buttons

This commit is contained in:
Dmitriy Yefremov
2018-03-20 23:42:06 +03:00
parent 336aa47177
commit d762f097d0
5 changed files with 19 additions and 9 deletions

View File

@@ -175,7 +175,9 @@ class MainAppWindow:
# Search
self.__search_info_bar = builder.get_object("search_info_bar")
self.__search_provider = SearchProvider(self.__services_view, self.__fav_view, self.__bouquets_view,
self.__services, self.__bouquets)
self.__services, self.__bouquets,
builder.get_object("search_down_button"),
builder.get_object("search_up_button"))
self.__main_window.show()
def init_drag_and_drop(self):

View File

@@ -1247,6 +1247,7 @@
<child>
<object class="GtkButton" id="search_down_button">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<signal name="clicked" handler="on_search_down" swapped="no"/>
@@ -1267,6 +1268,7 @@
<child>
<object class="GtkButton" id="search_up_button">
<property name="visible">True</property>
<property name="sensitive">False</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<signal name="clicked" handler="on_search_up" swapped="no"/>

View File

@@ -2,7 +2,7 @@
class SearchProvider:
def __init__(self, srv_view, fav_view, bqs_view, services, bouquets):
def __init__(self, srv_view, fav_view, bqs_view, services, bouquets, down_button, up_button):
self._paths = []
self._current_index = -1
self._max_indexes = 0
@@ -11,6 +11,8 @@ class SearchProvider:
self._bqs_view = bqs_view
self._services = services
self._bouquets = bouquets
self._up_button = up_button
self._down_button = down_button
def search(self, text, ):
self._current_index = -1
@@ -36,6 +38,7 @@ class SearchProvider:
def scroll_to(self, index):
view, path = self._paths[index]
view.scroll_to_cell(path, None)
self.update_navigation_buttons()
def on_search_down(self):
if self._current_index < self._max_indexes:
@@ -47,6 +50,10 @@ class SearchProvider:
self._current_index -= 1
self.scroll_to(self._current_index)
def update_navigation_buttons(self):
self._up_button.set_sensitive(self._current_index > 0)
self._down_button.set_sensitive(self._current_index < self._max_indexes)
if __name__ == "__main__":
pass

View File

@@ -1167,7 +1167,7 @@
<property name="width_chars">14</property>
<property name="max_width_chars">14</property>
<property name="primary_icon_stock">gtk-edit</property>
<signal name="changed" handler="on_digit_entry_changed" swapped="no"/>
<signal name="changed" handler="on_non_empty_entry_changed" swapped="no"/>
</object>
<packing>
<property name="left_attach">7</property>

View File

@@ -1,5 +1,4 @@
import re
from math import fabs
from app.commons import run_idle
from app.eparser import Service, get_satellites
@@ -25,8 +24,9 @@ class ServiceDetailsDialog:
_DIGIT_ENTRY_ELEMENTS = ("bitstream_entry", "pcm_entry", "video_pid_entry", "pcr_pid_entry", "srv_type_entry",
"ac3_pid_entry", "ac3plus_pid_entry", "acc_pid_entry", "he_acc_pid_entry",
"teletext_pid_entry", "pls_code_entry", "stream_id_entry", "tr_flag_entry",
"audio_pid_entry", "namespace_entry")
_NOT_EMPTY_DIGIT_ELEMENTS = ("sid_entry", "freq_entry", "rate_entry", "transponder_id_entry", "network_id_entry")
"audio_pid_entry")
_NOT_EMPTY_DIGIT_ELEMENTS = ("sid_entry", "freq_entry", "rate_entry", "transponder_id_entry", "network_id_entry",
"namespace_entry")
_DIGIT_ENTRY_NAME = "digit-entry"
@@ -90,7 +90,7 @@ class ServiceDetailsDialog:
self._pls_code_entry = self._digit_elements.get("pls_code_entry")
self._stream_id_entry = self._digit_elements.get("stream_id_entry")
self._tr_flag_entry = self._digit_elements.get("tr_flag_entry")
self._namespace_entry = self._digit_elements.get("namespace_entry")
self._namespace_entry = self._non_empty_elements.get("namespace_entry")
# Service elements
self._name_entry = builder.get_object("name_entry")
self._package_entry = builder.get_object("package_entry")
@@ -282,8 +282,7 @@ class ServiceDetailsDialog:
@run_idle
def set_sat_positions(self, sat_pos):
""" Sat positions initialisation """
pos = float(sat_pos)
self._sat_pos_button.set_value(fabs(pos))
self._sat_pos_button.set_value(float(sat_pos))
def get_sat_positions(self, path):
try: