[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdesdk/kcachegrind
From:       Josef Weidendorfer <Josef.Weidendorfer () gmx ! de>
Date:       2009-08-05 22:23:35
Message-ID: 1249511015.166148.12758.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 1007543 by weidendo:

KCachegrind: Cleanup update handling

Now that updates are delayed and merged, we can request an update
everytime the visualization state changes. This also allows
to get rid of many explicit update requests which are not needed
any more.

 M  +1 -46     kcachegrind/toplevel.cpp  
 M  +0 -2      libviews/multiview.cpp  
 M  +0 -3      libviews/tabview.cpp  
 M  +11 -4     libviews/traceitemview.cpp  
 M  +6 -6      libviews/traceitemview.h  
 M  +1 -60     qcachegrind/qcgtoplevel.cpp  


--- trunk/KDE/kdesdk/kcachegrind/kcachegrind/toplevel.cpp #1007542:1007543
@@ -777,13 +777,8 @@
 void TopLevel::updateViewsOnChange(int change)
 {
   _partSelection->notifyChange(change);
-  _partSelection->updateView();
-
   _functionSelection->notifyChange(change);
-  _functionSelection->updateView();
-
   _multiView->notifyChange(change);
-  _multiView->updateView();
 }
 
 void TopLevel::setPercentage(bool show)
@@ -1084,15 +1079,9 @@
   }
 
   _partSelection->setEventType(_eventType);
-  _partSelection->updateView();
-
   _stackSelection->setEventType(_eventType);
-
   _functionSelection->setEventType(_eventType);
-  _functionSelection->updateView();
-
   _multiView->setEventType(_eventType);
-  _multiView->updateView();
 
   updateStatusBar();
 
@@ -1111,15 +1100,9 @@
       _saCost2->setCurrentItem(idx);
 
   _partSelection->setEventType2(_eventType2);
-  _partSelection->updateView();
-
   _stackSelection->setEventType2(_eventType2);
-
   _functionSelection->setEventType2(_eventType2);
-  _functionSelection->updateView();
-
   _multiView->setEventType2(_eventType2);
-  _multiView->updateView();
 
   updateStatusBar();
 
@@ -1180,15 +1163,9 @@
     saGroup->setCurrentItem(idx);
 
   _stackSelection->setGroupType(_groupType);
-
   _partSelection->set(_groupType);
-  _partSelection->updateView();
-
   _functionSelection->set(_groupType);
-  _functionSelection->updateView();
-
   _multiView->set(_groupType);
-  _multiView->updateView();
 
   updateStatusBar();
 
@@ -1232,14 +1209,8 @@
   _function = f;
 
   _multiView->activate(f);
-  _multiView->updateView();
-
   _functionSelection->activate(f);
-  _functionSelection->updateView();
-
   _partSelection->activate(f);
-  _partSelection->updateView();
-
   _stackSelection->setFunction(_function);
 
   StackBrowser* b = _stackSelection->browser();
@@ -1384,7 +1355,6 @@
     case ProfileContext::File:
     case ProfileContext::Class:
 	_multiView->activate(_traceItemDelayed);
-	_multiView->updateView();
 	break;
 
 #if 0
@@ -1393,7 +1363,6 @@
     case ProfileContext::Line:
 	// only for multiview
 	_multiView->activate(_traceItemDelayed);
-	_multiView->updateView();
 	break;
 #endif
 
@@ -1420,14 +1389,10 @@
 
   if (_data) {
     _partSelection->setData(0);
-    _partSelection->updateView();
-
     _stackSelection->setData(0);
-
     _functionSelection->setData(0);
-    _functionSelection->updateView();
     _multiView->setData(0);
-    _multiView->updateView();
+    _multiView->updateView(true);
 
     // we are the owner...
     delete _data;
@@ -1466,12 +1431,8 @@
     _saCost2->setCurrentItem(0);
 
   _partSelection->setData(_data);
-  _partSelection->updateView();
-
   _stackSelection->setData(_data);
-
   _functionSelection->setData(_data);
-  _functionSelection->updateView();
   _multiView->setData(_data);
   // Force update of _data in all children of _multiView
   // This is needed to make restoring of activeItem work!
@@ -1951,14 +1912,8 @@
   _activeParts = list;
 
   _partSelection->set(list);
-  _partSelection->updateView();
-
   _multiView->set(list);
-  _multiView->updateView();
-
   _functionSelection->set(list);
-  _functionSelection->updateView();
-
   _stackSelection->refresh();
 
   updateStatusBar();
--- trunk/KDE/kdesdk/kcachegrind/libviews/multiview.cpp #1007542:1007543
@@ -78,7 +78,6 @@
     // set same attributes as in active view
     tv->set(0, _data, _eventType, _eventType2,
 	    _groupType, _partList, _activeItem, 0);
-    tv->updateView();
 
     if (0) qDebug() << "MultiView::appendView, now "
 		     << _views.count();
@@ -141,7 +140,6 @@
     if (next == _active) return;
 
     next->activate(i);
-    next->updateView();
 }
 
 void MultiView::activated(TraceItemView* sender, CostItem* i)
