diff options
author | vflyson <vflyson@users.noreply.github.com> | 2017-03-27 03:45:57 +0300 |
---|---|---|
committer | vflyson <vflyson@users.noreply.github.com> | 2017-03-27 15:02:16 +0300 |
commit | eeeb9e4663e7aa3b382c2cf0b11368d0f83efc5a (patch) | |
tree | 6df609dcb93105477a3dc8a5c6bd2a916318b0c4 | |
parent | 00b40e620dcb3d05a3a4ffb26d6bf1139fcd6d62 (diff) |
[regex_filter] Improve the rule swap mechanism
-rw-r--r-- | regex_filter/regex_filter.py | 19 | ||||
-rw-r--r-- | regex_filter/ui.py | 9 |
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) |