Changeset 1307

Show
Ignore:
Timestamp:
12/08/06 17:26:56
Author:
pvanhoof
Message:

Progressbar features

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/ChangeLog

    r1306 r1307  
    33        * Added the tny_folder_transfer_msgs_async API 
    44        * Implemented for libtinymail-camel 
     5        * Fixed some progress/status numbers and changed its API 
    56 
    67        *  This was a major API change 
  • trunk/bindings/python/tinymail.override

    r1299 r1307  
    169169 
    170170static void 
    171 tny_refresh_folder_status_cb (TnyFolder *self, const gchar *what, gint status, gpointer user_data) 
     171tny_refresh_folder_status_cb (TnyFolder *self, const gchar *what, gint status, gint oftotal, gpointer user_data) 
    172172{ 
    173173    PyObject *callback, *args, *ret; 
     
    176176    state = pyg_gil_state_ensure(); 
    177177    callback = PyTuple_GetItem((PyObject *)user_data, 1); 
    178     args = Py_BuildValue("(NsiO)", 
     178    args = Py_BuildValue("(NsiiO)", 
    179179                         pygobject_new((GObject *)self), 
    180                          what, status, 
     180                         what, status, oftotal, 
    181181                         PyTuple_GetItem((PyObject *)user_data, 2)); 
    182182    ret = PyObject_CallObject(callback, args); 
  • trunk/libtinymail-camel/camel-lite/camel/camel-operation.c

    r1014 r1307  
    514514        s->msg = msg; 
    515515        s->flags = 0; 
     516        s->pc = 0; 
    516517        cc->lastreport = s; 
    517518        cc->status_stack = g_slist_prepend(cc->status_stack, s); 
  • trunk/libtinymail-camel/camel-lite/camel/providers/imap/camel-imap-folder.c

    r1175 r1307  
    23752375 
    23762376static guint32  
    2377 imap_get_uids (CamelFolder *folder, CamelImapStore *store, CamelException *ex, GPtrArray *needheaders, int size, int got
     2377imap_get_uids (CamelFolder *folder, CamelImapStore *store, CamelException *ex, GPtrArray *needheaders, int size
    23782378{ 
    23792379        char *resp = NULL; 
     
    23822382        CamelImapFolder *imap_folder = CAMEL_IMAP_FOLDER (folder); 
    23832383        GData *data; 
    2384   
     2384 
    23852385        while ((type = camel_imap_command_response (store, &resp, ex)) == 
    23862386                        CAMEL_IMAP_RESPONSE_UNTAGGED)  
     
    23932393                g_ptr_array_add (needheaders, g_strdup (g_datalist_get_data (&data, "UID"))); 
    23942394                if (size > 0) 
    2395                         camel_operation_progress (NULL, got * 100 / size); 
     2395                        camel_operation_progress (NULL, cnt / size); 
    23962396                g_datalist_clear (&data); 
    23972397        } 
     
    24192419   GData *data; 
    24202420   gboolean more = TRUE; 
    2421    unsigned int nextn, cnt=0, tcnt=0, ucnt=0
     2421   unsigned int nextn, cnt=0, tcnt=0, ucnt=0, rec=0
    24222422 
    24232423   if (!store->ostream || !store->istream) 
     
    24672467 
    24682468        camel_operation_start (NULL, _("Fetching summary information for new messages in %s"), folder->name); 
    2469         cnt = imap_get_uids (folder, store, ex, needheaders, size, got); 
     2469        cnt = imap_get_uids (folder, store, ex, needheaders, (exists - seq)); 
    24702470        tcnt += cnt; 
    24712471        camel_operation_end (NULL); 
     
    24822482                        { g_warning ("IMAP error getting UIDs (2)");  
    24832483                          camel_operation_end (NULL); return; } 
    2484                 cnt = imap_get_uids (folder, store, ex, needheaders, size, got); 
     2484                cnt = imap_get_uids (folder, store, ex, needheaders, (exists - seq) - cnt); 
    24852485                tcnt += cnt; 
    24862486                /* If we still received too few */ 
     
    24942494                                { g_warning ("IMAP error getting UIDs (3)"); 
    24952495                                  camel_operation_end (NULL); return; } 
    2496                         tcnt = cnt = imap_get_uids (folder, store, ex, needheaders, size, got); 
     2496                        tcnt = cnt = imap_get_uids (folder, store, ex, needheaders, (exists - seq) - tcnt); 
    24972497                } 
    24982498 
     
    25692569                                          ucnt++; 
    25702570                                          camel_folder_summary_add (folder->summary, (CamelMessageInfo *)mi); 
    2571                                           //camel_folder_change_info_add_uid (changes, camel_message_info_uid (mi)); 
    2572  
    2573                                           //if ((mi->info.flags & CAMEL_IMAP_MESSAGE_RECENT)) 
    2574                                                 //camel_folder_change_info_recent_uid(changes, camel_message_info_uid (mi)); 
     2571                                          /*camel_folder_change_info_add_uid (changes, camel_message_info_uid (mi)); 
     2572 
     2573                                          if ((mi->info.flags & CAMEL_IMAP_MESSAGE_RECENT)) 
     2574                                                camel_folder_change_info_recent_uid(changes, camel_message_info_uid (mi));*/ 
    25752575 
    25762576                                        } 
     
    25882588                                        got += IMAP_PRETEND_SIZEOF_HEADERS; 
    25892589                                        if (size > 0) 
    2590                                                 camel_operation_progress (NULL, got * 100 / size); 
     2590                                                camel_operation_progress (NULL, uid / needheaders->len); 
    25912591                                } 
    25922592                                g_datalist_clear (&data); 
  • trunk/libtinymail-camel/tny-camel-folder.c

    r1306 r1307  
    596596        RefreshFolderInfo *minfo; 
    597597        gchar *what; 
    598         gint pc
     598        gint pc, oftotal
    599599} ProgressInfo; 
    600600 
     
    618618{ 
    619619        ProgressInfo *info = data; 
    620         const gchar *what = (const gchar*)info->what; 
    621620        RefreshFolderInfo *minfo = info->minfo; 
    622         gint pc = info->pc; 
    623621 
    624622        if (minfo && minfo->status_callback) 
    625623        { 
    626                 minfo->status_callback (minfo->self,  
    627                         (const gchar*)what, (gint)pc, minfo->user_data); 
     624                minfo->status_callback (minfo->self, (const gchar*)info->what,  
     625                        info->pc, info->oftotal, minfo->user_data); 
    628626        } 
    629627 
     
    660658        info->minfo->status_callback = oinfo->status_callback; 
    661659        info->minfo->user_data = oinfo->user_data; 
    662         info->pc = pc; 
     660        info->oftotal = 100; 
     661 
     662        if (pc < 0) 
     663                info->pc = 0; 
     664        else  
     665                if (pc > info->oftotal) 
     666                        info->pc = info->oftotal; 
     667                else 
     668                        info->pc = pc; 
    663669 
    664670        /* gidle reference */ 
  • trunk/libtinymail/tny-shared.h

    r1306 r1307  
    5252typedef void (*TnyGetMsgCallback) (TnyFolder *folder, TnyMsg *msg, GError **err, gpointer user_data); 
    5353typedef void (*TnyTransferMsgsCallback) (TnyFolder *folder, GError **err, gpointer user_data); 
    54 typedef void (*TnyRefreshFolderStatusCallback) (TnyFolder *self, const gchar *what, gint status, gpointer user_data); 
     54typedef void (*TnyRefreshFolderStatusCallback) (TnyFolder *self, const gchar *what, gint status, gint oftotal, gpointer user_data); 
    5555typedef enum _TnyHeaderFlags TnyHeaderFlags; 
    5656typedef enum _TnyAlertType TnyAlertType; 
  • trunk/tinymail/tny-demoui-summary-view.c

    r1305 r1307  
    442442 
    443443static void 
    444 refresh_current_folder_status_update (TnyFolder *folder, const gchar *what, gint status, gpointer user_data) 
     444refresh_current_folder_status_update (TnyFolder *folder, const gchar *what, gint status, gint oftotal, gpointer user_data) 
    445445{ 
    446446        TnyDemouiSummaryViewPriv *priv = user_data; 
    447  
    448         gtk_progress_bar_pulse (GTK_PROGRESS_BAR (priv->progress)); 
     447        gdouble fraq = (((gdouble) status) / (( gdouble) oftotal)); 
     448 
     449        gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (priv->progress), fraq); 
     450        /* gtk_progress_bar_pulse (GTK_PROGRESS_BAR (priv->progress)); */ 
    449451        gtk_statusbar_pop (GTK_STATUSBAR (priv->status), priv->status_id); 
    450452        gtk_statusbar_push (GTK_STATUSBAR (priv->status), priv->status_id, what);