]> granicus.if.org Git - transmission/commitdiff
(trunk) #3574:Potential crash in tracker view when changing options
authorDaniel Lee <Longinus00@gmail.com>
Wed, 22 Sep 2010 02:22:03 +0000 (02:22 +0000)
committerDaniel Lee <Longinus00@gmail.com>
Wed, 22 Sep 2010 02:22:03 +0000 (02:22 +0000)
qt/details.cc

index 97d046f6ae86bcc0a78f45c432692c42aed1f044..68a7ae671ed8c0bbdb124a3783aacf6bc9810b76 100644 (file)
@@ -229,10 +229,17 @@ Details :: refreshPref( int key )
 
     switch( key )
     {
-        case Prefs :: SHOW_TRACKER_SCRAPES:
+        case Prefs :: SHOW_TRACKER_SCRAPES: {
+            QItemSelectionModel * selectionModel( myTrackerView->selectionModel( ) );
+            const QItemSelection selection( selectionModel->selection( ) );
+            const QModelIndex currentIndex( selectionModel->currentIndex( ) );
             myTrackerDelegate->setShowMore( myPrefs.getBool( key ) );
+            selectionModel->clear( );
             myTrackerView->reset( );
+            selectionModel->select( selection, QItemSelectionModel::Select );
+            selectionModel->setCurrentIndex( currentIndex, QItemSelectionModel::NoUpdate );
             break;
+        }
 
         case Prefs :: SHOW_BACKUP_TRACKERS:
             myTrackerFilter->setShowBackupTrackers( myPrefs.getBool( key ) );