55e08a3a2f
The dialog is shown at session start, which right now means in the regular session, however the plan is to start the session in the overview. When that happens, the "Take the Tour" button should get the user to the Tour without additonal actions. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1699>
63 lines
1.8 KiB
JavaScript
63 lines
1.8 KiB
JavaScript
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
|
|
/* exported WelcomeDialog */
|
|
|
|
const { Clutter, GObject, Shell, St } = imports.gi;
|
|
|
|
const Config = imports.misc.config;
|
|
const Dialog = imports.ui.dialog;
|
|
const Main = imports.ui.main;
|
|
const ModalDialog = imports.ui.modalDialog;
|
|
|
|
var DialogResponse = {
|
|
NO_THANKS: 0,
|
|
TAKE_TOUR: 1,
|
|
};
|
|
|
|
var WelcomeDialog = GObject.registerClass(
|
|
class WelcomeDialog extends ModalDialog.ModalDialog {
|
|
_init() {
|
|
super._init({ styleClass: 'welcome-dialog' });
|
|
|
|
const appSystem = Shell.AppSystem.get_default();
|
|
this._tourAppInfo = appSystem.lookup_app('org.gnome.Tour.desktop');
|
|
|
|
this._buildLayout();
|
|
}
|
|
|
|
open() {
|
|
if (!this._tourAppInfo)
|
|
return;
|
|
|
|
super.open();
|
|
}
|
|
|
|
_buildLayout() {
|
|
const [majorVersion] = Config.PACKAGE_VERSION.split('.');
|
|
const title = _('Welcome to GNOME %s'.format(majorVersion));
|
|
const description = _('If you want to learn your way around, check out the tour.');
|
|
const content = new Dialog.MessageDialogContent({ title, description });
|
|
|
|
const icon = new St.Widget({ style_class: 'welcome-dialog-image' });
|
|
content.insert_child_at_index(icon, 0);
|
|
|
|
this.contentLayout.add_child(content);
|
|
|
|
this.addButton({ label: _('No Thanks'),
|
|
action: () => {
|
|
this._sendResponse(DialogResponse.NO_THANKS);
|
|
},
|
|
key: Clutter.KEY_Escape });
|
|
this.addButton({ label: _('Take Tour'),
|
|
action: () => this._sendResponse(DialogResponse.TAKE_TOUR) });
|
|
}
|
|
|
|
_sendResponse(response) {
|
|
if (response === DialogResponse.TAKE_TOUR) {
|
|
this._tourAppInfo.launch(0, -1, Shell.AppLaunchGpu.APP_PREF);
|
|
Main.overview.hide();
|
|
}
|
|
|
|
this.close();
|
|
}
|
|
});
|