screenshot-ui: Show a notification on capture
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1954>
This commit is contained in:
parent
95df526996
commit
0b83541a3b
@ -7,6 +7,7 @@ const GrabHelper = imports.ui.grabHelper;
|
|||||||
const Layout = imports.ui.layout;
|
const Layout = imports.ui.layout;
|
||||||
const Lightbox = imports.ui.lightbox;
|
const Lightbox = imports.ui.lightbox;
|
||||||
const Main = imports.ui.main;
|
const Main = imports.ui.main;
|
||||||
|
const MessageTray = imports.ui.messageTray;
|
||||||
const Workspace = imports.ui.workspace;
|
const Workspace = imports.ui.workspace;
|
||||||
|
|
||||||
Gio._promisify(Shell.Screenshot.prototype, 'pick_color', 'pick_color_finish');
|
Gio._promisify(Shell.Screenshot.prototype, 'pick_color', 'pick_color_finish');
|
||||||
@ -1584,6 +1585,49 @@ class ScreenshotUI extends St.Widget {
|
|||||||
throw e;
|
throw e;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Show a notification.
|
||||||
|
const source = new MessageTray.Source(
|
||||||
|
// Translators: notification source name.
|
||||||
|
_('Screenshot'),
|
||||||
|
'applets-screenshooter'
|
||||||
|
);
|
||||||
|
const notification = new MessageTray.Notification(
|
||||||
|
source,
|
||||||
|
// Translators: notification title.
|
||||||
|
_('Screenshot captured'),
|
||||||
|
// Translators: notification body when a screenshot was captured.
|
||||||
|
_('You can paste the image from the clipboard.'),
|
||||||
|
{
|
||||||
|
datetime: time,
|
||||||
|
gicon: Gio.BytesIcon.new(bytes),
|
||||||
|
}
|
||||||
|
);
|
||||||
|
// Translators: button on the screenshot notification.
|
||||||
|
notification.addAction(_('Show in Files'), () => {
|
||||||
|
const app =
|
||||||
|
Gio.app_info_get_default_for_type('inode/directory', false);
|
||||||
|
|
||||||
|
if (app === null) {
|
||||||
|
// It may be null e.g. in a toolbox without nautilus.
|
||||||
|
log('Error showing in files: no default app set for inode/directory');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
app.launch([file], global.create_app_launch_context(0, -1));
|
||||||
|
});
|
||||||
|
notification.connect('activated', () => {
|
||||||
|
try {
|
||||||
|
Gio.app_info_launch_default_for_uri(
|
||||||
|
file.get_uri(), global.create_app_launch_context(0, -1));
|
||||||
|
} catch (err) {
|
||||||
|
logError(err, 'Error opening screenshot');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
notification.setTransient(true);
|
||||||
|
|
||||||
|
Main.messageTray.add(source);
|
||||||
|
source.showNotification(notification);
|
||||||
}
|
}
|
||||||
|
|
||||||
_saveScreenshot() {
|
_saveScreenshot() {
|
||||||
|
Loading…
Reference in New Issue
Block a user