From cbec74c2a4d13d636071412be1a412d5fa7974cd Mon Sep 17 00:00:00 2001 From: DYefremov Date: Fri, 4 Nov 2022 01:06:18 +0300 Subject: [PATCH] added multiple hosts option --- app/settings.py | 8 + app/ui/settings_dialog.glade | 2407 ++++++++++++++++++---------------- app/ui/settings_dialog.py | 64 +- 3 files changed, 1315 insertions(+), 1164 deletions(-) diff --git a/app/settings.py b/app/settings.py index 143910a2..80059ae5 100644 --- a/app/settings.py +++ b/app/settings.py @@ -281,6 +281,14 @@ class Settings: def host(self, value): self._cp_settings["host"] = value + @property + def hosts(self): + return self._cp_settings.get("hosts", [self.host,]) + + @hosts.setter + def hosts(self, value): + self._cp_settings["hosts"] = value + @property def port(self): return self._cp_settings.get("port", self.get_default("port")) diff --git a/app/ui/settings_dialog.glade b/app/ui/settings_dialog.glade index 16a3592b..66546e32 100644 --- a/app/ui/settings_dialog.glade +++ b/app/ui/settings_dialog.glade @@ -1,44 +1,29 @@ - - + - + - + 8 100 - 1 - 10 + 1 + 10 @@ -52,19 +37,19 @@ Author: Dmitriy Yefremov True - False - emblem-default + False + emblem-default True - False + False gtk-add True - False - True - True + False + True + True @@ -73,9 +58,9 @@ Author: Dmitriy Yefremov gtk-edit True - False - True - True + False + True + True @@ -83,16 +68,16 @@ Author: Dmitriy Yefremov True - False + False Set default True - False + False set_default_image - False + False @@ -100,16 +85,16 @@ Author: Dmitriy Yefremov True - False + False gtk-remove True - False - True - True + False + True + True @@ -118,47 +103,160 @@ Author: Dmitriy Yefremov 1 10 - 1 - 10 + 1 + 10 True - False + False gtk-connect - 680 - False + 680 + False Options False True - center-on-parent - True - dialog - True - True + center-on-parent + True + dialog + True + True - False + False vertical 5 - False + False center - 10 - 10 - 5 - 5 - start + 10 + 10 + 5 + 5 + start + + + True + False + center + 5 + + + Test + 120 + True + True + True + Test connection + test_button_image + True + + + + False + True + 0 + + + + + True + False + 0.30000001192092896 + 0.30000001192092896 + + + True + False + + + + + True + True + 2 + + + + + True + False + True + expand + + + FTP + 75 + True + True + False + False + telnet_radio_button + + + True + True + 0 + + + + + HTTP + 75 + True + True + False + False + telnet_radio_button + + + True + True + 1 + + + + + Telnet + 75 + True + True + False + False + ftp_radio_button + + + True + True + 2 + + + + + False + True + end + 3 + + + + + False + True + end + 3 + + Reset True - True - True - Reset profile + True + True + Reset profile center @@ -172,9 +270,9 @@ Author: Dmitriy Yefremov Apply False - True - True - Apply + True + True + Apply center @@ -189,11 +287,11 @@ Author: Dmitriy Yefremov Save True - True - True - Save + True + True + Save center - + False @@ -202,120 +300,6 @@ Author: Dmitriy Yefremov True - - - True - False - center - 5 - - - - Test - 120 - True - True - True - Test connection - test_button_image - True - - - - False - True - 0 - - - - - True - False - 0.30000001192092896 - 0.30000001192092896 - - - True - False - - - - - True - True - 2 - - - - - True - False - True - expand - - - FTP - 75 - True - True - False - False - telnet_radio_button - - - True - True - 0 - - - - - HTTP - 75 - True - True - False - False - telnet_radio_button - - - True - True - 1 - - - - - Telnet - 75 - True - True - False - False - ftp_radio_button - - - True - True - 2 - - - - - False - True - end - 3 - - - - - False - True - end - 3 - - True @@ -326,12 +310,12 @@ Author: Dmitriy Yefremov True - True + True center - 15 - 15 - 5 - 5 + 15 + 15 + 5 + 5 main_stack @@ -343,48 +327,48 @@ Author: Dmitriy Yefremov True - False - 5 - 5 - 5 - 5 + False + 5 + 5 + 5 + 5 True - False + False 5 True - False - 0.05000000074505806 - in + False + 0.05000000074505806 + in - 220 + 220 True - False - 5 - 5 - 5 - 5 + False + 5 + 5 + 5 + 5 vertical 2 True - True - in + True + in True - True - 1 - 1 + True + 1 + 1 profile_lists_tore - False - 0 + False + 0 @@ -393,12 +377,12 @@ Author: Dmitriy Yefremov autosize - 70 + 70 Profile True True True - 0 + 0 True @@ -437,22 +421,22 @@ Author: Dmitriy Yefremov True - False + False center - expand + expand True - False - True - Add + False + True + Add center True - False - list-add-symbolic + False + list-add-symbolic @@ -466,16 +450,16 @@ Author: Dmitriy Yefremov True - False - True - Rename + False + True + Rename center True - False - document-edit-symbolic + False + document-edit-symbolic @@ -489,16 +473,16 @@ Author: Dmitriy Yefremov True - False - True - Remove + False + True + Remove center True - False - list-remove-symbolic + False + list-remove-symbolic @@ -512,24 +496,24 @@ Author: Dmitriy Yefremov True - False - True - Set default + False + True + Set default center True - False - emblem-default + False + emblem-default - + False True - end + end 3 True @@ -546,7 +530,7 @@ Author: Dmitriy Yefremov True - False + False Profile: @@ -560,13 +544,13 @@ Author: Dmitriy Yefremov True - False - 0.019999999552965164 - in + False + 0.019999999552965164 + in True - False + False Network settings: @@ -586,38 +570,38 @@ Author: Dmitriy Yefremov True - False + False vertical 5 True - False - 0.05000000074505806 - in + False + 0.05000000074505806 + in True - False - 5 - 5 - 5 + False + 5 + 5 + 5 vertical 5 True - False - Sets the profile folder as default to store picons, backups, etc. + False + Sets the profile folder as default to store picons, backups, etc. center - 5 - 5 + 5 + 5 True - False - 5 - 5 + False + 5 + 5 Make profile folder as default for the additional data 0 @@ -630,7 +614,7 @@ Author: Dmitriy Yefremov True - True + True end center @@ -652,58 +636,58 @@ Author: Dmitriy Yefremov True - False - 5 - 10 - True + False + 5 + 10 + True True - False + False start Data path: 0 - 0 - 0 + 0 + 0 True - False + False start Picons path: - 0 - 1 + 0 + 1 True - False + False start Backup path: - 0 - 2 + 0 + 2 True - False + False True - True + True True - document-edit-symbolic - False + document-edit-symbolic + False False @@ -714,110 +698,14 @@ Author: Dmitriy Yefremov True - True - True - Select + True + True + Select True - False - folder-open-symbolic - - - - - False - True - 1 - - - - - - 1 - 0 - - - - - True - False - - - True - True - True - document-edit-symbolic - False - - - False - True - 0 - - - - - True - True - True - Select - - - - True - False - folder-open-symbolic - - - - - False - True - 1 - - - - - - 1 - 1 - - - - - True - False - - - True - True - True - document-edit-symbolic - False - - - False - True - 0 - - - - - True - True - True - Select - - - - True - False + False folder-open-symbolic @@ -833,8 +721,104 @@ Author: Dmitriy Yefremov - 1 - 2 + 1 + 0 + + + + + True + False + + + True + True + True + document-edit-symbolic + False + + + False + True + 0 + + + + + True + True + True + Select + + + + True + False + folder-open-symbolic + + + + + False + True + 1 + + + + + + 1 + 1 + + + + + True + False + + + True + True + True + document-edit-symbolic + False + + + False + True + 0 + + + + + True + True + True + Select + + + + True + False + folder-open-symbolic + + + + + False + True + 1 + + + + + + 1 + 2 @@ -849,7 +833,7 @@ Author: Dmitriy Yefremov True - False + False Local file paths: @@ -863,43 +847,43 @@ Author: Dmitriy Yefremov True - False - 0.019999999552965164 - in + False + 0.019999999552965164 + in True - False - 5 - 5 - 5 - 5 - 10 - True + False + 5 + 5 + 5 + 5 + 10 + True True - False + False Streams record path: 0.019999999552965164 - 0 - 0 + 0 + 0 True - False + False True - True + True True - document-edit-symbolic - False + document-edit-symbolic + False False @@ -910,15 +894,15 @@ Author: Dmitriy Yefremov True - True + True True - Select + Select True - False - folder-open-symbolic + False + folder-open-symbolic @@ -942,7 +926,7 @@ Author: Dmitriy Yefremov True - False + False Recordings: @@ -963,34 +947,34 @@ Author: Dmitriy Yefremov True - False + False vertical 5 True - False - 0.019999999552965164 - in + False + 0.019999999552965164 + in True - False - 5 - 5 - 5 - 5 + False + 5 + 5 + 5 + 5 vertical 5 True - False + False 5 True - False + False Use to play streams: @@ -1001,11 +985,11 @@ Author: Dmitriy Yefremov - 185 + 185 True - False + False 0 - vlc + vlc VLC Player GStreamer @@ -1016,7 +1000,7 @@ Author: Dmitriy Yefremov False True - end + end 4 @@ -1030,12 +1014,12 @@ Author: Dmitriy Yefremov True - False + False 5 True - False + False Play streams mode: @@ -1046,11 +1030,11 @@ Author: Dmitriy Yefremov - 185 + 185 True - False + False 0 - Built-in player + Built-in player Built-in player In a separate window @@ -1061,7 +1045,7 @@ Author: Dmitriy Yefremov False True - end + end 4 @@ -1075,12 +1059,12 @@ Author: Dmitriy Yefremov True - False + False 5 True - False + False Double click on the service in the bouquet list: @@ -1091,11 +1075,11 @@ Author: Dmitriy Yefremov - 185 + 185 True - False + False 0 - 0 + 0 Disabled Play stream @@ -1108,7 +1092,7 @@ Author: Dmitriy Yefremov False True - end + end 1 @@ -1122,12 +1106,12 @@ Author: Dmitriy Yefremov True - False + False 5 True - False + False Playback from the main list @@ -1139,12 +1123,12 @@ Author: Dmitriy Yefremov True - True + True False True - end + end 1 @@ -1160,7 +1144,7 @@ Author: Dmitriy Yefremov True - False + False Playback: @@ -1174,29 +1158,29 @@ Author: Dmitriy Yefremov True - False - 0.019999999552965164 - in + False + 0.019999999552965164 + in True - False - 5 - 5 - 5 - 5 + False + 5 + 5 + 5 + 5 vertical 5 True - False - 5 + False + 5 5 True - False + False Activate transcoding @@ -1208,12 +1192,12 @@ Author: Dmitriy Yefremov True - True + True False True - end + end 1 @@ -1228,18 +1212,18 @@ Author: Dmitriy Yefremov True False - False + False vertical 5 True - False + False 5 True - False + False start Presets: @@ -1252,15 +1236,15 @@ Author: Dmitriy Yefremov True - False - Edit + False + Edit end 5 True - False - document-edit-symbolic + False + document-edit-symbolic False @@ -1271,13 +1255,13 @@ Author: Dmitriy Yefremov True - True + True center False True - end + end 1 @@ -1290,10 +1274,10 @@ Author: Dmitriy Yefremov - 185 + 185 True - False - 720p TV/device + False + 720p TV/device 720p TV/device 1080p TV/device @@ -1314,123 +1298,132 @@ Author: Dmitriy Yefremov - + + True False - False - 5 - 5 - 5 - 5 - 2 - 5 + False + 5 + 5 + 5 + 5 + 2 + 5 - + True - False + False Codec: - 4 - 0 + 4 + 0 - - h264 + True - True - False - center - True - True + False + mp3 + + mp3 + AC3 + - 4 - 1 + 4 + 1 - + True - False - Height (px): + False + Sample rate (Hz): - 3 - 0 + 3 + 0 - + True - True - number - + False + 44100 + + 8000 + 11025 + 22050 + 44100 + 48000 + - 3 - 1 + 3 + 1 - + True - False - Width (px): + False + Channels: - 2 - 0 + 2 + 0 - + + 75 True - True - - - number - + False + 2 + + 1 + 2 + - 2 - 1 + 2 + 1 - + True - False + False Bitrate (kb/s): - 1 - 0 + 1 + 0 - + True - True - number + True + number - 1 - 1 + 1 + 1 - + True - False - Video options: + False + Audio options: 0 - 0 - 1 + 0 + 1 @@ -1444,131 +1437,124 @@ Author: Dmitriy Yefremov - + + True False - False - 5 - 5 - 5 - 5 - 2 - 5 + False + 5 + 5 + 5 + 5 + 2 + 5 - + True - False + False Codec: - 4 - 0 + 4 + 0 - + + h264 True - False - mp3 - - mp3 - AC3 - + True + False + center + True + True - 4 - 1 + 4 + 1 - + True - False - Sample rate (Hz): + False + Height (px): - 3 - 0 + 3 + 0 - + True - False - 44100 - - 8000 - 11025 - 22050 - 44100 - 48000 - - - - 3 - 1 - - - - - True - False - Channels: - - - 2 - 0 - - - - - 75 - True - False - 2 - - 1 - 2 - - - - 2 - 1 - - - - - True - False - Bitrate (kb/s): - - - 1 - 0 - - - - - True - True - number + True + number - 1 - 1 + 3 + 1 - + True - False - Audio options: + False + Width (px): + + + 2 + 0 + + + + + True + True + + + number + + + + 2 + 1 + + + + + True + False + Bitrate (kb/s): + + + 1 + 0 + + + + + True + True + number + + + + 1 + 1 + + + + + True + False + Video options: 0 - 0 - 1 + 0 + 1 @@ -1593,7 +1579,7 @@ Author: Dmitriy Yefremov True - False + False Record to disk: @@ -1614,27 +1600,27 @@ Author: Dmitriy Yefremov True - False + False vertical 5 True - False - 0 - in + False + 0 + in True - False - 5 - 5 - 5 - 5 + False + 5 + 5 + 5 + 5 True - False + False Language: @@ -1645,10 +1631,10 @@ Author: Dmitriy Yefremov - 175 + 175 True - False - False + False + False 0 English @@ -1668,7 +1654,7 @@ Author: Dmitriy Yefremov False True - end + end 1 @@ -1687,24 +1673,24 @@ Author: Dmitriy Yefremov True - False - 0 - in + False + 0 + in True - False - 5 - 5 - 5 - 5 + False + 5 + 5 + 5 + 5 True - False + False start - 5 - 5 + 5 + 5 Load the last open configuration at program startup @@ -1716,13 +1702,13 @@ Author: Dmitriy Yefremov True - True + True center False True - end + end 1 @@ -1741,66 +1727,67 @@ Author: Dmitriy Yefremov True - False - 0 - in + False + 0 + in + True - False - 5 - 5 - 5 - 5 - 5 - 5 + False + 5 + 5 + 5 + 5 + 5 + 5 True - False + False start True Show detailed info as hints in the bouquet list - 0 - 1 + 0 + 1 True - True + True end center - 1 - 1 + 1 + 1 True - False + False start True Show short info as hints in the main services list - 0 - 0 + 0 + 0 True - True + True end - 1 - 0 + 1 + 0 @@ -1818,64 +1805,65 @@ Author: Dmitriy Yefremov True - False - 0.019999999552965164 - in + False + 0.019999999552965164 + in + True - False - 5 - 5 - 5 - 5 - 5 + False + 5 + 5 + 5 + 5 + 5 True - True + True end - 1 - 0 + 1 + 0 True - True + True end - 1 - 1 + 1 + 1 True - False - 1 + False + 1 True Before saving 0 - 0 - 0 + 0 + 0 True - False + False Before downloading from the receiver 0 - 0 - 1 + 0 + 1 @@ -1883,7 +1871,7 @@ Author: Dmitriy Yefremov True - False + False Backup: @@ -1897,21 +1885,21 @@ Author: Dmitriy Yefremov True - False - 0.019999999552965164 - in + False + 0.019999999552965164 + in True - False - 5 - 5 - 5 - 5 + False + 5 + 5 + 5 + 5 True - False + False start True Enable HTTP API @@ -1925,7 +1913,7 @@ Author: Dmitriy Yefremov True - True + True end @@ -1957,33 +1945,33 @@ Author: Dmitriy Yefremov True - False + False vertical 5 True - False - 0.019999999552965164 - in + False + 0.019999999552965164 + in True - False - 5 - 5 - 5 - 5 + False + 5 + 5 + 5 + 5 vertical 5 True - False + False True - False + False start True Font in the lists: @@ -1997,20 +1985,20 @@ Author: Dmitriy Yefremov True - False + False True - True - True - Reset - True + True + True + Reset + True True - False - document-revert-symbolic + False + document-revert-symbolic @@ -2023,17 +2011,17 @@ Author: Dmitriy Yefremov True - True - False + True + False Sans 12 - - True - False + + True + False True True - end + end 1 @@ -2055,40 +2043,41 @@ Author: Dmitriy Yefremov + True - False - 5 - 5 + False + 5 + 5 True - False + False start True Picons size in the lists: - 0 - 0 + 0 + 0 True - False + False start Logo size in tooltips: - 0 - 1 + 0 + 1 True - False + False 0 96 @@ -2097,15 +2086,15 @@ Author: Dmitriy Yefremov - 1 - 1 + 1 + 1 - 85 + 85 True - False + False 0 32 @@ -2116,8 +2105,8 @@ Author: Dmitriy Yefremov - 1 - 0 + 1 + 0 @@ -2142,27 +2131,27 @@ Author: Dmitriy Yefremov True - False - 0 - in + False + 0 + in True - False - 5 - 5 - 5 - 5 + False + 5 + 5 + 5 + 5 vertical True - False + False 5 True - False + False Set background color for the services 0 @@ -2175,13 +2164,13 @@ Author: Dmitriy Yefremov True - True + True False True - end + end 2 @@ -2193,63 +2182,64 @@ Author: Dmitriy Yefremov + True False - False - 5 - 5 - 20 + False + 5 + 5 + 20 True - False + False Marked as new: 0 - 0 - 0 + 0 + 0 - 250 + 250 True - True - True + True + True end True - 1 - 0 + 1 + 0 True - False + False With an extra name in the bouquet: 0 - 0 - 1 + 0 + 1 - 250 + 250 True - True - True + True + True end True - 1 - 1 + 1 + 1 @@ -2273,27 +2263,27 @@ Author: Dmitriy Yefremov - False - 0 - in + False + 0 + in True - False - 5 - 5 - 5 - 5 + False + 5 + 5 + 5 + 5 vertical 5 True - False + False True - False + False Enable Dark Mode @@ -2305,13 +2295,13 @@ Author: Dmitriy Yefremov True - True + True False True - end + end 1 @@ -2324,12 +2314,12 @@ Author: Dmitriy Yefremov - False - Enables an alternate layout of the main window elements. + False + Enables an alternate layout of the main window elements. True - False + False Enable alternate layout @@ -2341,13 +2331,13 @@ Author: Dmitriy Yefremov True - True + True False True - end + end 1 @@ -2372,33 +2362,21 @@ Author: Dmitriy Yefremov - False - 0 - in + False + 0 + in True - False - 5 - 5 - 5 - 5 - - - True - False - Enable Themes support - - - False - True - 0 - - + False + 5 + 5 + 5 + 5 True - False + False EXPERIMENTAL! @@ -2407,16 +2385,28 @@ Author: Dmitriy Yefremov 2 + + + True + False + Enable Themes support + + + False + True + 0 + + True - True + True False True - end + end 1 @@ -2435,29 +2425,30 @@ Author: Dmitriy Yefremov False - False - 0 - in + False + 0 + in True - False - 5 - 5 - 5 - 5 + False + 5 + 5 + 5 + 5 vertical 5 True - False - 5 - 5 + False + 5 + 5 + 1 True - False + False Gtk3 Theme: @@ -2469,58 +2460,71 @@ Author: Dmitriy Yefremov True - False + False False True - end + end 1 - + True - True - True - Add - + False + expand - + True - False - gtk-add + True + True + Add + + + + True + False + list-add-symbolic + + + + False + True + end + 0 + + + + + True + True + True + Remove + + + + True + False + list-remove-symbolic + + + + + False + True + end + 1 + False True - end - 2 - - - - - True - True - True - Remove - - - - True - False - gtk-remove - - - - - False - True - end - 3 + end + 4 @@ -2533,21 +2537,21 @@ Author: Dmitriy Yefremov True - False + False center center - 0 - in + 0 + in - 120 - 32 + 120 + 32 True - False - Preview + False + Preview center - 2 - 2 + 2 + 2 0 @@ -2564,13 +2568,27 @@ Author: Dmitriy Yefremov True - False - 5 - 5 + False + 5 + 5 + 1 + + + True + False + + + + False + True + end + 0 + + True - False + False Icon Theme: @@ -2580,62 +2598,62 @@ Author: Dmitriy Yefremov - + True - False - - - - False - True - end - 1 - - - - - True - True - True - Add - + False + expand - + True - False - gtk-add + True + True + Add + + + + True + False + list-add-symbolic + + + + False + True + end + 0 + + + + + True + True + True + Remove + + + + True + False + list-remove-symbolic + + + + + False + True + end + 1 + False True - end + end 2 - - - True - True - True - Remove - - - - True - False - gtk-remove - - - - - False - True - end - 3 - - False @@ -2646,12 +2664,12 @@ Author: Dmitriy Yefremov True - False + False center True - False + False Gtk3 Themes and Icons: @@ -2664,8 +2682,8 @@ Author: Dmitriy Yefremov www.gnome-look.org True - True - True + True + True none https://www.gnome-look.org/ @@ -2679,7 +2697,7 @@ Author: Dmitriy Yefremov False True - end + end 4 @@ -2705,124 +2723,125 @@ Author: Dmitriy Yefremov True - False + False vertical 10 True - False - 0.019999999552965164 - in + False + 0.019999999552965164 + in + True - False - 5 - 5 - 5 - 5 - 5 - 5 + False + 5 + 5 + 5 + 5 + 5 + 5 True - False - Allows you to name bouquet files using their names. + False + Allows you to name bouquet files using their names. start True Enable alternate bouquet file naming - 0 - 3 + 0 + 3 True - True - Allows you to name bouquet files using their names. + True + Allows you to name bouquet files using their names. end - 1 - 3 + 1 + 3 True - True + True end True - 1 - 0 + 1 + 0 True - False + False start Use HTTP to reload data in the receiver - 0 - 0 + 0 + 0 True - False + False start Remove unused bouquets - 0 - 1 + 0 + 1 True - True + True end True - 1 - 1 + 1 + 1 True - False - Enables upload as an archive if a large number of picon (> 1000) is selected. + False + Enables upload as an archive if a large number of picon (> 1000) is selected. Recommended only if you have external storage. start Enable picons compression - 0 - 2 + 0 + 2 True - True - Enables upload as an archive if a large number of picon (> 1000) is selected. + True + Enables upload as an archive if a large number of picon (> 1000) is selected. Recommended only if you have external storage. - 1 - 2 + 1 + 2 @@ -2830,7 +2849,7 @@ Author: Dmitriy Yefremov True - False + False FTP-transfer @@ -2844,7 +2863,7 @@ Author: Dmitriy Yefremov True - False + False EXPERIMENTAL! @@ -2856,13 +2875,13 @@ Author: Dmitriy Yefremov True - False - 5 - 5 + False + 5 + 5 True - False + False start Enable experimental features @@ -2875,7 +2894,7 @@ Author: Dmitriy Yefremov True - True + True end center @@ -2883,7 +2902,7 @@ Author: Dmitriy Yefremov False True - end + end 1 @@ -2897,28 +2916,28 @@ Author: Dmitriy Yefremov True - False - 0.5 - in + False + 0.5 + in True - False - 5 - 5 - 5 - 5 + False + 5 + 5 + 5 + 5 vertical 5 True False - False + False True - False + False start True Enable lamedb ver. 5 support @@ -2932,13 +2951,13 @@ Author: Dmitriy Yefremov True - True + True end False True - end + end 1 @@ -2953,20 +2972,20 @@ Author: Dmitriy Yefremov True False - False - 10 - 10 + False + 10 + 10 vertical 5 True - False - Enables URL parsing using youtube-dl to get direct links to media. + False + Enables URL parsing using youtube-dl to get direct links to media. True - False + False start Enable support for @@ -2979,14 +2998,14 @@ Author: Dmitriy Yefremov True - True + True end center False True - end + end 2 @@ -2995,8 +3014,8 @@ Author: Dmitriy Yefremov youtube-dl status-bar-button True - False - True + False + True start center none @@ -3019,11 +3038,11 @@ Author: Dmitriy Yefremov True False - False + False True - False + False start Auto-check for updates @@ -3036,14 +3055,14 @@ Author: Dmitriy Yefremov True - True + True end center False True - end + end 1 @@ -3065,12 +3084,12 @@ Author: Dmitriy Yefremov True False - False - Enables direct sending and playback of media links on the receiver + False + Enables direct sending and playback of media links on the receiver True - False + False start True Enable direct playback bar @@ -3084,13 +3103,13 @@ Author: Dmitriy Yefremov True - True + True end False True - end + end 1 @@ -3129,14 +3148,14 @@ Author: Dmitriy Yefremov - False - True + False + True - False + False True - expand + expand @@ -3149,13 +3168,13 @@ Author: Dmitriy Yefremov - False + False 16 True - False - 5 + False + 5 Info @@ -3178,7 +3197,7 @@ Author: Dmitriy Yefremov False True - end + end 2 @@ -3188,128 +3207,129 @@ Author: Dmitriy Yefremov save_button + True - False - 10 - 10 - 5 - 5 - 5 - 5 + False + 10 + 10 + 5 + 5 + 5 + 5 True - False + False Satellites.xml file: 0.019999999552965164 - 0 - 11 + 0 + 11 True - True + True start /etc/tuxbox/ - document-edit-symbolic + document-edit-symbolic - 1 - 11 + 1 + 11 - False + False User bouquet files: 2.2351741291171123e-10 - 0 - 10 + 0 + 10 - True + True start /etc/enigma2/ - document-edit-symbolic + document-edit-symbolic - 1 - 10 + 1 + 10 True - False + False Services and Bouquets files: 0 - 0 - 9 + 0 + 9 True - True + True start /etc/enigma2/ - document-edit-symbolic + document-edit-symbolic - 1 - 9 + 1 + 9 True - False + False start STB file paths: - 1 - 8 + 1 + 8 True - False + False start Telnet: 1 - 0 - 7 + 0 + 7 True - False + False 5 True - True - Default 23 + True + Default 23 start - 6 - 6 + 6 + 6 23 - network-workgroup-symbolic + network-workgroup-symbolic False @@ -3320,8 +3340,8 @@ Author: Dmitriy Yefremov True - False - 5 + False + 5 Timeout: @@ -3333,16 +3353,16 @@ Author: Dmitriy Yefremov True - True - Timeout between commands in seconds + True + Timeout between commands in seconds start center - 2 - 6 - 6 + 2 + 6 + 6 1 - alarm-symbolic - number + alarm-symbolic + number telnet_timeout_adjustment True 1 @@ -3355,39 +3375,39 @@ Author: Dmitriy Yefremov - 1 - 7 + 1 + 7 True - False + False start HTTP: 1 - 0 - 6 + 0 + 6 True - False + False 5 True - True - Default 80 + True + Default 80 start - 5 - 6 - 6 + 5 + 6 + 6 80 - network-workgroup-symbolic + network-workgroup-symbolic False @@ -3399,11 +3419,11 @@ Author: Dmitriy Yefremov SSL/TSL True - True - False + True + False start center - True + True @@ -3412,152 +3432,135 @@ Author: Dmitriy Yefremov 1 - - - - 1 - 6 + 1 + 6 True - False + False start FTP: 1 - 0 - 5 + 0 + 5 True - True - Default 21 + True + Default 21 start - 6 - 6 + 6 + 6 21 - network-workgroup-symbolic + network-workgroup-symbolic - 1 - 5 + 1 + 5 True - False + False start Port: - 1 - 4 + 1 + 4 True - False + False Password: 0.019999999552965164 - 0 - 3 + 0 + 3 True - True + True start center False False - + root - emblem-readonly - False - password + emblem-readonly + False + password - 1 - 3 + 1 + 3 True - False + False Login: 0.019999999552965164 - 0 - 2 + 0 + 2 True - True + True start center root - avatar-default-symbolic - False + avatar-default-symbolic + False - 1 - 2 + 1 + 2 True - False + False Host: 0.019999999552965164 - 0 - 1 - - - - - True - True - start - center - 127.0.0.1 - network-transmit-receive-symbolic - - - 1 - 1 + 0 + 1 True - False + False 5 Enigma2 True - True - False - True + True + False + True neutrino_radio_button @@ -3571,9 +3574,9 @@ Author: Dmitriy Yefremov Neutrino-MP True - True - False - True + True + False + True enigma_radio_button @@ -3584,49 +3587,49 @@ Author: Dmitriy Yefremov - 1 - 0 + 1 + 0 True - False + False Settings type: 0 - 0 - 0 + 0 + 0 True - False + False Picons: 2.2351741291171123e-10 - 0 - 13 + 0 + 13 True - False + False 2 True - False + False start 0 - True + True - False + False @@ -3639,20 +3642,20 @@ Author: Dmitriy Yefremov True - False - expand + False + expand True - True - True - Remove + True + True + Remove True - False - list-remove-symbolic + False + list-remove-symbolic @@ -3665,15 +3668,15 @@ Author: Dmitriy Yefremov True - True - True - Add + True + True + Add True - False - list-add-symbolic + False + list-add-symbolic @@ -3692,31 +3695,31 @@ Author: Dmitriy Yefremov - 1 - 13 + 1 + 13 True - False + False + False EPG *.dat file: - 0.02 - + 0.019999999552965164 - 0 - 12 + 0 + 12 True - False + False + False start 0 - True - + True /etc/enigma2/ /media/hdd/ @@ -3726,13 +3729,103 @@ Author: Dmitriy Yefremov - True + True - 1 - 12 + 1 + 12 + + + + + True + False + 2 + + + True + False + Default selection + True + + + True + Specify hostname or IP address + network-transmit-receive-symbolic + + + + + + + + False + True + 0 + + + + + True + False + True + expand + + + True + False + True + True + Remove + + + + True + False + list-remove-symbolic + + + + + False + True + 0 + + + + + True + True + True + Add + + + + True + False + list-add-symbolic + + + + + False + True + 1 + + + + + False + True + 2 + + + + + 1 + 1 diff --git a/app/ui/settings_dialog.py b/app/ui/settings_dialog.py index ffd86946..685ca4d1 100644 --- a/app/ui/settings_dialog.py +++ b/app/ui/settings_dialog.py @@ -28,6 +28,7 @@ import os import re +from collections import Counter from app.commons import run_task, run_idle, log from app.connections import test_telnet, test_ftp, TestException, test_http, HttpApiException @@ -62,6 +63,10 @@ class SettingsDialog: "on_profile_edited": self.on_profile_edited, "on_profile_selected": self.on_profile_selected, "on_profile_set_default": self.on_profile_set_default, + "on_host_focus_in": self.on_host_focus_in, + "on_host_focus_out": self.on_host_focus_out, + "on_add_host": self.on_add_host, + "on_remove_host": self.on_remove_host, "on_add_picon_path": self.on_add_picon_path, "on_remove_picon_path": self.on_remove_picon_path, "on_lang_changed": self.on_lang_changed, @@ -96,7 +101,10 @@ class SettingsDialog: self._dialog.set_margin_left(0) self._main_stack = builder.get_object("main_stack") # Network. + self._host_iter = None self._host_field = builder.get_object("host_field") + self._hosts_box = builder.get_object("hosts_box") + self._remove_host_button = builder.get_object("remove_host_button") self._port_field = builder.get_object("port_field") self._login_field = builder.get_object("login_field") self._password_field = builder.get_object("password_field") @@ -194,13 +202,13 @@ class SettingsDialog: # Separated due to a bug with response (presumably in the builder) in ubuntu 18.04 and derivatives. builder.get_object("network_settings_frame").add(builder.get_object("network_grid")) # Style. - self._style_provider = Gtk.CssProvider() - self._style_provider.load_from_path(UI_RESOURCES_PATH + "style.css") + style_provider = Gtk.CssProvider() + style_provider.load_from_path(f"{UI_RESOURCES_PATH}style.css") + screen = Gdk.Screen.get_default() self._digit_elems = (self._port_field, self._http_port_field, self._telnet_port_field, self._video_width_field, self._video_bitrate_field, self._video_height_field, self._audio_bitrate_field) - for el in self._digit_elems: - el.get_style_context().add_provider_for_screen(Gdk.Screen.get_default(), self._style_provider, - Gtk.STYLE_PROVIDER_PRIORITY_USER) + [self.init_element_style(el, screen, style_provider) for el in self._digit_elems] + self.init_element_style(self._host_field, screen, style_provider) if IS_GNOME_SESSION: switcher = builder.get_object("main_stack_switcher") @@ -251,6 +259,9 @@ class SettingsDialog: self.on_profile_selected(self._profile_view, False) self._profile_remove_button.set_sensitive(len(self._profile_view.get_model()) > 1) + def init_element_style(self, elem, screen, provider): + elem.get_style_context().add_provider_for_screen(screen, provider, Gtk.STYLE_PROVIDER_PRIORITY_USER) + def update_title(self): title = "{} [{}]" if self._s_type is SettingsType.ENIGMA_2: @@ -295,7 +306,9 @@ class SettingsDialog: def set_settings(self): self._s_type = self._settings.setting_type - self._host_field.set_text(self._settings.host) + self._hosts_box.remove_all() + self._remove_host_button.set_sensitive(len([self._hosts_box.append(h, h) for h in self._settings.hosts]) > 1) + self._hosts_box.set_active_id(self._settings.host) self._port_field.set_text(self._settings.port) self._login_field.set_text(self._settings.user) self._password_field.set_text(self._settings.password) @@ -360,7 +373,8 @@ class SettingsDialog: self._s_type = SettingsType.ENIGMA_2 if self._enigma_radio_button.get_active() else SettingsType.NEUTRINO_MP self._settings.setting_type = self._s_type - self._settings.host = self._host_field.get_text() + self._settings.host = self._hosts_box.get_active_id() + self._settings.hosts = [h[1] for h in self._hosts_box.get_model()] self._settings.port = self._port_field.get_text() self._settings.user = self._login_field.get_text() self._settings.password = self._password_field.get_text() @@ -587,6 +601,42 @@ class SettingsDialog: def on_profile_inserted(self, model, path, itr): self._profile_remove_button.set_sensitive(len(model) > 1) + def on_host_focus_in(self, entry, event): + self._host_iter = self._hosts_box.get_active_iter() + + def on_host_focus_out(self, entry, event=None): + if self._host_iter: + model = self._hosts_box.get_model() + host = entry.get_text() + model.set_value(self._host_iter, 0, host) + model.set_value(self._host_iter, 1, host) + + if Counter(r[0] for r in model).get(host, 0) > 1: + self._host_field.set_name(self._DIGIT_ENTRY_NAME) + self.show_info_message("The host already exists!", Gtk.MessageType.WARNING) + else: + self._host_field.set_name("GtkEntry") + self.on_info_bar_close() + + def on_add_host(self, button): + model = self._hosts_box.get_model() + count = 1 + host = "127.0.0.1" + hosts = {r[0] for r in model} + + while host in hosts: + count += 1 + host = f"127.0.0.{count}" + + self._hosts_box.append(host, host) + self._hosts_box.set_active_id(host) + self._remove_host_button.set_sensitive(len(model) > 1) + + def on_remove_host(self, button): + self._hosts_box.remove(self._hosts_box.get_active()) + self._hosts_box.set_active(0) + self._remove_host_button.set_sensitive(len(self._hosts_box.get_model()) > 1) + def on_add_picon_path(self, button): response = show_dialog(DialogType.INPUT, self._dialog, self._settings.picons_path) if response is Gtk.ResponseType.CANCEL: