diff --git a/data/io.github.flattool.Warehouse.desktop.in b/data/io.github.flattool.Warehouse.desktop.in index 33298e3b..b5847a7c 100644 --- a/data/io.github.flattool.Warehouse.desktop.in +++ b/data/io.github.flattool.Warehouse.desktop.in @@ -1,7 +1,7 @@ [Desktop Entry] # Translators: Do not translate the application name Name=Warehouse -Exec=warehouse %F +Exec=warehouse %U Icon=io.github.flattool.Warehouse Terminal=false Type=Application @@ -10,4 +10,4 @@ StartupNotify=true Keywords=flatpak;packages;apps;remotes;snapshots; Comment=Manage all things Flatpak X-Purism-FormFactor=Workstation;Mobile; -MimeType=application/vnd.flatpak.ref;application/vnd.flatpak;x-scheme-handler/flatpak;application/vnd.flatpak.repo +MimeType=application/vnd.flatpak.ref;application/vnd.flatpak;x-scheme-handler/flatpak;x-scheme-handler/flatpak+https;x-scheme-handler/flatpak+http;application/vnd.flatpak.repo diff --git a/src/install_page/select_page.py b/src/install_page/select_page.py index b1d2a853..325ae352 100644 --- a/src/install_page/select_page.py +++ b/src/install_page/select_page.py @@ -45,11 +45,12 @@ def local_install_apply_callback(self, installation, file_names): requests = [] for file in file_names: # sadly flatpak doesn't support multiple local installs in one command :( + file_ref = file.get_path() or file.get_uri() requests.append( { "remote": "local_file", "installation": installation, - "package_names": [file.get_path()], + "package_names": [file_ref], "extra_flags": [], } ) diff --git a/src/main.py b/src/main.py index dd84c96f..56986f79 100644 --- a/src/main.py +++ b/src/main.py @@ -206,10 +206,15 @@ def do_command_line(self, command_line): if len(args) > 1: # First arg is program name files = [] - for path in args[1:]: - gfile = Gio.File.new_for_path(path) - if gfile.query_exists(): + for arg in args[1:]: + if arg.startswith("flatpak+https://") or arg.startswith("flatpak+http://"): + url = arg[len("flatpak+"):] + gfile = Gio.File.new_for_uri(url) files.append(gfile) + else: + gfile = Gio.File.new_for_path(arg) + if gfile.query_exists(): + files.append(gfile) if files: self.open(files, "") diff --git a/src/main_window/window.py b/src/main_window/window.py index df35cf1c..2636323c 100644 --- a/src/main_window/window.py +++ b/src/main_window/window.py @@ -129,9 +129,9 @@ def on_file_drop(self, drop_target, value, x, y): paks = [] remotes = [] for file in value: - path = file.get_path() + path = file.get_path() or file.get_uri() if path.endswith(".flatpak") or path.endswith(".flatpakref"): - paks.append(Gio.File.new_for_path(path)) + paks.append(file) elif path.endswith(".flatpakrepo"): remotes.append(path) else: