Implement search provider (#201)

* Begin work on search provider

* Initial search provider work, organize meson

* Initial work on icons

* Implement LaunchSearch

* Don't hold arbitrary reference to service

I don't know why Lollypop does this

* Send notification, pad images

* Update translations

* Fix init_search_term typing
This commit is contained in:
kramo
2023-10-10 22:47:32 +02:00
committed by GitHub
parent 61e7e0274c
commit 69928a8b4f
52 changed files with 687 additions and 293 deletions

View File

@@ -8,25 +8,26 @@ data/gtk/help-overlay.blp
data/gtk/preferences.blp
data/gtk/window.blp
src/main.py
src/window.py
src/details_window.py
src/game.py
src/preferences.py
cartridges/main.py
cartridges/window.py
cartridges/details_window.py
cartridges/game.py
cartridges/preferences.py
src/utils/create_dialog.py
src/importer/importer.py
src/importer/sources/source.py
src/importer/sources/location.py
src/importer/sources/location.py
src/store/managers/sgdb_manager.py
cartridges/utils/create_dialog.py
src/importer/sources/bottles_source.py
src/importer/sources/desktop_source.py
src/importer/sources/flatpak_source.py
src/importer/sources/heroic_source.py
src/importer/sources/itch_source.py
src/importer/sources/legendary_source.py
src/importer/sources/lutris_source.py
src/importer/sources/retroarch_source.py
src/importer/sources/steam_source.py
cartridges/importer/importer.py
cartridges/importer/source.py
cartridges/importer/location.py
cartridges/importer/location.py
cartridges/importer/bottles_source.py
cartridges/importer/desktop_source.py
cartridges/importer/flatpak_source.py
cartridges/importer/heroic_source.py
cartridges/importer/itch_source.py
cartridges/importer/legendary_source.py
cartridges/importer/lutris_source.py
cartridges/importer/retroarch_source.py
cartridges/importer/steam_source.py
cartridges/store/managers/sgdb_manager.py

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Cartridges\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-09-26 13:51+0200\n"
"POT-Creation-Date: 2023-10-10 22:22+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -20,7 +20,7 @@ msgstr ""
#: data/hu.kramo.Cartridges.desktop.in:3
#: data/hu.kramo.Cartridges.metainfo.xml.in:6
#: data/hu.kramo.Cartridges.metainfo.xml.in:30 data/gtk/window.blp:47
#: data/gtk/window.blp:80
#: data/gtk/window.blp:80 cartridges/main.py:185
msgid "Cartridges"
msgstr ""
@@ -47,7 +47,7 @@ msgid ""
msgstr ""
#: data/hu.kramo.Cartridges.metainfo.xml.in:34 data/gtk/window.blp:288
#: src/details_window.py:71
#: cartridges/details_window.py:71
msgid "Game Details"
msgstr ""
@@ -56,8 +56,8 @@ msgid "Edit Game Details"
msgstr ""
#: data/hu.kramo.Cartridges.metainfo.xml.in:42 data/gtk/help-overlay.blp:19
#: data/gtk/window.blp:515 src/details_window.py:271
#: src/importer/importer.py:319 src/importer/importer.py:370
#: data/gtk/window.blp:515 cartridges/details_window.py:271
#: cartridges/importer/importer.py:319 cartridges/importer/importer.py:370
msgid "Preferences"
msgstr ""
@@ -73,7 +73,7 @@ msgstr ""
msgid "Delete Cover"
msgstr ""
#: data/gtk/details-window.blp:100 data/gtk/game.blp:80
#: data/gtk/details-window.blp:100 data/gtk/game.blp:81
msgid "Title"
msgstr ""
@@ -93,20 +93,20 @@ msgstr ""
msgid "More Info"
msgstr ""
#: data/gtk/game.blp:102 data/gtk/game.blp:121 data/gtk/window.blp:415
#: data/gtk/game.blp:103 data/gtk/game.blp:122 data/gtk/window.blp:415
msgid "Edit"
msgstr ""
#: data/gtk/game.blp:107 src/window.py:350
#: data/gtk/game.blp:108 cartridges/window.py:350
msgid "Hide"
msgstr ""
#: data/gtk/game.blp:112 data/gtk/game.blp:131 data/gtk/preferences.blp:40
#: data/gtk/game.blp:113 data/gtk/game.blp:132 data/gtk/preferences.blp:40
#: data/gtk/window.blp:435
msgid "Remove"
msgstr ""
#: data/gtk/game.blp:126 src/window.py:352
#: data/gtk/game.blp:127 cartridges/window.py:352
msgid "Unhide"
msgstr ""
@@ -123,8 +123,8 @@ msgstr ""
msgid "Keyboard Shortcuts"
msgstr ""
#: data/gtk/help-overlay.blp:29 src/game.py:105 src/preferences.py:125
#: src/importer/importer.py:394
#: data/gtk/help-overlay.blp:29 cartridges/game.py:103
#: cartridges/preferences.py:125 cartridges/importer/importer.py:394
msgid "Undo"
msgstr ""
@@ -178,7 +178,7 @@ msgstr ""
msgid "Swaps the behavior of the cover image and the play button"
msgstr ""
#: data/gtk/preferences.blp:25 src/details_window.py:85
#: data/gtk/preferences.blp:25 cartridges/details_window.py:85
msgid "Images"
msgstr ""
@@ -206,7 +206,7 @@ msgstr ""
msgid "Sources"
msgstr ""
#: data/gtk/preferences.blp:83 src/importer/sources/steam_source.py:114
#: data/gtk/preferences.blp:83 cartridges/importer/steam_source.py:114
msgid "Steam"
msgstr ""
@@ -217,7 +217,7 @@ msgstr ""
msgid "Install Location"
msgstr ""
#: data/gtk/preferences.blp:100 src/importer/sources/lutris_source.py:92
#: data/gtk/preferences.blp:100 cartridges/importer/lutris_source.py:92
msgid "Lutris"
msgstr ""
@@ -233,7 +233,7 @@ msgstr ""
msgid "Import Flatpak Games"
msgstr ""
#: data/gtk/preferences.blp:137 src/importer/sources/heroic_source.py:355
#: data/gtk/preferences.blp:137 cartridges/importer/heroic_source.py:355
msgid "Heroic"
msgstr ""
@@ -253,23 +253,23 @@ msgstr ""
msgid "Import Sideloaded Games"
msgstr ""
#: data/gtk/preferences.blp:170 src/importer/sources/bottles_source.py:86
#: data/gtk/preferences.blp:170 cartridges/importer/bottles_source.py:86
msgid "Bottles"
msgstr ""
#: data/gtk/preferences.blp:187 src/importer/sources/itch_source.py:81
#: data/gtk/preferences.blp:187 cartridges/importer/itch_source.py:81
msgid "itch"
msgstr ""
#: data/gtk/preferences.blp:204 src/importer/sources/legendary_source.py:97
#: data/gtk/preferences.blp:204 cartridges/importer/legendary_source.py:97
msgid "Legendary"
msgstr ""
#: data/gtk/preferences.blp:221 src/importer/sources/retroarch_source.py:142
#: data/gtk/preferences.blp:221 cartridges/importer/retroarch_source.py:142
msgid "RetroArch"
msgstr ""
#: data/gtk/preferences.blp:238 src/importer/sources/flatpak_source.py:118
#: data/gtk/preferences.blp:238 cartridges/importer/flatpak_source.py:118
msgid "Flatpak"
msgstr ""
@@ -277,7 +277,7 @@ msgstr ""
msgid "Import Game Launchers"
msgstr ""
#: data/gtk/preferences.blp:259 src/importer/sources/desktop_source.py:217
#: data/gtk/preferences.blp:259 cartridges/importer/desktop_source.py:215
msgid "Desktop Entries"
msgstr ""
@@ -345,11 +345,11 @@ msgstr ""
msgid "Games you hide will appear here."
msgstr ""
#: data/gtk/window.blp:75 data/gtk/window.blp:106 src/main.py:166
#: data/gtk/window.blp:75 data/gtk/window.blp:106 cartridges/main.py:207
msgid "All Games"
msgstr ""
#: data/gtk/window.blp:126 src/main.py:168
#: data/gtk/window.blp:126 cartridges/main.py:209
msgid "Added"
msgstr ""
@@ -401,62 +401,67 @@ msgstr ""
msgid "About Cartridges"
msgstr ""
#. The variable is the title of the game
#: cartridges/main.py:186 cartridges/game.py:125
msgid "{} launched"
msgstr ""
#. Translators: Replace this with your name for it to show up in the about window
#: src/main.py:208
#: cartridges/main.py:249
msgid "translator_credits"
msgstr ""
#. The variable is the date when the game was added
#: src/window.py:373
#: cartridges/window.py:373
msgid "Added: {}"
msgstr ""
#: src/window.py:376
#: cartridges/window.py:376
msgid "Never"
msgstr ""
#. The variable is the date when the game was last played
#: src/window.py:380
#: cartridges/window.py:380
msgid "Last played: {}"
msgstr ""
#: src/details_window.py:76
#: cartridges/details_window.py:76
msgid "Apply"
msgstr ""
#: src/details_window.py:82
#: cartridges/details_window.py:82
msgid "Add New Game"
msgstr ""
#: src/details_window.py:83
#: cartridges/details_window.py:83
msgid "Add"
msgstr ""
#: src/details_window.py:93
#: cartridges/details_window.py:93
msgid "Executables"
msgstr ""
#. Translate this string as you would translate "file"
#: src/details_window.py:108
#: cartridges/details_window.py:108
msgid "file.txt"
msgstr ""
#. As in software
#: src/details_window.py:110
#: cartridges/details_window.py:110
msgid "program"
msgstr ""
#. Translate this string as you would translate "path to {}"
#: src/details_window.py:115 src/details_window.py:117
#: cartridges/details_window.py:115 cartridges/details_window.py:117
msgid "C:\\path\\to\\{}"
msgstr ""
#. Translate this string as you would translate "path to {}"
#: src/details_window.py:121 src/details_window.py:123
#: cartridges/details_window.py:121 cartridges/details_window.py:123
msgid "/path/to/{}"
msgstr ""
#: src/details_window.py:128
#: cartridges/details_window.py:128
msgid ""
"To launch the executable \"{}\", use the command:\n"
"\n"
@@ -469,141 +474,136 @@ msgid ""
"If the path contains spaces, make sure to wrap it in double quotes!"
msgstr ""
#: src/details_window.py:171 src/details_window.py:177
#: cartridges/details_window.py:171 cartridges/details_window.py:177
msgid "Couldn't Add Game"
msgstr ""
#: src/details_window.py:171 src/details_window.py:213
#: cartridges/details_window.py:171 cartridges/details_window.py:213
msgid "Game title cannot be empty."
msgstr ""
#: src/details_window.py:177 src/details_window.py:221
#: cartridges/details_window.py:177 cartridges/details_window.py:221
msgid "Executable cannot be empty."
msgstr ""
#: src/details_window.py:212 src/details_window.py:220
#: cartridges/details_window.py:212 cartridges/details_window.py:220
msgid "Couldn't Apply Preferences"
msgstr ""
#. The variable is the title of the game
#: src/game.py:141
msgid "{} launched"
msgstr ""
#. The variable is the title of the game
#: src/game.py:155
#: cartridges/game.py:139
msgid "{} hidden"
msgstr ""
#: src/game.py:155
#: cartridges/game.py:139
msgid "{} unhidden"
msgstr ""
#. The variable is the title of the game
#. The variable is the number of games removed
#: src/game.py:169 src/importer/importer.py:391
#: cartridges/game.py:153 cartridges/importer/importer.py:391
msgid "{} removed"
msgstr ""
#: src/preferences.py:124
#: cartridges/preferences.py:124
msgid "All games removed"
msgstr ""
#: src/preferences.py:172
#: cartridges/preferences.py:172
msgid ""
"An API key is required to use SteamGridDB. You can generate one {}here{}."
msgstr ""
#: src/preferences.py:184
#: cartridges/preferences.py:184
msgid "Downloading covers…"
msgstr ""
#: src/preferences.py:203
#: cartridges/preferences.py:203
msgid "Covers updated"
msgstr ""
#: src/preferences.py:335
#: cartridges/preferences.py:335
msgid "Installation Not Found"
msgstr ""
#: src/preferences.py:336
#: cartridges/preferences.py:336
msgid "Select a valid directory."
msgstr ""
#: src/preferences.py:372 src/importer/importer.py:317
#: cartridges/preferences.py:372 cartridges/importer/importer.py:317
msgid "Warning"
msgstr ""
#: src/preferences.py:406
#: cartridges/preferences.py:406
msgid "Invalid Directory"
msgstr ""
#: src/preferences.py:412
#: cartridges/preferences.py:412
msgid "Set Location"
msgstr ""
#: src/utils/create_dialog.py:33 src/importer/importer.py:318
#: cartridges/utils/create_dialog.py:33 cartridges/importer/importer.py:318
msgid "Dismiss"
msgstr ""
#: src/importer/importer.py:145
#: cartridges/importer/importer.py:145
msgid "Importing Games…"
msgstr ""
#: src/importer/importer.py:338
#: cartridges/importer/importer.py:338
msgid "The following errors occured during import:"
msgstr ""
#: src/importer/importer.py:367
#: cartridges/importer/importer.py:367
msgid "No new games found"
msgstr ""
#: src/importer/importer.py:379
#: cartridges/importer/importer.py:379
msgid "1 game imported"
msgstr ""
#. The variable is the number of games
#: src/importer/importer.py:383
#: cartridges/importer/importer.py:383
msgid "{} games imported"
msgstr ""
#. A single game removed
#: src/importer/importer.py:387
#: cartridges/importer/importer.py:387
msgid "1 removed"
msgstr ""
#. The variable is the name of the source
#: src/importer/sources/location.py:33
#: cartridges/importer/location.py:33
msgid "Select the {} cache directory."
msgstr ""
#. The variable is the name of the source
#: src/importer/sources/location.py:35
#: cartridges/importer/location.py:35
msgid "Select the {} configuration directory."
msgstr ""
#. The variable is the name of the source
#: src/importer/sources/location.py:37
#: cartridges/importer/location.py:37
msgid "Select the {} data directory."
msgstr ""
#: src/store/managers/sgdb_manager.py:46
msgid "Couldn't Authenticate SteamGridDB"
msgstr ""
#: src/store/managers/sgdb_manager.py:47
msgid "Verify your API key in preferences"
msgstr ""
#: src/importer/sources/retroarch_source.py:129
#: cartridges/importer/retroarch_source.py:129
msgid "No RetroArch Core Selected"
msgstr ""
#. The variable is a newline separated list of playlists
#: src/importer/sources/retroarch_source.py:131
#: cartridges/importer/retroarch_source.py:131
msgid "The following playlists have no default core:"
msgstr ""
#: src/importer/sources/retroarch_source.py:133
#: cartridges/importer/retroarch_source.py:133
msgid "Games with no core selected were not imported"
msgstr ""
#: cartridges/store/managers/sgdb_manager.py:46
msgid "Couldn't Authenticate SteamGridDB"
msgstr ""
#: cartridges/store/managers/sgdb_manager.py:47
msgid "Verify your API key in preferences"
msgstr ""