From f79fc6b5e278b9d08a19f386b86c79bd1d699be7 Mon Sep 17 00:00:00 2001
From: Tydus <Tydus@Tydus.org>
Date: Sat, 8 Dec 2012 23:13:32 +0800
Subject: [PATCH] Implemented stub hash_mode settings for core and gtkui
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Based on libtorrent v0.15. It's a quick-and dirty, even stub implementation, but works fine. Contains core and gtkui patches, but not webui.

Don't know if we should put a global config for seed mode.

We should do a simple check for existance of the target files at least, as μT does.
---
 deluge/core/torrentmanager.py               |    1 +
 deluge/ui/gtkui/addtorrentdialog.py         |    5 +++++
 deluge/ui/gtkui/glade/add_torrent_dialog.ui |   15 +++++++++++++++
 3 files changed, 21 insertions(+), 0 deletions(-)

diff --git a/deluge/core/torrentmanager.py b/deluge/core/torrentmanager.py
index d60d785..e9565b6 100644
--- a/deluge/core/torrentmanager.py
+++ b/deluge/core/torrentmanager.py
@@ -455,6 +455,7 @@ def add(self, torrent_info=None, state=None, options=None, save_state=True,
         add_torrent_params["paused"] = True
         add_torrent_params["auto_managed"] = False
         add_torrent_params["duplicate_is_error"] = True
+        add_torrent_params["seed_mode"] = options.get("seed_mode", False)
 
         # We need to pause the AlertManager momentarily to prevent alerts
         # for this torrent being generated before a Torrent object is created.
diff --git a/deluge/ui/gtkui/addtorrentdialog.py b/deluge/ui/gtkui/addtorrentdialog.py
index e2df0c9..ad9367d 100644
--- a/deluge/ui/gtkui/addtorrentdialog.py
+++ b/deluge/ui/gtkui/addtorrentdialog.py
@@ -411,6 +411,8 @@ def update_torrent_options(self, torrent_id):
             options["sequential_download"])
         self.builder.get_object("chk_move_completed").set_active(
             options["move_completed"])
+        self.builder.get_object("chk_seedmode").set_active(
+            options["seed_mode"])
 
     def save_torrent_options(self, row=None):
         # Keeps the torrent options dictionary up-to-date with what the user has
@@ -466,6 +468,8 @@ def set_download_true(model, path, itr):
             self.builder.get_object("chk_sequential_download").get_active() or False
         options["move_completed"] = \
             self.builder.get_object("chk_move_completed").get_active()
+        options["seed_mode"] = \
+            self.builder.get_object("chk_seedmode").get_active()
 
         self.options[torrent_id] = options
 
@@ -521,6 +525,7 @@ def set_default_options(self):
             self.core_config["sequential_download"])
         self.builder.get_object("chk_move_completed").set_active(
             self.core_config["move_completed"])
+        self.builder.get_object("chk_seedmode").set_active(False)
 
     def get_file_priorities(self, torrent_id):
         # A list of priorities
diff --git a/deluge/ui/gtkui/glade/add_torrent_dialog.ui b/deluge/ui/gtkui/glade/add_torrent_dialog.ui
index c83a228..c99d9af 100644
--- a/deluge/ui/gtkui/glade/add_torrent_dialog.ui
+++ b/deluge/ui/gtkui/glade/add_torrent_dialog.ui
@@ -738,6 +738,21 @@ used sparingly.</property>
                                         <property name="position">2</property>
                                       </packing>
                                     </child>
+                                    <child>
+                                      <object class="GtkCheckButton" id="chk_seedmode">
+                                        <property name="label" translatable="yes">Skip _Hash Check (Seed Mode)</property>
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">True</property>
+                                        <property name="receives_default">False</property>
+                                        <property name="use_underline">True</property>
+                                        <property name="draw_indicator">True</property>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">False</property>
+                                        <property name="position">3</property>
+                                      </packing>
+                                    </child>
                                   </object>
                                 </child>
                               </object>
-- 
1.7.3.1.msysgit.0

