...
 
Commits (34)
......@@ -8,7 +8,7 @@ variables:
BUNDLE: "gnome-games-git.flatpak"
flatpak:tests:
image: registry.gitlab.gnome.org/gnome/gnome-runtime-images/gnome:master
image: registry.gitlab.gnome.org/gnome/gnome-runtime-images/gnome:3.30
stage: test
variables:
MANIFEST_PATH: "flatpak/org.gnome.Games.UnitTests.json"
......@@ -17,22 +17,23 @@ flatpak:tests:
- xvfb-run -a -s "-screen 0 1024x768x24" flatpak-builder --run unit-tests ${MANIFEST_PATH} games-unit-tests
cache:
paths:
- .flatpak-builder/cache/
- .flatpak-builder/downloads
- .flatpak-builder/git
flatpak:app:
image: registry.gitlab.gnome.org/gnome/gnome-runtime-images/gnome:master
image: registry.gitlab.gnome.org/gnome/gnome-runtime-images/gnome:3.30
stage: build
variables:
MANIFEST_PATH: "flatpak/org.gnome.Games.json"
RUNTIME_REPO: "https://sdk.gnome.org/gnome-nightly.flatpakrepo"
RUNTIME_REPO: "https://flathub.org/repo/flathub.flatpakrepo"
FLATPAK_MODULE: "gnome-games"
script:
- flatpak-builder --stop-at=${FLATPAK_MODULE} app ${MANIFEST_PATH}
- flatpak build app meson --prefix=/app -Dprofile=development ${MESON_ARGS} _build
- flatpak build app meson --prefix=/app ${MESON_ARGS} _build
- flatpak build app ninja -C _build install
- flatpak build app mkdir -p /app/lib/libretro/extra.d
- flatpak-builder --finish-only --repo=repo app ${MANIFEST_PATH}
- flatpak build-bundle repo ${BUNDLE} --runtime-repo=${RUNTIME_REPO} org.gnome.GamesDevel
- flatpak build-bundle repo ${BUNDLE} --runtime-repo=${RUNTIME_REPO} org.gnome.Games
artifacts:
paths:
......@@ -41,7 +42,8 @@ flatpak:app:
expire_in: 30 days
cache:
paths:
- .flatpak-builder/cache/
- .flatpak-builder/downloads
- .flatpak-builder/git
review:
stage: review
......@@ -89,9 +91,11 @@ fedora:29:
- bash -x ./.gitlab-ci/build.sh
ubuntu:devel:
image: ubuntu:devel
image: ubuntu:18.10
stage: cross_distro
before_script:
# Enable source repositories, this is required for `apt-get build-dep`
- sed -i -e 's/# deb-src/deb-src/' /etc/apt/sources.list
- apt-get update
- apt-get install -y git
- apt-get build-dep -y libmanette retro-gtk gnome-games-app
......
==============
Version 3.30.2
==============
* Fixes
- Fix search filter not updating when switching between collection views.
- Fix header bar buttons grabbing arrow keys in fullscreen.
==============
Version 3.30.1
==============
* MAME plugin loading is now slightly faster.
* Fixes
- Fix crash in PlayStation plugin.
- Pressed buttons in controller preferences are now positioned correctly.
- Fix drawing failure in controller preferences.
- Fix occasional tiny thumbnails in Developers and Platforms views.
- Fix GTK+ warnings when browsing collection.
* Translation updates
Hungarian
Swedish
==============
Version 3.30.0
==============
......
......@@ -30,3 +30,11 @@ gamesgamethumbnail {
@theme_unfocused_bg_color;
border-color: @unfocused_borders;
}
gamescollectioniconview flowboxchild {
min-width: 128px;
}
gamescollectioniconview.large flowboxchild {
min-width: 256px;
}
......@@ -4,7 +4,6 @@
<template class="GamesGameIconView" parent="GtkBox">
<property name="visible">True</property>
<property name="orientation">vertical</property>
<property name="halign">center</property>
<child>
<object class="GamesGameThumbnail" id="thumbnail">
<property name="visible">True</property>
......
[Libretro]
Type=Emulator
Version=1.0
Name=BlastEm
Module=blastem_libretro.so
LibretroVersion=1
Authors=Mike Pavone;
License=GPL-3.0+;
[Platform:SegaGenesis]
MimeType=application/x-genesis-rom;
[Libretro]
Type=Emulator
Version=1.0
Name=DOSBox
Module=dosbox_libretro.so
LibretroVersion=1
Authors=DOSBox Team;
License=GPL-2.0+;
[Platform:MSDOS]
MimeType=application/x-ms-dos-executable;
{
"name": "libretro-blastem",
"skip-arches": [
"aarch64",
"arm"
],
"no-autogen": true,
"subdir": "libretro",
"make-args": [
"prefix=/app",
"core_installdir=/app/lib/libretro"
],
"make-install-args": [
"prefix=/app",
"core_installdir=/app/lib/libretro"
],
"post-install": [
/* TODO: Send that upstream */
"mkdir -p /app/lib/libretro/",
"install -m644 -p blastem.libretro /app/lib/libretro/"
],
"sources": [
{
"type": "git",
"url": "https://github.com/libretro/blastem-libretro.git"
},
{
"type": "file",
"path": "blastem.libretro",
"dest-filename": "libretro/blastem.libretro"
}
]
}
......@@ -18,8 +18,9 @@
],
"sources": [
{
"type": "git",
"url": "https://github.com/libretro/bsnes-mercury.git"
"type": "archive",
"url": "https://github.com/libretro/bsnes-mercury/archive/4e221df676ffc7b46d083cf2ae100131eabe5076.zip",
"sha256": "a50f8b7bec5684239bf9ef855a80df9c2eec24dcff09590467ee8af7ba0b3529"
},
{
"type": "file",
......
......@@ -21,8 +21,9 @@
],
"sources": [
{
"type": "git",
"url": "https://github.com/libretro/desmume2015"
"type": "archive",
"url": "https://github.com/libretro/desmume2015/archive/5957aa07b1b8b60142cdcaccffa827316dc548d5.zip",
"sha256": "71e7116b8be6766c6eb4ed35af574e29e0eda0b038de233b57f2009e9ee9d750"
},
{
"type": "file",
......
{
"name": "libretro-dosbox",
"no-autogen": true,
"make-args": [
"--makefile=Makefile.libretro",
"prefix=/app",
"core_installdir=/app/lib/libretro"
],
"make-install-args": [
"--makefile=Makefile.libretro",
"prefix=/app",
"core_installdir=/app/lib/libretro"
],
"post-install": [
/* TODO: Send that upstream */
"mkdir -p /app/lib/libretro/",
"install -m644 -p dosbox.libretro /app/lib/libretro/"
],
"sources": [
{
"type": "git",
"url": "https://github.com/libretro/dosbox-libretro.git"
},
{
"type": "file",
"path": "dosbox.libretro"
}
]
}
......@@ -16,8 +16,9 @@
],
"sources": [
{
"type": "git",
"url": "https://github.com/libretro/gambatte-libretro.git"
"type": "archive",
"url": "https://github.com/libretro/gambatte-libretro/archive/7722012ce85e56c324cb2080645347689ca379ae.zip",
"sha256": "068f3ef3c30def5126a97b70f5bbfdcbd8bf693a738e9d8835e9e181ab95d57d"
},
{
"type": "file",
......
......@@ -10,8 +10,9 @@
],
"sources": [
{
"type": "git",
"url": "https://github.com/drhelius/Gearsystem.git"
"type": "archive",
"url": "https://github.com/drhelius/Gearsystem/archive/99c8a84b916042c3c2eceda515e602a390a2cb01.zip",
"sha256": "7adc96bc0bd37b15695bd9cf9c970c5b62a2a09e2481886ad7aef1967320887c"
}
]
}
......@@ -16,8 +16,9 @@
],
"sources": [
{
"type": "git",
"url": "https://github.com/libretro/libretro-handy"
"type": "archive",
"url": "https://github.com/libretro/libretro-handy/archive/debca1e6cf5dcd891b72db463c3ce878a64037b5.zip",
"sha256": "87f26eb30c3a48baf33e3e8c99d86d32ae2b0e9a198d767a95741fb7c75eff72"
},
{
"type": "file",
......
{
"name": "libretro-mame",
"no-autogen": true,
"make-args": [
"--makefile=Makefile.libretro",
"prefix=/app",
"core_installdir=/app/lib/libretro"
],
"make-install-args": [
"--makefile=Makefile.libretro",
"prefix=/app",
"core_installdir=/app/lib/libretro"
],
"post-install": [
/* TODO: Send that upstream */
"mkdir -p /app/lib/libretro/",
"install -m644 -p mame.libretro /app/lib/libretro/"
],
"sources": [
{
"type": "git",
"url": "https://github.com/Kekun/mame"
},
{
"type": "file",
"path": "mame.libretro"
}
]
}
......@@ -16,8 +16,9 @@
],
"sources": [
{
"type": "git",
"url": "https://github.com/libretro/beetle-ngp-libretro"
"type": "archive",
"url": "https://github.com/libretro/beetle-ngp-libretro/archive/69293c940ca27008ab2a1e37cc3077c677b36d1e.zip",
"sha256": "e757c1d7bb7a464ef2e744eb966e48f52eaf13edf6241dd96b9af421afad967d"
},
{
"type": "file",
......
......@@ -16,8 +16,9 @@
],
"sources": [
{
"type": "git",
"url": "https://github.com/libretro/beetle-pce-fast-libretro"
"type": "archive",
"url": "https://github.com/libretro/beetle-pce-fast-libretro/archive/6dfaf04cf2085ab9e5bb6ffac75070816cb4ff52.zip",
"sha256": "4075c8f0dcc89b3836b33db3d687b27bcd4951aff0f061fd652157c09f18d420"
},
{
"type": "file",
......
{
"name": "libretro-mednafen_saturn",
"no-autogen": true,
"make-args": [
"prefix=/app",
"core_installdir=/app/lib/libretro"
],
"make-install-args": [
"prefix=/app",
"core_installdir=/app/lib/libretro"
],
"post-install": [
/* TODO: Send that upstream */
"mkdir -p /app/lib/libretro/",
"install -m644 -p mednafen_saturn.libretro /app/lib/libretro/"
],
"sources": [
{
"type": "git",
"url": "https://github.com/libretro/beetle-saturn-libretro"
},
{
"type": "file",
"path": "mednafen_saturn.libretro"
}
]
}
......@@ -16,8 +16,9 @@
],
"sources": [
{
"type": "git",
"url": "https://github.com/libretro/beetle-vb-libretro"
"type": "archive",
"url": "https://github.com/libretro/beetle-vb-libretro/archive/cc11960675aaef4bb9c8e50b8ada6c81d9044d96.zip",
"sha256": "8ae0552f412ce3a3644fed70aa3a93815dba63694fde0865a34efdd4eb3c0fcf"
},
{
"type": "file",
......
......@@ -16,8 +16,9 @@
],
"sources": [
{
"type": "git",
"url": "https://github.com/libretro/beetle-wswan-libretro"
"type": "archive",
"url": "https://github.com/libretro/beetle-wswan-libretro/archive/b4dc85b0ada2b27af3d4420439b0e4528363ef67.zip",
"sha256": "bb93a8576c161f321c8937615d52a9d55c63306c86be48a0a2093aae02909c15"
},
{
"type": "file",
......
......@@ -16,8 +16,9 @@
],
"sources": [
{
"type": "git",
"url": "https://github.com/libretro/mgba"
"type": "archive",
"url": "https://github.com/libretro/mgba/archive/abf712f061c816c96e028b878a2e12dc49426088.zip",
"sha256": "8e506bbb8adc08b4affddefc8e3223da6592a0f2d2762a20fba79c09dfb36ea1"
},
{
"type": "file",
......
......@@ -17,8 +17,9 @@
],
"sources": [
{
"type": "git",
"url": "https://github.com/libretro/nestopia.git"
"type": "archive",
"url": "https://github.com/libretro/nestopia/archive/cb6c9cc5086fc516df1a2818df73da1708a7e592.zip",
"sha256": "3c71942a4e30abd7d9087c271d9fc14d6dd1d1c5e70b9f80cd7207d69a3a7b8b"
},
{
"type": "file",
......
......@@ -20,8 +20,9 @@
],
"sources": [
{
"type": "git",
"url": "https://github.com/libretro/pcsx_rearmed"
"type": "archive",
"url": "https://github.com/libretro/pcsx_rearmed/archive/b6169792c70a5ebb2e4baef63af5dc375be89770.zip",
"sha256": "583e4a23cd2a54ee8bb36711d33d7dc04ab4a0e5f0b463c328c78752cf9bde0f"
},
{
"type": "patch",
......
......@@ -17,8 +17,9 @@
],
"sources": [
{
"type": "git",
"url": "https://github.com/libretro/picodrive"
"type": "archive",
"url": "https://github.com/libretro/picodrive/archive/2db90628f5f29f1d4030172ce4f57ab757fa9d93.zip",
"sha256": "100f279433e7a52386eb6879b2877ba988dbc35f9311d8fffe55f2edafcf3568"
},
{
"type": "file",
......
{
"name": "libretro-prboom",
"no-autogen": true,
"make-args": [
"prefix=/app",
"core_installdir=/app/lib/libretro"
],
"make-install-args": [
"prefix=/app",
"core_installdir=/app/lib/libretro"
],
"post-install": [
/* TODO: Send that upstream */
"mkdir -p /app/lib/libretro/",
"install -m644 -p prboom.libretro /app/lib/libretro/"
],
"sources": [
{
"type": "git",
"url": "https://github.com/libretro/libretro-prboom"
},
{
"type": "file",
"path": "prboom.libretro"
}
]
}
......@@ -16,8 +16,9 @@
],
"sources": [
{
"type": "git",
"url": "https://github.com/libretro/prosystem-libretro"
"type": "archive",
"url": "https://github.com/libretro/prosystem-libretro/archive/463dfff97f2e7d707ee5ae238cb2e8e70beb585a.zip",
"sha256": "cac7247080d7816881a1797eda27c0eaec3524191e8cc8b59665f726845954a0"
},
{
"type": "file",
......
......@@ -16,8 +16,9 @@
],
"sources": [
{
"type": "git",
"url": "https://github.com/libretro/stella-libretro"
"type": "archive",
"url": "https://github.com/libretro/stella-libretro/archive/b0d525b724fa0a9a313e2ea33a590aba98deaabf.zip",
"sha256": "6561074f73b44e73739b6cfefe052789ba9f5fd2b45b2e672d32fddcd0acf28d"
},
{
"type": "file",
......
[Libretro]
Type=Emulator
Version=1.0
Name=MAME
Module=mame_libretro.so
LibretroVersion=1
Authors=MAMEdev;
License=GPL-2.0+;
[Platform:MAME]
MimeType=application/zip;
[Libretro]
Type=Emulator
Version=1.0
Name=Beetle Saturn
Module=mednafen_saturn_libretro.so
LibretroVersion=1
Authors=Mednafen Team;
License=GPL-2.0+;
[Platform:SegaSaturn]
MimeType=application/x-cue;application/x-saturn-rom;
Firmwares=SegaSaturnEU;SegaSaturnJ;TheKingOfFighters95;UltramanHikariNoKyojinDensetsu;
[Firmware:SegaSaturnEU]
Path=mpr-17933.bin
MD5=3240872c70984b6cbfda1586cab68dbe
Mandatory=true
[Firmware:SegaSaturnJ]
Path=sega_101.bin
MD5=85ec9ca47d8f6807718151cbcca8b964
Mandatory=true
[Firmware:TheKingOfFighters95]
Path=mpr-18811-mx.ic1
MD5=255113ba943c92a54facd25a10fd780c
Mandatory=true
[Firmware:UltramanHikariNoKyojinDensetsu]
Path=mpr-19367-mx.ic1
MD5=1cd19988d1d72a3e7caa0b73234c96b4
Mandatory=true
[Libretro]
Type=Emulator
Version=1.0
Name=PrBoom
Module=prboom_libretro.so
LibretroVersion=1
Authors=Florian Schulze;
License=GPL-2.0+;
[Platform:DOOM]
MimeType=application/x-doom-wad;
{
"app-id" : "org.gnome.Games.UnitTests",
"runtime" : "org.gnome.Platform",
"runtime-version" : "master",
"runtime-version" : "3.30",
"sdk" : "org.gnome.Sdk",
"command" : "games-unit-tests",
"tags" : [
"devel",
"development",
"nightly"
],
"desktop-file-name-suffix" : " (Development)",
"finish-args" : [
"--share=network",
"--share=ipc",
......@@ -40,7 +34,6 @@
"/share/gir-1.0"
],
"modules" : [
"libretro-cores/libretro-blastem.json",
"libretro-cores/libretro-bsnes-mercury.json",
"libretro-cores/libretro-desmume2015.json",
"libretro-cores/libretro-gambatte.json",
......@@ -71,7 +64,6 @@
{
"type" : "script",
"commands" : [
"/app/libexec/installed-tests/retro-gtk-0.14/retro-reftest /app/tests/blastem.240pSuite.test 2>&1 | diff /app/tests/blastem.240pSuite.expected -",
"/app/libexec/installed-tests/retro-gtk-0.14/retro-reftest /app/tests/bsnes_mercury_balanced.240pSuite.test 2>&1 | diff /app/tests/bsnes_mercury_balanced.240pSuite.expected -",
"/app/libexec/installed-tests/retro-gtk-0.14/retro-reftest /app/tests/desmume2015.pong-ds.test",
"/app/libexec/installed-tests/retro-gtk-0.14/retro-reftest /app/tests/gambatte.OpenMAZE.test 2>&1 | diff /app/tests/gambatte.OpenMAZE.expected -",
......@@ -99,8 +91,9 @@
],
"sources" : [
{
"type" : "git",
"url" : "https://gitlab.gnome.org/GNOME/retro-gtk.git"
"type" : "archive",
"url" : "https://download.gnome.org/sources/retro-gtk/0.16/retro-gtk-0.16.0.tar.xz",
"sha256" : "8c9b4ec9d6aa6b9db088a09706c0dd3de41437ff3a46f46566a47911efa7a627"
}
]
}
......
{
"app-id" : "org.gnome.GamesDevel",
"app-id" : "org.gnome.Games",
"runtime" : "org.gnome.Platform",
"runtime-version" : "master",
"runtime-version" : "3.30",
"sdk" : "org.gnome.Sdk",
"command" : "gnome-games",
"tags" : [
"devel",
"development",
"nightly"
],
"desktop-file-name-suffix" : " (Development)",
"finish-args" : [
/* Extension point */
"--extension=org.gnome.Games.LibretroPlugin=directory=lib/libretro/extra.d",
......@@ -67,22 +61,18 @@
We build them first, because some of them are very big, and they
change more rarely than the rest of the modules. */
"libretro-cores/libretro-blastem.json",
"libretro-cores/libretro-bsnes-mercury.json",
"libretro-cores/libretro-desmume2015.json",
"libretro-cores/libretro-dosbox.json",
"libretro-cores/libretro-gambatte.json",
"libretro-cores/libretro-gearsystem.json",
"libretro-cores/libretro-handy.json",
"libretro-cores/libretro-mednafen_ngp.json",
"libretro-cores/libretro-mednafen_pce_fast.json",
"libretro-cores/libretro-mednafen_saturn.json",
"libretro-cores/libretro-mednafen_vb.json",
"libretro-cores/libretro-mednafen_wswan.json",
"libretro-cores/libretro-mgba.json",
"libretro-cores/libretro-nestopia.json",
"libretro-cores/libretro-pcsx_rearmed.json",
"libretro-cores/libretro-prboom.json",
"libretro-cores/libretro-prosystem.json",
"libretro-cores/libretro-stella.json",
/* End libretro cores */
......@@ -102,8 +92,9 @@
],
"sources" : [
{
"type" : "git",
"url" : "https://gitlab.gnome.org/GNOME/tracker.git"
"type" : "archive",
"url" : "https://download.gnome.org/sources/tracker/2.1/tracker-2.1.5.tar.xz",
"sha256" : "b234b7573773b904dc3e885ff5ec44e86b035767cde783bc50d65d12cd72861e"
}
]
},
......@@ -119,8 +110,9 @@
],
"sources" : [
{
"type" : "git",
"url" : "https://gitlab.gnome.org/GNOME/grilo.git"
"type" : "archive",
"url" : "https://download.gnome.org/sources/grilo/0.3/grilo-0.3.6.tar.xz",
"sha256" : "1e65ca82dd58020451417fde79310d4b940adc3f63ab59997419c52ed3bc9c91"
}
],
"cleanup" : [
......@@ -161,8 +153,9 @@
],
"sources" : [
{
"type" : "git",
"url" : "https://gitlab.gnome.org/GNOME/grilo-plugins.git"
"type" : "archive",
"url" : "https://download.gnome.org/sources/grilo-plugins/0.3/grilo-plugins-0.3.8.tar.xz",
"sha256" : "4cdd770b1554ee49cf77705401a35daa3ebff81badc05bd69d7240f50e60d65b"
}
],
"cleanup" : [
......@@ -174,8 +167,9 @@
"name" : "libevdev",
"sources" : [
{
"type" : "git",
"url" : "https://gitlab.freedesktop.org/libevdev/libevdev.git"
"type" : "archive",
"url" : "https://www.freedesktop.org/software/libevdev/libevdev-1.5.9.tar.xz",
"sha256" : "e1663751443bed9d3e76a4fe2caf6fa866a79705d91cacad815c04e706198a75"
}
]
},
......@@ -187,8 +181,9 @@
],
"sources" : [
{
"type" : "git",
"url" : "https://gitlab.gnome.org/aplazas/libmanette.git"
"type" : "archive",
"url" : "https://download.gnome.org/sources/libmanette/0.2/libmanette-0.2.1.tar.xz",
"sha256" : "023508e8cbae3c24697a6145aea6a0ba888e0a920fe8ee87f7231972c1f87893"
}
]
},
......@@ -200,8 +195,9 @@
],
"sources" : [
{
"type" : "git",
"url" : "https://gitlab.gnome.org/GNOME/retro-gtk.git"
"type" : "archive",
"url" : "https://download.gnome.org/sources/retro-gtk/0.16/retro-gtk-0.16.0.tar.xz",
"sha256" : "8c9b4ec9d6aa6b9db088a09706c0dd3de41437ff3a46f46566a47911efa7a627"
}
]
},
......@@ -209,16 +205,14 @@
"name" : "gnome-games",
"buildsystem" : "meson",
"builddir" : true,
"config-opts" : [
"-Dprofile=development"
],
"post-install" : [
"mkdir -p /app/lib/libretro/extra.d"
],
"sources" : [
{
"type" : "git",
"url" : "https://gitlab.gnome.org/GNOME/gnome-games.git"
"type" : "archive",
"url" : "https://download.gnome.org/sources/gnome-games/3.30/gnome-games-3.30.2.tar.xz",
"sha256" : "5607c4071d3b07809ec1a88deb52bb289c29b2f5fb91374e244ebe7f8dee31a1"
}
]
}
......
/blastem/240pSuite/Boot: OK
/blastem/240pSuite/Options: OK
/blastem/240pSuite/150/FastForward: OK
/blastem/240pSuite/150/Run: OK
/blastem/240pSuite/150/Video: OK
[Retro Reftest]
Path=/blastem/240pSuite
Core=/app/lib/libretro/blastem_libretro.so
Medias=240pTestSuite-v15.gen;
[Options]
[Frame 150]
Video=blastem.240pSuite.150.png
......@@ -6,21 +6,6 @@
"install -m644 -p -t /app/tests *"
],
"sources" : [
{
"type" : "file",
"path" : "blastem.240pSuite.150.png",
"dest-filename" : "blastem.240pSuite.150.png"
},
{
"type" : "file",
"path" : "blastem.240pSuite.expected",
"dest-filename" : "blastem.240pSuite.expected"
},
{
"type" : "file",
"path" : "blastem.240pSuite.test",
"dest-filename" : "blastem.240pSuite.test"
},
{
"type" : "file",
"path" : "bsnes_mercury_balanced.240pSuite.120.png",
......
project('gnome-games',
['vala', 'c'],
version: '3.30.0',
version: '3.30.2',
license: 'GPL3+',
meson_version: '>= 0.46.1'
)
......
......@@ -28,7 +28,8 @@ private struct Games.MameGameInfo {
yield;
}
foreach (var line in text.split ("\n")) {
var lines = text.split ("\n");
foreach (var line in lines) {
MatchInfo match_info;
if (!game_regex.match (line, 0, out match_info))
continue;
......
......@@ -23,7 +23,7 @@ private class Games.PlayStationHeader : Object {
string label;
string exe;
if (!get_playstation_info (file.get_path (), out label, out exe))
if (!get_playstation_info (file.get_path (), out label, out exe, null))
throw new PlayStationError.INVALID_HEADER (_("Not a PlayStation disc: “%s”."), file.get_uri ());
_disc_id = parse_id_from_exe (exe);
......@@ -73,5 +73,5 @@ private class Games.PlayStationHeader : Object {
}
[CCode (cname = "get_playstation_info")]
private static extern bool get_playstation_info (string filename, out string label, out string exe) throws Error;
private static extern bool get_playstation_info (string filename, out string label, out string exe, Cancellable? cancellable) throws Error;
}
# Please keep this list sorted alphabetically.
ca
cs
da
de
el
es
......@@ -17,6 +18,7 @@ nl
pl
pt
pt_BR
ru
sl
sk
sr
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
# Turkish translation for gnome-games.
# Copyright (C) 2018 gnome-games's COPYRIGHT HOLDER
# This file is distributed under the same license as the gnome-games package.
#
# Ertan Kurt <ertank@gmail.com>, 2016.
# Emin Tufan Çetin <etcetin@gmail.com>, 2018.
#
# Serdar Sağlam <teknomobil@yandex.com>, 2019.
# Sabri Ünal <libreajans@gmail.com>, 2019.
#
msgid ""
msgstr ""
"Project-Id-Version: gnome-games master\n"
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-games/issues\n"
"POT-Creation-Date: 2018-08-11 01:06+0000\n"
"PO-Revision-Date: 2018-08-11 10:30+0300\n"
"Last-Translator: Emin Tufan Çetin <etcetin@gmail.com>\n"
"POT-Creation-Date: 2019-03-05 14:54+0000\n"
"PO-Revision-Date: 2019-03-09 17:31+0200\n"
"Last-Translator: Sabri Ünal <libreajans@gmail.com>\n"
"Language-Team: Türkçe <gnome-turk@gnome.org>\n"
"Language: tr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Gtranslator 2.91.7\n"
"X-Generator: Poedit 2.0.6\n"
#: data/org.gnome.Games.appdata.xml.in.in:6
#: data/org.gnome.Games.desktop.in.in:3 data/ui/collection-box.ui:40
#: data/ui/collection-header-bar.ui:67 data/ui/display-header-bar.ui:6
#: src/ui/application.vala:24
#: src/ui/application.vala:26
msgid "Games"
msgstr "Oyunlar"
......@@ -344,7 +347,7 @@ msgstr "Yön yüzeyi"
#: data/ui/shortcuts-window.ui:56
msgctxt "shortcut window"
msgid "Select view"
msgstr ""
msgstr "Seçim görünümü"
#: data/ui/shortcuts-window.ui:57
msgctxt "shortcut window"
......@@ -412,7 +415,7 @@ msgstr "Hileler"
#: data/ui/shortcuts-window.ui:144
msgctxt "shortcut window"
msgid "Contribute"
msgstr ""
msgstr "Katkı ver"
#: plugins/desktop/src/desktop-plugin.vala:6
msgid "Desktop"
......@@ -426,7 +429,7 @@ msgstr "Geçersiz komut “%s”."
#: plugins/desktop/src/desktop-plugin.vala:69
#, c-format
msgid "Tracker listed file not found: “%s”."
msgstr ""
msgstr "Tracker tarafından listelenen dosya bulunamadı: “%s”."
#: plugins/desktop/src/desktop-plugin.vala:75
#, c-format
......@@ -640,11 +643,11 @@ msgstr "Dosyanın Wii başlığı yok."
msgid "Wii"
msgstr "Wii"
#: src/command/command-runner.vala:36
#: src/command/command-runner.vala:34
msgid "The game doesn’t have a valid command."
msgstr "Oyunun geçerli komutu yok."
#: src/command/command-runner.vala:67
#: src/command/command-runner.vala:60
#, c-format
msgid "Couldn’t run “%s”: execution failed."
msgstr "“%s” çalıştırılamadı: çalıştırma başarısız."
......@@ -668,7 +671,7 @@ msgstr "“%s” içinde eklentinin yeni örneği oluşturulamadı."
msgid "No description available."
msgstr "Uygun açıklama yok."
#: src/dummy/dummy-developer.vala:5 src/dummy/dummy-platform.vala:9
#: src/dummy/dummy-platform.vala:9 src/ui/developer-list-item.vala:19
msgid "Unknown"
msgstr "Bilinmeyen"
......@@ -749,16 +752,16 @@ msgstr ""
msgid "No module found for “%s”."
msgstr "“%s” için modül bulunamadı."
#: src/retro/retro-runner.vala:540
#: src/retro/retro-runner.vala:541
msgid "Unknown platform"
msgstr "Bilinmeyen platform"
#: src/retro/retro-runner.vala:585
#: src/retro/retro-runner.vala:586
#, c-format
msgid "The system “%s” isn’t supported yet, but full support is planned."
msgstr "“%s” sistemi henüz desteklenmiyor ancak tam destek planlanmaktadır."
#: src/retro/retro-runner.vala:588
#: src/retro/retro-runner.vala:589
msgid "The system isn’t supported yet, but full support is planned."
msgstr "Sistem henüz desteklenmiyor ancak tam destek planlanmaktadır."
......@@ -869,31 +872,31 @@ msgstr "WonderSwan"
msgid "WonderSwan Color"
msgstr "WonderSwan Color"
#: src/ui/application.vala:161
#: src/ui/application.vala:174
msgid "Select game files"
msgstr "Oyun dosyaları seç"
#: src/ui/application.vala:162
#: src/ui/application.vala:175
msgid "_Add"
msgstr "_Ekle"
#: src/ui/application.vala:162
#: src/ui/application.vala:175
msgid "_Cancel"
msgstr "_İptal"
#: src/ui/application.vala:369
#: src/ui/application.vala:389
msgid "GNOME Games"
msgstr "GNOME Oyunlar"
#: src/ui/application.vala:371
#: src/ui/application.vala:391
msgid "A video game player for GNOME"
msgstr "GNOME için video oyun oynatıcı"
#: src/ui/application.vala:375
#: src/ui/application.vala:395
msgid "Learn more about GNOME Games"
msgstr "GNOME Oyunlar hakkında daha çok öğren"
#: src/ui/application.vala:382
#: src/ui/application.vala:402
msgid "translator-credits"
msgstr "Emin Tufan Çetin <etcetin@gmail.com>"
......
......@@ -143,12 +143,15 @@ private class Games.CollectionBox : Gtk.Box {
[GtkCallback]
private void on_visible_child_changed () {
if (viewstack.visible_child == platform_view) {
platform_view.filtering_text = search_bar.text;
platform_view.select_default_row ();
}
else if (viewstack.visible_child == developer_view) {
developer_view.filtering_text = search_bar.text;
developer_view.select_default_row ();
}
else {
collection_view.filtering_text = search_bar.text;
collection_view.reset_scroll_position ();
}
}
......
......@@ -7,7 +7,9 @@ private class Games.CollectionIconView : Gtk.Bin {
private string[] filtering_terms;
public string filtering_text {
set {
filtering_terms = value.split (" ");
if (value != null)
filtering_terms = value.split (" ");
flow_box.invalidate_filter ();
}
}
......@@ -78,9 +80,6 @@ private class Games.CollectionIconView : Gtk.Bin {
[GtkChild]
private GamepadBrowse gamepad_browse;
// Current size used by the thumbnails.
private int game_view_size;
static construct {
set_css_name ("gamescollectioniconview");
}
......@@ -215,7 +214,6 @@ private class Games.CollectionIconView : Gtk.Bin {
var child = new Gtk.FlowBoxChild ();
game_view.visible = true;
game_view.size = game_view_size;
child.visible = true;
child.add (game_view);
......@@ -275,27 +273,8 @@ private class Games.CollectionIconView : Gtk.Bin {
// them rather than a few huge thumbnails, making Games more usable on
// small screens.
if (allocation.width < 960)
set_size (128);
get_style_context ().remove_class ("large");
else
set_size (256);
}
private void set_size (int size) {
if (game_view_size == size)
return;
game_view_size = size;
flow_box.forall ((child) => {
var flow_box_child = child as Gtk.FlowBoxChild;
assert (flow_box_child != null);
var game_view = flow_box_child.get_child () as GameIconView;
assert (game_view != null);
game_view.size = size;
});
get_style_context ().add_class ("large");
}
}
......@@ -23,6 +23,9 @@ private class Games.DisplayHeaderBar : Gtk.HeaderBar {
private MediaSelector media_selector;
[GtkChild (name = "back")]
private Gtk.Button _back;
[GtkChild]
private Gtk.Button fullscreen;
......@@ -43,6 +46,9 @@ private class Games.DisplayHeaderBar : Gtk.HeaderBar {
private void on_fullscreen_changed () {
fullscreen.visible = can_fullscreen && !is_fullscreen;
restore.visible = can_fullscreen && is_fullscreen;
_back.can_focus = !is_fullscreen;
restore.can_focus = !is_fullscreen;
}
[GtkCallback]
......
......@@ -20,24 +20,12 @@ private class Games.GameIconView : Gtk.Box {
}
}
public int size {
set {
thumbnail.width_request = value;
thumbnail.height_request = value;
title.width_request = value;
subtitle.width_request = value;
}
}
[GtkChild]
private GameThumbnail thumbnail;
[GtkChild]
private Gtk.Label title;
[GtkChild]
private Gtk.Label subtitle;
public GameIconView (Game game) {
this.game = game;
this.size = 256;
}
}
......@@ -71,6 +71,14 @@ private class Games.GameThumbnail: Gtk.DrawingArea {
set_css_name ("gamesgamethumbnail");
}
public override Gtk.SizeRequestMode get_request_mode () {
return Gtk.SizeRequestMode.HEIGHT_FOR_WIDTH;
}
public override void get_preferred_height_for_width (int width, out int minimum_height, out int natural_height) {
minimum_height = natural_height = width;
}
public override bool draw (Cairo.Context cr) {
var window = get_window ();
var style = get_style_context ();
......
......@@ -51,7 +51,7 @@ private class Games.GamepadConfigurer : Gtk.Box {
};
private const GamepadViewConfiguration STANDARD_GAMEPAD_VIEW_CONFIGURATION = {
"resource:///org/gnome/Games/gamepads/standard-gamepad.svg", STANDARD_GAMEPAD_INPUT_PATHS
"/org/gnome/Games/gamepads/standard-gamepad.svg", STANDARD_GAMEPAD_INPUT_PATHS
};
private enum State {
......
......@@ -12,7 +12,10 @@ private class Games.GamepadView : Gtk.DrawingArea {
}
public void set_configuration (GamepadViewConfiguration configuration) throws Error {
handle = new Rsvg.Handle.from_file (configuration.svg_path);
var bytes = resources_lookup_data (configuration.svg_path, ResourceLookupFlags.NONE);
var data = bytes.get_data ();
handle = new Rsvg.Handle.from_data (data);
set_size_request (handle.width, handle.height);
this.configuration = configuration;
input_highlights = new bool[configuration.input_paths.length];
......@@ -44,62 +47,46 @@ private class Games.GamepadView : Gtk.DrawingArea {
double x, y, scale;
calculate_image_dimensions (out x, out y, out scale);
var color_context = create_similar_context (context, x, y, scale);
color_gamepad (context, color_context);
var highlight_context = create_similar_context (context, x, y, scale);
highlight_gamepad (context, highlight_context);
context.translate (x, y);
context.scale (scale, scale);
color_gamepad (context);
highlight_gamepad (context);
return false;
}
private void color_gamepad (Cairo.Context gamepad_context, Cairo.Context color_context) {
var color_surface = color_context.get_target ();
handle.render_cairo (color_context);
private void color_gamepad (Cairo.Context context) {
context.push_group ();
handle.render_cairo (context);
var group = context.pop_group ();
Gdk.RGBA color;
get_style_context ().lookup_color ("theme_fg_color", out color);
gamepad_context.set_source_rgba (color.red, color.green, color.blue, color.alpha);
gamepad_context.mask_surface (color_surface, 0, 0);
context.set_source_rgba (color.red, color.green, color.blue, color.alpha);
context.mask (group);
}
private void highlight_gamepad (Cairo.Context gamepad_context, Cairo.Context highlight_context) {
var highlight_surface = highlight_context.get_target ();
private void highlight_gamepad (Cairo.Context context) {
for (var i = 0; i < configuration.input_paths.length; ++i)
if (input_highlights[i])
handle.render_cairo_sub (highlight_context, "#" + configuration.input_paths[i].path);
Gdk.RGBA color;
get_style_context ().lookup_color ("theme_selected_bg_color", out color);
gamepad_context.set_source_rgba (color.red, color.green, color.blue, color.alpha);
gamepad_context.mask_surface (highlight_surface, 0, 0);
}
private Cairo.Context create_similar_context (Cairo.Context context, double x, double y, double scale) {
var w = get_allocated_width ();
var h = get_allocated_height ();
var surface = context.get_target ();
var similar_surface = new Cairo.Surface.similar (surface, Cairo.Content.COLOR_ALPHA, w, h);
var similar_context = new Cairo.Context (similar_surface);
similar_context.translate (x, y);
similar_context.scale (scale, scale);
return similar_context;
if (input_highlights[i]) {
context.push_group ();
handle.render_cairo_sub (context, "#" + configuration.input_paths[i].path);
var group = context.pop_group ();
Gdk.RGBA color;
get_style_context ().lookup_color ("theme_selected_bg_color", out color);
context.set_source_rgba (color.red, color.green, color.blue, color.alpha);
context.mask (group);
}
}
private void calculate_image_dimensions (out double x, out double y, out double scale) {
double w = get_allocated_width ();
double h = get_allocated_height ();
double allocation_ratio = w / h;
double image_ratio = (double) handle.width / handle.height;
if (allocation_ratio > image_ratio) {
scale = h / handle.height;
}
else {
scale = w / handle.width;
}
scale = double.min (h / handle.height, w / handle.width);
x = (w - handle.width * scale) / 2;
y = (h - handle.height * scale) / 2;
}
......
......@@ -41,7 +41,7 @@ private class Games.KeyboardConfigurer : Gtk.Box {
};
private const GamepadViewConfiguration KEYBOARD_GAMEPAD_VIEW_CONFIGURATION = {
"resource:///org/gnome/Games/gamepads/standard-gamepad.svg", KEYBOARD_GAMEPAD_INPUT_PATHS
"/org/gnome/Games/gamepads/standard-gamepad.svg", KEYBOARD_GAMEPAD_INPUT_PATHS
};
private enum State {
......