@@ -8,6 +8,7 @@ import * as nls from 'vscode-nls';
88import { Disposable } from './dispose' ;
99import { SizeStatusBarEntry } from './sizeStatusBarEntry' ;
1010import { Scale , ZoomStatusBarEntry } from './zoomStatusBarEntry' ;
11+ import { BinarySizeStatusBarEntry } from './binarySizeStatusBarEntry' ;
1112
1213const localize = nls . loadMessageBundle ( ) ;
1314
@@ -22,14 +23,15 @@ export class PreviewManager {
2223 constructor (
2324 private readonly extensionRoot : vscode . Uri ,
2425 private readonly sizeStatusBarEntry : SizeStatusBarEntry ,
26+ private readonly binarySizeStatusBarEntry : BinarySizeStatusBarEntry ,
2527 private readonly zoomStatusBarEntry : ZoomStatusBarEntry ,
2628 ) { }
2729
2830 public resolve (
2931 resource : vscode . Uri ,
3032 webviewEditor : vscode . WebviewPanel ,
3133 ) : vscode . WebviewEditorCapabilities {
32- const preview = new Preview ( this . extensionRoot , resource , webviewEditor , this . sizeStatusBarEntry , this . zoomStatusBarEntry ) ;
34+ const preview = new Preview ( this . extensionRoot , resource , webviewEditor , this . sizeStatusBarEntry , this . binarySizeStatusBarEntry , this . zoomStatusBarEntry ) ;
3335 this . _previews . add ( preview ) ;
3436 this . setActivePreview ( preview ) ;
3537
@@ -72,13 +74,15 @@ class Preview extends Disposable implements vscode.WebviewEditorEditingCapabilit
7274
7375 private _previewState = PreviewState . Visible ;
7476 private _imageSize : string | undefined ;
77+ private _imageBinarySize : number | undefined ;
7578 private _imageZoom : Scale | undefined ;
7679
7780 constructor (
7881 private readonly extensionRoot : vscode . Uri ,
7982 private readonly resource : vscode . Uri ,
8083 private readonly webviewEditor : vscode . WebviewPanel ,
8184 private readonly sizeStatusBarEntry : SizeStatusBarEntry ,
85+ private readonly binarySizeStatusBarEntry : BinarySizeStatusBarEntry ,
8286 private readonly zoomStatusBarEntry : ZoomStatusBarEntry ,
8387 ) {
8488 super ( ) ;
@@ -125,6 +129,7 @@ class Preview extends Disposable implements vscode.WebviewEditorEditingCapabilit
125129 this . _register ( webviewEditor . onDidDispose ( ( ) => {
126130 if ( this . _previewState === PreviewState . Active ) {
127131 this . sizeStatusBarEntry . hide ( this . id ) ;
132+ this . binarySizeStatusBarEntry . hide ( this . id ) ;
128133 this . zoomStatusBarEntry . hide ( this . id ) ;
129134 }
130135 this . _previewState = PreviewState . Disposed ;
@@ -142,6 +147,10 @@ class Preview extends Disposable implements vscode.WebviewEditorEditingCapabilit
142147 }
143148 } ) ) ;
144149
150+ ( async ( ) => {
151+ const { size } = await vscode . workspace . fs . stat ( resource ) ;
152+ this . _imageBinarySize = size ;
153+ } ) ( ) ;
145154 this . render ( ) ;
146155 this . update ( ) ;
147156 this . webviewEditor . webview . postMessage ( { type : 'setActive' , value : this . webviewEditor . active } ) ;
@@ -173,10 +182,12 @@ class Preview extends Disposable implements vscode.WebviewEditorEditingCapabilit
173182 if ( this . webviewEditor . active ) {
174183 this . _previewState = PreviewState . Active ;
175184 this . sizeStatusBarEntry . show ( this . id , this . _imageSize || '' ) ;
185+ this . binarySizeStatusBarEntry . show ( this . id , this . _imageBinarySize || - 1 ) ;
176186 this . zoomStatusBarEntry . show ( this . id , this . _imageZoom || 'fit' ) ;
177187 } else {
178188 if ( this . _previewState === PreviewState . Active ) {
179189 this . sizeStatusBarEntry . hide ( this . id ) ;
190+ this . binarySizeStatusBarEntry . hide ( this . id ) ;
180191 this . zoomStatusBarEntry . hide ( this . id ) ;
181192 }
182193 this . _previewState = PreviewState . Visible ;
0 commit comments