From d13e502ee4310f83c2a77e708ea8526725f17ec3 Mon Sep 17 00:00:00 2001 From: rakshasa Date: Thu, 25 Oct 2007 09:13:30 +0000 Subject: [PATCH] * Print to the log when close_on_diskspace gets triggered. * Cleared out unused TextElement code. git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@994 e378c898-3ddf-0310-93e7-cc216c733640 --- src/command_events.cc | 6 ++ src/display/Makefile.am | 2 - src/display/text_element_helpers.h | 66 ------------ src/display/text_element_lambda.h | 161 ----------------------------- src/display/text_element_string.h | 9 ++ src/ui/download.cc | 3 +- src/ui/element_file_list.cc | 3 +- src/ui/element_peer_list.cc | 3 +- 8 files changed, 18 insertions(+), 235 deletions(-) delete mode 100644 src/display/text_element_helpers.h delete mode 100644 src/display/text_element_lambda.h diff --git a/src/command_events.cc b/src/command_events.cc index 0c193433..550a61cd 100644 --- a/src/command_events.cc +++ b/src/command_events.cc @@ -236,6 +236,7 @@ void apply_close_low_diskspace(int64_t arg) { core::DownloadList* downloadList = control->core()->download_list(); + bool closed = false; core::Manager::DListItr itr = downloadList->begin(); while ((itr = std::find_if(itr, downloadList->end(), std::mem_fun(&core::Download::is_downloading))) @@ -245,10 +246,15 @@ apply_close_low_diskspace(int64_t arg) { (*itr)->set_hash_failed(true); (*itr)->set_message(std::string("Low diskspace.")); + + closed = true; } ++itr; } + + if (closed) + control->core()->push_log("Closed torrents due to low diskspace."); } torrent::Object diff --git a/src/display/Makefile.am b/src/display/Makefile.am index 48aede7a..0bdf072d 100644 --- a/src/display/Makefile.am +++ b/src/display/Makefile.am @@ -11,8 +11,6 @@ libsub_display_a_SOURCES = \ utils.cc \ utils.h \ text_element.h \ - text_element_helpers.h \ - text_element_lambda.h \ text_element_list.cc \ text_element_list.h \ text_element_string.cc \ diff --git a/src/display/text_element_helpers.h b/src/display/text_element_helpers.h deleted file mode 100644 index ab74a5c7..00000000 --- a/src/display/text_element_helpers.h +++ /dev/null @@ -1,66 +0,0 @@ -// rTorrent - BitTorrent client -// Copyright (C) 2005-2007, Jari Sundell -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// In addition, as a special exception, the copyright holders give -// permission to link the code of portions of this program with the -// OpenSSL library under certain conditions as described in each -// individual source file, and distribute linked combinations -// including the two. -// -// You must obey the GNU General Public License in all respects for -// all of the code used other than OpenSSL. If you modify file(s) -// with this exception, you may extend this exception to your version -// of the file(s), but you are not obligated to do so. If you do not -// wish to do so, delete this exception statement from your version. -// If you delete this exception statement from all source files in the -// program, then also delete it here. -// -// Contact: Jari Sundell -// -// Skomakerveien 33 -// 3185 Skoppum, NORWAY - -#ifndef RTORRENT_DISPLAY_TEXT_ELEMENT_HELPERS_H -#define RTORRENT_DISPLAY_TEXT_ELEMENT_HELPERS_H - -#include -#include -#include -#include -#include - -#include "core/download.h" -#include "rpc/parse_commands.h" - -#include "text_element_lambda.h" -#include "text_element_string.h" -#include "text_element_value.h" - -namespace display { namespace helpers { - -// All we're ever going to need: - -inline TextElementCommand* -te_command(const char* command, int flags = TextElementCommand::flag_normal, int attributes = Attributes::a_invalid) { - return new TextElementCommand(command, flags, attributes, TextElementCommand::extent_full); -} - -// End All we're ever going to need. - -} } - -#endif diff --git a/src/display/text_element_lambda.h b/src/display/text_element_lambda.h deleted file mode 100644 index 7c2097ab..00000000 --- a/src/display/text_element_lambda.h +++ /dev/null @@ -1,161 +0,0 @@ -// rTorrent - BitTorrent client -// Copyright (C) 2005-2007, Jari Sundell -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// In addition, as a special exception, the copyright holders give -// permission to link the code of portions of this program with the -// OpenSSL library under certain conditions as described in each -// individual source file, and distribute linked combinations -// including the two. -// -// You must obey the GNU General Public License in all respects for -// all of the code used other than OpenSSL. If you modify file(s) -// with this exception, you may extend this exception to your version -// of the file(s), but you are not obligated to do so. If you do not -// wish to do so, delete this exception statement from your version. -// If you delete this exception statement from all source files in the -// program, then also delete it here. -// -// Contact: Jari Sundell -// -// Skomakerveien 33 -// 3185 Skoppum, NORWAY - -#ifndef RTORRENT_DISPLAY_TEXT_ELEMENT_LAMBDA_H -#define RTORRENT_DISPLAY_TEXT_ELEMENT_LAMBDA_H - -#include "text_element.h" - -namespace display { - -template -class TextElementBranchVoid : public TextElement { -public: - typedef typename slot_type::result_type result_type; - - TextElementBranchVoid(const slot_type& slot, TextElement* branch1, TextElement* branch2) : - m_slot(slot), m_branch1(branch1), m_branch2(branch2) {} - ~TextElementBranchVoid() { delete m_branch1; delete m_branch2; } - - virtual char* print(char* first, char* last, Canvas::attributes_list* attributes, rpc::target_type target) { - if (m_slot()) - return m_branch1 != NULL ? m_branch1->print(first, last, attributes, target) : first; - else - return m_branch2 != NULL ? m_branch2->print(first, last, attributes, target) : first; - } - - virtual extent_type max_length() { - return std::max(m_branch1 != NULL ? m_branch1->max_length() : 0, - m_branch2 != NULL ? m_branch2->max_length() : 0); - } - -private: - slot_type m_slot; - - TextElement* m_branch1; - TextElement* m_branch2; -}; - -template -class TextElementBranch : public TextElement { -public: - typedef typename slot_type::argument_type arg1_type; - typedef typename slot_type::result_type result_type; - - TextElementBranch(const slot_type& slot, TextElement* branch1, TextElement* branch2) : - m_slot(slot), m_branch1(branch1), m_branch2(branch2) {} - ~TextElementBranch() { delete m_branch1; delete m_branch2; } - - virtual char* print(char* first, char* last, Canvas::attributes_list* attributes, rpc::target_type target) { - if (target.second == NULL) - return first; - - if (m_slot(reinterpret_cast(target.second))) - return m_branch1 != NULL ? m_branch1->print(first, last, attributes, target) : first; - else - return m_branch2 != NULL ? m_branch2->print(first, last, attributes, target) : first; - } - - virtual extent_type max_length() { - return std::max(m_branch1 != NULL ? m_branch1->max_length() : 0, - m_branch2 != NULL ? m_branch2->max_length() : 0); - } - -private: - slot_type m_slot; - - TextElement* m_branch1; - TextElement* m_branch2; -}; - -template -class TextElementBranch3 : public TextElement { -public: - typedef typename slot_type::argument_type arg1_type; - typedef typename slot_type::result_type result_type; - - TextElementBranch3(const slot_type& slot1, TextElement* branch1, const slot_type& slot2, TextElement* branch2, TextElement* branch3) : - m_slot1(slot1), m_slot2(slot2), m_branch1(branch1), m_branch2(branch2), m_branch3(branch3) {} - ~TextElementBranch3() { delete m_branch1; delete m_branch2; delete m_branch3; } - - virtual char* print(char* first, char* last, Canvas::attributes_list* attributes, rpc::target_type target) { - if (target.second == NULL) - return first; - - if (m_slot1(reinterpret_cast(target.second))) - return m_branch1 != NULL ? m_branch1->print(first, last, attributes, target) : first; - else if (m_slot2(reinterpret_cast(target.second))) - return m_branch2 != NULL ? m_branch2->print(first, last, attributes, target) : first; - else - return m_branch3 != NULL ? m_branch3->print(first, last, attributes, target) : first; - } - - virtual extent_type max_length() { - return std::max(m_branch1 != NULL ? m_branch1->max_length() : 0, - std::max(m_branch2 != NULL ? m_branch2->max_length() : 0, - m_branch3 != NULL ? m_branch3->max_length() : 0)); - } - -private: - slot_type m_slot1; - slot_type m_slot2; - - TextElement* m_branch1; - TextElement* m_branch2; - TextElement* m_branch3; -}; - -template -inline TextElementBranchVoid* -text_element_branch_void(const slot_type& slot, TextElement* branch1, TextElement* branch2) { - return new TextElementBranchVoid(slot, branch1, branch2); -} - -template -inline TextElementBranch* -text_element_branch(const slot_type& slot, TextElement* branch1, TextElement* branch2) { - return new TextElementBranch(slot, branch1, branch2); -} - -template -inline TextElementBranch3* -text_element_branch3(const slot_type& slot1, TextElement* branch1, const slot_type& slot2, TextElement* branch2, TextElement* branch3) { - return new TextElementBranch3(slot1, branch1, slot2, branch2, branch3); -} - -} - -#endif diff --git a/src/display/text_element_string.h b/src/display/text_element_string.h index e2a83a71..39e26302 100644 --- a/src/display/text_element_string.h +++ b/src/display/text_element_string.h @@ -193,6 +193,15 @@ protected: const char* m_commandEnd; }; +namespace helpers { + +inline TextElementCommand* +te_command(const char* command, int flags = TextElementCommand::flag_normal, int attributes = Attributes::a_invalid) { + return new TextElementCommand(command, flags, attributes, TextElementCommand::extent_full); +} + +} + } #endif diff --git a/src/ui/download.cc b/src/ui/download.cc index e1f83021..331e3e73 100644 --- a/src/ui/download.cc +++ b/src/ui/download.cc @@ -51,8 +51,7 @@ #include "display/window_title.h" #include "display/window_download_statusbar.h" -#include "display/text_element_lambda.h" -#include "display/text_element_helpers.h" +#include "display/text_element_string.h" #include "control.h" #include "download.h" diff --git a/src/ui/element_file_list.cc b/src/ui/element_file_list.cc index 29f6f3a5..948f6cfa 100644 --- a/src/ui/element_file_list.cc +++ b/src/ui/element_file_list.cc @@ -44,8 +44,7 @@ #include "display/frame.h" #include "display/manager.h" -#include "display/text_element_helpers.h" -#include "display/text_element_lambda.h" +#include "display/text_element_string.h" #include "display/window_file_list.h" #include "input/manager.h" diff --git a/src/ui/element_peer_list.cc b/src/ui/element_peer_list.cc index b7691e22..c682b267 100644 --- a/src/ui/element_peer_list.cc +++ b/src/ui/element_peer_list.cc @@ -44,8 +44,7 @@ #include "display/frame.h" #include "display/manager.h" -#include "display/text_element_helpers.h" -#include "display/text_element_lambda.h" +#include "display/text_element_string.h" #include "display/utils.h" #include "display/window_peer_list.h" #include "input/manager.h"