(gtk) #649: don't ask for confirmation on close when there are no active torrents.
This commit is contained in:
parent
02799f7060
commit
f72d7052c7
|
@ -356,6 +356,19 @@ quitresp( GtkWidget * widget, int response, gpointer data )
|
||||||
gtk_widget_destroy( widget );
|
gtk_widget_destroy( widget );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static gboolean
|
||||||
|
countActiveTorrents( GtkTreeModel * model,
|
||||||
|
GtkTreePath * path UNUSED,
|
||||||
|
GtkTreeIter * iter,
|
||||||
|
gpointer activeTorrentCount )
|
||||||
|
{
|
||||||
|
int status = -1;
|
||||||
|
gtk_tree_model_get( model, iter, MC_STATUS, &status, -1 );
|
||||||
|
if( status != TR_STATUS_STOPPED )
|
||||||
|
*(int*)activeTorrentCount += 1;
|
||||||
|
return FALSE; /* keep iterating */
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
askquit( TrCore * core,
|
askquit( TrCore * core,
|
||||||
GtkWindow * parent,
|
GtkWindow * parent,
|
||||||
|
@ -365,6 +378,8 @@ askquit( TrCore * core,
|
||||||
struct quitdata * stuff;
|
struct quitdata * stuff;
|
||||||
GtkWidget * wind;
|
GtkWidget * wind;
|
||||||
GtkWidget * dontask;
|
GtkWidget * dontask;
|
||||||
|
GtkTreeModel * model;
|
||||||
|
int activeTorrentCount;
|
||||||
|
|
||||||
/* if the user doesn't want to be asked, don't ask */
|
/* if the user doesn't want to be asked, don't ask */
|
||||||
if( !pref_flag_get( PREF_KEY_ASKQUIT ) ) {
|
if( !pref_flag_get( PREF_KEY_ASKQUIT ) ) {
|
||||||
|
@ -372,8 +387,11 @@ askquit( TrCore * core,
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* if there aren't any torrents, don't ask */
|
/* if there aren't any active torrents, don't ask */
|
||||||
if( !tr_torrentCount( tr_core_handle( core ) ) ) {
|
model = tr_core_model( core );
|
||||||
|
activeTorrentCount = 0;
|
||||||
|
gtk_tree_model_foreach( model, countActiveTorrents, &activeTorrentCount );
|
||||||
|
if( !activeTorrentCount ) {
|
||||||
func( cbdata );
|
func( cbdata );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue