Clean up the presentation of errors in the run dialog
Removes redundant text, better icon, and shows are better error when a command isn't found than "No such file or directory".
This commit is contained in:
parent
2cd84da835
commit
912a30c566
@ -29,7 +29,6 @@ dist_theme_DATA = \
|
|||||||
theme/close.svg \
|
theme/close.svg \
|
||||||
theme/corner-ripple.png \
|
theme/corner-ripple.png \
|
||||||
theme/dash-placeholder.svg \
|
theme/dash-placeholder.svg \
|
||||||
theme/dialog-error.svg \
|
|
||||||
theme/filter-selected.svg \
|
theme/filter-selected.svg \
|
||||||
theme/gnome-shell.css \
|
theme/gnome-shell.css \
|
||||||
theme/mosaic-view-active.svg \
|
theme/mosaic-view-active.svg \
|
||||||
|
@ -1,222 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
|
||||||
|
|
||||||
<svg
|
|
||||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
||||||
xmlns:cc="http://creativecommons.org/ns#"
|
|
||||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
width="24"
|
|
||||||
height="24"
|
|
||||||
id="svg4908"
|
|
||||||
sodipodi:version="0.32"
|
|
||||||
inkscape:version="0.47 r22583"
|
|
||||||
sodipodi:docname="dialog-error.svg"
|
|
||||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
|
||||||
inkscape:export-filename="/home/andreas/project/gnome-icon-theme/scalable/actions/process-stop.png"
|
|
||||||
inkscape:export-xdpi="90"
|
|
||||||
inkscape:export-ydpi="90"
|
|
||||||
version="1.0">
|
|
||||||
<defs
|
|
||||||
id="defs4910">
|
|
||||||
<inkscape:perspective
|
|
||||||
sodipodi:type="inkscape:persp3d"
|
|
||||||
inkscape:vp_x="0 : 24 : 1"
|
|
||||||
inkscape:vp_y="0 : 1000 : 0"
|
|
||||||
inkscape:vp_z="48 : 24 : 1"
|
|
||||||
inkscape:persp3d-origin="24 : 16 : 1"
|
|
||||||
id="perspective25" />
|
|
||||||
<radialGradient
|
|
||||||
gradientTransform="matrix(1.349881,0,0,1.349881,-3.498814,-1.810859)"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
r="9.7183542"
|
|
||||||
fy="4.9892726"
|
|
||||||
fx="9.6893959"
|
|
||||||
cy="4.9892726"
|
|
||||||
cx="9.6893959"
|
|
||||||
id="radialGradient5177"
|
|
||||||
xlink:href="#linearGradient5171"
|
|
||||||
inkscape:collect="always" />
|
|
||||||
<radialGradient
|
|
||||||
gradientTransform="matrix(2.417917,0,0,2.417917,-14.17917,-4.903184)"
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
r="9.7785711"
|
|
||||||
fy="3.458019"
|
|
||||||
fx="10"
|
|
||||||
cy="3.458019"
|
|
||||||
cx="10"
|
|
||||||
id="radialGradient5157"
|
|
||||||
xlink:href="#linearGradient5151"
|
|
||||||
inkscape:collect="always" />
|
|
||||||
<radialGradient
|
|
||||||
gradientUnits="userSpaceOnUse"
|
|
||||||
gradientTransform="matrix(0.928125,0,0,0.3143011,0.7718789,12.358015)"
|
|
||||||
r="9.0598059"
|
|
||||||
fy="18.022524"
|
|
||||||
fx="10.739184"
|
|
||||||
cy="18.022524"
|
|
||||||
cx="10.739184"
|
|
||||||
id="radialGradient5145"
|
|
||||||
xlink:href="#linearGradient5139"
|
|
||||||
inkscape:collect="always" />
|
|
||||||
<linearGradient
|
|
||||||
id="linearGradient5139"
|
|
||||||
inkscape:collect="always">
|
|
||||||
<stop
|
|
||||||
id="stop5141"
|
|
||||||
offset="0"
|
|
||||||
style="stop-color:black;stop-opacity:1;" />
|
|
||||||
<stop
|
|
||||||
id="stop5143"
|
|
||||||
offset="1"
|
|
||||||
style="stop-color:black;stop-opacity:0;" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
id="linearGradient5151"
|
|
||||||
inkscape:collect="always">
|
|
||||||
<stop
|
|
||||||
id="stop5153"
|
|
||||||
offset="0"
|
|
||||||
style="stop-color:white;stop-opacity:1;" />
|
|
||||||
<stop
|
|
||||||
id="stop5155"
|
|
||||||
offset="1"
|
|
||||||
style="stop-color:white;stop-opacity:0;" />
|
|
||||||
</linearGradient>
|
|
||||||
<linearGradient
|
|
||||||
id="linearGradient5171">
|
|
||||||
<stop
|
|
||||||
id="stop5173"
|
|
||||||
offset="0"
|
|
||||||
style="stop-color:#fe3a00;stop-opacity:1" />
|
|
||||||
<stop
|
|
||||||
id="stop5175"
|
|
||||||
offset="1"
|
|
||||||
style="stop-color:#c00;stop-opacity:1;" />
|
|
||||||
</linearGradient>
|
|
||||||
</defs>
|
|
||||||
<sodipodi:namedview
|
|
||||||
id="base"
|
|
||||||
pagecolor="#ffffff"
|
|
||||||
bordercolor="#666666"
|
|
||||||
borderopacity="1.0"
|
|
||||||
inkscape:pageopacity="0.0"
|
|
||||||
inkscape:pageshadow="2"
|
|
||||||
inkscape:zoom="22.627417"
|
|
||||||
inkscape:cx="24.442987"
|
|
||||||
inkscape:cy="10.142308"
|
|
||||||
inkscape:current-layer="g7001"
|
|
||||||
showgrid="false"
|
|
||||||
inkscape:grid-bbox="true"
|
|
||||||
inkscape:document-units="px"
|
|
||||||
showguides="true"
|
|
||||||
inkscape:guide-bbox="true"
|
|
||||||
inkscape:window-width="1674"
|
|
||||||
inkscape:window-height="970"
|
|
||||||
inkscape:window-x="0"
|
|
||||||
inkscape:window-y="26"
|
|
||||||
width="48px"
|
|
||||||
height="48px"
|
|
||||||
inkscape:window-maximized="0" />
|
|
||||||
<metadata
|
|
||||||
id="metadata4913">
|
|
||||||
<rdf:RDF>
|
|
||||||
<cc:Work
|
|
||||||
rdf:about="">
|
|
||||||
<dc:format>image/svg+xml</dc:format>
|
|
||||||
<dc:type
|
|
||||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
|
||||||
<dc:title>Stop Process</dc:title>
|
|
||||||
<dc:date>December 2006</dc:date>
|
|
||||||
<dc:creator>
|
|
||||||
<cc:Agent>
|
|
||||||
<dc:title>Jakub Steiner</dc:title>
|
|
||||||
</cc:Agent>
|
|
||||||
</dc:creator>
|
|
||||||
<dc:contributor>
|
|
||||||
<cc:Agent>
|
|
||||||
<dc:title>Andreas Nilsson</dc:title>
|
|
||||||
</cc:Agent>
|
|
||||||
</dc:contributor>
|
|
||||||
<cc:license
|
|
||||||
rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
|
|
||||||
<dc:subject>
|
|
||||||
<rdf:Bag>
|
|
||||||
<rdf:li>stop</rdf:li>
|
|
||||||
<rdf:li>halt</rdf:li>
|
|
||||||
</rdf:Bag>
|
|
||||||
</dc:subject>
|
|
||||||
</cc:Work>
|
|
||||||
<cc:License
|
|
||||||
rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
|
|
||||||
<cc:permits
|
|
||||||
rdf:resource="http://web.resource.org/cc/Reproduction" />
|
|
||||||
<cc:permits
|
|
||||||
rdf:resource="http://web.resource.org/cc/Distribution" />
|
|
||||||
<cc:requires
|
|
||||||
rdf:resource="http://web.resource.org/cc/Notice" />
|
|
||||||
<cc:permits
|
|
||||||
rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
|
|
||||||
<cc:requires
|
|
||||||
rdf:resource="http://web.resource.org/cc/ShareAlike" />
|
|
||||||
<cc:requires
|
|
||||||
rdf:resource="http://web.resource.org/cc/SourceCode" />
|
|
||||||
</cc:License>
|
|
||||||
</rdf:RDF>
|
|
||||||
</metadata>
|
|
||||||
<g
|
|
||||||
id="layer1"
|
|
||||||
inkscape:label="Layer 1"
|
|
||||||
inkscape:groupmode="layer"
|
|
||||||
transform="translate(0,-24)">
|
|
||||||
<g
|
|
||||||
inkscape:label="Layer 1"
|
|
||||||
id="g7001"
|
|
||||||
transform="matrix(1.4566048,0,0,1.4455352,0.4112881,1.2324709)">
|
|
||||||
<path
|
|
||||||
transform="matrix(0.91468137,0,0,0.70055266,-1.8812476,17.474032)"
|
|
||||||
d="m 19.79899,18.022524 a 9.0598059,3.0935922 0 1 1 -18.1196115,0 9.0598059,3.0935922 0 1 1 18.1196115,0 z"
|
|
||||||
sodipodi:ry="3.0935922"
|
|
||||||
sodipodi:rx="9.0598059"
|
|
||||||
sodipodi:cy="18.022524"
|
|
||||||
sodipodi:cx="10.739184"
|
|
||||||
id="path5137"
|
|
||||||
style="color:#000000;fill:url(#radialGradient5145);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible"
|
|
||||||
sodipodi:type="arc" />
|
|
||||||
<path
|
|
||||||
transform="matrix(0.87347736,0,0,0.83068052,-0.79308842,15.602788)"
|
|
||||||
d="m 19.25,9.625 a 9.25,9.25 0 1 1 -18.5,0 9.25,9.25 0 1 1 18.5,0 z"
|
|
||||||
sodipodi:ry="9.25"
|
|
||||||
sodipodi:rx="9.25"
|
|
||||||
sodipodi:cy="9.625"
|
|
||||||
sodipodi:cx="10"
|
|
||||||
id="path4262"
|
|
||||||
style="color:#000000;fill:url(#radialGradient5177);fill-opacity:1;fill-rule:nonzero;stroke:#a40000;stroke-width:0.47435912;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
|
|
||||||
sodipodi:type="arc" />
|
|
||||||
<path
|
|
||||||
sodipodi:type="arc"
|
|
||||||
style="opacity:0.35393258;color:#000000;fill:none;stroke:url(#radialGradient5157);stroke-width:0.49999994;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
|
|
||||||
id="path5149"
|
|
||||||
sodipodi:cx="10"
|
|
||||||
sodipodi:cy="9.625"
|
|
||||||
sodipodi:rx="9.25"
|
|
||||||
sodipodi:ry="9.25"
|
|
||||||
d="m 19.25,9.625 a 9.25,9.25 0 1 1 -18.5,0 9.25,9.25 0 1 1 18.5,0 z"
|
|
||||||
transform="matrix(0.82868359,0,0,0.78808147,-0.34515141,16.012803)" />
|
|
||||||
<path
|
|
||||||
sodipodi:nodetypes="cc"
|
|
||||||
id="path5159"
|
|
||||||
d="m 4.834121,20.642783 6.215127,5.91061"
|
|
||||||
style="color:#000000;fill:none;stroke:#ffffff;stroke-width:1.21219134;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible" />
|
|
||||||
<path
|
|
||||||
style="color:#000000;fill:none;stroke:#ffffff;stroke-width:1.21219146;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible"
|
|
||||||
d="M 11.04925,20.622826 4.8159529,26.553393"
|
|
||||||
id="path5161"
|
|
||||||
sodipodi:nodetypes="cc" />
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 8.0 KiB |
@ -1080,15 +1080,14 @@ StTooltip StLabel {
|
|||||||
color: white;
|
color: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
.run-dialog-error-icon {
|
.run-dialog-error-label {
|
||||||
background-image: url("dialog-error.svg");
|
font-size: 12px;
|
||||||
width: 36px;
|
color: white;
|
||||||
height: 36px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.run-dialog-error-label {
|
.run-dialog-error-box {
|
||||||
font-size: 16px;
|
padding-top: 15px;
|
||||||
color: white;
|
spacing: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.run-dialog-entry {
|
.run-dialog-entry {
|
||||||
|
@ -82,12 +82,17 @@ function trySpawn(argv)
|
|||||||
GLib.SpawnFlags.SEARCH_PATH,
|
GLib.SpawnFlags.SEARCH_PATH,
|
||||||
null, null);
|
null, null);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
if (err.code == GLib.SpawnError.G_SPAWN_ERROR_NOENT) {
|
||||||
|
err.message = _("Command not found");
|
||||||
|
} else {
|
||||||
// The exception from gjs contains an error string like:
|
// The exception from gjs contains an error string like:
|
||||||
// Error invoking GLib.spawn_command_line_async: Failed to
|
// Error invoking GLib.spawn_command_line_async: Failed to
|
||||||
// execute child process "foo" (No such file or directory)
|
// execute child process "foo" (No such file or directory)
|
||||||
// We are only interested in the part in the parentheses. (And
|
// We are only interested in the part in the parentheses. (And
|
||||||
// we can't pattern match the text, since it gets localized.)
|
// we can't pattern match the text, since it gets localized.)
|
||||||
err.message = err.message.replace(/.*\((.+)\)/, '$1');
|
err.message = err.message.replace(/.*\((.+)\)/, '$1');
|
||||||
|
}
|
||||||
|
|
||||||
throw err;
|
throw err;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -219,20 +219,20 @@ __proto__: ModalDialog.ModalDialog.prototype,
|
|||||||
this._entryText.grab_key_focus();
|
this._entryText.grab_key_focus();
|
||||||
}));
|
}));
|
||||||
|
|
||||||
this._errorBox = new St.BoxLayout();
|
this._errorBox = new St.BoxLayout({ style_class: 'run-dialog-error-box' });
|
||||||
|
|
||||||
this.contentLayout.add(this._errorBox, { expand: true });
|
this.contentLayout.add(this._errorBox, { expand: true });
|
||||||
|
|
||||||
let errorIcon = new St.Button({ style_class: 'run-dialog-error-icon' });
|
let errorIcon = new St.Icon({ icon_name: 'dialog-error', icon_size: 24, style_class: 'run-dialog-error-icon' });
|
||||||
|
|
||||||
this._errorBox.add(errorIcon);
|
this._errorBox.add(errorIcon, { y_align: St.Align.MIDDLE });
|
||||||
|
|
||||||
this._commandError = false;
|
this._commandError = false;
|
||||||
|
|
||||||
this._errorMessage = new St.Label({ style_class: 'run-dialog-error-label' });
|
this._errorMessage = new St.Label({ style_class: 'run-dialog-error-label' });
|
||||||
this._errorMessage.clutter_text.line_wrap = true;
|
this._errorMessage.clutter_text.line_wrap = true;
|
||||||
|
|
||||||
this._errorBox.add(this._errorMessage, { expand: true });
|
this._errorBox.add(this._errorMessage, { expand: true, y_align: St.Align.MIDDLE });
|
||||||
|
|
||||||
this._errorBox.hide();
|
this._errorBox.hide();
|
||||||
|
|
||||||
@ -348,8 +348,7 @@ __proto__: ModalDialog.ModalDialog.prototype,
|
|||||||
} else {
|
} else {
|
||||||
this._commandError = true;
|
this._commandError = true;
|
||||||
|
|
||||||
let errorStr = _("Execution of '%s' failed:").format(command) + '\n' + e.message;
|
this._errorMessage.set_text(e.message);
|
||||||
this._errorMessage.set_text(errorStr);
|
|
||||||
|
|
||||||
if (!this._errorBox.visible) {
|
if (!this._errorBox.visible) {
|
||||||
let [errorBoxMinHeight, errorBoxNaturalHeight] = this._errorBox.get_preferred_height(-1);
|
let [errorBoxMinHeight, errorBoxNaturalHeight] = this._errorBox.get_preferred_height(-1);
|
||||||
|
Loading…
Reference in New Issue
Block a user