mirror of
https://github.com/MCV-Software/TWBlue.git
synced 2024-11-23 03:38:08 -06:00
53 lines
2.3 KiB
Python
53 lines
2.3 KiB
Python
|
# -*- coding: utf-8 -*-
|
||
|
import widgetUtils
|
||
|
from pubsub import pub
|
||
|
from wxUI.dialogs import userAliasDialogs
|
||
|
|
||
|
class userAliasController(object):
|
||
|
def __init__(self, settings):
|
||
|
super(userAliasController, self).__init__()
|
||
|
self.settings = settings
|
||
|
self.dialog = userAliasDialogs.userAliasEditorDialog()
|
||
|
self.update_aliases_manager()
|
||
|
widgetUtils.connect_event(self.dialog.add, widgetUtils.BUTTON_PRESSED, self.on_add)
|
||
|
widgetUtils.connect_event(self.dialog.edit, widgetUtils.BUTTON_PRESSED, self.on_edit)
|
||
|
widgetUtils.connect_event(self.dialog.remove, widgetUtils.BUTTON_PRESSED, self.on_remove)
|
||
|
pub.subscribe(self.update_aliases_manager, "alias-added")
|
||
|
self.dialog.ShowModal()
|
||
|
|
||
|
def update_aliases_manager(self):
|
||
|
self.dialog.users.Clear()
|
||
|
aliases = [self.settings["user-aliases"].get(k) for k in self.settings["user-aliases"].keys()]
|
||
|
if len(aliases) > 0:
|
||
|
self.dialog.users.InsertItems(aliases, 0)
|
||
|
self.dialog.on_selection_changes()
|
||
|
|
||
|
def on_add(self, *args, **kwargs):
|
||
|
pub.sendMessage("execute-action", action="add_alias")
|
||
|
|
||
|
def on_edit(self, *args, **kwargs):
|
||
|
selection = self.dialog.get_selected_user()
|
||
|
if selection != "":
|
||
|
edited = self.dialog.edit_alias_dialog(_("Edit alias for {}").format(selection))
|
||
|
if edited == None or edited == "":
|
||
|
return
|
||
|
for user_key in self.settings["user-aliases"].keys():
|
||
|
if self.settings["user-aliases"][user_key] == selection:
|
||
|
self.settings["user-aliases"][user_key] = edited
|
||
|
self.settings.write()
|
||
|
self.update_aliases_manager()
|
||
|
break
|
||
|
|
||
|
def on_remove(self, *args, **kwargs):
|
||
|
selection = self.dialog.get_selected_user()
|
||
|
if selection == None or selection == "":
|
||
|
return
|
||
|
should_remove = self.dialog.remove_alias_dialog()
|
||
|
if should_remove:
|
||
|
for user_key in self.settings["user-aliases"].keys():
|
||
|
if self.settings["user-aliases"][user_key] == selection:
|
||
|
self.settings["user-aliases"].pop(user_key)
|
||
|
self.settings.write()
|
||
|
self.update_aliases_manager()
|
||
|
break
|