@@ -5,7 +5,9 @@ import Xdp from "gi://Xdp";
55import XdpGtk from "gi://XdpGtk4" ;
66
77import About from "./about.js" ;
8+ import Window from "./window.js" ;
89import { portal , settings } from "./util.js" ;
10+ import { createSession } from "./sessions.js" ;
911
1012export default function Actions ( { application } ) {
1113 const quit = new Gio . SimpleAction ( {
@@ -65,6 +67,15 @@ export default function Actions({ application }) {
6567 // application.add_action(settings.create_action("safe-mode"));
6668 // application.add_action(settings.create_action("auto-preview"));
6769
70+ const action_new_project = new Gio . SimpleAction ( {
71+ name : "new" ,
72+ } ) ;
73+ action_new_project . connect ( "activate" , ( _self , _target ) => {
74+ newProject ( { application } ) . catch ( console . error ) ;
75+ } ) ;
76+ application . add_action ( action_new_project ) ;
77+ application . set_accels_for_action ( "app.new" , [ "<Control>N" ] ) ;
78+
6879 const action_open_file = new Gio . SimpleAction ( {
6980 name : "open" ,
7081 parameter_type : new GLib . VariantType ( "s" ) ,
@@ -97,6 +108,12 @@ async function showScreenshot({ application, uri }) {
97108 ) ;
98109}
99110
111+ async function newProject ( { application } ) {
112+ const session = createSession ( ) ;
113+ const { load } = Window ( { application, session } ) ;
114+ await load ( ) ;
115+ }
116+
100117async function open ( { application, hint } ) {
101118 const file_dialog = new Gtk . FileDialog ( ) ;
102119
0 commit comments