Name popups *Popup and give scripts, scenes and classes matching names
Every popup is now called *Popup instead of *Window in its file, root node, node name, class and variable, and PopupWindow becomes BasePopup. Player is PlayerRow, SongListObject is SongRow and Character is CharacterCard. Script files are snake_case and scene files PascalCase, each matching its class or root node, and LightGrayTheme.tres is light_gray_theme.tres.
This commit is contained in:
1 parent
b7d67b573e
commit
390da577d7
78 files changed
+281
-258
No files matched your search
@@ -1,44 +1,44 @@
|
||||
extends MainWindowTestSuite
|
||||
## All popups share PopupWindow: clicking outside the panel closes them, the backdrop
|
||||
## All popups share BasePopup: clicking outside the panel closes them, the backdrop
|
||||
## dims the window behind them, and the closing click does not reach the main window.
|
||||
## The main window and the quiz each have their own popups and their own backdrop.
|
||||
|
||||
## Popups in the main window: the ones opened from the top bar, and the log.
|
||||
const MAIN_POPUPS: Array[String] = [
|
||||
"Search", "SyncWindow", "QRWindow", "ShortcutsWindow", "AboutWindow", "Log",
|
||||
"SearchPopup", "SyncPopup", "QRPopup", "ShortcutsPopup", "AboutPopup", "LogPopup",
|
||||
]
|
||||
|
||||
## Popups opened from the quiz, in the Quiz scene.
|
||||
const QUIZ_POPUPS: Array[String] = [
|
||||
"SettingsWindow", "NewCharacterSelect", "WinnerWindow",
|
||||
"SettingsPopup", "CharacterSelectPopup", "WinnerPopup",
|
||||
]
|
||||
|
||||
|
||||
func _popup(node_name: String) -> PopupWindow:
|
||||
func _popup(node_name: String) -> BasePopup:
|
||||
return _quiz.get_node(node_name) if node_name in QUIZ_POPUPS \
|
||||
else _window.get_node(node_name)
|
||||
|
||||
|
||||
## The backdrop that shows behind [param popup].
|
||||
func _backdrop(popup: PopupWindow = _popup("SettingsWindow")) -> ColorRect:
|
||||
func _backdrop(popup: BasePopup = _popup("SettingsPopup")) -> ColorRect:
|
||||
return popup.get_parent().get_node("PopupBackdrop")
|
||||
|
||||
|
||||
## A point on screen outside the popup's panel.
|
||||
func _outside(popup: PopupWindow) -> Vector2:
|
||||
func _outside(popup: BasePopup) -> Vector2:
|
||||
var rect: Rect2 = popup.panel.get_global_rect()
|
||||
return Vector2(rect.end.x + 5, rect.end.y + 5) if rect.end.x < 1900 \
|
||||
else Vector2(rect.position.x - 5, rect.position.y - 5)
|
||||
|
||||
|
||||
func test_backdrops_are_hidden_without_popups() -> void:
|
||||
assert_bool(_backdrop(_popup("SettingsWindow")).visible).is_false()
|
||||
assert_bool(_backdrop(_popup("AboutWindow")).visible).is_false()
|
||||
assert_bool(_backdrop(_popup("SettingsPopup")).visible).is_false()
|
||||
assert_bool(_backdrop(_popup("AboutPopup")).visible).is_false()
|
||||
|
||||
|
||||
func test_backdrops_cover_the_whole_window() -> void:
|
||||
for node_name: String in ["SettingsWindow", "AboutWindow"]:
|
||||
var popup: PopupWindow = _popup(node_name)
|
||||
for node_name: String in ["SettingsPopup", "AboutPopup"]:
|
||||
var popup: BasePopup = _popup(node_name)
|
||||
popup.open()
|
||||
|
||||
assert_object(_backdrop(popup).get_global_rect()).override_failure_message(
|
||||
@@ -49,12 +49,12 @@ func test_backdrops_cover_the_whole_window() -> void:
|
||||
|
||||
func test_every_popup_is_a_popup_window() -> void:
|
||||
for node_name: String in MAIN_POPUPS + QUIZ_POPUPS:
|
||||
assert_object(_popup(node_name)).is_instanceof(PopupWindow)
|
||||
assert_object(_popup(node_name)).is_instanceof(BasePopup)
|
||||
|
||||
|
||||
func test_every_popup_shows_backdrop_and_closes_on_outside_click() -> void:
|
||||
for node_name: String in MAIN_POPUPS + QUIZ_POPUPS:
|
||||
var popup: PopupWindow = _popup(node_name)
|
||||
var popup: BasePopup = _popup(node_name)
|
||||
popup.open()
|
||||
await _runner.simulate_frames(1)
|
||||
assert_bool(_backdrop(popup).visible).override_failure_message(
|
||||
@@ -69,7 +69,7 @@ func test_every_popup_shows_backdrop_and_closes_on_outside_click() -> void:
|
||||
|
||||
|
||||
func test_click_inside_popup_keeps_it_open() -> void:
|
||||
var settings: PopupWindow = _popup("SettingsWindow")
|
||||
var settings: BasePopup = _popup("SettingsPopup")
|
||||
settings.open()
|
||||
await _runner.simulate_frames(1)
|
||||
|
||||
@@ -79,7 +79,7 @@ func test_click_inside_popup_keeps_it_open() -> void:
|
||||
|
||||
|
||||
func test_closing_click_does_not_press_button_behind_popup() -> void:
|
||||
var settings: PopupWindow = _popup("SettingsWindow")
|
||||
var settings: BasePopup = _popup("SettingsPopup")
|
||||
var reset_button: Button = _quiz.get_node("QuizToolbar/ResetPlaylistButton")
|
||||
settings.open()
|
||||
await _runner.simulate_frames(1)
|
||||
@@ -101,7 +101,7 @@ func test_button_works_again_after_popup_closed() -> void:
|
||||
|
||||
|
||||
func test_closing_search_clears_the_search() -> void:
|
||||
var search: PopupWindow = _popup("Search")
|
||||
var search: BasePopup = _popup("SearchPopup")
|
||||
search.open()
|
||||
var search_bar: TextEdit = search.get_node("Searchbar")
|
||||
search_bar.text = "mario"
|
||||
@@ -112,7 +112,7 @@ func test_closing_search_clears_the_search() -> void:
|
||||
|
||||
|
||||
func test_closing_character_select_allows_song_clicks_again() -> void:
|
||||
var character_select: PopupWindow = _popup("NewCharacterSelect")
|
||||
var character_select: BasePopup = _popup("CharacterSelectPopup")
|
||||
character_select.show_grid("Crono")
|
||||
assert_bool(Settings.character_select_open).is_true()
|
||||
|
||||
@@ -122,7 +122,7 @@ func test_closing_character_select_allows_song_clicks_again() -> void:
|
||||
|
||||
|
||||
func test_toggle_opens_and_closes() -> void:
|
||||
var shortcuts: PopupWindow = _popup("ShortcutsWindow")
|
||||
var shortcuts: BasePopup = _popup("ShortcutsPopup")
|
||||
|
||||
shortcuts.toggle()
|
||||
assert_bool(shortcuts.visible).is_true()
|
||||
|
||||
Reference in new issue
Block a user