[haiku-commits] haiku: hrev44496 - src/kits/tracker

  • From: stpere@xxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Wed, 8 Aug 2012 21:01:51 +0200 (CEST)

hrev44496 adds 1 changeset to branch 'master'
old head: 5489384d4538de742017aa912222e4921b4673bb
new head: 0bc1be3252ac6e87e2b046fb06f8d36425c23b51

----------------------------------------------------------------------------

0bc1be3: PoseView: Fix crash in FilePanel
  
  Again, a regression fix. Under some circumstance, fFiltering was wrongly
  set. Also, the node wasn't open before checking the BRefFilter and some
  filters expected that to be.

                                [ Philippe Saint-Pierre <stpere@xxxxxxxxx> ]

----------------------------------------------------------------------------

Revision:    hrev44496
Commit:      0bc1be3252ac6e87e2b046fb06f8d36425c23b51
URL:         http://cgit.haiku-os.org/haiku/commit/?id=0bc1be3
Author:      Philippe Saint-Pierre <stpere@xxxxxxxxx>
Date:        Wed Aug  8 18:59:29 2012 UTC

----------------------------------------------------------------------------

2 files changed, 5 insertions(+), 6 deletions(-)
src/kits/tracker/PoseView.cpp |    8 +++-----
src/kits/tracker/PoseView.h   |    3 ++-

----------------------------------------------------------------------------

diff --git a/src/kits/tracker/PoseView.cpp b/src/kits/tracker/PoseView.cpp
index 9e6987f..40db53e 100644
--- a/src/kits/tracker/PoseView.cpp
+++ b/src/kits/tracker/PoseView.cpp
@@ -8030,8 +8030,6 @@ BPoseView::ClearPoses()
 
        // clear all pose lists
        fPoseList->MakeEmpty();
-       if (fFiltering)
-               fFilteredPoseList->MakeEmpty();
        fMimeTypeListIsDirty = true;
        fVSPoseList->MakeEmpty();
        fZombieList->MakeEmpty();
@@ -8184,8 +8182,7 @@ BPoseView::Refresh()
        AddPoses(TargetModel());
        TargetModel()->CloseNode();
 
-       // fRefFilter must be set for this to happen
-       if (fFiltering) {
+       if (fRefFilter != NULL) {
                fFiltering = false;
                StartFiltering();
        }
@@ -10018,6 +10015,7 @@ BPoseView::FilterPose(BPose* pose)
        if (fRefFilter != NULL) {
                PoseInfo poseInfo;
                ReadPoseInfo(pose->TargetModel(), &poseInfo);
+               pose->TargetModel()->OpenNode();
                if (!ShouldShowPose(pose->TargetModel(), &poseInfo))
                        return false;
        }
@@ -10093,7 +10091,7 @@ BPoseView::StopFiltering()
 void
 BPoseView::ClearFilter()
 {
-       if (!fFiltering || fRefFilter != NULL)
+       if (!fFiltering)
                return;
 
        fCountView->CancelFilter();
diff --git a/src/kits/tracker/PoseView.h b/src/kits/tracker/PoseView.h
index 621f10a..88b30a0 100644
--- a/src/kits/tracker/PoseView.h
+++ b/src/kits/tracker/PoseView.h
@@ -1152,7 +1152,8 @@ inline void
 BPoseView::SetRefFilter(BRefFilter* filter)
 {
        fRefFilter = filter;
-       FilterChanged();
+       if (filter != NULL)
+               FilterChanged();
 }
 
 


Other related posts:

  • » [haiku-commits] haiku: hrev44496 - src/kits/tracker - stpere