aboutsummaryrefslogtreecommitdiff
path: root/nautilus-newfile.py
diff options
context:
space:
mode:
Diffstat (limited to 'nautilus-newfile.py')
-rw-r--r--nautilus-newfile.py37
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