This commit is contained in:
kramo
2023-03-14 21:20:59 +01:00
parent 434b7a11f1
commit 32d9f9a880
16 changed files with 99 additions and 63 deletions

3
.gitignore vendored
View File

@@ -1,2 +1 @@
/subprojects/blueprint-compiler
/src/__pycache__
/subprojects/blueprint-compiler

View File

@@ -21,6 +21,7 @@ from gi.repository import Gtk
from .get_cover import get_cover
@Gtk.Template(resource_path='/hu/kramo/Cartridges/gtk/game.ui')
class game(Gtk.Box):
__gtype_name__ = 'game'

View File

@@ -17,23 +17,27 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
import gi, sys, os, time, json
import sys
import time
import gi
gi.require_version("Gtk", "4.0")
gi.require_version("Adw", "1")
from gi.repository import Gtk, Gio, GLib, Adw
from gi.repository import Adw, Gio, GLib, Gtk
from .window import CartridgesWindow
from .preferences import PreferencesWindow
from .toggle_hidden import toggle_hidden
from .save_games import save_games
from .get_games import get_games
from .run_command import run_command
from .steam_parser import steam_parser
from .heroic_parser import heroic_parser
from .bottles_parser import bottles_parser
from .create_details_window import create_details_window
from .get_games import get_games
from .heroic_parser import heroic_parser
from .preferences import PreferencesWindow
from .run_command import run_command
from .save_games import save_games
from .steam_parser import steam_parser
from .toggle_hidden import toggle_hidden
from .window import CartridgesWindow
class CartridgesApplication(Adw.Application):
def __init__(self):

View File

@@ -17,7 +17,8 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
from gi.repository import Adw, Gtk, Gio, GLib
from gi.repository import Adw, Gio, GLib, Gtk
@Gtk.Template(resource_path='/hu/kramo/Cartridges/gtk/preferences.ui')
class PreferencesWindow(Adw.PreferencesWindow):

View File

@@ -17,14 +17,17 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
import os
import time
import yaml
from gi.repository import GLib, Gtk
from .create_dialog import create_dialog
from .save_cover import save_cover
def bottles_parser(parent_widget, action):
import os, yaml, time
from gi.repository import Gtk, GLib
from .create_dialog import create_dialog
from .save_cover import save_cover
schema = parent_widget.schema
bottles_dir = os.path.expanduser(schema.get_string("bottles-location"))
@@ -62,7 +65,6 @@ def bottles_parser(parent_widget, action):
bottles_dir = os.path.expanduser(schema.get_string("bottles-location"))
datatypes = ["path", "id", "name", "thumbnail"]
bottles_games = {}
current_time = int(time.time())

View File

