diff options
author | sowgro <tpoke.ferrari@gmail.com> | 2025-07-22 02:22:52 -0400 |
---|---|---|
committer | sowgro <tpoke.ferrari@gmail.com> | 2025-07-22 02:22:52 -0400 |
commit | 6ab8db2d2472abd545cb4873ae21ed11adc8d817 (patch) | |
tree | ddcee30958740ab0743e3c80ff53c5ded36e8805 /nautilus-newfile.py | |
download | nautilus-newfile-6ab8db2d2472abd545cb4873ae21ed11adc8d817.tar.gz nautilus-newfile-6ab8db2d2472abd545cb4873ae21ed11adc8d817.tar.bz2 nautilus-newfile-6ab8db2d2472abd545cb4873ae21ed11adc8d817.zip |
Initial commit
Diffstat (limited to '')
-rw-r--r-- | nautilus-newfile.py | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/nautilus-newfile.py b/nautilus-newfile.py new file mode 100644 index 0000000..0af4831 --- /dev/null +++ b/nautilus-newfile.py @@ -0,0 +1,37 @@ +import os, gi +gi.require_version('Adw', '1') +gi.require_version("Gtk", "4.0") +from gi.repository import Nautilus, GObject, Adw, Gtk, Gio +from typing import List + +@Gtk.Template(filename=os.path.join(__file__, "../new-file-dialog.ui")) +class NewFileDialog(Adw.Dialog): + fileinfo:Gio.FileInfo = None + __gtype_name__ = "NewFileDialog" + name_entry: Adw.EntryRow = Gtk.Template.Child() + + def __init__(self, fileinfo): + super().__init__() + self.fileinfo = fileinfo + + @Gtk.Template.Callback() + def on_create_clicked(self, _): + f: Gio.File = (self.fileinfo.get_location()) + f.get_child(self.name_entry.get_text()).create(Gio.FileCreateFlags(0), None) + self.close() + +class NautilusNewfile(GObject.GObject, Nautilus.MenuProvider): + def show_dialog(self, _, fileinfo): + + dialog = NewFileDialog(fileinfo) + dialog.present() + + def get_background_items(self, fileinfo: Gio.FileInfo) -> List[Nautilus.MenuItem]: + + menuitem = Nautilus.MenuItem( + name="ExampleMenuProvider::Foo2", + label="New File...", + ) + menuitem.connect('activate', self.show_dialog, fileinfo) + + return [menuitem,]
\ No newline at end of file |