Skip to content

Commit

Permalink
删除菜单可用
Browse files Browse the repository at this point in the history
  • Loading branch information
iamhefang committed Jul 8, 2019
1 parent d3a8eb6 commit a3ad756
Show file tree
Hide file tree
Showing 4 changed files with 32 additions and 21 deletions.
2 changes: 1 addition & 1 deletion mHosts.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"version": "1.0.0",
"version": "1.0.1",
"registry": {
"type": "list",
"url": "https://github.com/iamhefang/mHosts/releases"
Expand Down
31 changes: 23 additions & 8 deletions src/views/MainWindow.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,14 +39,17 @@ def InitHostsTree(self, select=None):
self.hostsTree.DeleteAllItems()
root = self.hostsTree.AddRoot("全部Hosts", image=self.images["logo"])
selectId = self.hostsTree.AppendItem(
root, "当前系统", image=self.images[sys.platform], data=systemHosts)
root, "当前系统", image=self.images[sys.platform], data=systemHosts
)
for hosts in Settings.settings["hosts"]:
itemId = self.hostsTree.AppendItem(
root, hosts["name"], data=hosts, image=self.images[hosts["icon"]])
root, hosts["name"], data=hosts, image=self.images[hosts["icon"]]
)
self.hostsTree.SetItemBold(itemId, hosts["active"])
if hosts["active"]:
self.hostsTree.SetItemTextColour(
itemId, Colour(0x12, 0x96, 0xdb))
itemId, Colour(0x12, 0x96, 0xdb)
)
if hosts["id"] == select:
selectId = itemId
self.hostsTree.ExpandAll()
Expand Down Expand Up @@ -93,8 +96,7 @@ def ShowTreeItemMenu(self, event):
return
self.__currentSelectHost = hosts
menu = Menu()
popMenuActive = menu.Append(
TrayIcon.ID_TREE_MENU_SET_ACTIVE, "设置为当前Hosts")
popMenuActive = menu.Append(TrayIcon.ID_TREE_MENU_SET_ACTIVE, "设置为当前Hosts")
if hosts["id"] == ID_SYSTEM_HOSTS or hosts['alwaysApply']:
popMenuActive.Enable(False)
else:
Expand All @@ -121,8 +123,7 @@ def OnHostsTreeItemSelect(self, event):
if not hosts:
return
self.codeEditor.SetReadOnly(False)
self.codeEditor.SetValue(Hosts.GetSystemHosts(
) if hosts["id"] == ID_SYSTEM_HOSTS else hosts["content"])
self.codeEditor.SetValue(Hosts.GetSystemHosts() if hosts["id"] == ID_SYSTEM_HOSTS else hosts["content"])
self.codeEditor.SetReadOnly(hosts["readOnly"])
self.codeEditor.SetHosts(hosts)

Expand Down Expand Up @@ -193,6 +194,7 @@ def OnMenuClicked(self, event: CommandEvent):
TrayIcon.ID_TOGGLE: self.ToggleWindow,
TrayIcon.ID_REFRESH_DNS: MainWindow.DoRefreshDNS,
TrayIcon.ID_NEW: lambda: self.ShowEditDialog(None),
TrayIcon.ID_ABOUT: lambda: self.aboutDialog.Show(),
TrayIcon.ID_IMPORT: None,
TrayIcon.ID_LUNCH_CHROME: lambda: MainWindow.LunchChrome(),
TrayIcon.ID_LUNCH_CHROME_CROS: lambda: MainWindow.LunchChrome(
Expand All @@ -203,7 +205,9 @@ def OnMenuClicked(self, event: CommandEvent):
),
TrayIcon.ID_TREE_MENU_EDIT: lambda: self.ShowEditDialog(self.__currentSelectHost),
TrayIcon.ID_TREE_MENU_SET_ACTIVE: lambda: self.ApplyHosts(
self.__currentSelectHost["id"])
self.__currentSelectHost["id"]
),
TrayIcon.ID_TREE_MENU_DELETE: lambda: self.DeleteHosts(self.__currentSelectHost)
}
if event.GetId() in handlers:
callback = handlers[event.GetId()]
Expand All @@ -218,6 +222,17 @@ def OnMenuClicked(self, event: CommandEvent):
def CheckUpdate(self):
CheckNewVersionThread(self).start()