@@ -17,14 +17,19 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
def create_details_window(parent_widget, game_id = None):
import time, os, json
from gi.repository import Adw, Gtk, Gio, GLib, GdkPixbuf
from .create_dialog import create_dialog
from .save_games import save_games
from .save_cover import save_cover
from .get_cover import get_cover
import json
import os
import time
from gi.repository import Adw, GdkPixbuf, Gio, GLib, Gtk
from .create_dialog import create_dialog
from .get_cover import get_cover
from .save_cover import save_cover
from .save_games import save_games
def create_details_window(parent_widget, game_id = None):
window = Adw.Window(
modal = True,
default_width = 450,
@@ -150,6 +155,8 @@ def create_details_window(parent_widget, game_id = None):
create_dialog(window, _("Couldn't Add Game"), _("Executable cannot be empty."))
return
# Increment the number after the game id (eg. imported_1, imported_2)
numbers = [0]
for game in games:

View File

@@ -17,9 +17,10 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
def create_dialog(parent_widget, heading, body, extra_option=None, extra_label=None):
from gi.repository import Adw, Gtk
from gi.repository import Adw, Gtk
def create_dialog(parent_widget, heading, body, extra_option=None, extra_label=None):
dialog = Adw.MessageDialog.new(parent_widget, _(heading), body)
dialog.add_response("dismiss", _("Dismiss"))

View File

@@ -17,15 +17,17 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
def get_cover(game_id, parent_widget):
from gi.repository import GdkPixbuf
import os
import os
from gi.repository import GdkPixbuf
def get_cover(game_id, parent_widget):
if game_id in parent_widget.pixbufs.keys():
return parent_widget.pixbufs[game_id]
cover_path = os.path.join(os.environ.get("XDG_DATA_HOME"), "cartridges", "covers", game_id + ".png")
if os.path.isfile(cover_path) == False:
if not os.path.isfile(cover_path):
return parent_widget.placeholder_pixbuf
return GdkPixbuf.Pixbuf.new_from_file(cover_path)

View File

@@ -17,9 +17,11 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
def get_games(game_ids=None):
import os, json
import json
import os
def get_games(game_ids=None):
games_dir = os.path.join(os.environ.get("XDG_DATA_HOME"), "cartridges", "games")
games = {}

View File

@@ -17,14 +17,18 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
import hashlib
import json
import os
import time
from gi.repository import GLib, Gtk
from .create_dialog import create_dialog
from .save_cover import save_cover
def heroic_parser(parent_widget, action):
import os, json, time, hashlib
from gi.repository import Gtk, GLib
from .create_dialog import create_dialog
from .save_cover import save_cover
schema = parent_widget.schema
heroic_dir = os.path.expanduser(schema.get_string("heroic-location"))

View File

@@ -17,11 +17,13 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
import subprocess
import sys
from gi.repository import Gio
def run_command(parent_widget, executable):
import subprocess, sys
from gi.repository import Gio
subprocess.Popen(["flatpak-spawn --host " + executable], shell=True, start_new_session=True)
if Gio.Settings.new("hu.kramo.Cartridges").get_boolean("exit-after-launch"):

View File

@@ -17,10 +17,12 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
def save_cover(game, parent_widget, file_path, pixbuf = None, game_id = None):
from gi.repository import Gio, GdkPixbuf
import os
import os
from gi.repository import GdkPixbuf, Gio
def save_cover(game, parent_widget, file_path, pixbuf = None, game_id = None):
covers_dir = os.path.join(os.environ.get("XDG_DATA_HOME"), "cartridges", "covers")
if os.path.exists(covers_dir) == False:
os.makedirs(covers_dir)

View File

@@ -17,11 +17,12 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
def save_games(games):
import os, json
import json
import os
def save_games(games):
games_dir = os.path.join(os.environ.get("XDG_DATA_HOME"), "cartridges", "games")
existing = []
if os.path.exists(games_dir) == False:
os.makedirs(games_dir)

View File

@@ -17,14 +17,17 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
import os
import re
import time
from gi.repository import GLib, Gtk
from .create_dialog import create_dialog
from .save_cover import save_cover
def steam_parser(parent_widget, action):
import os, re, time
from gi.repository import Gtk, GLib
from .create_dialog import create_dialog
from .save_cover import save_cover
schema = parent_widget.schema
steam_dir = os.path.expanduser(schema.get_string("steam-location"))

View File

@@ -17,8 +17,11 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
import json
import os
def toggle_hidden(game):
import os, json
games_dir = os.path.join(os.environ.get("XDG_DATA_HOME"), "cartridges", "games")
if not os.path.exists(games_dir):

View File

@@ -17,15 +17,17 @@
#
# SPDX-License-Identifier: GPL-3.0-or-later
from gi.repository import Gio, GLib, Adw, GdkPixbuf, Gtk
import datetime
import os
import os, json, time, datetime
from gi.repository import Adw, GdkPixbuf, Gio, GLib, Gtk
from .game import game
from .get_cover import get_cover
from .get_games import get_games
from .save_games import save_games
@Gtk.Template(resource_path="/hu/kramo/Cartridges/gtk/window.ui")
class CartridgesWindow(Adw.ApplicationWindow):
__gtype_name__ = "CartridgesWindow"