Welcome to mirror list, hosted at ThFree Co, Russian Federation.

dev.gajim.org/gajim/gajim-plugins.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvflyson <vflyson@users.noreply.github.com>2017-03-27 03:45:57 +0300
committervflyson <vflyson@users.noreply.github.com>2017-03-27 15:02:16 +0300
commiteeeb9e4663e7aa3b382c2cf0b11368d0f83efc5a (patch)
tree6df609dcb93105477a3dc8a5c6bd2a916318b0c4
parent00b40e620dcb3d05a3a4ffb26d6bf1139fcd6d62 (diff)
[regex_filter] Improve the rule swap mechanism
-rw-r--r--regex_filter/regex_filter.py19
-rw-r--r--regex_filter/ui.py9
2 files changed, 18 insertions, 10 deletions
diff --git a/regex_filter/regex_filter.py b/regex_filter/regex_filter.py
index 5b19c8e..c9731fd 100644
--- a/regex_filter/regex_filter.py
+++ b/regex_filter/regex_filter.py
@@ -88,11 +88,20 @@ class RegexFilterPlugin(GajimPlugin):
return False
@log_calls('RegexFilterPlugin')
- def swap_rules(self, oldNum, newNum):
- if newNum >= 0 and newNum < len(self.get_rules().items()):
- temp = self.config[str(newNum)]
- self.config[str(newNum)] = self.config[str(oldNum)]
- self.config[str(oldNum)] = temp
+ def swap_rules(self, old_num, down):
+ new_num = old_num
+ rules_num = self.rules.keys()
+ rules_num.sort()
+ if down:
+ rules_num = reversed(rules_num)
+ for num in rules_num:
+ if num == old_num:
+ break
+ new_num = num
+ if new_num != old_num:
+ temp = self.config[str(new_num)]
+ self.config[str(new_num)] = self.config[str(old_num)]
+ self.config[str(old_num)] = temp
self.create_rules()
return True
return False
diff --git a/regex_filter/ui.py b/regex_filter/ui.py
index 4841b94..0afae42 100644
--- a/regex_filter/ui.py
+++ b/regex_filter/ui.py
@@ -115,14 +115,13 @@ class RegexFilterPluginConfigDialog(GajimPluginConfigDialog):
for rule in rules:
it = model.get_iter(rule)
- ruleNum = model.get(it, 0)
- self.plugin.swap_rules("%d" % ruleNum, int("%d" % ruleNum) - 1)
-
+ ruleNum, _ = model.get(it, 0, 1)
+ self.plugin.swap_rules(ruleNum, False)
def move_down_button_clicked_cb(self, button, *args):
model, rules = self.rules_view.get_selection().get_selected_rows()
for rule in rules:
it = model.get_iter(rule)
- ruleNum = model.get(it, 0)
- self.plugin.swap_rules("%d" % ruleNum, int("%d" % ruleNum) + 1)
+ ruleNum, _ = model.get(it, 0, 1)
+ self.plugin.swap_rules(ruleNum, True)