def DeleteHosts(self, hosts: dict):
if hosts['active']:
MessageBox("无法删除当前应用的hosts", "删除失败", ICON_ERROR)
return
for index, host in enumerate(Settings.settings["hosts"]):
if host["id"] == hosts["id"]:
del Settings.settings["hosts"][index]
MessagePanel.Send("Hosts'%(name)s'已删除" % hosts, "删除成功", dpi=(self.dpiX, self.dpiY))
break
self.InitHostsTree()

@staticmethod
def LunchChrome(args=""):
chromePath = Settings.settings["chromePath"]
Expand Down
7 changes: 3 additions & 4 deletions src/views/TrayIcon.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

class TrayIcon(TaskBarIcon):
ID_EXIT = NewId()
ID_UPDATE = NewId()
ID_ABOUT = NewId()
ID_TOGGLE = NewId()
ID_REFRESH_DNS = NewId()
# 新建Hosts
Expand Down Expand Up @@ -41,7 +41,7 @@ def __init__(self, window):
self.ID_REFRESH_DNS,
self.ID_TOGGLE,
self.ID_EXIT,
self.ID_UPDATE,
self.ID_ABOUT,
self.ID_LUNCH_CHROME,
self.ID_LUNCH_CHROME_CROS,
self.ID_LUNCH_CHROME_NO_PLUGINS
Expand Down Expand Up @@ -80,8 +80,7 @@ def CreatePopupMenu(self):
menu.Append(-1, "启动 Google Chrome 浏览器", chromeMenu)

menu.AppendSeparator()
if sys.platform != "linux":
menu.Append(self.ID_UPDATE, "更新").Enable(False)
menu.Append(self.ID_ABOUT, "关于")
menu.Append(self.ID_EXIT, "退出")
self.menu = menu
return menu
Expand Down
13 changes: 5 additions & 8 deletions src/widgets.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,13 +112,10 @@ def __init__(self, parent, dpi=(1, 1)):
self.Bind(EVT_MENU, self.OnMenuClicked, id=self.menuItemNew.GetId())
self.Bind(EVT_MENU, self.OnMenuClicked, id=self.menuItemExit.GetId())
self.Bind(EVT_MENU, self.OnMenuClicked, id=self.menuItemAbout.GetId())
self.Bind(EVT_MENU, self.OnMenuClicked,
id=self.menuItemHelpDoc.GetId())
self.Bind(EVT_MENU, self.OnMenuClicked,
id=self.menuItemSettings.GetId())
self.Bind(EVT_MENU, self.OnMenuClicked, id=self.menuItemHelpDoc.GetId())
self.Bind(EVT_MENU, self.OnMenuClicked, id=self.menuItemSettings.GetId())
self.Bind(EVT_MENU, self.OnMenuClicked, id=self.menuItemImport.GetId())
self.Bind(EVT_MENU, self.OnMenuClicked,
id=self.menuItemCheckUpdate.GetId())
self.Bind(EVT_MENU, self.OnMenuClicked, id=self.menuItemCheckUpdate.GetId())

def __del__(self):
pass
Expand Down Expand Up @@ -295,8 +292,8 @@ def OnButtonClicked(self, event):
name,
url=url,
lastUpdateTime=Now(),
content="# Created by mHosts v%s, %s\n" % (
Settings.version(), Now())
content="# Created by mHosts v%s, %s\n" % (Settings.version(), Now()),
icon=self.iconComboBox.GetValue()
))
Settings.Save()
self.__window.InitHostsTree(select=hostsId)
Expand Down

0 comments on commit a3ad756

Please sign in to comment.