@@ -56,6 +56,7 @@ class StorageWidget extends StatefulWidget {
5656class _StorageWidgetState extends State <StorageWidget > {
5757 late Storage storage;
5858 late bool pendingFilter;
59+ late bool waitingFilter;
5960 late String projectFilter;
6061 late bool tagUnion;
6162 late String selectedSort;
@@ -89,6 +90,7 @@ class _StorageWidgetState extends State<StorageWidget> {
8990
9091 void _profileSet () {
9192 pendingFilter = Query (storage.tabs.tab ()).getPendingFilter ();
93+ waitingFilter = Query (storage.tabs.tab ()).getWaitingFilter ();
9294 projectFilter = Query (storage.tabs.tab ()).projectFilter ();
9395 tagUnion = Query (storage.tabs.tab ()).tagUnion ();
9496 selectedSort = Query (storage.tabs.tab ()).getSelectedSort ();
@@ -111,6 +113,16 @@ class _StorageWidgetState extends State<StorageWidget> {
111113 queriedTasks = storage.data.completedData ();
112114 }
113115
116+ if (waitingFilter) {
117+ var currentTime = DateTime .now ();
118+ queriedTasks = queriedTasks
119+ .where ((task) =>
120+ task.wait == null ||
121+ task.wait! .isBefore (currentTime) ||
122+ task.wait! .isAtSameMomentAs (currentTime))
123+ .toList ();
124+ }
125+
114126 if (projectFilter.isNotEmpty) {
115127 queriedTasks = queriedTasks.where ((task) {
116128 if (task.project == null ) {
@@ -201,6 +213,13 @@ class _StorageWidgetState extends State<StorageWidget> {
201213 setState (() {});
202214 }
203215
216+ void toggleWaitingFilter () {
217+ Query (storage.tabs.tab ()).toggleWaitingFilter ();
218+ waitingFilter = Query (storage.tabs.tab ()).getWaitingFilter ();
219+ _refreshTasks ();
220+ setState (() {});
221+ }
222+
204223 void toggleProjectFilter (String project) {
205224 Query (storage.tabs.tab ()).toggleProjectFilter (project);
206225 projectFilter = Query (storage.tabs.tab ()).projectFilter ();
@@ -365,6 +384,7 @@ class _StorageWidgetState extends State<StorageWidget> {
365384 void setInitialTabIndex (int index) {
366385 storage.tabs.setInitialTabIndex (index);
367386 pendingFilter = Query (storage.tabs.tab ()).getPendingFilter ();
387+ waitingFilter = Query (storage.tabs.tab ()).getWaitingFilter ();
368388 selectedSort = Query (storage.tabs.tab ()).getSelectedSort ();
369389 selectedTags = Query (storage.tabs.tab ()).getSelectedTags ();
370390 projectFilter = Query (storage.tabs.tab ()).projectFilter ();
@@ -388,6 +408,7 @@ class _StorageWidgetState extends State<StorageWidget> {
388408 void removeTab (int index) {
389409 storage.tabs.removeTab (index);
390410 pendingFilter = Query (storage.tabs.tab ()).getPendingFilter ();
411+ waitingFilter = Query (storage.tabs.tab ()).getWaitingFilter ();
391412 selectedSort = Query (storage.tabs.tab ()).getSelectedSort ();
392413 selectedTags = Query (storage.tabs.tab ()).getSelectedTags ();
393414 _refreshTasks ();
@@ -414,13 +435,15 @@ class _StorageWidgetState extends State<StorageWidget> {
414435 pendingTags: pendingTags,
415436 projects: projects,
416437 pendingFilter: pendingFilter,
438+ waitingFilter: waitingFilter,
417439 projectFilter: projectFilter,
418440 tagUnion: tagUnion,
419441 selectedSort: selectedSort,
420442 getTask: getTask,
421443 mergeTask: mergeTask,
422444 synchronize: synchronize,
423445 togglePendingFilter: togglePendingFilter,
446+ toggleWaitingFilter: toggleWaitingFilter,
424447 toggleProjectFilter: toggleProjectFilter,
425448 toggleTagUnion: toggleTagUnion,
426449 selectSort: selectSort,
@@ -454,6 +477,7 @@ class InheritedStorage extends InheritedModel<String> {
454477 required this .pendingTags,
455478 required this .projects,
456479 required this .pendingFilter,
480+ required this .waitingFilter,
457481 required this .projectFilter,
458482 required this .tagUnion,
459483 required this .selectedSort,
@@ -462,6 +486,7 @@ class InheritedStorage extends InheritedModel<String> {
462486 required this .mergeTask,
463487 required this .synchronize,
464488 required this .togglePendingFilter,
489+ required this .toggleWaitingFilter,
465490 required this .toggleProjectFilter,
466491 required this .toggleTagUnion,
467492 required this .toggleTagFilter,
@@ -488,6 +513,7 @@ class InheritedStorage extends InheritedModel<String> {
488513 final Map <String , TagMetadata > pendingTags;
489514 final Map <String , ProjectNode > projects;
490515 final bool pendingFilter;
516+ final bool waitingFilter;
491517 final String projectFilter;
492518 final bool tagUnion;
493519 final String selectedSort;
@@ -496,6 +522,7 @@ class InheritedStorage extends InheritedModel<String> {
496522 final void Function (Task ) mergeTask;
497523 final void Function (BuildContext , bool ) synchronize;
498524 final void Function () togglePendingFilter;
525+ final void Function () toggleWaitingFilter;
499526 final void Function (String ) toggleProjectFilter;
500527 final void Function () toggleTagUnion;
501528 final void Function (String ) selectSort;
0 commit comments