From 9cfc9ddc4c267f3fb3adf92b2a53d5f3c7d22bed Mon Sep 17 00:00:00 2001 From: Jonathan Harris Date: Thu, 12 Jan 2017 00:08:58 +0000 Subject: [PATCH] Add Help menu --- EDMarketConnector.py | 33 +++++++++++++++++++++++++++++---- L10n/en.template | 9 +++++++++ 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/EDMarketConnector.py b/EDMarketConnector.py index a72e62ca..06ed685a 100755 --- a/EDMarketConnector.py +++ b/EDMarketConnector.py @@ -12,6 +12,7 @@ import re import requests from time import time, localtime, strftime, strptime from calendar import timegm +import webbrowser import Tkinter as tk import ttk @@ -163,6 +164,10 @@ class AppWindow: self.menubar.add_cascade(menu=self.view_menu) window_menu = tk.Menu(self.menubar, name='window') self.menubar.add_cascade(menu=window_menu) + self.help_menu = tk.Menu(self.menubar, name='help') + self.w.createcommand("::tk::mac::ShowHelp", self.help_general) + self.help_menu.add_command(command=self.help_releases) + self.menubar.add_cascade(menu=self.help_menu) self.w['menu'] = self.menubar # https://www.tcl.tk/man/tcl/TkCmd/tk_mac.htm self.w.call('set', 'tk::mac::useCompatibilityMetrics', '0') @@ -175,7 +180,6 @@ class AppWindow: self.file_menu = self.view_menu = tk.Menu(self.menubar, tearoff=tk.FALSE) self.file_menu.add_command(command=lambda:stats.StatsDialog(self)) self.file_menu.add_command(command=self.save_raw) - self.file_menu.add_command(command=lambda:self.updater.checkForUpdates()) self.file_menu.add_command(command=lambda:prefs.PreferencesDialog(self.w, self.postprefs)) self.file_menu.add_separator() self.file_menu.add_command(command=self.onexit) @@ -183,6 +187,11 @@ class AppWindow: self.edit_menu = tk.Menu(self.menubar, tearoff=tk.FALSE) self.edit_menu.add_command(accelerator='Ctrl+C', state=tk.DISABLED, command=self.copy) self.menubar.add_cascade(menu=self.edit_menu) + self.help_menu = tk.Menu(self.menubar, tearoff=tk.FALSE) + self.help_menu.add_command(command=self.help_general) + self.help_menu.add_command(command=self.help_releases) + self.help_menu.add_command(command=lambda:self.updater.checkForUpdates()) + self.menubar.add_cascade(menu=self.help_menu) if platform == 'win32': # Must be added after at least one "real" menu entry self.always_ontop = tk.BooleanVar(value = config.getint('always_ontop')) @@ -195,6 +204,7 @@ class AppWindow: theme.register(self.menubar) # menus and children aren't automatically registered theme.register(self.file_menu) theme.register(self.edit_menu) + theme.register(self.help_menu) # Alternate title bar and menu for dark theme self.theme_menubar = tk.Frame(frame) @@ -218,6 +228,9 @@ class AppWindow: self.theme_edit_menu = tk.Label(self.theme_menubar, anchor=tk.W) self.theme_edit_menu.grid(row=1, column=1, sticky=tk.W) theme.button_bind(self.theme_edit_menu, lambda e: self.edit_menu.tk_popup(e.widget.winfo_rootx(), e.widget.winfo_rooty() + e.widget.winfo_height())) + self.theme_help_menu = tk.Label(self.theme_menubar, anchor=tk.W) + self.theme_help_menu.grid(row=1, column=2, sticky=tk.W) + theme.button_bind(self.theme_help_menu, lambda e: self.help_menu.tk_popup(e.widget.winfo_rootx(), e.widget.winfo_rooty() + e.widget.winfo_height())) theme.register_highlight(theme_titlebar) theme.register(self.theme_minimize) # images aren't automatically registered theme.register(self.theme_close) @@ -285,20 +298,26 @@ class AppWindow: self.menubar.entryconfigure(2, label=_('Edit')) # Menu title self.menubar.entryconfigure(3, label=_('View')) # Menu title on OSX self.menubar.entryconfigure(4, label=_('Window')) # Menu title on OSX + self.menubar.entryconfigure(5, label=_('Help')) # Menu title self.system_menu.entryconfigure(0, label=_("About {APP}").format(APP=applongname)) # App menu entry on OSX self.system_menu.entryconfigure(1, label=_("Check for Updates...")) # Menu item self.file_menu.entryconfigure(0, label=_('Save Raw Data...')) # Menu item self.view_menu.entryconfigure(0, label=_('Status')) # Menu item + self.help_menu.entryconfigure(1, label=_('Release Notes')) # Help menu item else: self.menubar.entryconfigure(1, label=_('File')) # Menu title self.menubar.entryconfigure(2, label=_('Edit')) # Menu title + self.menubar.entryconfigure(3, label=_('Help')) # Menu title self.theme_file_menu['text'] = _('File') # Menu title self.theme_edit_menu['text'] = _('Edit') # Menu title + self.theme_help_menu['text'] = _('Help') # Menu title self.file_menu.entryconfigure(0, label=_('Status')) # Menu item self.file_menu.entryconfigure(1, label=_('Save Raw Data...')) # Menu item - self.file_menu.entryconfigure(2, label=_("Check for Updates...")) # Menu item - self.file_menu.entryconfigure(3, label=_("Settings")) # Item in the File menu on Windows - self.file_menu.entryconfigure(5, label=_("Exit")) # Item in the File menu on Windows + self.file_menu.entryconfigure(2, label=_('Settings')) # Item in the File menu on Windows + self.file_menu.entryconfigure(4, label=_('Exit')) # Item in the File menu on Windows + self.help_menu.entryconfigure(0, label=_('Documentation')) # Help menu item + self.help_menu.entryconfigure(1, label=_('Release Notes')) # Help menu item + self.help_menu.entryconfigure(2, label=_("Check for Updates...")) # Menu item self.edit_menu.entryconfigure(0, label=_('Copy')) # As in Copy and Paste def login(self): @@ -736,6 +755,12 @@ class AppWindow: self.w.clipboard_clear() self.w.clipboard_append(self.station['text'] == self.STATION_UNDOCKED and self.system['text'] or '%s,%s' % (self.system['text'], self.station['text'])) + def help_general(self, event=None): + webbrowser.open('https://github.com/Marginal/EDMarketConnector/wiki') + + def help_releases(self, event=None): + webbrowser.open('https://github.com/Marginal/EDMarketConnector/releases') + def save_raw(self): self.status['text'] = _('Fetching data...') self.w.update_idletasks() diff --git a/L10n/en.template b/L10n/en.template index 74b42cbc..f9a83c42 100644 --- a/L10n/en.template +++ b/L10n/en.template @@ -106,6 +106,9 @@ /* Output setting under 'Send system and scan data to the Elite Dangerous Data Network' new in E:D 2.2. [prefs.py] */ "Delay sending until docked" = "Delay sending until docked"; +/* Help menu item. [EDMarketConnector.py] */ +"Documentation" = "Documentation"; + /* Empire rank. [stats.py] */ "Duke" = "Duke"; @@ -181,6 +184,9 @@ /* Combat rank. [stats.py] */ "Harmless" = "Harmless"; +/* Menu title. [EDMarketConnector.py] */ +"Help" = "Help"; + /* CQC rank. [stats.py] */ "Helpless" = "Helpless"; @@ -367,6 +373,9 @@ /* Federation rank. [stats.py] */ "Recruit" = "Recruit"; +/* Help menu item. [EDMarketConnector.py] */ +"Release Notes" = "Release Notes"; + /* Menu item. [EDMarketConnector.py] */ "Save Raw Data..." = "Save Raw Data...";