Commit 21aa13aa authored by Gavin Williams's avatar Gavin Williams Committed by Commit Bot

Add printer status icon to destination dialog

Add the printer status icon to the destination dialog to show the status
of local CrOS printers.

Bug: 1123754
Change-Id: Ie4012183b9815a5eac906b5379e30e17a78fc071
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2406381
Commit-Queue: Gavin Williams <gavinwill@chromium.org>
Reviewed-by: default avatarRebekah Potter <rbpotter@chromium.org>
Cr-Commit-Position: refs/heads/master@{#806886}
parent 2c970cbe
......@@ -65,8 +65,21 @@
:host([stale_]) :-webkit-any(iron-icon, .name, .connection-status) {
opacity: 0.4;
}
<if expr="chromeos">
printer-status-icon-cros {
padding-inline-end: 12px;
}
</if>
</style>
<iron-icon icon$="[[destination.icon]]"></iron-icon>
<iron-icon icon$="[[destination.icon]]"
hidden="[[isDestinationCrosLocal_]]">
</iron-icon>
<if expr="chromeos">
<printer-status-icon-cros icon-location="[[iconLocation_.DROPDOWN]]"
hidden="[[!isDestinationCrosLocal_]]">
</printer-status-icon-cros>
</if>
<span class="name searchable">[[destination.displayName]]</span>
<span class="search-hint searchable">[[searchHint_]]</span>
<span class="connection-status"
......
......@@ -8,14 +8,21 @@ import 'chrome://resources/cr_elements/shared_vars_css.m.js';
import 'chrome://resources/polymer/v3_0/iron-icon/iron-icon.js';
import './icons.js';
import './print_preview_vars_css.js';
// <if expr="chromeos">
import './printer_status_icon_cros.js';
// </if>
import '../strings.m.js';
import {assert} from 'chrome://resources/js/assert.m.js';
import {isChromeOS} from 'chrome://resources/js/cr.m.js';
import {loadTimeData} from 'chrome://resources/js/load_time_data.m.js';
import {removeHighlights} from 'chrome://resources/js/search_highlight_utils.m.js';
import {html, Polymer} from 'chrome://resources/polymer/v3_0/polymer/polymer_bundled.min.js';
import {Destination, DestinationOrigin} from '../data/destination.js';
// <if expr="chromeos">
import {IconLocation} from '../data/printer_status_cros.js';
// </if>
import {updateHighlights} from './highlight_utils.js';
......@@ -50,6 +57,13 @@ Polymer({
/** @private {string} */
searchHint_: String,
/** @private */
isDestinationCrosLocal_: {
type: Boolean,
computed: 'computeIsDestinationCrosLocal_(destination)',
reflectToAttribute: true,
},
// <if expr="chromeos">
/** @private {!DestinationConfigStatus} */
configurationStatus_: {
......@@ -57,6 +71,15 @@ Polymer({
value: DestinationConfigStatus.IDLE,
},
/**
* Mirroring the enum so that it can be used from HTML bindings.
* @private
*/
iconLocation_: {
type: Object,
value: IconLocation,
},
/**
* Mirroring the enum so that it can be used from HTML bindings.
* @private
......@@ -65,6 +88,15 @@ Polymer({
type: Object,
value: DestinationConfigStatus,
},
/** @private */
printerStatusFlagEnabled_: {
type: Boolean,
value() {
return loadTimeData.getBoolean('showPrinterStatusInDialog');
},
readOnly: true,
},
// </if>
},
......@@ -153,4 +185,24 @@ Polymer({
return loadTimeData.getStringF(
'extensionDestinationIconTooltip', this.destination.extensionName);
},
/**
* True when the destination is a CrOS local printer.
* @return {boolean}
* @private
*/
computeIsDestinationCrosLocal_: function() {
if (!isChromeOS) {
return false;
}
// <if expr="chromeos">
if (!this.printerStatusFlagEnabled_) {
return false;
}
return this.destination &&
this.destination.origin === DestinationOrigin.CROS;
// </if>
},
});
......@@ -419,6 +419,9 @@ void AddPrintPreviewFlags(content::WebUIDataSource* source, Profile* profile) {
source->AddBoolean(
"showPrinterStatus",
base::FeatureList::IsEnabled(chromeos::features::kPrinterStatus));
source->AddBoolean(
"showPrinterStatusInDialog",
base::FeatureList::IsEnabled(chromeos::features::kPrinterStatusDialog));
source->AddBoolean(
"printSaveToDrive",
base::FeatureList::IsEnabled(chromeos::features::kPrintSaveToDrive));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment