@@ -151,9 +151,15 @@ public int? PreviewFileCount
151
151
public long ? PreviewFileSize
152
152
{
153
153
get => m_previewFileSize ;
154
- set => SetField ( ref m_previewFileSize , value ) ;
154
+ set
155
+ {
156
+ if ( SetField ( ref m_previewFileSize , value ) )
157
+ OnPropertyChanged ( nameof ( PreviewTokenCount ) ) ;
158
+ }
155
159
}
156
160
161
+ public int PreviewTokenCount => ( int ) ( ( PreviewFileSize ?? 0 ) / 3.8 ) ;
162
+
157
163
public bool IsGeneratingPreview
158
164
{
159
165
get => m_isGeneratingPreview ;
@@ -243,47 +249,51 @@ private IngestOptions GetIngestOptions()
243
249
private void OnFolderSelectionChanged ( object sender , EventArgs e ) =>
244
250
InvalidatePreviewStats ( ) ;
245
251
246
- private void InvalidatePreviewStats ( ) =>
252
+ private void InvalidatePreviewStats ( )
253
+ {
254
+ IsGeneratingPreview = true ;
255
+ PreviewFileCount = null ;
256
+ PreviewFileSize = null ;
247
257
m_folderSelectionConsolidator . Invoke ( ) ;
258
+ }
248
259
249
260
private void RefreshPredictedSize ( )
250
261
{
251
- m_backgroundRefreshProgress ? . Cancel ( ) ;
252
-
253
- var selectedFolders = Root . GetSelectedItems ( ) . ToArray ( ) ;
254
- if ( selectedFolders . Length == 0 )
262
+ try
255
263
{
256
- PreviewFileCount = 0 ;
257
- PreviewFileSize = 0 ;
258
- return ; // Nothing to do.
259
- }
264
+ m_backgroundRefreshProgress ? . Cancel ( ) ;
260
265
261
- var options = GetIngestOptions ( ) ;
262
- if ( options . FilePatterns . Count == 0 )
263
- {
264
- PreviewFileCount = 0 ;
265
- PreviewFileSize = 0 ;
266
- return ; // Nothing search .
267
- }
266
+ var selectedFolders = Root . GetSelectedItems ( ) . ToArray ( ) ;
267
+ if ( selectedFolders . Length == 0 )
268
+ {
269
+ PreviewFileCount = 0 ;
270
+ PreviewFileSize = 0 ;
271
+ return ; // Nothing to do .
272
+ }
268
273
269
- var ingester = new Ingester ( options ) ;
270
- m_backgroundRefreshProgress = new ProgressToken ( true ) ;
274
+ var options = GetIngestOptions ( ) ;
275
+ if ( options . FilePatterns . Count == 0 )
276
+ {
277
+ PreviewFileCount = 0 ;
278
+ PreviewFileSize = 0 ;
279
+ return ; // Nothing search.
280
+ }
271
281
272
- Task . Run ( ( ) =>
273
- {
274
- IsGeneratingPreview = true ;
275
- try
282
+ var ingester = new Ingester ( options ) ;
283
+ m_backgroundRefreshProgress = new ProgressToken ( isCancelSupported : true ) ;
284
+
285
+ Task . Run ( ( ) =>
276
286
{
277
287
var result = ingester . Run ( selectedFolders , progress : m_backgroundRefreshProgress ) ;
278
288
if ( ! result . HasValue || m_backgroundRefreshProgress . CancelRequested )
279
289
return ;
280
290
PreviewFileCount = result . Value . FileCount ;
281
291
PreviewFileSize = result . Value . OutputBytes ;
282
- }
283
- finally
284
- {
285
- IsGeneratingPreview = false ;
286
- }
287
- } ) ;
292
+ } ) ;
293
+ }
294
+ finally
295
+ {
296
+ IsGeneratingPreview = false ;
297
+ }
288
298
}
289
299
}
0 commit comments