fix: return no menu item when file is not a dir

This commit is contained in:
2022-09-24 23:33:11 +02:00
parent dedb0b385c
commit fa2f608ed2

View File

@@ -1,3 +1,4 @@
import os
import subprocess import subprocess
from gi.repository import Nautilus, GObject from gi.repository import Nautilus, GObject
@@ -7,23 +8,25 @@ class KittyNautilusExtension(GObject.GObject, Nautilus.MenuProvider):
def __init__(self): def __init__(self):
pass pass
def launch_kitty(self, menu: Nautilus.MenuItem, file): def launch_kitty(self, menu: Nautilus.MenuItem, path):
path = file.get_location().get_path()
subprocess.Popen(["kitty", "--working-directory", path], shell=False) subprocess.Popen(["kitty", "--working-directory", path], shell=False)
def make_item(self, name, file) -> Nautilus.MenuItem: def make_item(self, name, path) -> Nautilus.MenuItem:
item = Nautilus.MenuItem( item = Nautilus.MenuItem(
name=name, name=name,
label="Open in Kitty", label="Open in Kitty",
tip="Open current folder in Kitty", tip="Open current folder in Kitty",
icon="terminal", icon="terminal",
) )
item.connect("activate", self.launch_kitty, file) item.connect("activate", self.launch_kitty, path)
return item return item
def get_file_items(self, _window, files) -> [Nautilus.MenuItem]: def get_file_items(self, _window, files) -> [Nautilus.MenuItem]:
if len(files) == 1: if len(files) == 1:
return [self.make_item("NautilusFileOpenKitty", files[0])] path = files[0].get_location().get_path()
if os.path.isdir(path):
return [self.make_item("NautilusFileOpenKitty", path)]
def get_background_items(self, _window, file) -> [Nautilus.MenuItem]: def get_background_items(self, _window, file) -> [Nautilus.MenuItem]:
return [self.make_item("NautilusBackgroundOpenKitty", file)] path = file.get_location().get_path()
return [self.make_item("NautilusBackgroundOpenKitty", path)]