Ticket #1029: util.diff

File util.diff, 2.1 KB (added by michielbuddingh, 12 years ago)

Ugly fix for the gtk client.

  • util.c

    old new  
    514514    return object;
    515515}
    516516
    517 #ifdef HAVE_GIO
    518 /* returns true if the directory is empty, a symlink or
    519  * a regular file, false if not or unknown */
    520 static gboolean path_has_no_children(GFile * path)
    521 {
    522     gboolean empty;
    523     GFileType path_type = g_file_query_file_type(path,
    524         G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS,
    525         NULL);
    526 
    527     switch (path_type) {
    528         case G_FILE_TYPE_SYMBOLIC_LINK:
    529         case G_FILE_TYPE_REGULAR:
    530             return TRUE;
    531         case G_FILE_TYPE_DIRECTORY:
    532             break;
    533         default:
    534             return FALSE;
    535     }
    536    
    537     {
    538         GError * error;
    539         GFileInfo * catch;
    540         GFileEnumerator * child_list = g_file_enumerate_children
    541             (path, "", G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS, NULL, &error);
    542 
    543         if (child_list == NULL) {
    544             g_error_free(error);           
    545             return FALSE;
    546         }
    547         //g_error_free(error);
    548        
    549 
    550         if ((catch = g_file_enumerator_next_file(child_list, NULL, &error))) {
    551             g_object_unref ( (gpointer) catch );
    552             empty = FALSE;
    553         } else if (error != NULL) {
    554             empty = FALSE;
    555         } else {
    556             empty = TRUE;
    557         }
    558 
    559         //g_error_free(error);
    560 
    561         g_file_enumerator_close(child_list, NULL, NULL);
    562         g_object_unref( (gpointer) child_list );
    563 
    564     }
    565     return empty;       
    566 }
    567 
    568 #endif
    569 
    570517void
    571518tr_file_trash_or_unlink( const char * filename )
    572519{
     
    576523#ifdef HAVE_GIO
    577524        GError * err = NULL;
    578525        GFile *  file = g_file_new_for_path( filename );
    579         if (path_has_no_children(file)) {
    580             trashed = g_file_trash( file, NULL, &err );
    581         }
     526        trashed = g_file_trash( file, NULL, &err );
    582527        g_object_unref( G_OBJECT( file ) );
    583        
    584         if (!trashed)
    585             return;
    586528#endif
    587         g_unlink( filename );
     529        if( !trashed )
     530            g_unlink( filename );
    588531    }
    589532}
    590533
    591 
    592534char*
    593535gtr_get_help_url( void )
    594536{