--- trunk/KDE/kdesdk/kcachegrind/libviews/tabview.cpp #1007542:1007543
@@ -758,7 +758,6 @@
 {
     // we set selected item for our own children
     select(s);
-    updateView();
 
     // still forward to parent
     if (_parentView) _parentView->selected(this, s);
@@ -950,8 +949,6 @@
     selectedItem = _data->search(t, selectedName, _eventType, activeItem);
     if (selectedItem)
 	selected(this, selectedItem);
-
-    updateView();
 }
 
 void TabView::saveOptions(const QString& prefix, const QString& postfix)
--- trunk/KDE/kdesdk/kcachegrind/libviews/traceitemview.cpp #1007542:1007543
@@ -78,7 +78,10 @@
 
 void TraceItemView::select(CostItem* i)
 {
+    if (_selectedItem == i) return;
+
     _newSelectedItem = i;
+    updateView();
 }
 
 void TraceItemView::saveLayout(const QString&, const QString&)
@@ -107,7 +110,10 @@
 bool TraceItemView::activate(CostItem* i)
 {
     i = canShow(i);
+    if (_activeItem == i) return (i != 0);
+
     _newActiveItem = i;
+    updateView();
 
     return (i != 0);
 }
@@ -140,12 +146,11 @@
   _newPartList = l;
   _newSelectedItem = s;
   _newActiveItem = canShow(a);
-  if (!_newActiveItem) {
+  if (!_newActiveItem)
       _newSelectedItem = 0;
-      return false;
-  }
+  updateView();
 
-  return true;
+  return (_newActiveItem != 0);
 }
 
 
@@ -159,6 +164,7 @@
 
 void TraceItemView::setData(TraceData* d)
 {
+    if (_data == d) return;
   _newData = d;
 
   // invalidate all pointers to old data
@@ -172,6 +178,7 @@
 
   // updateView will change this to dataChanged
   _status = nothingChanged;
+  updateView();
 }
 
 // force: update immediatly even if invisible and no change was detected
--- trunk/KDE/kdesdk/kcachegrind/libviews/traceitemview.h #1007542:1007543
@@ -109,15 +109,15 @@
   // Overwrite in container views to also set new data for all members.
   virtual void setData(TraceData* d);
 
-  // change from parent, call updateView() to update lazily (only if visible)
-  void setEventType(EventType* t) { _newEventType = t; }
-  void setEventType2(EventType* t) { _newEventType2 = t; }
-  void set(ProfileContext::Type g) { _newGroupType = g; }
-  void set(const TracePartList& l) { _newPartList = l; }
+  // modify visualization state, updates automatically
+  void setEventType(EventType* t) { _newEventType = t; updateView(); }
+  void setEventType2(EventType* t) { _newEventType2 = t; updateView(); }
+  void set(ProfileContext::Type g) { _newGroupType = g; updateView(); }
+  void set(const TracePartList& l) { _newPartList = l; updateView(); }
   // returns false if nothing can be shown for this trace item
   bool activate(CostItem* i);
   void select(CostItem* i);
-  void notifyChange(int changeType) { _status |= changeType; }
+  void notifyChange(int changeType) { _status |= changeType; updateView(); }
   // all in one
   bool set(int, TraceData*, EventType*, EventType*,
 	   ProfileContext::Type, const TracePartList&,
--- trunk/KDE/kdesdk/kcachegrind/qcachegrind/qcgtoplevel.cpp #1007542:1007543
@@ -682,15 +682,9 @@
     GlobalConfig::setShowPercentage(show);
 
     _partSelection->notifyChange(TraceItemView::configChanged);
-    _partSelection->updateView();
-
     _stackSelection->refresh();
-
     _functionSelection->notifyChange(TraceItemView::configChanged);
-    _functionSelection->updateView();
-
     _multiView->notifyChange(TraceItemView::configChanged);
-    _multiView->updateView();
 }
 
 void QCGTopLevel::toggleExpanded()
