mirror of
https://github.com/RYDE-WORK/ballistica.git
synced 2026-02-07 16:13:23 +08:00
Translations and tidying for new favorite servers list
This commit is contained in:
parent
05002fb3d8
commit
5fe1a0a04b
@ -420,7 +420,7 @@
|
|||||||
"assets/build/ba_data/audio/zoeOw.ogg": "https://files.ballistica.net/cache/ba1/a9/71/9286d55c45c37877f3267850f90b",
|
"assets/build/ba_data/audio/zoeOw.ogg": "https://files.ballistica.net/cache/ba1/a9/71/9286d55c45c37877f3267850f90b",
|
||||||
"assets/build/ba_data/audio/zoePickup01.ogg": "https://files.ballistica.net/cache/ba1/2f/09/36e691de67eb8f155449a7170861",
|
"assets/build/ba_data/audio/zoePickup01.ogg": "https://files.ballistica.net/cache/ba1/2f/09/36e691de67eb8f155449a7170861",
|
||||||
"assets/build/ba_data/audio/zoeScream01.ogg": "https://files.ballistica.net/cache/ba1/fd/a8/ad50785ce206e8dc3dcc7358b173",
|
"assets/build/ba_data/audio/zoeScream01.ogg": "https://files.ballistica.net/cache/ba1/fd/a8/ad50785ce206e8dc3dcc7358b173",
|
||||||
"assets/build/ba_data/data/langdata.json": "https://files.ballistica.net/cache/ba1/77/bb/ada7258b8b7c30c2c99e6f485408",
|
"assets/build/ba_data/data/langdata.json": "https://files.ballistica.net/cache/ba1/1d/b8/8a6b3aa09cbb1ec005607fb4c70f",
|
||||||
"assets/build/ba_data/data/languages/arabic.json": "https://files.ballistica.net/cache/ba1/cc/0c/0c8b20a584f607bec508d48c3ffa",
|
"assets/build/ba_data/data/languages/arabic.json": "https://files.ballistica.net/cache/ba1/cc/0c/0c8b20a584f607bec508d48c3ffa",
|
||||||
"assets/build/ba_data/data/languages/belarussian.json": "https://files.ballistica.net/cache/ba1/44/ed/5b972fa848cffb73723533c2ccb7",
|
"assets/build/ba_data/data/languages/belarussian.json": "https://files.ballistica.net/cache/ba1/44/ed/5b972fa848cffb73723533c2ccb7",
|
||||||
"assets/build/ba_data/data/languages/chinese.json": "https://files.ballistica.net/cache/ba1/69/cc/f8bdd1e83162481c6bf2a78cb5e0",
|
"assets/build/ba_data/data/languages/chinese.json": "https://files.ballistica.net/cache/ba1/69/cc/f8bdd1e83162481c6bf2a78cb5e0",
|
||||||
@ -429,11 +429,11 @@
|
|||||||
"assets/build/ba_data/data/languages/czech.json": "https://files.ballistica.net/cache/ba1/ce/de/b0f462205cdf687a875abc6f39bd",
|
"assets/build/ba_data/data/languages/czech.json": "https://files.ballistica.net/cache/ba1/ce/de/b0f462205cdf687a875abc6f39bd",
|
||||||
"assets/build/ba_data/data/languages/danish.json": "https://files.ballistica.net/cache/ba1/3f/46/e4da3c1d2b0ebf916df55c608b28",
|
"assets/build/ba_data/data/languages/danish.json": "https://files.ballistica.net/cache/ba1/3f/46/e4da3c1d2b0ebf916df55c608b28",
|
||||||
"assets/build/ba_data/data/languages/dutch.json": "https://files.ballistica.net/cache/ba1/d1/07/37b7adc3dbec7328d26c5325f212",
|
"assets/build/ba_data/data/languages/dutch.json": "https://files.ballistica.net/cache/ba1/d1/07/37b7adc3dbec7328d26c5325f212",
|
||||||
"assets/build/ba_data/data/languages/english.json": "https://files.ballistica.net/cache/ba1/3b/0d/eb66b073295cacde00e5d054dbae",
|
"assets/build/ba_data/data/languages/english.json": "https://files.ballistica.net/cache/ba1/3f/ee/72767c1e922d3f2cf668147ef143",
|
||||||
"assets/build/ba_data/data/languages/esperanto.json": "https://files.ballistica.net/cache/ba1/6e/fd/685a4e1da031474d47a1d9eb2731",
|
"assets/build/ba_data/data/languages/esperanto.json": "https://files.ballistica.net/cache/ba1/6e/fd/685a4e1da031474d47a1d9eb2731",
|
||||||
"assets/build/ba_data/data/languages/french.json": "https://files.ballistica.net/cache/ba1/18/b2/9c1f6e3ca6e18d6a6fdbdb14e224",
|
"assets/build/ba_data/data/languages/french.json": "https://files.ballistica.net/cache/ba1/18/b2/9c1f6e3ca6e18d6a6fdbdb14e224",
|
||||||
"assets/build/ba_data/data/languages/german.json": "https://files.ballistica.net/cache/ba1/19/ba/b12493cfaa28d27f9bfee0459e20",
|
"assets/build/ba_data/data/languages/german.json": "https://files.ballistica.net/cache/ba1/19/ba/b12493cfaa28d27f9bfee0459e20",
|
||||||
"assets/build/ba_data/data/languages/gibberish.json": "https://files.ballistica.net/cache/ba1/93/31/66df9784a606600b7933bcb8ffa1",
|
"assets/build/ba_data/data/languages/gibberish.json": "https://files.ballistica.net/cache/ba1/82/9f/bdcff3ac022c125a7232a412568e",
|
||||||
"assets/build/ba_data/data/languages/greek.json": "https://files.ballistica.net/cache/ba1/51/31/64479524c0ee990b3e97ffdca068",
|
"assets/build/ba_data/data/languages/greek.json": "https://files.ballistica.net/cache/ba1/51/31/64479524c0ee990b3e97ffdca068",
|
||||||
"assets/build/ba_data/data/languages/hindi.json": "https://files.ballistica.net/cache/ba1/ed/98/37d9457755f7e86e2f2875e3b055",
|
"assets/build/ba_data/data/languages/hindi.json": "https://files.ballistica.net/cache/ba1/ed/98/37d9457755f7e86e2f2875e3b055",
|
||||||
"assets/build/ba_data/data/languages/hungarian.json": "https://files.ballistica.net/cache/ba1/87/2d/027aa239eb66ea8f496562f4fd83",
|
"assets/build/ba_data/data/languages/hungarian.json": "https://files.ballistica.net/cache/ba1/87/2d/027aa239eb66ea8f496562f4fd83",
|
||||||
@ -447,7 +447,7 @@
|
|||||||
"assets/build/ba_data/data/languages/russian.json": "https://files.ballistica.net/cache/ba1/38/0e/808588bf5140deae5107b61f1df7",
|
"assets/build/ba_data/data/languages/russian.json": "https://files.ballistica.net/cache/ba1/38/0e/808588bf5140deae5107b61f1df7",
|
||||||
"assets/build/ba_data/data/languages/serbian.json": "https://files.ballistica.net/cache/ba1/05/5b/910b8963f48cd494dc01d5a18a5c",
|
"assets/build/ba_data/data/languages/serbian.json": "https://files.ballistica.net/cache/ba1/05/5b/910b8963f48cd494dc01d5a18a5c",
|
||||||
"assets/build/ba_data/data/languages/slovak.json": "https://files.ballistica.net/cache/ba1/b7/0a/fab820b96e7aa587ee56427ecdc2",
|
"assets/build/ba_data/data/languages/slovak.json": "https://files.ballistica.net/cache/ba1/b7/0a/fab820b96e7aa587ee56427ecdc2",
|
||||||
"assets/build/ba_data/data/languages/spanish.json": "https://files.ballistica.net/cache/ba1/67/7b/e4c6c03f889b6e1bcf39345fa197",
|
"assets/build/ba_data/data/languages/spanish.json": "https://files.ballistica.net/cache/ba1/64/f2/0dff1a6c21fb71ba51c9011f1413",
|
||||||
"assets/build/ba_data/data/languages/swedish.json": "https://files.ballistica.net/cache/ba1/50/9f/be006ba19be6a69a57837eb6dca0",
|
"assets/build/ba_data/data/languages/swedish.json": "https://files.ballistica.net/cache/ba1/50/9f/be006ba19be6a69a57837eb6dca0",
|
||||||
"assets/build/ba_data/data/languages/turkish.json": "https://files.ballistica.net/cache/ba1/19/fe/c97df315575d999ad2bb63478b5f",
|
"assets/build/ba_data/data/languages/turkish.json": "https://files.ballistica.net/cache/ba1/19/fe/c97df315575d999ad2bb63478b5f",
|
||||||
"assets/build/ba_data/data/languages/ukrainian.json": "https://files.ballistica.net/cache/ba1/66/b0/e1d71e57673a6fc78e0ea181b76b",
|
"assets/build/ba_data/data/languages/ukrainian.json": "https://files.ballistica.net/cache/ba1/66/b0/e1d71e57673a6fc78e0ea181b76b",
|
||||||
|
|||||||
2
.idea/dictionaries/ericf.xml
generated
2
.idea/dictionaries/ericf.xml
generated
@ -1108,6 +1108,7 @@
|
|||||||
<w>langs</w>
|
<w>langs</w>
|
||||||
<w>langtarget</w>
|
<w>langtarget</w>
|
||||||
<w>langval</w>
|
<w>langval</w>
|
||||||
|
<w>larmbeast</w>
|
||||||
<w>lasthash</w>
|
<w>lasthash</w>
|
||||||
<w>lastline</w>
|
<w>lastline</w>
|
||||||
<w>lastplayer</w>
|
<w>lastplayer</w>
|
||||||
@ -1912,6 +1913,7 @@
|
|||||||
<w>smag</w>
|
<w>smag</w>
|
||||||
<w>smallscale</w>
|
<w>smallscale</w>
|
||||||
<w>smlh</w>
|
<w>smlh</w>
|
||||||
|
<w>smoothy</w>
|
||||||
<w>smtpd</w>
|
<w>smtpd</w>
|
||||||
<w>smtplib</w>
|
<w>smtplib</w>
|
||||||
<w>smush</w>
|
<w>smush</w>
|
||||||
|
|||||||
@ -116,12 +116,12 @@ class GatherWindow(ba.Window):
|
|||||||
]
|
]
|
||||||
if _ba.get_account_misc_read_val('enablePublicParties', True):
|
if _ba.get_account_misc_read_val('enablePublicParties', True):
|
||||||
tabdefs.append((self.TabID.INTERNET,
|
tabdefs.append((self.TabID.INTERNET,
|
||||||
ba.Lstr(resource=self._r + '.internetText')))
|
ba.Lstr(resource=self._r + '.publicText')))
|
||||||
if platform == 'android' and subplatform == 'google':
|
if platform == 'android' and subplatform == 'google':
|
||||||
tabdefs.append((self.TabID.GOOGLE_PLAY,
|
tabdefs.append((self.TabID.GOOGLE_PLAY,
|
||||||
ba.Lstr(resource=self._r + '.googlePlayText')))
|
ba.Lstr(resource=self._r + '.googlePlayText')))
|
||||||
tabdefs.append((self.TabID.LOCAL_NETWORK,
|
tabdefs.append((self.TabID.LOCAL_NETWORK,
|
||||||
ba.Lstr(resource=self._r + '.localNetworkText')))
|
ba.Lstr(resource=self._r + '.nearbyText')))
|
||||||
tabdefs.append(
|
tabdefs.append(
|
||||||
(self.TabID.MANUAL, ba.Lstr(resource=self._r + '.manualText')))
|
(self.TabID.MANUAL, ba.Lstr(resource=self._r + '.manualText')))
|
||||||
|
|
||||||
|
|||||||
@ -51,14 +51,14 @@ class _HostLookupThread(threading.Thread):
|
|||||||
|
|
||||||
class SubTabType(Enum):
|
class SubTabType(Enum):
|
||||||
"""Available sub-tabs."""
|
"""Available sub-tabs."""
|
||||||
NEW = 'new'
|
JOIN_BY_ADDRESS = 'join_by_address'
|
||||||
SAVED = 'saved'
|
FAVORITES = 'favorites'
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class State:
|
class State:
|
||||||
"""State saved/restored only while the app is running."""
|
"""State saved/restored only while the app is running."""
|
||||||
sub_tab: SubTabType = SubTabType.NEW
|
sub_tab: SubTabType = SubTabType.JOIN_BY_ADDRESS
|
||||||
|
|
||||||
|
|
||||||
class ManualGatherTab(GatherTab):
|
class ManualGatherTab(GatherTab):
|
||||||
@ -69,26 +69,26 @@ class ManualGatherTab(GatherTab):
|
|||||||
self._check_button: Optional[ba.Widget] = None
|
self._check_button: Optional[ba.Widget] = None
|
||||||
self._doing_access_check: Optional[bool] = None
|
self._doing_access_check: Optional[bool] = None
|
||||||
self._access_check_count: Optional[int] = None
|
self._access_check_count: Optional[int] = None
|
||||||
self._sub_tab: SubTabType = SubTabType.NEW
|
self._sub_tab: SubTabType = SubTabType.JOIN_BY_ADDRESS
|
||||||
self._t_addr: Optional[ba.Widget] = None
|
self._t_addr: Optional[ba.Widget] = None
|
||||||
self._t_accessible: Optional[ba.Widget] = None
|
self._t_accessible: Optional[ba.Widget] = None
|
||||||
self._t_accessible_extra: Optional[ba.Widget] = None
|
self._t_accessible_extra: Optional[ba.Widget] = None
|
||||||
self._access_check_timer: Optional[ba.Timer] = None
|
self._access_check_timer: Optional[ba.Timer] = None
|
||||||
self._checking_state_text: Optional[ba.Widget] = None
|
self._checking_state_text: Optional[ba.Widget] = None
|
||||||
self._container: Optional[ba.Widget] = None
|
self._container: Optional[ba.Widget] = None
|
||||||
self._join_new_party_text: Optional[ba.Widget] = None
|
self._join_by_address_text: Optional[ba.Widget] = None
|
||||||
self._join_saved_party_text: Optional[ba.Widget] = None
|
self._favorites_text: Optional[ba.Widget] = None
|
||||||
self._width: Optional[int] = None
|
self._width: Optional[int] = None
|
||||||
self._height: Optional[int] = None
|
self._height: Optional[int] = None
|
||||||
self._scroll_width: Optional[int] = None
|
self._scroll_width: Optional[int] = None
|
||||||
self._scroll_height: Optional[int] = None
|
self._scroll_height: Optional[int] = None
|
||||||
self._my_parties_scroll_width: Optional[int] = None
|
self._favorites_scroll_width: Optional[int] = None
|
||||||
self._my_saved_party_connect_button: Optional[ba.Widget] = None
|
self._favorites_connect_button: Optional[ba.Widget] = None
|
||||||
self._scrollwidget: Optional[ba.Widget] = None
|
self._scrollwidget: Optional[ba.Widget] = None
|
||||||
self._columnwidget: Optional[ba.Widget] = None
|
self._columnwidget: Optional[ba.Widget] = None
|
||||||
self._my_saved_party_selected: Optional[str] = None
|
self._favorite_selected: Optional[str] = None
|
||||||
self._my_saved_party_rename_window: Optional[ba.Widget] = None
|
self._favorite_rename_window: Optional[ba.Widget] = None
|
||||||
self._my_party_rename_text: Optional[ba.Widget] = None
|
self._party_rename_text: Optional[ba.Widget] = None
|
||||||
|
|
||||||
def on_activate(
|
def on_activate(
|
||||||
self,
|
self,
|
||||||
@ -111,51 +111,51 @@ class ManualGatherTab(GatherTab):
|
|||||||
background=False,
|
background=False,
|
||||||
selection_loops_to_parent=True)
|
selection_loops_to_parent=True)
|
||||||
v = c_height - 30
|
v = c_height - 30
|
||||||
self._join_new_party_text = ba.textwidget(
|
self._join_by_address_text = ba.textwidget(
|
||||||
parent=self._container,
|
parent=self._container,
|
||||||
position=(c_width * 0.5 - 245, v - 13),
|
position=(c_width * 0.5 - 245, v - 13),
|
||||||
color=(0.6, 1.0, 0.6),
|
color=(0.6, 1.0, 0.6),
|
||||||
scale=1.3,
|
scale=1.3,
|
||||||
size=(200, 30),
|
size=(200, 30),
|
||||||
maxwidth=250,
|
maxwidth=250,
|
||||||
h_align='left',
|
h_align='center',
|
||||||
v_align='center',
|
v_align='center',
|
||||||
click_activate=True,
|
click_activate=True,
|
||||||
selectable=True,
|
selectable=True,
|
||||||
autoselect=True,
|
autoselect=True,
|
||||||
on_activate_call=lambda: self._set_sub_tab(
|
on_activate_call=lambda: self._set_sub_tab(
|
||||||
SubTabType.NEW,
|
SubTabType.JOIN_BY_ADDRESS,
|
||||||
region_width,
|
region_width,
|
||||||
region_height,
|
region_height,
|
||||||
playsound=True,
|
playsound=True,
|
||||||
),
|
),
|
||||||
text='Join By Address')
|
text=ba.Lstr(resource='gatherWindow.manualJoinSectionText'))
|
||||||
self._join_saved_party_text = ba.textwidget(
|
self._favorites_text = ba.textwidget(
|
||||||
parent=self._container,
|
parent=self._container,
|
||||||
position=(c_width * 0.5 + 45, v - 13),
|
position=(c_width * 0.5 + 45, v - 13),
|
||||||
color=(0.6, 1.0, 0.6),
|
color=(0.6, 1.0, 0.6),
|
||||||
scale=1.3,
|
scale=1.3,
|
||||||
size=(200, 30),
|
size=(200, 30),
|
||||||
maxwidth=250,
|
maxwidth=250,
|
||||||
h_align='left',
|
h_align='center',
|
||||||
v_align='center',
|
v_align='center',
|
||||||
click_activate=True,
|
click_activate=True,
|
||||||
selectable=True,
|
selectable=True,
|
||||||
autoselect=True,
|
autoselect=True,
|
||||||
on_activate_call=lambda: self._set_sub_tab(
|
on_activate_call=lambda: self._set_sub_tab(
|
||||||
SubTabType.SAVED,
|
SubTabType.FAVORITES,
|
||||||
region_width,
|
region_width,
|
||||||
region_height,
|
region_height,
|
||||||
playsound=True,
|
playsound=True,
|
||||||
),
|
),
|
||||||
text='Join Saved Party')
|
text=ba.Lstr(resource='gatherWindow.favoritesText'))
|
||||||
ba.widget(edit=self._join_new_party_text, up_widget=tab_button)
|
ba.widget(edit=self._join_by_address_text, up_widget=tab_button)
|
||||||
ba.widget(edit=self._join_saved_party_text,
|
ba.widget(edit=self._favorites_text,
|
||||||
left_widget=self._join_new_party_text,
|
left_widget=self._join_by_address_text,
|
||||||
up_widget=tab_button)
|
up_widget=tab_button)
|
||||||
ba.widget(edit=tab_button, down_widget=self._join_saved_party_text)
|
ba.widget(edit=tab_button, down_widget=self._favorites_text)
|
||||||
ba.widget(edit=self._join_new_party_text,
|
ba.widget(edit=self._join_by_address_text,
|
||||||
right_widget=self._join_saved_party_text)
|
right_widget=self._favorites_text)
|
||||||
self._set_sub_tab(self._sub_tab, region_width, region_height)
|
self._set_sub_tab(self._sub_tab, region_width, region_height)
|
||||||
|
|
||||||
return self._container
|
return self._container
|
||||||
@ -183,29 +183,29 @@ class ManualGatherTab(GatherTab):
|
|||||||
self._sub_tab = value
|
self._sub_tab = value
|
||||||
active_color = (0.6, 1.0, 0.6)
|
active_color = (0.6, 1.0, 0.6)
|
||||||
inactive_color = (0.5, 0.4, 0.5)
|
inactive_color = (0.5, 0.4, 0.5)
|
||||||
ba.textwidget(
|
ba.textwidget(edit=self._join_by_address_text,
|
||||||
edit=self._join_new_party_text,
|
color=active_color if value is SubTabType.JOIN_BY_ADDRESS
|
||||||
color=active_color if value is SubTabType.NEW else inactive_color)
|
else inactive_color)
|
||||||
ba.textwidget(edit=self._join_saved_party_text,
|
ba.textwidget(edit=self._favorites_text,
|
||||||
color=active_color
|
color=active_color
|
||||||
if value is SubTabType.SAVED else inactive_color)
|
if value is SubTabType.FAVORITES else inactive_color)
|
||||||
|
|
||||||
# Clear anything existing in the old sub-tab.
|
# Clear anything existing in the old sub-tab.
|
||||||
for widget in self._container.get_children():
|
for widget in self._container.get_children():
|
||||||
if widget and widget not in {
|
if widget and widget not in {
|
||||||
self._join_saved_party_text, self._join_new_party_text
|
self._favorites_text, self._join_by_address_text
|
||||||
}:
|
}:
|
||||||
widget.delete()
|
widget.delete()
|
||||||
|
|
||||||
if value is SubTabType.NEW:
|
if value is SubTabType.JOIN_BY_ADDRESS:
|
||||||
self._build_new_party_tab(region_width, region_height)
|
self._build_join_by_address_tab(region_width, region_height)
|
||||||
|
|
||||||
if value is SubTabType.SAVED:
|
if value is SubTabType.FAVORITES:
|
||||||
self._build_saved_party_tab(region_height)
|
self._build_favorites_tab(region_height)
|
||||||
|
|
||||||
# The old manual tab
|
# The old manual tab
|
||||||
def _build_new_party_tab(self, region_width: float,
|
def _build_join_by_address_tab(self, region_width: float,
|
||||||
region_height: float) -> None:
|
region_height: float) -> None:
|
||||||
c_width = region_width
|
c_width = region_width
|
||||||
c_height = region_height - 20
|
c_height = region_height - 20
|
||||||
last_addr = ba.app.config.get('Last Manual Party Connect Address', '')
|
last_addr = ba.app.config.get('Last Manual Party Connect Address', '')
|
||||||
@ -231,8 +231,8 @@ class ManualGatherTab(GatherTab):
|
|||||||
v_align='center',
|
v_align='center',
|
||||||
scale=1.0,
|
scale=1.0,
|
||||||
size=(420, 60))
|
size=(420, 60))
|
||||||
ba.widget(edit=self._join_new_party_text, down_widget=txt)
|
ba.widget(edit=self._join_by_address_text, down_widget=txt)
|
||||||
ba.widget(edit=self._join_saved_party_text, down_widget=txt)
|
ba.widget(edit=self._favorites_text, down_widget=txt)
|
||||||
ba.textwidget(parent=self._container,
|
ba.textwidget(parent=self._container,
|
||||||
position=(c_width * 0.5 - 260 + 490, v),
|
position=(c_width * 0.5 - 260 + 490, v),
|
||||||
color=(0.6, 1.0, 0.6),
|
color=(0.6, 1.0, 0.6),
|
||||||
@ -268,7 +268,7 @@ class ManualGatherTab(GatherTab):
|
|||||||
savebutton = ba.buttonwidget(
|
savebutton = ba.buttonwidget(
|
||||||
parent=self._container,
|
parent=self._container,
|
||||||
size=(300, 70),
|
size=(300, 70),
|
||||||
label='Save',
|
label=ba.Lstr(resource='gatherWindow.favoritesSaveText'),
|
||||||
position=(c_width * 0.5 - 240 + 490 - 200, v),
|
position=(c_width * 0.5 - 240 + 490 - 200, v),
|
||||||
autoselect=True,
|
autoselect=True,
|
||||||
on_activate_call=ba.Call(self._save_server, txt, txt2))
|
on_activate_call=ba.Call(self._save_server, txt, txt2))
|
||||||
@ -295,8 +295,8 @@ class ManualGatherTab(GatherTab):
|
|||||||
self._container, c_width))
|
self._container, c_width))
|
||||||
ba.widget(edit=self._check_button, up_widget=btn)
|
ba.widget(edit=self._check_button, up_widget=btn)
|
||||||
|
|
||||||
# Tab containing saved parties
|
# Tab containing saved favorite addresses
|
||||||
def _build_saved_party_tab(self, region_height: float) -> None:
|
def _build_favorites_tab(self, region_height: float) -> None:
|
||||||
|
|
||||||
c_height = region_height - 20
|
c_height = region_height - 20
|
||||||
v = c_height - 35 - 25 - 30
|
v = c_height - 35 - 25 - 30
|
||||||
@ -313,7 +313,7 @@ class ManualGatherTab(GatherTab):
|
|||||||
|
|
||||||
c_height = self._scroll_height - 20
|
c_height = self._scroll_height - 20
|
||||||
sub_scroll_height = c_height - 63
|
sub_scroll_height = c_height - 63
|
||||||
self._my_parties_scroll_width = sub_scroll_width = (
|
self._favorites_scroll_width = sub_scroll_width = (
|
||||||
680 if uiscale is ba.UIScale.SMALL else 640)
|
680 if uiscale is ba.UIScale.SMALL else 640)
|
||||||
|
|
||||||
v = c_height - 30
|
v = c_height - 30
|
||||||
@ -328,16 +328,16 @@ class ManualGatherTab(GatherTab):
|
|||||||
45 if uiscale is ba.UIScale.MEDIUM else 40) -
|
45 if uiscale is ba.UIScale.MEDIUM else 40) -
|
||||||
b_height)
|
b_height)
|
||||||
|
|
||||||
self._my_saved_party_connect_button = btn1 = ba.buttonwidget(
|
self._favorites_connect_button = btn1 = ba.buttonwidget(
|
||||||
parent=self._container,
|
parent=self._container,
|
||||||
size=(b_width, b_height),
|
size=(b_width, b_height),
|
||||||
position=(40 if uiscale is ba.UIScale.SMALL else 40, btnv),
|
position=(40 if uiscale is ba.UIScale.SMALL else 40, btnv),
|
||||||
button_type='square',
|
button_type='square',
|
||||||
color=(0.6, 0.53, 0.63),
|
color=(0.6, 0.53, 0.63),
|
||||||
textcolor=(0.75, 0.7, 0.8),
|
textcolor=(0.75, 0.7, 0.8),
|
||||||
on_activate_call=self._on_my_saved_party_press,
|
on_activate_call=self._on_favorites_connect_press,
|
||||||
text_scale=1.0 if uiscale is ba.UIScale.SMALL else 1.2,
|
text_scale=1.0 if uiscale is ba.UIScale.SMALL else 1.2,
|
||||||
label='Connect',
|
label=ba.Lstr(resource='gatherWindow.manualConnectText'),
|
||||||
autoselect=True)
|
autoselect=True)
|
||||||
if uiscale is ba.UIScale.SMALL and ba.app.ui.use_toolbars:
|
if uiscale is ba.UIScale.SMALL and ba.app.ui.use_toolbars:
|
||||||
ba.widget(edit=btn1,
|
ba.widget(edit=btn1,
|
||||||
@ -350,9 +350,9 @@ class ManualGatherTab(GatherTab):
|
|||||||
button_type='square',
|
button_type='square',
|
||||||
color=(0.6, 0.53, 0.63),
|
color=(0.6, 0.53, 0.63),
|
||||||
textcolor=(0.75, 0.7, 0.8),
|
textcolor=(0.75, 0.7, 0.8),
|
||||||
on_activate_call=self._on_my_saved_party_rename_press,
|
on_activate_call=self._on_favorites_rename_press,
|
||||||
text_scale=1.0 if uiscale is ba.UIScale.SMALL else 1.2,
|
text_scale=1.0 if uiscale is ba.UIScale.SMALL else 1.2,
|
||||||
label='Rename',
|
label=ba.Lstr(resource='renameText'),
|
||||||
autoselect=True)
|
autoselect=True)
|
||||||
btnv -= b_height + b_space_extra
|
btnv -= b_height + b_space_extra
|
||||||
ba.buttonwidget(parent=self._container,
|
ba.buttonwidget(parent=self._container,
|
||||||
@ -362,9 +362,9 @@ class ManualGatherTab(GatherTab):
|
|||||||
button_type='square',
|
button_type='square',
|
||||||
color=(0.6, 0.53, 0.63),
|
color=(0.6, 0.53, 0.63),
|
||||||
textcolor=(0.75, 0.7, 0.8),
|
textcolor=(0.75, 0.7, 0.8),
|
||||||
on_activate_call=self._on_my_saved_party_delete_press,
|
on_activate_call=self._on_favorite_delete_press,
|
||||||
text_scale=1.0 if uiscale is ba.UIScale.SMALL else 1.2,
|
text_scale=1.0 if uiscale is ba.UIScale.SMALL else 1.2,
|
||||||
label='Delete',
|
label=ba.Lstr(resource='deleteText'),
|
||||||
autoselect=True)
|
autoselect=True)
|
||||||
|
|
||||||
v -= sub_scroll_height + 23
|
v -= sub_scroll_height + 23
|
||||||
@ -373,44 +373,42 @@ class ManualGatherTab(GatherTab):
|
|||||||
position=(190 if uiscale is ba.UIScale.SMALL else 225, v),
|
position=(190 if uiscale is ba.UIScale.SMALL else 225, v),
|
||||||
size=(sub_scroll_width, sub_scroll_height),
|
size=(sub_scroll_width, sub_scroll_height),
|
||||||
claims_left_right=True)
|
claims_left_right=True)
|
||||||
ba.widget(edit=self._my_saved_party_connect_button,
|
ba.widget(edit=self._favorites_connect_button,
|
||||||
right_widget=self._scrollwidget)
|
right_widget=self._scrollwidget)
|
||||||
ba.containerwidget(edit=self._container, selected_child=scrlw)
|
|
||||||
self._columnwidget = ba.columnwidget(parent=scrlw,
|
self._columnwidget = ba.columnwidget(parent=scrlw,
|
||||||
left_border=10,
|
left_border=10,
|
||||||
border=2,
|
border=2,
|
||||||
margin=0,
|
margin=0,
|
||||||
claims_left_right=True)
|
claims_left_right=True)
|
||||||
|
|
||||||
self._my_saved_party_selected = None
|
self._favorite_selected = None
|
||||||
self._refresh_my_saved_parties()
|
self._refresh_favorites()
|
||||||
|
|
||||||
def _no_saved_party_selected_error(self) -> None:
|
def _no_favorite_selected_error(self) -> None:
|
||||||
ba.screenmessage(ba.Lstr(resource='nothingIsSelectedErrorText'),
|
ba.screenmessage(ba.Lstr(resource='nothingIsSelectedErrorText'),
|
||||||
color=(1, 0, 0))
|
color=(1, 0, 0))
|
||||||
ba.playsound(ba.getsound('error'))
|
ba.playsound(ba.getsound('error'))
|
||||||
|
|
||||||
def _on_my_saved_party_press(self) -> None:
|
def _on_favorites_connect_press(self) -> None:
|
||||||
if self._my_saved_party_selected is None:
|
if self._favorite_selected is None:
|
||||||
self._no_saved_party_selected_error()
|
self._no_favorite_selected_error()
|
||||||
|
|
||||||
else:
|
else:
|
||||||
config = ba.app.config['Saved Servers'][
|
config = ba.app.config['Saved Servers'][self._favorite_selected]
|
||||||
self._my_saved_party_selected]
|
|
||||||
_HostLookupThread(name=config['addr'],
|
_HostLookupThread(name=config['addr'],
|
||||||
port=config['port'],
|
port=config['port'],
|
||||||
call=ba.WeakCall(
|
call=ba.WeakCall(
|
||||||
self._host_lookup_result)).start()
|
self._host_lookup_result)).start()
|
||||||
|
|
||||||
def _on_my_saved_party_rename_press(self) -> None:
|
def _on_favorites_rename_press(self) -> None:
|
||||||
if self._my_saved_party_selected is None:
|
if self._favorite_selected is None:
|
||||||
self._no_saved_party_selected_error()
|
self._no_favorite_selected_error()
|
||||||
return
|
return
|
||||||
|
|
||||||
c_width = 600
|
c_width = 600
|
||||||
c_height = 250
|
c_height = 250
|
||||||
uiscale = ba.app.ui.uiscale
|
uiscale = ba.app.ui.uiscale
|
||||||
self._my_saved_party_rename_window = cnt = ba.containerwidget(
|
self._favorite_rename_window = cnt = ba.containerwidget(
|
||||||
scale=(1.8 if uiscale is ba.UIScale.SMALL else
|
scale=(1.8 if uiscale is ba.UIScale.SMALL else
|
||||||
1.55 if uiscale is ba.UIScale.MEDIUM else 1.0),
|
1.55 if uiscale is ba.UIScale.MEDIUM else 1.0),
|
||||||
size=(c_width, c_height),
|
size=(c_width, c_height),
|
||||||
@ -423,13 +421,13 @@ class ManualGatherTab(GatherTab):
|
|||||||
text='Enter Name of Party',
|
text='Enter Name of Party',
|
||||||
maxwidth=c_width * 0.8,
|
maxwidth=c_width * 0.8,
|
||||||
position=(c_width * 0.5, c_height - 60))
|
position=(c_width * 0.5, c_height - 60))
|
||||||
self._my_party_rename_text = txt = ba.textwidget(
|
self._party_rename_text = txt = ba.textwidget(
|
||||||
parent=cnt,
|
parent=cnt,
|
||||||
size=(c_width * 0.8, 40),
|
size=(c_width * 0.8, 40),
|
||||||
h_align='left',
|
h_align='left',
|
||||||
v_align='center',
|
v_align='center',
|
||||||
text=ba.app.config['Saved Servers'][
|
text=ba.app.config['Saved Servers'][
|
||||||
self._my_saved_party_selected]['name'],
|
self._favorite_selected]['name'],
|
||||||
editable=True,
|
editable=True,
|
||||||
description='Server name text',
|
description='Server name text',
|
||||||
position=(c_width * 0.1, c_height - 140),
|
position=(c_width * 0.1, c_height - 140),
|
||||||
@ -459,49 +457,47 @@ class ManualGatherTab(GatherTab):
|
|||||||
|
|
||||||
def _rename_saved_party(self) -> None:
|
def _rename_saved_party(self) -> None:
|
||||||
|
|
||||||
server = self._my_saved_party_selected
|
server = self._favorite_selected
|
||||||
if self._my_saved_party_selected is None:
|
if self._favorite_selected is None:
|
||||||
self._no_saved_party_selected_error()
|
self._no_favorite_selected_error()
|
||||||
return
|
return
|
||||||
if not self._my_party_rename_text:
|
if not self._party_rename_text:
|
||||||
return
|
return
|
||||||
new_name_raw = cast(str,
|
new_name_raw = cast(str, ba.textwidget(query=self._party_rename_text))
|
||||||
ba.textwidget(query=self._my_party_rename_text))
|
|
||||||
ba.app.config['Saved Servers'][server]['name'] = new_name_raw
|
ba.app.config['Saved Servers'][server]['name'] = new_name_raw
|
||||||
ba.app.config.commit()
|
ba.app.config.commit()
|
||||||
ba.screenmessage('Renamed Successfully', color=(0, 1, 0))
|
|
||||||
ba.playsound(ba.getsound('gunCocking'))
|
ba.playsound(ba.getsound('gunCocking'))
|
||||||
self._refresh_my_saved_parties()
|
self._refresh_favorites()
|
||||||
|
|
||||||
ba.containerwidget(edit=self._my_saved_party_rename_window,
|
ba.containerwidget(edit=self._favorite_rename_window,
|
||||||
transition='out_scale')
|
transition='out_scale')
|
||||||
|
|
||||||
def _on_my_saved_party_delete_press(self) -> None:
|
def _on_favorite_delete_press(self) -> None:
|
||||||
from bastd.ui import confirm
|
from bastd.ui import confirm
|
||||||
if self._my_saved_party_selected is None:
|
if self._favorite_selected is None:
|
||||||
self._no_saved_party_selected_error()
|
self._no_favorite_selected_error()
|
||||||
return
|
return
|
||||||
confirm.ConfirmWindow(
|
confirm.ConfirmWindow(
|
||||||
ba.Lstr(resource='gameListWindow.deleteConfirmText',
|
ba.Lstr(resource='gameListWindow.deleteConfirmText',
|
||||||
subs=[('${LIST}', ba.app.config['Saved Servers'][
|
subs=[('${LIST}', ba.app.config['Saved Servers'][
|
||||||
self._my_saved_party_selected]['name'])]),
|
self._favorite_selected]['name'])]),
|
||||||
self._delete_saved_party, 450, 150)
|
self._delete_saved_party, 450, 150)
|
||||||
|
|
||||||
def _delete_saved_party(self) -> None:
|
def _delete_saved_party(self) -> None:
|
||||||
if self._my_saved_party_selected is None:
|
if self._favorite_selected is None:
|
||||||
self._no_saved_party_selected_error()
|
self._no_favorite_selected_error()
|
||||||
return
|
return
|
||||||
config = ba.app.config['Saved Servers']
|
config = ba.app.config['Saved Servers']
|
||||||
del config[self._my_saved_party_selected]
|
del config[self._favorite_selected]
|
||||||
self._my_saved_party_selected = None
|
self._favorite_selected = None
|
||||||
ba.app.config.commit()
|
ba.app.config.commit()
|
||||||
ba.playsound(ba.getsound('shieldDown'))
|
ba.playsound(ba.getsound('shieldDown'))
|
||||||
self._refresh_my_saved_parties()
|
self._refresh_favorites()
|
||||||
|
|
||||||
def _on_my_saved_party_select(self, server: str) -> None:
|
def _on_favorite_select(self, server: str) -> None:
|
||||||
self._my_saved_party_selected = server
|
self._favorite_selected = server
|
||||||
|
|
||||||
def _refresh_my_saved_parties(self) -> None:
|
def _refresh_favorites(self) -> None:
|
||||||
assert self._columnwidget is not None
|
assert self._columnwidget is not None
|
||||||
for child in self._columnwidget.get_children():
|
for child in self._columnwidget.get_children():
|
||||||
child.delete()
|
child.delete()
|
||||||
@ -514,17 +510,17 @@ class ManualGatherTab(GatherTab):
|
|||||||
else:
|
else:
|
||||||
servers = []
|
servers = []
|
||||||
|
|
||||||
assert self._my_parties_scroll_width is not None
|
assert self._favorites_scroll_width is not None
|
||||||
assert self._my_saved_party_connect_button is not None
|
assert self._favorites_connect_button is not None
|
||||||
for i, server in enumerate(servers):
|
for i, server in enumerate(servers):
|
||||||
txt = ba.textwidget(
|
txt = ba.textwidget(
|
||||||
parent=self._columnwidget,
|
parent=self._columnwidget,
|
||||||
size=(self._my_parties_scroll_width / t_scale, 30),
|
size=(self._favorites_scroll_width / t_scale, 30),
|
||||||
selectable=True,
|
selectable=True,
|
||||||
color=(1.0, 1, 0.4),
|
color=(1.0, 1, 0.4),
|
||||||
always_highlight=True,
|
always_highlight=True,
|
||||||
on_select_call=ba.Call(self._on_my_saved_party_select, server),
|
on_select_call=ba.Call(self._on_favorite_select, server),
|
||||||
on_activate_call=self._my_saved_party_connect_button.activate,
|
on_activate_call=self._favorites_connect_button.activate,
|
||||||
text=(config['Saved Servers'][server]['name']
|
text=(config['Saved Servers'][server]['name']
|
||||||
if config['Saved Servers'][server]['name'] != '' else
|
if config['Saved Servers'][server]['name'] != '' else
|
||||||
config['Saved Servers'][server]['addr'] + ' ' +
|
config['Saved Servers'][server]['addr'] + ' ' +
|
||||||
@ -532,16 +528,20 @@ class ManualGatherTab(GatherTab):
|
|||||||
h_align='left',
|
h_align='left',
|
||||||
v_align='center',
|
v_align='center',
|
||||||
corner_scale=t_scale,
|
corner_scale=t_scale,
|
||||||
maxwidth=(self._my_parties_scroll_width / t_scale) * 0.93)
|
maxwidth=(self._favorites_scroll_width / t_scale) * 0.93)
|
||||||
if i == 0:
|
if i == 0:
|
||||||
ba.widget(edit=txt, up_widget=self._join_saved_party_text)
|
ba.widget(edit=txt, up_widget=self._favorites_text)
|
||||||
ba.widget(edit=txt,
|
ba.widget(edit=txt,
|
||||||
left_widget=self._my_saved_party_connect_button,
|
left_widget=self._favorites_connect_button,
|
||||||
right_widget=txt)
|
right_widget=txt)
|
||||||
|
|
||||||
# If there's no servers, allow selecting out of the scroll area
|
# If there's no servers, allow selecting out of the scroll area
|
||||||
ba.containerwidget(edit=self._scrollwidget,
|
ba.containerwidget(edit=self._scrollwidget,
|
||||||
claims_left_right=bool(servers))
|
claims_left_right=bool(servers),
|
||||||
|
claims_up_down=bool(servers))
|
||||||
|
ba.widget(edit=self._scrollwidget,
|
||||||
|
up_widget=self._favorites_text,
|
||||||
|
left_widget=self._favorites_connect_button)
|
||||||
|
|
||||||
def on_deactivate(self) -> None:
|
def on_deactivate(self) -> None:
|
||||||
self._access_check_timer = None
|
self._access_check_timer = None
|
||||||
@ -598,7 +598,6 @@ class ManualGatherTab(GatherTab):
|
|||||||
'name': addr
|
'name': addr
|
||||||
}
|
}
|
||||||
config.commit()
|
config.commit()
|
||||||
ba.screenmessage('Saved Successfully', color=(0, 1, 0))
|
|
||||||
ba.playsound(ba.getsound('gunCocking'))
|
ba.playsound(ba.getsound('gunCocking'))
|
||||||
else:
|
else:
|
||||||
ba.screenmessage('Invalid Address', color=(1, 0, 0))
|
ba.screenmessage('Invalid Address', color=(1, 0, 0))
|
||||||
|
|||||||
@ -477,6 +477,7 @@
|
|||||||
<w>kxyz</w>
|
<w>kxyz</w>
|
||||||
<w>lantinga</w>
|
<w>lantinga</w>
|
||||||
<w>largeish</w>
|
<w>largeish</w>
|
||||||
|
<w>larmbeast</w>
|
||||||
<w>lasti</w>
|
<w>lasti</w>
|
||||||
<w>lastline</w>
|
<w>lastline</w>
|
||||||
<w>lastvalid</w>
|
<w>lastvalid</w>
|
||||||
@ -802,6 +803,7 @@
|
|||||||
<w>sixteenbits</w>
|
<w>sixteenbits</w>
|
||||||
<w>smoothering</w>
|
<w>smoothering</w>
|
||||||
<w>smoothstep</w>
|
<w>smoothstep</w>
|
||||||
|
<w>smoothy</w>
|
||||||
<w>sndio</w>
|
<w>sndio</w>
|
||||||
<w>snorm</w>
|
<w>snorm</w>
|
||||||
<w>sockaddr</w>
|
<w>sockaddr</w>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user