window: Implement search on action

This commit is contained in:
kramo
2025-12-01 15:11:24 +01:00
parent 99adcea647
commit c7883e596b
2 changed files with 60 additions and 0 deletions

View File

@@ -368,6 +368,58 @@ template $Window: Adw.ApplicationWindow {
"circular", "circular",
] ]
} }
MenuButton {
icon-name: "edit-find-symbolic";
tooltip-text: _("Search On");
valign: center;
menu-model: menu {
section {
label: _("Search On");
item {
label: _("HowLongToBeat");
action: "win.search-on";
target: "https://howlongtobeat.com/?q={}";
}
item {
label: _("IGDB");
action: "win.search-on";
target: "https://www.igdb.com/search?type=1&q={}";
}
item {
label: _("Lutris");
action: "win.search-on";
target: "https://lutris.net/games?q={}";
}
item {
label: _("PCGamingWiki");
action: "win.search-on";
target: "https://www.pcgamingwiki.com/w/index.php?search={}";
}
item {
label: _("ProtonDB");
action: "win.search-on";
target: "https://www.protondb.com/search?q={}";
}
item {
label: _("SteamGridDB");
action: "win.search-on";
target: "https://www.steamgriddb.com/search/grids?term={}";
}
}
};
styles [
"circular",
]
}
} }
} }
} }

View File

@@ -7,6 +7,7 @@ from collections.abc import Generator
from datetime import UTC, datetime from datetime import UTC, datetime
from gettext import gettext as _ from gettext import gettext as _
from typing import Any, TypeVar from typing import Any, TypeVar
from urllib.parse import quote
from gi.repository import Adw, Gdk, Gio, GLib, GObject, Gtk from gi.repository import Adw, Gdk, Gio, GLib, GObject, Gtk
@@ -83,6 +84,13 @@ class Window(Adw.ApplicationWindow):
"s", "s",
state_settings.get_value("sort-mode").print_(False), state_settings.get_value("sort-mode").print_(False),
), ),
(
"search-on",
lambda _action, param, *_: Gio.AppInfo.launch_default_for_uri(
param.get_string().format(quote(self.active_game.name))
),
"s",
),
)) ))
@Gtk.Template.Callback() @Gtk.Template.Callback()