linuxdcpp-team team mailing list archive
-
linuxdcpp-team team
-
Mailing list archive
-
Message #01657
[Branch ~linuxdcpp-team/linuxdcpp/trunk] Rev 377: Don't show partial finished downloads
------------------------------------------------------------
revno: 377
fixes bug(s): https://launchpad.net/bugs/337576
author: Windkracht8 <bartv@xxxxxxxxxxxxxxx>
committer: Steven Sheehy <steven.sheehy@xxxxxxxxx>
branch nick: trunk
timestamp: Thu 2010-08-05 00:31:49 -0500
message:
Don't show partial finished downloads
modified:
Changelog.txt
glade/finishedtransfers.glade
linux/finishedtransfers.cc
linux/finishedtransfers.hh
--
lp:linuxdcpp
https://code.launchpad.net/~linuxdcpp-team/linuxdcpp/trunk
Your team LinuxDC++ Team is subscribed to branch lp:linuxdcpp.
To unsubscribe from this branch go to https://code.launchpad.net/~linuxdcpp-team/linuxdcpp/trunk/+edit-subscription
=== modified file 'Changelog.txt'
--- Changelog.txt 2010-06-06 12:13:09 +0000
+++ Changelog.txt 2010-08-05 05:31:49 +0000
@@ -52,6 +52,7 @@
[2010-04-17] Compilation fixes for OpenSolaris. (thanks Andrew Browne)
[2010-05-22] lp#317346: Favorite Users tab merged from freedcpp.
[2010-06-06] lp#590359: Fix crash with two simultaneous Socket::resolve calls (Razzloss)
+[2010-08-05] lp#337576: Don't show partial finished downloads. (thanks Bart Vullings)
*** 1.0.3 2009-02-01 ***
[2008-08-10] lp#256236: Fixed a crash on startup when using auto-open options.
=== modified file 'glade/finishedtransfers.glade'
--- glade/finishedtransfers.glade 2008-11-30 20:15:23 +0000
+++ glade/finishedtransfers.glade 2010-08-05 05:31:49 +0000
@@ -7,63 +7,17 @@
<property name="border_width">4</property>
<property name="spacing">4</property>
<child>
- <widget class="GtkNotebook" id="finishedbook">
+ <widget class="GtkScrolledWindow" id="viewWindowFile">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <child>
- <widget class="GtkScrolledWindow" id="viewWindowFile">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="shadow_type">GTK_SHADOW_IN</property>
- <child>
- <widget class="GtkTreeView" id="fileView">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- </widget>
- </child>
- </widget>
- </child>
- <child>
- <widget class="GtkLabel" id="lbl_grpfile">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Grouped by Files</property>
- </widget>
- <packing>
- <property name="type">tab</property>
- <property name="tab_fill">False</property>
- </packing>
- </child>
- <child>
- <widget class="GtkScrolledWindow" id="viewWindowUser">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="shadow_type">GTK_SHADOW_IN</property>
- <child>
- <widget class="GtkTreeView" id="userView">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="headers_clickable">True</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="position">1</property>
- </packing>
- </child>
- <child>
- <widget class="GtkLabel" id="lbl_grpuser">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Grouped by Users</property>
- </widget>
- <packing>
- <property name="type">tab</property>
- <property name="position">1</property>
- <property name="tab_fill">False</property>
- </packing>
+ <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="shadow_type">GTK_SHADOW_IN</property>
+ <child>
+ <widget class="GtkTreeView" id="fileView">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ </widget>
</child>
</widget>
</child>
=== modified file 'linux/finishedtransfers.cc'
--- linux/finishedtransfers.cc 2010-01-01 00:57:24 +0000
+++ linux/finishedtransfers.cc 2010-08-05 05:31:49 +0000
@@ -42,7 +42,6 @@
BookEntry(type, title, "finishedtransfers.glade"),
isUpload(isUpload),
totalFiles(0),
- totalUsers(0),
totalBytes(0),
totalTime(0)
{
@@ -51,10 +50,10 @@
fileView.insertColumn("Time", G_TYPE_STRING, TreeView::STRING, 150);
fileView.insertColumn("Filename", G_TYPE_STRING, TreeView::STRING, 100);
fileView.insertColumn("Path", G_TYPE_STRING, TreeView::STRING, 200);
- fileView.insertColumn("Nicks", G_TYPE_STRING, TreeView::STRING, 100);
- fileView.insertColumn("Transferred", G_TYPE_INT64, TreeView::SIZE, 100);
- fileView.insertColumn("Speed", G_TYPE_INT64, TreeView::SPEED, 100);
- fileView.insertColumn("CRC Checked", G_TYPE_STRING, TreeView::STRING, 100);
+ fileView.insertColumn("Users", G_TYPE_STRING, TreeView::STRING, 100);
+ fileView.insertColumn("Size", G_TYPE_INT64, TreeView::SIZE, 100);
+ fileView.insertColumn("Average Speed", G_TYPE_INT64, TreeView::SPEED, 125);
+ fileView.insertColumn("CRC Checked", G_TYPE_STRING, TreeView::STRING, 115);
fileView.insertHiddenColumn("Target", G_TYPE_STRING);
fileView.insertHiddenColumn("Elapsed Time", G_TYPE_INT64);
fileView.finalize();
@@ -67,26 +66,6 @@
gtk_tree_view_set_fixed_height_mode(fileView.get(), TRUE);
gtk_tree_selection_set_mode(gtk_tree_view_get_selection(fileView.get()), GTK_SELECTION_MULTIPLE);
- // Initialize user treeview
- userView.setView(GTK_TREE_VIEW(getWidget("userView")), true, "finished");
- userView.insertColumn("Time", G_TYPE_STRING, TreeView::STRING, 150);
- userView.insertColumn("Nick", G_TYPE_STRING, TreeView::STRING, 100);
- userView.insertColumn("Hub", G_TYPE_STRING, TreeView::STRING, 200);
- userView.insertColumn("Files", G_TYPE_STRING, TreeView::STRING, 100);
- userView.insertColumn("Transferred", G_TYPE_INT64, TreeView::SIZE, 100);
- userView.insertColumn("Speed", G_TYPE_INT64, TreeView::SPEED, 100);
- userView.insertHiddenColumn("CID", G_TYPE_STRING);
- userView.insertHiddenColumn("Elapsed Time", G_TYPE_INT64);
- userView.finalize();
- userStore = gtk_list_store_newv(userView.getColCount(), userView.getGTypes());
- gtk_tree_view_set_model(userView.get(), GTK_TREE_MODEL(userStore));
- g_object_unref(userStore);
- userSelection = gtk_tree_view_get_selection(userView.get());
- gtk_tree_view_column_set_sort_indicator(gtk_tree_view_get_column(userView.get(), userView.col("Time")), TRUE);
- gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(userStore), userView.col("Time"), GTK_SORT_ASCENDING);
- gtk_tree_view_set_fixed_height_mode(userView.get(), TRUE);
- gtk_tree_selection_set_mode(gtk_tree_view_get_selection(userView.get()), GTK_SELECTION_MULTIPLE);
-
// Connect the signals to their callback functions.
g_signal_connect(getWidget("openItem"), "activate", G_CALLBACK(onOpen_gui), (gpointer)this);
g_signal_connect(getWidget("openFolderItem"), "activate", G_CALLBACK(onOpenFolder_gui), (gpointer)this);
@@ -95,10 +74,6 @@
g_signal_connect(fileView.get(), "button-press-event", G_CALLBACK(onButtonPressed_gui), (gpointer)this);
g_signal_connect(fileView.get(), "button-release-event", G_CALLBACK(onButtonReleased_gui), (gpointer)this);
g_signal_connect(fileView.get(), "key-release-event", G_CALLBACK(onKeyReleased_gui), (gpointer)this);
- g_signal_connect(userView.get(), "button-press-event", G_CALLBACK(onButtonPressed_gui), (gpointer)this);
- g_signal_connect(userView.get(), "button-release-event", G_CALLBACK(onButtonReleased_gui), (gpointer)this);
- g_signal_connect(userView.get(), "key-release-event", G_CALLBACK(onKeyReleased_gui), (gpointer)this);
- g_signal_connect_after(getWidget("finishedbook"), "switch-page", G_CALLBACK(onPageSwitched_gui), (gpointer)this);
}
@@ -115,21 +90,6 @@
FinishedManager::getInstance()->addListener(this);
}
-bool FinishedTransfers::findUser_gui(GtkTreeIter* iter, const string& cid)
-{
- bool valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(userStore), iter);
-
- while (valid)
- {
- if (userView.getString(iter, "CID") == cid)
- return TRUE;
-
- valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(userStore), iter);
- }
-
- return FALSE;
-}
-
bool FinishedTransfers::findFile_gui(GtkTreeIter* iter, const string& item)
{
bool valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(fileStore), iter);
@@ -145,56 +105,11 @@
return FALSE;
}
-void FinishedTransfers::addUser_gui(StringMap params, bool update)
-{
- GtkTreeIter iter;
- int64_t transferred = Util::toInt64(params["Transferred"]);
- int64_t speed = Util::toInt64(params["Speed"]);
- int64_t time = Util::toInt64(params["Elapsed Time"]);
- int64_t addTime = time;
- int64_t addSize = transferred;
-
- if (!findUser_gui(&iter, params["CID"]))
- {
- gtk_list_store_append(userStore, &iter);
- totalUsers++;
- }
- else
- {
- addSize = transferred - userView.getValue<int64_t>(&iter, "Transferred");
- addTime = time - userView.getValue<int64_t>(&iter, "Elapsed Time");
- }
-
- gtk_list_store_set(userStore, &iter,
- userView.col("Time"), params["Time"].c_str(),
- userView.col("Nick"), params["Nick"].c_str(),
- userView.col("Hub"), params["Hub"].c_str(),
- userView.col("Files"), params["Files"].c_str(),
- userView.col("Transferred"), transferred,
- userView.col("Speed"), speed,
- userView.col("CID"), params["CID"].c_str(),
- userView.col("Elapsed Time"), time,
- -1);
-
- totalBytes += addSize;
- totalTime += addTime;
-
- if (update)
- {
- updateStatus_gui();
-
- if ((!isUpload && BOOLSETTING(BOLD_FINISHED_DOWNLOADS)) ||
- (isUpload && BOOLSETTING(BOLD_FINISHED_UPLOADS)))
- {
- setBold_gui();
- }
- }
-}
void FinishedTransfers::addFile_gui(StringMap params, bool update)
{
GtkTreeIter iter;
- int64_t transferred = Util::toInt64(params["Transferred"]);
- int64_t speed = Util::toInt64(params["Speed"]);
+ int64_t size = Util::toInt64(params["Size"]);
+ int64_t speed = Util::toInt64(params["Average Speed"]);
int64_t time = Util::toInt64(params["Elapsed Time"]);
if (!findFile_gui(&iter, params["Target"]))
@@ -206,9 +121,9 @@
fileView.col("Time"), params["Time"].c_str(),
fileView.col("Filename"), params["Filename"].c_str(),
fileView.col("Path"), params["Path"].c_str(),
- fileView.col("Nicks"), params["Nicks"].c_str(),
- fileView.col("Transferred"), transferred,
- fileView.col("Speed"), speed,
+ fileView.col("Users"), params["Users"].c_str(),
+ fileView.col("Size"), size,
+ fileView.col("Average Speed"), speed,
fileView.col("CRC Checked"), params["CRC Checked"].c_str(),
fileView.col("Target"), params["Target"].c_str(),
fileView.col("Elapsed Time"), time,
@@ -228,12 +143,7 @@
void FinishedTransfers::updateStatus_gui()
{
- string status;
- if(gtk_notebook_get_current_page(GTK_NOTEBOOK(getWidget("finishedbook"))) ==
- gtk_notebook_page_num(GTK_NOTEBOOK(getWidget("finishedbook")), getWidget("viewWindowFile")))
- status = Util::toString(totalFiles) + _(" files");
- else
- status = Util::toString(totalUsers) + _(" users");
+ string status = Util::toString(totalFiles) + _(" files");
string size = Util::formatBytes(totalBytes);
string speed = Util::formatBytes((totalTime > 0) ? totalBytes * ((int64_t)1000) / totalTime : 0) + "/s";
@@ -246,27 +156,13 @@
gboolean FinishedTransfers::onButtonPressed_gui(GtkWidget *widget, GdkEventButton *event, gpointer data)
{
FinishedTransfers *ft = (FinishedTransfers *)data;
- GtkTreeSelection *selection;
- TreeView *view;
- if(gtk_notebook_get_current_page(GTK_NOTEBOOK(ft->getWidget("finishedbook"))) ==
- gtk_notebook_page_num(GTK_NOTEBOOK(ft->getWidget("finishedbook")), ft->getWidget("viewWindowFile")))
- {
- selection = ft->fileSelection;
- view = &ft->fileView;
- }
- else
- {
- selection = ft->userSelection;
- view = &ft->userView;
- }
-
if (event->button == 3)
{
GtkTreePath *path;
- if (gtk_tree_view_get_path_at_pos(view->get(), (gint)event->x, (gint)event->y, &path, NULL, NULL, NULL))
+ if (gtk_tree_view_get_path_at_pos(ft->fileView.get(), (gint)event->x, (gint)event->y, &path, NULL, NULL, NULL))
{
- bool selected = gtk_tree_selection_path_is_selected(selection, path);
+ bool selected = gtk_tree_selection_path_is_selected(ft->fileSelection, path);
gtk_tree_path_free(path);
if (selected)
@@ -281,34 +177,12 @@
gboolean FinishedTransfers::onButtonReleased_gui(GtkWidget *widget, GdkEventButton *event, gpointer data)
{
FinishedTransfers *ft = (FinishedTransfers *)data;
- GtkTreeSelection *selection;
- TreeView *view;
- if(gtk_notebook_get_current_page(GTK_NOTEBOOK(ft->getWidget("finishedbook"))) ==
- gtk_notebook_page_num(GTK_NOTEBOOK(ft->getWidget("finishedbook")), ft->getWidget("viewWindowFile")))
- {
- selection = ft->fileSelection;
- view = &ft->fileView;
- }
- else
- {
- selection = ft->userSelection;
- view = &ft->userView;
- }
- int count = gtk_tree_selection_count_selected_rows(selection);
+
+ int count = gtk_tree_selection_count_selected_rows(ft->fileSelection);
if (event->button == 3 && count > 0)
{
gtk_menu_popup(GTK_MENU(ft->getWidget("menu")), NULL, NULL, NULL, NULL, 0, gtk_get_current_event_time());
- if (view == &ft->fileView)
- {
- gtk_widget_set_sensitive(ft->getWidget("openItem"), TRUE);
- gtk_widget_set_sensitive(ft->getWidget("openFolderItem"), TRUE);
- }
- else
- {
- gtk_widget_set_sensitive(ft->getWidget("openItem"), FALSE);
- gtk_widget_set_sensitive(ft->getWidget("openFolderItem"), FALSE);
- }
gtk_widget_show_all(ft->getWidget("menu"));
}
@@ -318,24 +192,12 @@
gboolean FinishedTransfers::onKeyReleased_gui(GtkWidget *widget, GdkEventKey *event, gpointer data)
{
FinishedTransfers *ft = (FinishedTransfers *)data;
- GtkTreeSelection *selection;
- TreeView *view;
- if(gtk_notebook_get_current_page(GTK_NOTEBOOK(ft->getWidget("finishedbook"))) ==
- gtk_notebook_page_num(GTK_NOTEBOOK(ft->getWidget("finishedbook")), ft->getWidget("viewWindowFile")))
- {
- selection = ft->fileSelection;
- view = &ft->fileView;
- }
- else
- {
- selection = ft->userSelection;
- view = &ft->userView;
- }
- int count = gtk_tree_selection_count_selected_rows(selection);
+
+ int count = gtk_tree_selection_count_selected_rows(ft->fileSelection);
if (count > 0)
{
- if (view == &ft->fileView && (event->keyval == GDK_Return || event->keyval == GDK_KP_Enter))
+ if (event->keyval == GDK_Return || event->keyval == GDK_KP_Enter)
{
onOpen_gui(NULL, data);
}
@@ -379,11 +241,6 @@
}
-void FinishedTransfers::onPageSwitched_gui(GtkNotebook *notebook, GtkNotebookPage *page, guint num, gpointer data)
-{
- ((FinishedTransfers*)data)->updateStatus_gui(); // Switch the total count between users and files
-}
-
void FinishedTransfers::onOpenFolder_gui(GtkMenuItem *item, gpointer data)
{
FinishedTransfers *ft = (FinishedTransfers *)data;
@@ -413,27 +270,11 @@
void FinishedTransfers::onRemoveItems_gui(GtkMenuItem *item, gpointer data)
{
FinishedTransfers *ft = (FinishedTransfers *)data;
- GtkTreeSelection *selection;
- TreeView *view;
- GtkListStore *store;
- if(gtk_notebook_get_current_page(GTK_NOTEBOOK(ft->getWidget("finishedbook"))) ==
- gtk_notebook_page_num(GTK_NOTEBOOK(ft->getWidget("finishedbook")), ft->getWidget("viewWindowFile")))
- {
- selection = ft->fileSelection;
- view = &ft->fileView;
- store = ft->fileStore;
- }
- else
- {
- selection = ft->userSelection;
- view = &ft->userView;
- store = ft->userStore;
- }
string target;
GtkTreeIter iter;
GtkTreePath *path;
- GList *list = gtk_tree_selection_get_selected_rows(selection, NULL);
+ GList *list = gtk_tree_selection_get_selected_rows(ft->fileSelection, NULL);
typedef Func1<FinishedTransfers, string> F1;
F1 *func;
@@ -441,20 +282,10 @@
for (GList *i = list; i; i = i->next)
{
path = (GtkTreePath *)i->data;
- if (gtk_tree_model_get_iter(GTK_TREE_MODEL(store), &iter, path))
+ if (gtk_tree_model_get_iter(GTK_TREE_MODEL(ft->fileStore), &iter, path))
{
- if (view == &ft->fileView)
- {
- target = view->getString(&iter, "Target");
- func = new F1(ft, &FinishedTransfers::removeFile_client, target);
- }
- else
- {
- target = view->getString(&iter, "CID");
- func = new F1(ft, &FinishedTransfers::removeUser_client, target);
- }
-
-
+ target = ft->fileView.getString(&iter, "Target");
+ func = new F1(ft, &FinishedTransfers::removeFile_client, target);
WulforManager::get()->dispatchClientFunc(func);
}
gtk_tree_path_free(path);
@@ -464,25 +295,6 @@
ft->updateStatus_gui(); // Why? model won't change until after the _client call.
}
-void FinishedTransfers::removeUser_gui(string target)
-{
- GtkTreeIter iter;
- GtkTreeModel *m = GTK_TREE_MODEL(userStore);
- bool valid = gtk_tree_model_get_iter_first(m, &iter);
-
- while (valid)
- {
- if (target == userView.getString(&iter, "CID"))
- {
- gtk_list_store_remove(userStore, &iter);
- totalUsers--;
- updateStatus_gui();
- return;
- }
- valid = gtk_tree_model_iter_next(m, &iter);
- }
-}
-
void FinishedTransfers::removeFile_gui(string target)
{
GtkTreeIter iter;
@@ -493,7 +305,7 @@
{
if (target == fileView.getString(&iter, "Target"))
{
- totalBytes -= fileView.getValue<gint64>(&iter, "Transferred");
+ totalBytes -= fileView.getValue<gint64>(&iter, "Size");
totalTime -= fileView.getValue<gint64>(&iter, "Elapsed Time");
gtk_list_store_remove(fileStore, &iter);
totalFiles--;
@@ -508,12 +320,10 @@
{
FinishedTransfers *ft = (FinishedTransfers *)data;
- gtk_list_store_clear(ft->userStore);
gtk_list_store_clear(ft->fileStore);
ft->totalBytes = 0;
ft->totalTime = 0;
ft->totalFiles = 0;
- ft->totalUsers = 0;
ft->updateStatus_gui();
typedef Func0<FinishedTransfers> F0;
@@ -528,7 +338,6 @@
//F2 *func;
FinishedManager::getInstance()->lockLists();
const FinishedManager::MapByFile &list = FinishedManager::getInstance()->getMapByFile(isUpload);
- const FinishedManager::MapByUser &user = FinishedManager::getInstance()->getMapByUser(isUpload);
for (FinishedManager::MapByFile::const_iterator it = list.begin(); it != list.end(); ++it)
{
@@ -539,15 +348,6 @@
//WulforManager::get()->dispatchGuiFunc(func);
}
- for (FinishedManager::MapByUser::const_iterator uit = user.begin(); uit != user.end(); ++uit)
- {
- params.clear();
- getFinishedParams_client(uit->second, uit->first, params);
- addUser_gui(params, FALSE);
- //func = new F2(this, &FinishedTransfers::addItem_gui, params, FALSE);
- //WulforManager::get()->dispatchGuiFunc(func);
- }
-
FinishedManager::getInstance()->unLockLists();
updateStatus_gui();
@@ -564,43 +364,14 @@
{
nicks += WulforUtil::getNicks(it->get()->getCID()) + ", ";
}
- params["Nicks"] = nicks.substr(0, nicks.length() - 2);
- // item->getFileSize() seems to return crap. I guess there's no way to get
- // the real file size with this core version? Only the transferred part (I guess
- // the size could be asked from QueueManager (if the file isn't complete)?)
- params["Transferred"] = Util::toString(item->getTransferred());
- params["Speed"] = Util::toString(item->getAverageSpeed());
+ params["Users"] = nicks.substr(0, nicks.length() - 2);
+ params["Size"] = Util::toString(item->getTransferred());
+ params["Average Speed"] = Util::toString(item->getAverageSpeed());
params["CRC Checked"] = item->getCrc32Checked() ? _("Yes") : _("No");
params["Target"] = file;
params["Elapsed Time"] = Util::toString(item->getMilliSeconds());
}
-void FinishedTransfers::getFinishedParams_client(const FinishedUserItemPtr& item, const UserPtr& user, StringMap ¶ms)
-{
- std::string files;
- params["Time"] = Util::formatTime("%Y-%m-%d %H:%M:%S", item->getTime());
- params["Nick"] = WulforUtil::getNicks(user->getCID());
- params["Hub"] = Util::toString(ClientManager::getInstance()->getHubNames(user->getCID()));
- for (StringList::const_iterator it = item->getFiles().begin(); it != item->getFiles().end(); ++it)
- {
- files += *it + ", ";
- }
- params["Files"] = files.substr(0, files.length() - 2);
- params["Transferred"] = Util::toString(item->getTransferred());
- params["Speed"] = Util::toString(item->getAverageSpeed());
- params["CID"] = user->getCID().toBase32();
- params["Elapsed Time"] = Util::toString(item->getMilliSeconds());
-}
-
-void FinishedTransfers::removeUser_client(std::string cid)
-{
- UserPtr user = ClientManager::getInstance()->findUser(CID(cid));
-
- if (user)
- FinishedManager::getInstance()->remove(isUpload, user);
-
-}
-
void FinishedTransfers::removeFile_client(std::string target)
{
@@ -616,7 +387,8 @@
void FinishedTransfers::on(FinishedManagerListener::AddedFile, bool upload, const string& file, const FinishedFileItemPtr& item) throw()
{
- if (isUpload == upload)
+ // Show partial uploads, but only full downloads
+ if (isUpload == upload && (upload || item->isFull()))
{
StringMap params;
getFinishedParams_client(item, file, params);
@@ -627,22 +399,10 @@
}
}
-void FinishedTransfers::on(FinishedManagerListener::AddedUser, bool upload, const UserPtr& user, const FinishedUserItemPtr& item) throw()
-{
- if (isUpload == upload)
- {
- StringMap params;
- getFinishedParams_client(item, user, params);
-
- typedef Func2<FinishedTransfers, StringMap, bool> F2;
- F2 *func = new F2(this, &FinishedTransfers::addUser_gui, params, TRUE);
- WulforManager::get()->dispatchGuiFunc(func);
- }
-}
-
void FinishedTransfers::on(FinishedManagerListener::UpdatedFile, bool upload, const string& file, const FinishedFileItemPtr& item) throw()
{
- if (isUpload == upload)
+ // Show partial uploads, but only full downloads
+ if (isUpload == upload && (upload || item->isFull()))
{
StringMap params;
getFinishedParams_client(item, file, params);
@@ -653,26 +413,6 @@
}
}
-void FinishedTransfers::on(FinishedManagerListener::UpdatedUser, bool upload, const UserPtr& user) throw()
-{
- if (isUpload == upload)
- {
- const FinishedManager::MapByUser &umap = FinishedManager::getInstance()->getMapByUser(isUpload);
- FinishedManager::MapByUser::const_iterator userit = umap.find(user);
- if (userit == umap.end())
- return;
-
- const FinishedUserItemPtr &item = userit->second;
-
- StringMap params;
- getFinishedParams_client(item, user, params);
-
- typedef Func2<FinishedTransfers, StringMap, bool> F2;
- F2 *func = new F2(this, &FinishedTransfers::addUser_gui, params, TRUE);
- WulforManager::get()->dispatchGuiFunc(func);
- }
-}
-
void FinishedTransfers::on(FinishedManagerListener::RemovedFile, bool upload, const string& item) throw()
{
if (isUpload == upload)
@@ -683,12 +423,3 @@
}
}
-void FinishedTransfers::on(FinishedManagerListener::RemovedUser, bool upload, const UserPtr& user) throw()
-{
- if (isUpload == upload)
- {
- typedef Func1<FinishedTransfers, std::string> F1;
- F1 *func = new F1(this, &FinishedTransfers::removeUser_gui, user->getCID().toBase32());
- WulforManager::get()->dispatchGuiFunc(func);
- }
-}
=== modified file 'linux/finishedtransfers.hh'
--- linux/finishedtransfers.hh 2009-03-12 05:47:55 +0000
+++ linux/finishedtransfers.hh 2010-08-05 05:31:49 +0000
@@ -44,12 +44,9 @@
// GUI functions
void addFile_gui(dcpp::StringMap params, bool update);
- void addUser_gui(dcpp::StringMap params, bool update);
void removeFile_gui(std::string target);
- void removeUser_gui(std::string cid);
void updateStatus_gui();
bool findFile_gui(GtkTreeIter* iter, const std::string& item);
- bool findUser_gui(GtkTreeIter* iter, const std::string& cid);
// GUI callbacks
static gboolean onButtonPressed_gui(GtkWidget *widget, GdkEventButton *event, gpointer data);
@@ -59,32 +56,24 @@
static void onOpenFolder_gui(GtkMenuItem *item, gpointer data);
static void onRemoveItems_gui(GtkMenuItem *item, gpointer data);
static void onRemoveAll_gui(GtkMenuItem *item, gpointer data);
- static void onPageSwitched_gui(GtkNotebook *notebook, GtkNotebookPage *page, guint num, gpointer data);
// Client functions
void initializeList_client();
void getFinishedParams_client(const dcpp::FinishedFileItemPtr &item, const std::string &file, dcpp::StringMap ¶ms);
- void getFinishedParams_client(const dcpp::FinishedUserItemPtr &item, const dcpp::UserPtr &user, dcpp::StringMap ¶ms);
void removeFile_client(std::string target);
- void removeUser_client(std::string cid);
void removeAll_client();
// Client callbacks
virtual void on(dcpp::FinishedManagerListener::AddedFile, bool upload, const std::string &file, const dcpp::FinishedFileItemPtr &item) throw();
- virtual void on(dcpp::FinishedManagerListener::AddedUser, bool upload, const dcpp::UserPtr &user, const dcpp::FinishedUserItemPtr &item) throw();
virtual void on(dcpp::FinishedManagerListener::UpdatedFile, bool upload, const std::string &file, const dcpp::FinishedFileItemPtr &item) throw();
virtual void on(dcpp::FinishedManagerListener::RemovedFile, bool upload, const std::string &file) throw();
- virtual void on(dcpp::FinishedManagerListener::UpdatedUser, bool upload, const dcpp::UserPtr &user) throw();
- virtual void on(dcpp::FinishedManagerListener::RemovedUser, bool upload, const dcpp::UserPtr &user) throw();
/* virtual void on(dcpp::FinishedManagerListener::RemoveAll, bool upload) throw(); Implement? */
- GtkListStore *fileStore, *userStore;
- TreeView userView;
+ GtkListStore *fileStore;
TreeView fileView;
- GtkTreeSelection *fileSelection,*userSelection;
+ GtkTreeSelection *fileSelection;
bool isUpload;
int totalFiles;
- int totalUsers;
int64_t totalBytes, totalTime;
};