@@ -700,15 +694,9 @@
     GlobalConfig::setShowExpanded(show);
 
     _partSelection->notifyChange(TraceItemView::configChanged);
-    _partSelection->updateView();
-
     _stackSelection->refresh();
-
     _functionSelection->notifyChange(TraceItemView::configChanged);
-    _functionSelection->updateView();
-
     _multiView->notifyChange(TraceItemView::configChanged);
-    _multiView->updateView();
 }
 
 void QCGTopLevel::toggleCycles()
@@ -723,15 +711,9 @@
     _data->updateFunctionCycles();
 
     _partSelection->notifyChange(TraceItemView::configChanged);
-    _partSelection->updateView();
-
     _stackSelection->rebuildStackList();
-
     _functionSelection->notifyChange(TraceItemView::configChanged);
-    _functionSelection->updateView();
-
     _multiView->notifyChange(TraceItemView::configChanged);
-    _multiView->updateView();
 }
 
 
@@ -925,12 +907,8 @@
 
   _partSelection->setEventType(_eventType);
   _stackSelection->setEventType(_eventType);
-
   _functionSelection->setEventType(_eventType);
-  _functionSelection->updateView();
-
   _multiView->setEventType(_eventType);
-  _multiView->updateView();
 
   updateStatusBar();
 
@@ -946,12 +924,8 @@
 
   _partSelection->setEventType2(_eventType2);
   _stackSelection->setEventType2(_eventType2);
-
   _functionSelection->setEventType2(_eventType2);
-  _functionSelection->updateView();
-
   _multiView->setEventType2(_eventType2);
-  _multiView->updateView();
 
   updateStatusBar();
 
@@ -1016,13 +990,8 @@
   _stackSelection->setGroupType(_groupType);
 
   _partSelection->set(_groupType);
-  _partSelection->updateView();
-
   _functionSelection->set(_groupType);
-  _functionSelection->updateView();
-
   _multiView->set(_groupType);
-  _multiView->updateView();
 
   updateStatusBar();
 
@@ -1066,14 +1035,8 @@
   _function = f;
 
   _multiView->activate(f);
-  _multiView->updateView();
-
   _functionSelection->activate(f);
-  _functionSelection->updateView();
-
   _partSelection->activate(f);
-  _partSelection->updateView();
-
   _stackSelection->setFunction(_function);
 
   StackBrowser* b = _stackSelection->browser();
@@ -1218,7 +1181,6 @@
     case ProfileContext::File:
     case ProfileContext::Class:
 	_multiView->activate(_traceItemDelayed);
-	_multiView->updateView();
 	break;
 
 #if 0
@@ -1227,7 +1189,6 @@
     case ProfileContext::Line:
 	// only for multiview
 	_multiView->activate(_traceItemDelayed);
-	_multiView->updateView();
 	break;
 #endif
 
@@ -1255,12 +1216,9 @@
   if (_data) {
     _partSelection->setData(0);
     _stackSelection->setData(0);
-
     _functionSelection->setData(0);
-    _functionSelection->updateView();
-
     _multiView->setData(0);
-    _multiView->updateView();
+    _multiView->updateView(true);
 
     // we are the owner...
     delete _data;
@@ -1289,13 +1247,8 @@
   _eventTypeBox->addItems(types);
 
   _stackSelection->setData(_data);
-
   _partSelection->setData(_data);
-  _partSelection->updateView();
-
   _functionSelection->setData(_data);
-  _functionSelection->updateView();
-
   _multiView->setData(_data);
   // Force update of _data in all children of _multiView
   // This is needed to make restoring of activeItem work!
@@ -1758,15 +1711,9 @@
   _data->resetSourceDirs();
 
   _partSelection->notifyChange(TraceItemView::configChanged);
-  _partSelection->updateView();
-
   _stackSelection->refresh();
-
   _functionSelection->notifyChange(TraceItemView::configChanged);
-  _functionSelection->updateView();
-
   _multiView->notifyChange(TraceItemView::configChanged);
-  _multiView->updateView();
 }
 
 
@@ -1782,15 +1729,9 @@
   _activeParts = list;
 
   _partSelection->set(list);
-  _partSelection->updateView();
-
   _stackSelection->refresh();
-
   _functionSelection->set(list);
-  _functionSelection->updateView();
-
   _multiView->set(list);
-  _multiView->updateView();
 
   updateStatusBar();
 }
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic