void DownloadUI::UpdateDownloadList(void) { if (!m_List || !isVisible) return; gtk_clist_freeze(GTK_CLIST(m_List)); gtk_clist_clear(GTK_CLIST(m_List)); uint32 iLoop = downloadList.size(); if (iLoop == 0) { gtk_clist_thaw(GTK_CLIST(m_List)); return; } for (uint32 i = 0; i < iLoop; i++) { DownloadItem *dli = downloadList[i]; char *iText[2]; string displayString = dli->GetMetaData().Title(); iText[0] = (char *)displayString.c_str(); iText[1] = (char *)StatusString(dli).c_str(); int row = gtk_clist_append(GTK_CLIST(m_List), iText); gtk_clist_set_row_data(GTK_CLIST(m_List), row, (gpointer)dli); } gtk_clist_select_row(GTK_CLIST(m_List), m_currentindex, 0); SelChangeEvent(m_currentindex); gtk_clist_thaw(GTK_CLIST(m_List)); }
void DownloadUI::UpdateInfo(void) { if (!isVisible) return; DownloadItem *dli = downloadList[m_currentindex]; if (!dli) { gtk_label_set_text(GTK_LABEL(artist), ""); gtk_label_set_text(GTK_LABEL(album), ""); gtk_label_set_text(GTK_LABEL(title), ""); gtk_label_set_text(GTK_LABEL(genre), ""); gtk_label_set_text(GTK_LABEL(playlist), ""); gtk_label_set_text(GTK_LABEL(name), ""); gtk_label_set_text(GTK_LABEL(size), ""); return; } gtk_label_set_text(GTK_LABEL(artist), dli->GetMetaData().Artist().c_str()); gtk_label_set_text(GTK_LABEL(album), dli->GetMetaData().Album().c_str()); gtk_label_set_text(GTK_LABEL(title), dli->GetMetaData().Title().c_str()); gtk_label_set_text(GTK_LABEL(genre), dli->GetMetaData().Genre().c_str()); gtk_label_set_text(GTK_LABEL(playlist), dli->PlaylistName().c_str()); gtk_label_set_text(GTK_LABEL(name), dli->DestinationFile().c_str()); float total; char totsize[64]; total = dli->GetTotalBytes(); if (total >= 1048576) { total /= 1048576; sprintf(totsize, "%.2f MB", total);; } else if(total >= 1024) { total /= 1024; sprintf(totsize, "%.2f KB", total); } else sprintf(totsize, "%.2f Bytes", total); string display = totsize; gtk_label_set_text(GTK_LABEL(size), display.c_str()); }